JoyBus Implementation Notes

There are 3 main ways to Implement the JoyBus protocol

  1. Create an Input Device (Hardware)
  2. Host an Input Device (Hardware)
  3. 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.