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

Additional (wireless!!) controllers supported via 8bitdo Retro Receiver connected to the RetroPad32 adapter via Wii Classic Controller Input Cable:

- Sony Playstation 3 wireless controller
- Sony Playstation 4 wireless controller
- Nintendo Wiimote
- Nintendo WiiU Pro wireless controller
- All 8bitdo bluetooth controllers (except SN30/SF30 2.4G controllers)

Note: In order to take advantage of all the available buttons and axes of the controllers above, make sure to flash firmware 1.05 Beta 0 to your 8bitdo Retro Receiver.

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

The mapper tool allows you to update the firmware of the RetroPad32 adapter and, if you need, to map the buttons for each of the supported joysticks. It also allows you to set which is the default USB mode, DInput or XInput, among other settings.

Follow the steps below in order to flash the RetroPad32 adapter:

- Connect the DFU dongle (the loose DB15 connector with no wires attached to it) to the RetroPad32 adapter

- Using an USB cable, connect the RetroPad32 adapter to the PC

- Open the mapper tool, make the settings as you wish and click the Flash button

- Optionally, you can save the settings by clicking the Save button so you will keep the current settings the next time you load the mapper tool