WARNING: Check the compatibility of your hardware, I'm not responsible for any damage caused to your equipment.
Simple use of jonthysell's "SegaController" library, allowing the use of Sega Genesis/Mega Drive 6-Button controllers on JAMMA hardware.
Test Video:
- Neo Geo MVS (MV1A): https://youtu.be/vLB6MV_LYBk
SG_to_JAMMA Buttons:
| Sega Genesis | JAMMA |
|---|---|
| UP | UP |
| DOWN | DOWN |
| LEFT | LEFT |
| RIGHT | RIGHT |
| A | 1 |
| B | 2 |
| C | 3 |
| X | 4 |
| Y | 5 |
| Z | 6 |
| MODE | COIN |
- jonthysell's SegaController library;
- Arduino (tested only on Nano boards, other boards may need the pin numbers in the code to be changed);
- Male DB9 connector.
Male DB9 Pinout (Front View):

Respective arduino pins:
| DB9 Pin | Arduino Pin |
|---|---|
| 1 | A0 |
| 2 | A1 |
| 3 | A2 |
| 4 | A3 |
| 5 | +5V |
| 6 | A4 |
| 7 | D13 |
| 8 | GND |
| 9 | A5 |
| Arduino Pin | JAMMA |
|---|---|
| D1 | COIN |
| D2 | UP |
| D3 | DOWN |
| D4 | LEFT |
| D5 | RIGHT |
| D6 | 1 |
| D7 | 2 |
| D8 | 3 |
| D9 | 4 |
| D10 | 5 |
| D11 | 6 |
| D12 | START |
After installing the "SegaController" library on your Arduino IDE, upload the code (SG_to_JAMMA.ino) to your board. If you experience random button presses, uncomment the first part of the "void setup()", which activates the software pull-up on the output connected to the JAMMA.
Huge thanks to jonthysell for their amazing library.
Also, thanks to pcbjunkie for their "ARDUINO GENESIS CONTROLLER INTERFACE", which served me as a starting point for this project.

