OpenCores

Description

The GCpad core interfaces to the gamepad used with the Nintendo Gamecube video gaming system. The core communicates with the gamepad using its proprietary communication protocol and offers the retrieved information for further processing.

To suit the needs of the integrating system, two different flavors of the core are available:

  • For simple applications the basic flavor manages all communication issues with the gamepad and provides the current status of the buttons and analog axes at its interface. The integrating system does not need to interfere with gamepad communication and can statically read the button and axes status information.
  • The full flavor allows full control of the gamepad communication by the integrating system. This flavor offers a command and response interface which is driven by the system to send arbitrary commands to the gamepad. The response of the gamepad is available for further processing.

Integration

The core has to be configured to fit into the integrating system. Details about this are given in the Gcpad Integration Manual.

Connecting the Pad

Information is exchanged between the gamepad and the host side over a single wire. Both sides seem to implement an open-collector style output driver. Therefore, an external pull-up resistor of 1 kOhm to the 3.43 V supply is required at the DATA line. Sticking exactly to the 3.43 V supply seems not to be necessary. I use the 3.3 V supply which is available on the FPGA board. Please note that the 5 V supply is required for certain controller types even if the rumble motor is not used.

The connector seems to be a special type designed for the Gamecube. It might be hard to find a matching counterpart. If you do not want to rip up the controller cable then your alternative option might be to reuse an extension cable. They are quite cheap and pass through all required wires. Just remove the connector that is plugged into the console and attach your favorite standard connector.

Connector Pinout

References