Multiplayer Bluetooth controllers adapter for retro video game consoles

Similar projects worth following
BlueRetro is a multiplayer Bluetooth controllers adapter for various retro game consoles. Lost or broken controllers? Reproduction too expensive? Need those rare and obscure accessories? Just use the Bluetooth devices you already got! The project is open source hardware & software under the CERN-OHL-P-2.0 & Apache-2.0 licenses respectively. It's built for the popular ESP32 chip. All processing for Bluetooth and HID input decoding is done on the first core which makes it easy for other projects to use the Bluetooth stack within their own project by using the 2nd core. Wii, Switch, PS3, PS4, PS5, Xbox One, Xbox Series X|S & generic HID Bluetooth (BR/EDR & LE) devices are supported. Parallel 1P (NeoGeo, Supergun, JAMMA, etc), Parallel 2P (Atari 2600/7800, Master System, etc), NES, PCE / TG16, Mega Drive / Genesis, SNES, CD-i, 3DO, Jaguar, Saturn, PSX, PC-FX, JVS (Arcade), Virtual Boy, N64, Dreamcast, PS2 & GameCube are supported with simultaneous 4+ players using

Project documentation

See GitHub repo for up to date information.


There are various ways available to enjoy retro gaming. Those of us that prefer playing with the original systems face various challenges regarding the controllers. Controllers are the part that degrades the most and often with old console not all of your original controllers (if any) are in good working condition. If you have more than one console, it can quickly get expensive to buy NOS or replica controllers. Adapters for USB & Bluetooth exist on the market but are compatible with one or two systems only.

When it comes to 4+ retro multiplayer party, it’s hard to have enough working controller and it quickly becomes a cable mess if you end up playing more than one console. Most systems included only 2 ports and 3+ players games required a multitap accessories that are now often hard to find and expensive. Existing adapters solutions are all limited for single player use, one need to buy multiple adapters for each player.

Some early games got really awkward control style by today's standard and it is often not even possible to edit the buttons mapping. Even when possible, it's often too much trouble doing so while your friends are waiting to play. Controllers & adapters including configurability are not simple enough to be used in a party.

Mouse, trackball & keyboards are often rare and expensive to get accessories for most systems. And let not forget that some controller design got questionable ergonomic! Very few, if any, adaptive option existed back in the day for people with limited mobility.


Across all current and last generation console and PC accessories, we already own a large quantity of Bluetooth HID devices. BlueRetro is a Bluetooth controller adapter for retro video game consoles that enable to use all those devices. Any Bluetooth HID (BR/EDR/BLE) devices can be connected and used including gamepad, mouse, keyboard, trackball, etc. This includes the Xbox adaptive controller.

The BlueRetro core can be used with every retro gaming system supported. This has the benefits of not requiring to repair your Bluetooth controllers between different system uses. No reconfiguration is required since the adapter auto detect the system it is plug on. Only the cable adapter need switched between system.

Up to 7 controllers can be connected simultaneously on a single adapter for multiplayer games. This means the adapter also emulate the multitap accessory for most systems. Rumble accessories/function is supported. Keyboard, trackball & mouse console accessories are supported too.

The adapter is highly configurable via a Web Bluetooth (BLE) interface for mobile & desktop. Buttons and axes can be mapped to any buttons or axis direction (Ex. mapping axis direction to a button, buttons on an axis direction, inverting an axis direction, trigger to axis, buttons to trigger, etc.). Various scaling and response curve options is available for axes and trigger. Presets configuration for various games are available. Using presets, you can change every player mapping at once with a few clicks on your mobile phone.

A secondary objective is for the code to be easily used on other ESP32 project to add Bluetooth HID device input.

To help this the Bluetooth and HID decoding is all done within one core. The retro console interface on the second core can be easily removed and replaced by another application that need input. (ex. RC cars, robots, game consoles, emulators, etc.). While the project in itself is more toward gaming, the code could be used as a component of an adaptive tool by using it in conjunction with the Xbox adaptive controller. 

A hardware goal is to be as simple as possible. A unique module with a ESP32 and one connector (DB-25 so far) should be the core of the solution. Most system will only need a straight cable adapter or an adapter only including level shifter. More complex adapter...

Read more »

View all 76 project logs

View all 3 instructions

Enjoy this project?



amilton mendes bastos wrote 09/19/2021 at 14:59 point

Where do I find the components for me to assemble mine? The pcb you sell?

  Are you sure? yes | no

Alisson Anderson wrote 08/04/2021 at 05:11 point

Hello dear friend. I live in Brazil and projects in electronics are so hard to complete, and the dollar costs 5x the value of my currency. I would like to know if you would sell me one of these adapters, as it would be more practical, and less expensive for me.

  Are you sure? yes | no

BBsan wrote 09/05/2020 at 07:22 point


This is a really great project!!

I‘m trying to build some kind of a „lite“ Version using a Devkit v4 without SD card for use only with my Gamecube.  Unfortunately I wasn‘t able to find any documentation about how to pair my PS3 Controller... Could you briefly explain it somewhere? Thanks!!!😊 

  Are you sure? yes | no

Jacques Gagnon wrote 09/07/2020 at 15:54 point

Sorry missed your message, at boot on the serial console the log will display your ESP32 BDADDR (MAC). Search for line "local_bdaddr". Then connect the PS3 ctrl to a PC via USB and use a tool call "sixaxis pair tool" to set the ESP32 Address. Drop by the  chat ( if you need more help! Thanks for giving BlueRetro a try!!

  Are you sure? yes | no

BBsan wrote 09/07/2020 at 17:28 point

Thanks a lot! This worked really well 😊 I just have two problems now with my SIXAXIS:

1. Once it starts vibrating it doesn't stop anymore.

2. R2 doesn't seems the be mapped on GC output as it seems.

But wow - what a nice project!!! 😊😊 

  Are you sure? yes | no

Jacques Gagnon wrote 09/07/2020 at 16:48 point

  Are you sure? yes | no

Arnaldo Pirrone wrote 07/26/2020 at 10:18 point

Hi there,

Is the support for original Xbox planned? (maybe using the same original gamepads)

  Are you sure? yes | no

Jacques Gagnon wrote 07/26/2020 at 11:15 point

Yes but it's very far on my list, it's an USB interface so it will require a special adapter cable with some uC with a USB PHY.

  Are you sure? yes | no

PixJuan wrote 07/24/2020 at 10:23 point

I was wondering if you know of any 3d model of joystick connector, because it would hurt me to cut one from a 30 year old Joystick :-(

  Are you sure? yes | no

Jacques Gagnon wrote 07/24/2020 at 10:27 point

Just buy cord extension on AliExpress they are around 1 to 3$ each.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates