Simple use of NicoHood's "Nintendo" library in conjuction with jonthysell's "SegaController" library, allowing the use of Sega Genesis/Mega Drive controllers on GameCube/Wii hardware.
Test Videos:
- Genesis_to_GC.ino: https://youtu.be/kbzL-ITwaIQ
- Genesis_to_GCanalog.ino: https://youtu.be/HIg18HVipuE
Genesis_to_GC Buttons:
GameCube | Sega Genesis |
---|---|
DPad UP | UP |
DPad DOWN | DOWN |
DPad LEFT | LEFT |
DPad RIGHT | RIGHT |
A | A |
B | B |
X | X |
Y | Y |
R | C |
L | Z |
Z | MODE |
Genesis_to_GCanalog Buttons:
GameCube | Sega Genesis |
---|---|
Analog UP (Full Push) | UP |
Analog DOWN (Full Push) | DOWN |
Analog LEFT (Full Push) | LEFT |
Analog RIGHT (Full Push) | RIGHT |
A | A |
B | B |
X | X |
Y | Y |
R | C |
L | Z |
Z | MODE |
- NicoHood's Nintendo library
- jonthysell's SegaController library
- Arduino Nano (or any 5V 16MHz Arduino, Atmega168 or Atmega328, just adapting the pin numbers)
- Bidirectional Logic Level Converter (5V to 3.3V)
- Male DB9 connector
- 1kΩ Resistor
- GameCube Controller Extension Cord
First, cut the female end of the extension cord, using a multimeter in continuity mode to check which wire corresponds to which pin in the male end. In my case I used a male and female DB9 connectors as a breakout, to use the same extension cord in multiple adapters, but you can solder the wires directly without the breakout.
GameCube Controller Pinout:
Source: https://hackaday.io/project/162348/instructions
Male DB9 Pinout (Front View): Source: https://www.consolesunleashed.com/tech/sega-mega-drive/
Respective arduino pins:
DB9 Pin | Arduino Pin |
---|---|
1 | A0 |
2 | A1 |
3 | A2 |
4 | A3 |
5 | Vin |
6 | A4 |
7 | A5 |
8 | GND |
9 | D2 |
After installing both libraries on your Arduino IDE (both of their pages have instructions on how to do so), upload the code (Genesis_to_GC.ino or Genesis_to_GCanalog.ino) to your Arduino.
Huge thanks to NicoHood and jonthysell for both their amazing libraries.
Also, thanks to tevey for their SNES to GameCube adapter, which not only inspired me to make this project, but taught me a great deal on how to use the "Nintendo" library correctly.