Gamecube controller to NES adapter
At the opposite of most adapters I have designed until now, this
one is not meant to use old game controllers on modern hardware.
Instead, it allows one to control our good old NES with a
controller that came out 15 years later.
Having been contacted to make a Gamecube to NES adapter, I spent a few
evenings on this project and a lot more time in testing (It's a
pleasure to rediscover old games with a Wavebird).
Ready to use adapters available!
- Connects directly to a standard NES port.
- Supports most Gamecube controllers. Tested with normal controllers, with the
white japanese imports with very long cable, with the popular Nintendo Wavebird and
an Intec wireless controller.
- Turbo feature. While L is pressed, A and B become turbos.
- Special mode for Mario Bros. (autorun).
(ready to play)
Here are a few pictures. Please send me yours!
Jour que d'une main...
NES et Wavebird
Manette blanche supportée
Note: The 2 NES systems that can be seen above are my regular
and my heavily modified NES
for Super Mario Bros arcade version.
The button mapping quite straight forward:
- If 'A' is held when turning on the NES, the 'auto run' mapping is
enabled. In this mode, the analog stick will press B automatically
above a certain threshold. Try playing Super Mario in this mode,
the only button you need to use is Jump!
- If 'B' is held when turning on the NES, the gamecube joystick
will use a lower threshold (i.e. less deflection required to trigger
the corresponding D-Pad direction).
The adapter should work with most games. Up to now, the following have
been tested. Don't hesitate to contact me if you try other games with the adapter!
Blades of steel,
Super Mario Bros,
Super Mario Bros II,
Super Mario Bros III,
Note: The pause screen in Paperboy does not work because of the way the game
is coded. With release 1.0, you cannot exit the pause screen. In firmware 1.1,
changes have been made which unpauses the game automatically. (Sorry, with the
current hardware, nothing better can be done. If the projet gets popular enough,
I will design new hardware to provide 100% compatiblity)
I once again used my
circuit with an Atmega8a. I use a linear
regulator to obtain the 3.3 volt power required for the Gamecube
controller from the 5 volt available at the NES controller port.
For this project, the MCU needs a crystal to run at 12Mhz.
|Atmega8 pin||NES/Gamecube signal|
|PD2 / INT0||NES Latch|
|PC5||Gamecube data (install external 1k pull-up resistor to 3.3 volt)|
Make sure the MCU has a 5 volt supply (3.3 volt is too low for 12 Mhz). Also,
make sure you supply both 3.3 volt and 5 volt to the gamecube controller.
Here is the pinout for the NES and Gamecube connectors:
The colors above are NOT representative of the wire colors (depends on the brand).
Only use the signal names!
The firmware is available as a source code package (GPL License) and pre-compiled
For the controller to run at the correct speed (12Mhz), setting the
fuse bytes to the appropriate values is mandatory. In this
case, this means the following:
- Atmega8: high_byte=0xc9 low_byte=0x9f
- Atmega168: ext_byte=0x01, high_byte=0xD5, low_byte=0xD7
For more information about programming an Atmel AVR microcontroller,
you may refer to my short AVR programming
Now here are the files:
October 23, 2016 (Sunday)
|Updated gamecube IO code (transplanted from gcn64usb v2.9.2). Fixes some compatibility issues.
gc_to_nes-1.2.tar.gz (30.4 KB)
gc_to_nes-1.2-atmega8.hex (18.3 KB)
gc_to_nes-1.2-atmega168.hex (16.9 KB)
September 2, 2013
gamecube_to_nes-1.1.1.tar.gz (24.2 KB)
gc_to_nes-1.1.1-atmega168.hex (16.8 KB)
April 15, 2012
|This new version fixes problems with Mario Bros 3.
gc_to_nes-1.1.tar.gz (23.4 KB)
gc_to_nes-1.1.hex (18.3 KB)
gc_to_nes-1.0.tar.gz (21.2 KB)
gc_to_nes-1.0.hex (8.7 KB)
I cannot be held responsible for any damages that could occur to you
or your equipment while following the procedures present on this page.
Also, I GIVE ABSOLUTELY NO WARRANTY on the correctness and usability
of the informations on this page. Please note, however, that the procedures
above have worked in my case without any damages or problems.
Now you cannot say that I did not warn you :)