Retro consoles are great fun, packed with classic games and plenty of nostalgia. However, they also lack the polish and ergonomics of more modern hardware. Serious gamers will often find their original gamepads wearing out, too. A solution to all these problems and more is BlueRetro.
BlueRetro is a Bluetooth controller adapter for a wide variety of vintage console platforms. Developed by [Jacques Gagnon], it uses an ESP32 for its powerful wireless capabilities. One core of the ESP32 is used to speak Bluetooth and handle controller interfacing, while the other processor core handles speaking to the attached console.
The level of attention to detail is where this project really shines. [Jacques] has implemented many advanced features, like mapping axes to buttons and vice versa – essential when swapping controllers across varied systems. The output of BlueRetro is a DB25 connector, which is then used with adapter cabling to hook up to the controller ports of various consoles. It’s even capable of emulating multitap adapters for up to 7-player action.
In a video, [Jacques] shows off the hardware in use with his collection of vintage consoles, hooked up on a shelf with an impressive A/V switcher setup. It’s clear that this is the build of a hacker that doesn’t skimp on doing things the right way. We’ve seen his work before too, with a tidy RGB input mod for CRT TVs. Video after the break.
19 thoughts on “BlueRetro Is The Ultimate Console Controller Adapter”
Incredible! I especially like the use of the DB25.
I’m really curious why it is limited to 7 controllers. Would be cool if it could be used with old PCs on the gameport/midi port, might be nice to have PS/2 output as well. So many possibilities!
Classic Bluetooth (BR/EDR) support a maximum of 7 active device. You in theory put a device to sleep to support more but for game this is not very good.
Did do much test past 4 right now. But I think airtime fairness become an issue at 5-7.
I have yet to had BLE device support maybe I can go higher with those.
DB15 gameport will come down the line for sure, PS/2 and other retro PC interface will come once console ones are done.
DA15. D is for D-Subminiature. The second letter is for the size. B is for the 25 pin size used for serial parallel and Apple SCSI. E is the size for 9 pin serial and TTL video. A is for PC gameports, old Macintosh monitors, Atari 5200 controllers and possibly some other things. Do NOT plug a DA15 Mac monitor into a PC gameport.
The number is the number of pins. A High Density version will have an H prefixed, such as HDB15 for a VGA video connector.
Then of course Apple had to have their own, the 19 pin D-Sub they used for external floppy drives on later apple // and early Macintosh computers. AFAIK that one was never officially assigned a size letter.
VGA is DE15, HD is added only when not using the proper nomenclature, which no ones do for decades ;) .
I was just researching this kind of stuff for options connecting various controller types to various consoles/MiSTer/etc., especially with an eye towards latency testing. Brook adapters, wired vs. bluetooth, different bluetooth adapters, etc. I’m now very interested in this project! :) Ran across this spreadsheet comparing latency with various options, complete with amazon links:
I’d be curious to know how this adapter stacks up!
I plan to hack the 240p test suite for the various system and measure the time between raw button press on BT controller and black to white transition on the system RGB out with a scope.
I’m more in a add features mode right now but I will make sure latency is ok down the line.
No need for the console … if you’re using one of the DE9 connectors (Atari, C64, SMS, SMD), the up and down buttons are just direct digital signals, expecting a weak pullup inside the console, shorted to ground by the buttons in the controller.
I was thinking lower-tech with something soldered to the pads on the controller, an LED, CRT, 240p Test Suite for whichever console, and a slow motion camera (cell phone). Lower-tech in that I don’t have a scope, unless you count the CRT :) Same process for wired vs. wireless controllers, different consoles, etc. I’ve heard of similar approaches using the audio out + beep-on-press, easily measured with Audacity or similar. I like the idea of soldering to the port instead, but that wouldn’t test bluetooth/2.4GHz lag etc. Looks like the folks behind that Google Sheet did something similar with an Arduino.
Kudos to [Jacques] though! I’m off to order the parts to build a BlueRetro! Sometimes I’d like to just skip all the lag testing dorkery, and just play some games… being able to mix and match controllers & systems would be a literal game-changer!
Great project mon Québécois!
I just can’t get over how cool this project is. Like, it’s one thing to make an adapter to go between one controller and one system, but to make a nearly universal adapter like this is really high tier stuff. I’m just flabbergasted.
debbie downer here, the main reason I keep old consoles and computers is often for their unique inputs. If I am going to use a modern generic playstation / xbox controller why would I not just emulate it, often in better quality with the downside of almost unnoticeable quirks
This is a valid point. I think each person got his own threshold about how genuine they want their retro experience to be. Some are quite happy with emu on PC, some prefer a RetroPie or mister on TV. Others original console with original accessories and CRT. Others like original console with flash cart/drive emu, HDMI mods, USB/bluetooth controller and blue LEDs. And those preference evolve over time.
Personally right now I’m more for a fully original experience with original controllers with a CTR TV. But while I enjoy the original pad for solo gaming when it come to 4+ retro multiplayer party it’s hard to have enough working controller and it quickly become a cable mess if you end up playing more than one console.
Some early games got really awkward control style by today standard (Perfect Dark) and for a party it’s just better to be able to setup everybody with something familiar quickly in the central phone apps than going through the in game config for each person (if even it’s a possibility!).
I could use a RetroPie for those ocasion but I’ve personally found it kill the nostalgia vibe. Original console + CRT keep the vide strong and bluetooth controller got little impact on it.
I feel the same. I’m all for matching console+controller, but sometimes that’s just not feasible due to price/availability/multiplayer/etc. I’m also all for giving people more options to play however they choose! :)
…and check out [Jacques]’s hackaday.io page for this project, where he’s setting up Microsoft’s accessible controller. For some of us, price/availability/etc. is far less important than just ‘Can I play this game at all’.
Amazing! I’m going to order a compatible board and try this immediately.
Are you supporting analog for the Sega Saturn?
I’m disabled and the analog pad for the Saturn is painful for me to use, so this would be a boon. I could finally play Nights properly if it does.
Right now I only got N64, GameCube & Dreamcast done, Saturn will come soon and will include analog support.
Excellent! I’m not sure if this project will help you or not, but since I have a vested interest I’ll share it just in case. https://github.com/garybethel/DS4toSaturn
Your work is the most exciting thing in the retro scene right now imo. It’s cheaply implementable and an INCREDIBLE accessibility boon.
I’ve got MS and my hands don’t work very well anymore, so I want to personally thank you for this. This give me much cheaper and better options for playing old games again.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)