-
Notifications
You must be signed in to change notification settings - Fork 109
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
Joypad subsystem #430
Joypad subsystem #430
Conversation
Tracks commit 4ae94192b2155c7aa988bfab61a148803d42d10d
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @meeq, this is FANTASTIC work. I'm in awe at the amount of work you poured into this, and the new library is going to be so great to work with.
I've started a review from joypad.h and joypad.c, mostly around the public API. I'll do the review in parts over several days.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks again for all your work. This is round two, still not fully done. Takes a while...
Move documentation to header DragonMinded#430 (comment)
Stacked on top of #429 which incorporates #426, #427, #428
Finally resolves #218
Highlights
joypad_read_n64_inputs_sync
instead ofcontroller_read
Abstraction details
Supported Controllers
Nintendo 64
The standard Nintendo 64 controller has fewer (and different) inputs than a GameCube controller:
GameCube
GameCube controllers must be connected using a "passive adapter" that can be created by splicing the Joybus data pin on a GameCube controller plug into the Joybus data pin on the N64 console.
The GameCube controller has more (and different) inputs than a Nintendo 64 controller:
Compatibility compromises
Rumble
Rumble motor control is supported for both N64 and GameCube controllers with a common API.
For Nintendo 64 controllers, this requires a Rumble Pak accessory.
For GameCube controllers, the 5-volt VCC pin on the controller plug must be connected to an external power source.
Still to do
mempak.c
tpak.c
Under consideration
controller.c
that is only used by thevrutest
example.execute_raw_command
and offer a proper VRU/VRS API.