RetroPad32 - The 32-bit ARM based joystick adapter

The RetroPad32 adapter is a joystick adapter compatible with several classic controllers from those good old beloved systems such as the Sega Genesis, Super NES, NES, Sega Saturn, and others.

It doesn't only accepts several controllers as input, but it also allows you to connect those retro-controllers to your PC, PS1, PS2, PS3, Classic XBOX, Game Cube, Nintendo 64, Nintendo Wii, Sega Dreamcast and more! Oh, do you want to play your Nintendo Switch with the Sega Saturn or Sega Genesis controllers, for example? Now you can! :)

The RetroPad32 adapter is based on the 32-bit 72Mhz ARM Cortex M3 micro-controller from ST and it's a port of the KADE miniConsole+ adapter, which is based on the 8-bit 16Mhz ATMega32U4 chip.

The main motivation behind the architecture move was that I wanted to learn how to work with the 32-bit ARM Cortex platform.

Moving to the 32-bit ARM architecture allowed for more fun possibilities. There are tons of RAM and FLASH memory available for the adapter firmware. That allowed for adding connectivity support (USB) to the Nintendo Switch console, for example. And there are still lots of free memory, making it possible to add new controllers and consoles support to the adapter in the future!

I tried to keep 1:1 compatibility with the input cables and functionalities from the KADE miniConsole+ as much as possible, but there are some caveats, due to technical restrictions and some decisions I've had to make about the new hardware design:

- Dreamcast input cable has a slightly different pinout on the RetroPad32 adapter

- The RetroPad32 adapter is not compatible with Atari analog paddles

However, here are the good news about the RetroPad32:

- Added XINPUT USB output support when connected to PCs (DINPUT is still an option)

- Added output support to the Nintendo Switch (via USB)

- Extra RAM and FLASH memory for additional functionality in the future

Here are the RetroPad32 currently supported controllers:

- NeoGeo controller (doesn't require any extra input cable - connects directly to the RetroPad32's DB15 port)

- Sega Genesis, Sega Master System, Atari 2600 controllers (and compatible controllers)

- NES controller

- SNES controller

- Playstation 1 and Playstation 2 controllers

- Nintendo GameCube controller

- Nintendo 64 controller

- Sega Saturn controller

- Turbografx 16 and PC-Engine controllers

- Sega Dreamcast controller

- Nintendo Wii Classic Controller and the Wii Nunchuk

With the RetroPad32 adapter, you'll be able to connect the controllers listed above to the following systems and consoles:

- PC, Mac OS and Linux based systems, including Raspberry Pi, via USB (DINPUT or XINPUT)

- MS Classic XBOX

- Sony Playstation 1 and Playstation 2

- Sony Playstation 3

- Nintendo Wii U (via USB and also Wiimote connection)

- Nintendo Wii (via Wiimote or Gamecube port connection)

- Nintendo Switch (via USB connection)

- Sega Dreamcast

- Nintendo Gamecube

- Nintendo 64

- Sega Genesis, Nintendo NES, Nintendo SNES, NeoGeo, MSX and Sega Saturn via special expansion board

Mapper tool for configuration and flashing can be downloaded here