SNES controller to Atari/Commodore



Introduction

The adapter project published here lets SNES controller be used on Atari and Commodore computers. Perfect if you have arcade controllers for SNES only or simply prefer SNES controllers.

Tested systems (working): Commodore 64 (NTSC and PAL), C64DTV (PAL), Amiga 500 (PAL), Amiga 600 (PAL), Atari 130XE (NTSC) and Atari VCS-2600 (PAL).
Not working: Minimig.

Note: NTSC vs. PAL does not make any difference but is given here for completeness.


goto top Up


Button mappings

Atari/CommodoreStyle 1Style 2Style 3Style 4
D-Up D-Up B A D-down/A
D-down D-down D-down D-down D-up
D-left D-left D-left D-left D-right
D-right D-right D-right D-right D-left
Fire/Btn1 A/B A B B
Auto Fire/Btn1 Y/R Y/R Y/R Y/R
Btn2 X/L X/L X/L X/L
Enabling a mapping:
Mappings are enabled by holding buttons on the SNES controller when connecting the adapter or turning the console on.

MappingActivation
Style 1Default
Style 2Hold B
Style 3Hold A
Style 4Hold X

Six different turbo speeds (30Hz, 25Hz, 20Hz, 16.667Hz, 15Hz and 12.5Hz) are available and cycled through by pressing the SELECT button. The default is 25Hz.

Pressing START enables/disables the auto-fire lock feature. When auto-fire lock is active, button 1 auto-fire runs continuously without the need to hold any button down.

Note: "Fire 2" is for Amiga only.
Note 2: When auto-fire is on, it can still be overridden by the fire button. (Allows mega-shoot in games like "R-TYPE")
Note 3: Auto-fire does not apply to Fire-2. (Eg: Calling the drone in games like "R-TYPE")

goto top Up


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:

DB9 PinSignal nameAVR pin name
1UP PC5
2DN PC4
3LF PC3
4RT PC2
6Fire PC1
7VCC VCC
8GND GND
9Fire 2 PC0

Important: To enable Atari/Commodore mode, PB1 must absolutely be connected to GND

Here are a few pictures of my development setup, all wired according to the above tables.
Multiuse PCB2

Multiuse PCB2

With a C64

With a C64

With a C64

With a C64


goto top Up


Firmware

Important: To enable Atari/Commodore mode, PB1 must absolutely be connected to GND
File(s)DateDescription
snes2md-1.2.tar.gz (19.8 KB)
snes2md-1.2.hex (5.3 KB)
October 29, 2013 (Tuesday) New features:
  • Added two new Genesis mappings
  • Added a new Atari mapping
  • Added support for 2nd fire button (Amiga)
  • Added auto-fire for Atari mode (Button 1/Fire). Selectable auto-fire speed 30Hz, 25Hz, 20Hz, 16.667Hz, 15Hz and 12.5Hz
  • Auto-fire lock mode for Button 1/Fire. (Toggled by START)
snes2md-1.1.1.tar.gz (18.7 KB)
snes2md-1.1.1.hex (3.4 KB)
October 20, 2013 (Sunday) Updated Atari mode mappings.
snes2md-1.1.tar.gz (18.6 KB)
snes2md-1.1.hex (3.4 KB)
October 8, 2013 (Tuesday) Implemented Atari/Commodore support:
  • Two selectable button mappings
  • Enabled by grounding PB1. Note: A slightly different DB9 wiring is required.
snes2md-1.0.tar.gz (18.1 KB)
snes2md-1.0.hex (2.8 KB)
September 14, 2013 (Saturday) Initial release:
  • Genesis/Megadrive 6 button pad emulation
  • 3 Selectable button mappings
Using the .hex files
The Atmega8a has to be programmed using the .hex file. The "fuse bytes" for this project are high_byte=0xc9, low_byte=0x9f.

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.

goto top Up


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.

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: November 17, 2014 (Monday)