Gamecube controller to NES adapter



Introduction

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).

Specifications:
Ready to use adapters available!
Complete adapter (ready to play)

goto top Up


Pictures

Here are a few pictures. Please send me yours!
En développemnet.

En développemnet.

Jour que d'une main...

Jour que d'une main...

NES et Wavebird

NES et Wavebird

Adaptateur

Adaptateur

Manette blanche supportée

Manette blanche supportée


Note: The 2 NES systems that can be seen above are my regular modded NES and my heavily modified NES for Super Mario Bros arcade version.

goto top Up


Usage

The button mapping quite straight forward:

GamecubeNES
AA
BB
StartStart
ZSelect
D-PadD-Pad
JoystickD-Pad
LTurbo A/B
Special modes
  • 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).

goto top Up


Compatibility

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!

Baseball, Battle Tank, Blades of steel, Bubble Bobble, Ikari Warriors, Kid Icarus, Legendary Wings, Lifeforce, MetalStorm, Metroid, Paperboy, R.C. Pro-AM, Super Mario Bros, Super Mario Bros II, Super Mario Bros III, Turtles II, Zelda II.

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)

goto top Up


Electronics

I once again used my multiuse pcb2 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 pinNES/Gamecube signal
PD2 / INT0NES Latch
PC0NES Data
PC1NES Clock
PC5Gamecube data (install external 1k pull-up resistor to 3.3 volt)

Important: 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:

Careful! The colors above are NOT representative of the wire colors (depends on the brand). Only use the signal names!

goto top Up


Firmware

The firmware is available as a source code package (GPL License) and pre-compiled .hex file.

Important!
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:
For more information about programming an Atmel AVR microcontroller, you may refer to my short AVR programming page.

Now here are the files:
File(s)DateDescription
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)
October 23, 2016 (Sunday) Updated gamecube IO code (transplanted from gcn64usb v2.9.2). Fixes some compatibility issues.
gamecube_to_nes-1.1.1.tar.gz (24.2 KB)
gc_to_nes-1.1.1-atmega168.hex (16.8 KB)
September 2, 2013 Atmega168 support
gc_to_nes-1.1.tar.gz (23.4 KB)
gc_to_nes-1.1.hex (18.3 KB)
April 15, 2012 This new version fixes problems with Mario Bros 3.
gc_to_nes-1.0.tar.gz (21.2 KB)
gc_to_nes-1.0.hex (8.7 KB)
February 2012 Initial release.
This project is also available on GitHub!
To request features, report issues or contribute, you may send me an email or use the GitHub repository:
https://github.com/raphnet/gamecube_to_nes

goto top Up


Disclaimer

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 :)

goto top Up


Trademarks used in this site are the property of their respectives owners.
Copyright © 2002-2017, Raphaël Assénat
Website coded withWebsite coded with vimLast update: October 15, 2016 (Saturday)