Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slot2: Add Slide Controller #737

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

windwakr
Copy link
Contributor

@windwakr windwakr commented Oct 10, 2023

This adds the Slide Controller add-on, used by the game Slide Adventure MAGKID. AFAIK no other emulator supports this add-on.
Only the Windows frontend is implemented. Set slot 2 to auto, load up the game and move your mouse around.

If you're just looking to play the game, then download a build of the emulator here
desmume-slidecontroller.zip

Slide.Adventure.MAGKID.mp4

This is a draft because

  • I'm not sure about my changes to the Windows main.cpp regarding raw input reading
  • The cursor needs some mechanism to lock/hide it while playing
  • Rarely, some bits get dropped somewhere causing the whole thing to desync and stop functioning. No clue, probably in my serial handling code.

I'm not sure if I want to work through the frontend issues. If anyone else wants to then feel free to take over(squash my commits please). Otherwise, it'll be here for anyone that just wants to play the game.

I mostly referenced the small section in GBATEK and the chip's data sheet, with a small amount of RE of the game.

@windwakr
Copy link
Contributor Author

OK, I ended up rewriting the slot2 code to make it not so awful, taking heavy inspiration from the Magic Reader serial handling code in GBE+.

I feel like the slot2 code is in acceptable state now. The frontend code is unchanged and still crap and broken, though.

@windwakr
Copy link
Contributor Author

windwakr commented Oct 12, 2023

Ok, last change before leaving this for a while. I added rumble support. In doing this, I moved the definition of FeedbackON from slot2_rumblepak.cpp to slot2.cpp to make it more clear that it's available for other add-ons.

I guess set your controller on your lap? Yeah, it isn't the most practical to use. In-game there's a setting to turn rumble off it it's unwanted.

Rumble is now always allowed. Turns out there's an in-game option to turn it off so there's no need for this.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant