Skip to content

RetroPad2Console for SNES & Saturn pads using on original xbox and gamecube.

License

Notifications You must be signed in to change notification settings

maximaas/RetroPad2Console

Repository files navigation

RetroPad2Console

for SNES & Saturn pads using on original xbox and gamecube.

Copyright (C) 2015,2017 Maximaas
Version 1.0 - completed on 2015.12.09

About

Original Xbox and Nintendo Gamecube(Europe version) are good emulator platforms with RGB video support, which makes it possible to play retro games on a RGB capable CRT display. But with weird controller scheme, the default Xbox and GC controller are disasters for most retro games. So I came up with the idea of making an adapter to let me use SNES and Saturn pads on these consoles. Saturn pad has six buttons on the right, it's perfect for MegaDrive and 2D-Fighting games while SNES pad is for NES/SNES/GBP and other games.

References

Before I start, I googled a lot of resources to help me accomplish this project (see blow). Greate thanks to all these authors.

http://www.int03.co.uk/crema/hardware/gamecube/gc-control.htm
Gamecube controlle protocol explanation.

http://www.raphnet.net/electronique/x2wii/index_en.php
N64/Snes/Nes controller to gamecube/Wii conversion project

https://github.com/brownan/Gamecube-N64-Controller
I directly used the gamecube communication code from this project with just a little modification. It helps me greatly, without this I will never done my work.

http://www.brunofreitas.com/node/41
https://github.com/bootsector/usb-retropad-adapter
A very powerful adapter, I directly used the Xbox pad communication code from this project or I will never got my project work on original xbox.

Pictures

image image
I bought several SNES to PC adapters to make use of its case and snes female connector.

image
My work uses USB connector as the output in order to adapt both Xbox and GC.

image
Interface cable. Female USB connector to Xbox and GC controller port.

image image
The PCB I designed with the size fits with the SNES to PC adapter case. And a bit of hand craft work should be done to accommodate the Saturn and USB connectors.

Parts

Parts Model Remark
MCU ATMEGA8-16PU Can be replaced with ATMEGA328p for more program memory
CRYSTAL 16 MHz
R_RST 120 Ohm
R_LED 220 Ohm
R_USB 1.5K Ohm
R_D+ 68 Ohm
R_D- 68 Ohm
C1 22 pf
C2 22 pf
C3 4.7 uf
D1 1N4148
D2 1N4148
SWITCH Reset Switch
LED Any 5v LED
USB-A / USB-A Male connector
SFC / SFC conenctor
SS / SS connector
GC Cable / NGC extesion cable
XB Cable / XBOX extension cable
USB / USB-A female connector

Build the Adapter

This adapter is actually a minimum Arduino based on ATMEGA8-16PU. It receives the SNES/Saturn pad signals then interprete and send them to the target according to Xbox or GC protocol.

image

The eagle files of the hardware part are included. The PCB have both ICSP and Serial interfaces on it, for bootloader and firmware programming.

The software part is standard Arduino sketch codes, can be compiled and uploaded with Arduino IDE.

With the parts assembled, upload the "optiboot_atmega8" bootloader by ICSP which can be found in Arduino IDE releases.

The firmware can be uploaded by either ICSP or Serial interface. For Serial way, the reset button need to be hit right after you clicked the upload button in Arduino IDE.

BTW, I'm using Sloeber IDE(http://eclipse.baeyens.it/) to help keeping my Arduino projects well organized.

Interface cable wiring

image

Here's a picture of male usb connector, I named the 4 pins to U1/U2/U3/U4, then wired them to the consoles' controller port.

  • Xbox
The adapter uses the standard usb pinout and V-USB library to communicate with Xbox which makes the wiring things very simple.

image

Just follow the image above.

  • Gamecube
Gamecube only have one data line to carry the signal which connected to PD2(D+ pin) in my case.

image

It is the view of the controller port on Gamecube.
pin1 --> U1
pin2 --> U3
pin4&5 --> U4
The D- line is left empty.

Known Issues

  • The turning on of the LED on the adapter means the handshaking process is over and the adapter is funtional. Unlike the Gamecube, the Xbox will not do the handshaking process with the controller until the power on video clip is finished. When cold-plugged to the Xbox the adapter will be funtional after the console started.

  • The adapter can not work with Game Boy Interface (a replacement to the official Gameboy Player application) because of a different handshaking protocol. The ATMEGA8-16PU only have 8KB memory, adding any fix codes will cause it reachs it's physical limit.

About

RetroPad2Console for SNES & Saturn pads using on original xbox and gamecube.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published