Skip to content

Add GameCube controller support via Serial Interface driver - #34

Open
JGM01 wants to merge 4 commits into
rust-wii:mainfrom
JGM01:controller-support
Open

Add GameCube controller support via Serial Interface driver#34
JGM01 wants to merge 4 commits into
rust-wii:mainfrom
JGM01:controller-support

Conversation

@JGM01

@JGM01 JGM01 commented Jul 2, 2026

Copy link
Copy Markdown

Adding support for a standard GameCube controller by implementing the Serial Interface (SI) driver. I just thought that being able to take user input easier would be helpful for testing other future library features.

Specifically, I added:

  • serial_interface.rs: A serial-interface driver. Basically just wraps SI_COMM_REG and creates a SiChannel abstraction for handling individual controller ports.
  • pad.rs: Controller snapshot-state-reading API. Maps 8-byte Joy-Bus payload into structured button and stick states.
  • Testing: Added controller-test.rs to verify successful connection & button data passthrough. It works!

Also, I think that pad.rs would be better in the future as a hub for a trait-based "JoyBusDevice" structure so other input devices can get added fairly easy. That's out-of-scope of this PR though (no one wants to review 1k+ lines) but is probably the thing I'd do next after/if this gets in.

JGM01 and others added 4 commits July 2, 2026 00:50
@JGM01 JGM01 changed the title Implement GameCube controller polling via Serial Interface Add GameCube controller support via Serial Interface driver Jul 18, 2026
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