You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MickGyver b414a311bd Removed the need for the switch. 2 years ago
SegaControllerUSB Removed the need for the switch. 2 years ago
images Updated version. 2 years ago
LICENSE Initial commit 2 years ago Update 2 years ago

DaemonBite Sega Controller To USB Adapter


This is a simple to build adapter for connecting Mega Drive (Genesis), Master System (+ Atari and C= controllers) to USB. It supports 3 and 6-button Mega Drive controllers and 1 and 2-button SMS/Atari/C= controllers.

The input lag for this adapter is minimal. Here is the result from a test with a 1ms polling rate on a MiSTer:

Controller Samples Average Max Min Std Dev
Original 3-Button Mega Drive Controller 2342 0.75ms 1.28ms 0.24ms 0.29ms
8bitdo M30 Wireless 2.4G 2348 4.54ms 8.05ms 2.22ms 1.31ms

The Mega Drive gamepad interface is based on this repository : but almost entirely rewritten and a lot of optimisations have been made.

Parts you need

  • Arduino Pro Micro (ATMega32U4)
  • Male end of Mega Drive controller extension (or DSUB 9Pin Male connector and some wires)
  • SPDT Switch (2.54mm/0.1" pitch)
  • Heat shrink tube (Ø ~20mm)
  • Micro USB cable



How to assemble

Assemble1 Assemble1
(The switch goes to pins GND-GND-2 even if the picture above shows it connected to GND-2-3) Assemble1 Assemble1

The Switch

When the switch is in the position closer to the USB port of the Arduino Pro Micro, the adapter will be in SMS/Atari mode. When it is in the other position, it will be in Mega Drive/Genesis mode.


This project is licensed under the GNU General Public License v3.0.