JoyBus Implementation Notes
There are 3 main ways to Implement the JoyBus protocol
- Create an Input Device (Hardware)
- Host an Input Device (Hardware)
- Game Library (N64 Software)
N64 Game Library
The simplest implementation is usually to support the standard controller which sends a single byte command and receives 4 bytes for N64 and 8 bytes for GameCube.
In most situations the requirement is simply the controller button and joystick status which is just 32 / 64 bits (not kbits) and with protocol overhead this entire transaction is complete in 170 - 340 uS ( less than about 1/3 of a millisecond). What makes this even easier is that single transaction takes place every 16.66 ms (aka 60 times per second).
These 4 pieces are put together in to 2 common commands (and several other device specific ones). Below are minimum commands implemented by every official device, please see the device specific pages for the complete implementation details.