loopj/usb-gamecube-controller-adapter — explained in plain English
Analysis updated 2026-05-18
Flash a ready made firmware file onto a cheap board to make a working GameCube controller adapter.
Play GameCube games with original controllers on Wii U, Switch, Switch 2, or the Dolphin emulator.
Wire up to four GameCube controllers, including a WaveBird wireless receiver, to one small board.
Build the firmware from source to add support for a new board or customize which pins are used.
| loopj/usb-gamecube-controller-adapter | brucenguyen1102/canon-lbp2900-capt-toolkit | danveloper/flash-pi-dsv4 | |
|---|---|---|---|
| Stars | 16 | 16 | 16 |
| Language | C | C | C |
| Setup difficulty | moderate | moderate | hard |
| Complexity | 3/5 | 3/5 | 5/5 |
| Audience | developer | general | researcher |
Figures from each repo's GitHub metadata at analysis time.
Using a prebuilt firmware is quick, but you still need to solder or wire connectors and add pull up resistors to the data lines.
This project is an open source, do it yourself replacement for Nintendo's official USB GameCube controller adapter, the small box that lets you plug real GameCube controllers into a computer or a modern console. Like the official adapter, it reads up to four GameCube controllers using the Joybus protocol they normally speak and presents them to a computer over USB. The project is built on two of the author's own libraries, one for talking the Joybus protocol and one for USB device support, and it targets two families of cheap microcontroller boards: the ESP32-S3 and the Raspberry Pi Pico, including its RP2040 and newer RP2350 chips. It supports all four controller ports at once, controller rumble, and even the wireless WaveBird receiver, which the README notes many cheaper clone adapters do not support. Input is polled at 1000 times per second for low delay, and the finished adapter is recognized as the genuine Nintendo adapter by the Wii U, the Switch, the Switch 2, and the Dolphin GameCube emulator. For most people, using it means downloading a ready made firmware file for a supported board, such as a Raspberry Pi Pico, Pico 2, or one of several small Waveshare boards, and copying or flashing that file onto the board. No coding is required for this path, only a few button presses to put the board into its firmware update mode. Building the adapter also requires some basic electronics work: wiring each GameCube controller's power, ground, and data lines to the board, plus a small pull up resistor on each data line so the signal reads correctly. A wiring table in the README shows exactly which pin on each supported board corresponds to each of the four controller ports. Developers who want to customize the firmware, for example to use different pins or add new boards, can build it from source using the official Raspberry Pi Pico SDK or Espressif's ESP-IDF toolchain, with ready made build presets provided for common boards.
Open source firmware that turns a cheap ESP32-S3 or Raspberry Pi Pico board into a 4 port USB adapter for real GameCube controllers, recognized by the Wii U, Switch, and Dolphin.
Mainly C. The stack also includes C, TinyUSB, ESP-IDF.
The README does not state a license, so the terms for using or redistributing this code are unclear.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.