If you want to play games on your Genesis/Megadrive console but have a strong
preference for SNES controllers, or own many cool arcade sticks for the SNES
which you'd like to use, an adapter to connect SNES controllers to your
Genesis/Megadrive is exactly what you need.
I used an Atmel atmega8a MCU do build this adapter, and optimising
the code until it would react fast enough to the console requests was a fun challenge
which I took the time to document.
Enabling a mapping:
Mappings are enabled by holding buttons on the SNES controller when connecting the adapter or turning the console on.
Mapping
Activation
SNES 1
Default
SNES 2
Hold B
SNES 3
Hold Y
SNES 4
Hold X
SNES 5
Hold L
SNES 6
Hold R
Note: SNES 6 mapping is not available yet.
Wiring
I used a simplified version of my multiuse pcb2
for this project. The only components present are the microcontroller, capacitors, and a 16 MHz crystal.
Schematic:
Wiring:
Wiring tables for the Genesis/Megadrive (DB9-F connector) and SNES controller:
DB9 Pin
Signal name
AVR pin name
1
UP/UP/Z
PC5
2
DN/DN/Y
PC4
3
0/LF/X
PC3
4
0/RT/
PC2
5
VCC
VCC
6
A/B
PC1
7
SELECT
PD2 (INT0)
8
GND
GND
9
START/C
PC0
SNES pin
AVR pin name
VCC
VCC
GND
GND
CLOCK
PB5
DATA
PB4
LATCH
PB3
Here are a few pictures of my development setup, all wired according
to the above tables. Notice how the standard
solder cup DB9-F I used to connect to the console cannot be fully
inserted. Ideally a Genesis/Megadrive controller or
extension cable should be used.
DB9-F connector
Multiuse PCB2
Testing with Comix Zone
Firmware
Warning: Note that while this SNES to Megadrive/Genesis adapter and the
SNES to Atari/Commodore adapter share the
firmware below, they each have their own specific wiring. Never use an adapter built for Genesis/Megadrive on a Commodore or Atari system.
For more information about the tools required to program an AVR microcontroller,
please visit my
AVR programming page.
Source Code (.tar.gz files):
Unless indicated otherwise, the source code is published under the GPL license. Please
consult the included LICENSE file for more information. The project compiles using the
included makefiles using avr-gcc under Linux.
User pictures
I like seeing how others build my projects. If you build an adapter, please send me pictures and I'll add them here. January 6, 2015 (Tuesday) Roman Sysoev from Russia sent me the following pictures of the prototype and final PCB version (enclosure still missing) of the SNES controller to Genesis/Megadrive he built.
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.