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

Slot-2 Motion Pak, Guitar Grip emulation #2183

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

Conversation

asiekierka
Copy link
Contributor

@asiekierka asiekierka commented Oct 31, 2024

This PR adds emulation of the following Slot-2 devices:

  • The homebrew Motion Pak, supporting X/Y/Z acceleration and Z rotation measurements. I have validated, with the help of a friend, the X/Y/Z acceleration support; I do not have any hardware which supports the Z rotation, however, so that's a bit of a guess.
    • The Motion Pak is mapped to accelerometer/gyroscope readouts from the connected SDL game controller; think DualSense or Switch Pro Controller.
  • The official Motion Pack (sic!), as bundled with Tony Hawk's Motion, as described in Tony Hawk's Motion (USA) missing motion pak #74 . There's really no reason to use that one - it omits the gyroscope, has only 8 bits and not 12 bits of accuracy, and for some bizarre reason the game itself supports the homebrew pak too (!?). I have not tested it, as I don't own the game.
  • The Guitar Grip. This is a "low-hanging fruit" with regards to adding other devices that support external inputs, such as the Paddle and Piano Controller. Tested, but only with a homebrew test ROM.

Closes #74 and #73 . Related to #755 . Testing welcome.

@asiekierka asiekierka force-pushed the feature/motion-pak-emulation branch from e997837 to 742cff5 Compare October 31, 2024 14:54
src/GBACartMotionPak.cpp Outdated Show resolved Hide resolved
return 0;
case 8:
// Read Z rotation
// CHECKME: This is a guess, compare with real hardware
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may have a hard time here as I'm not entirely convinced the homebrew Slot2 motion pack was ever actually sold/made available. The only product I can find with a motion pack is supposedly the Neoflash "R6Gold".

All of my knowledge of the homebrew cart's spec comes from libnds.

Copy link
Contributor Author

@asiekierka asiekierka Nov 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may have a hard time here as I'm not entirely convinced the homebrew Slot2 motion pack was ever actually sold/made available.

Absolutely was. https://web.archive.org/web/20080509173200/http://www.ndsmotion.com/ has a list of stores and photos of the packaging.

The problem is that these types of products (the DSerial Edge has a similar problem) were predominantly popular with homebrew developers themselves, so not only did they probably sell in highly limited qualities, they're unlikely to pop up on the second-hand market due to personal nostalgia.

There were six products in total which featured Kionix's technology, five of which were for the DS family of consoles; I maintain a list here: https://wiki.asie.pl/doku.php?id=notes:flashcart:ds_motion_card - of those, the GBAccelerometer is the easiest to find (it's still available in stock in 2024), but that's not a DS product; next, there's the Activision pak, and after that probably the R6 Gold?

I tested with an MK6-Motion myself, which happens to feature both the accelerometer and gyroscope chip; since the chips themselves and thus values output should be identical between the Card and a Pak, I deemed the emulation to be accurate enough for running homebrew (which is the important thing for me from a preservation perspective), but I can't verify fine details like the Pak's open bus behaviour or any additional SPI/ROM commands the Card might have.

All of my knowledge of the homebrew cart's spec comes from libnds.

There's some additional bits of information in a README bundled with the original DS Motion Card/Pak driver source code on said website.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Either way, I don't expect this to be resolved as part of this PR, and the detection mechanism used by all homebrew for the Pak doesn't rely on open bus behaviour.)

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.

Tony Hawk's Motion (USA) missing motion pak
2 participants