[BETA] BlueRetro - Multiplayer Bluetooth controllers adapter

The place for all discussion on gaming hardware
Post Reply
User avatar
darthcloud
Posts: 131
Joined: Mon May 22, 2006 11:44 pm
Location: Canada

[BETA] BlueRetro - Multiplayer Bluetooth controllers adapter

Post by darthcloud »

​Hi guys,

I want to share here a little project I've been working on for about 2 years now. BlueRetro is a universal multiplayer Bluetooth controller adapter for retro consoles.
JVS interface is supported (but only tested with Tatsunoko VS. Capcom) and JAMMA/NeoGeo support should come soon once I'm done adding Genesis support.
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, Xbox One & generic HID Bluetooth devices are supported. NES, SNES, Saturn, JVS (Arcade), N64, GameCube & Dreamcast are supported with simultaneous 4+ players using a single adapter. Soon Genesis/Megadrive, PSX, PS2, Parallel (2600, SMS, NeoGeo, JAMMA), PCE, CD-i, 3DO, PC-FX...
See main project page at hackaday.io
And github repo.

Image
https://youtu.be/xBVsEUAiUrs

See my roadmap for more info on upcoming features.

I'm currently looking for 25 Beta testers.

I will sell each DevKit 100 USD (No money taken upfront) since the low volume and external assembly will add to the cost. I will also make any cable you want for 20 USD (30 USD for those that require more work). Alternatively you can buy a cable kit for 5 USD that will only include the PCB pre-soldered with the SMD parts & the DB25 connector. (You got to source the cable & backshell yourself). I expect to ship the unit for beta around December 2020. I will send people on the list a paypal invoice once they are ready to ship.

You can add your name to the preorder list via this form:

https://forms.gle/TyieHLHRTFCQXz46A

See some background info here:
https://hackaday.io/project/170365-blue ... ent-status

Let me know if you got any questions!
 
https://youtu.be/3ucYHF5Lkl8
https://youtu.be/I0b7eRCILWs
Last edited by darthcloud on Mon Oct 05, 2020 1:51 pm, edited 1 time in total.
sofakng
Posts: 218
Joined: Fri Sep 02, 2016 1:30 am

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by sofakng »

This project is absolutely FANTASTIC. I've been testing it for a while (with an ESP32 DevKitC, but now there is a PCB with everything integrated) and it works great.

Most bluetooth controllers are already supported (Generic bluetooth controllers, PS3/PS4, X-Box, Wii U, Switch Pro, etc). You can even use a bluetooth keyboard/mouse to emulate a controller if you wanted. The BlueRetro itself supports up to 7 simultaneous bluetooth connections and can emulate/support up to 4 players at once.

It's incredibly configurable (through a web interface) and you can also mix/match almost any configuration you can think of.

For example, Smash TV for the NES had an interesting feature where you can use two controllers at once to emulate the arcade dual-stick setup. BlueRetro can emulate these two controllers and map them to the different analog sticks on a single controller. (https://www.youtube.com/watch?v=I0b7eRCILWs)

It already supports many systems:
  • NES
  • SNES
  • N64 (with built-in memory pak support coming soon!)
  • Gamecube
  • Saturn
  • Dreamcast (with built-in VMU coming soon!)
  • JVS (arcade)
Other systems are coming soon:
  • Genesis/Megadrive
  • Playstation
  • Playstation 2
  • Atari 2600
  • Sega Master System
  • Neo Geo
  • PC Engine
  • CD-i
  • 3DO
  • PC-FX
darthcloud has been updating this on an near-daily basis adding support for new systems, designing the PCBs, etc.

This is by far one of the most interesting (and useful) projects I've seen in a while.
User avatar
darcagn
Posts: 607
Joined: Tue Mar 04, 2008 3:26 pm
Contact:

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by darcagn »

I put myself down on the list last night for a kit and a bunch of the DIY parts. This is a project I've been really hoping to see for quite some time. At this point I have various modern controllers (two Xbox Ones, three DualShock 4s) that I use for other stuff besides for the actual console, and I'd love to use them on my retro consoles. And I'm tired of buying a bunch of expensive Brook adapters.

Would also love to see dual analog support for Dreamcast. The DC maple protocol supports dual analog, and a couple DC FPS games support dual analog sticks and certainly emulated bleemcast titles do, but there are no dual analog controllers in existence and none of the adapters (like the Brook adapters) support it except for another homebrew adapter.
User avatar
darthcloud
Posts: 131
Joined: Mon May 22, 2006 11:44 pm
Location: Canada

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by darthcloud »

darcagn wrote:I put myself down on the list last night for a kit and a bunch of the DIY parts. This is a project I've been really hoping to see for quite some time. At this point I have various modern controllers (two Xbox Ones, three DualShock 4s) that I use for other stuff besides for the actual console, and I'd love to use them on my retro consoles. And I'm tired of buying a bunch of expensive Brook adapters.

Would also love to see dual analog support for Dreamcast. The DC maple protocol supports dual analog, and a couple DC FPS games support dual analog sticks and certainly emulated bleemcast titles do, but there are no dual analog controllers in existence and none of the adapters (like the Brook adapters) support it except for another homebrew adapter.
Thanks for getting on the Beta list!

Actually dual joystick is already supported. Configuring the output as "GamePad Alt" in web config will activate 2nd joystick, C, Z, D & 2nd Dpad.

See https://docs.google.com/spreadsheets/d/ ... bM/pubhtml

The gamepad alt mode button are show in RED.

It work best with Outrigger who look to support a real joystick, Unreal & Quake support it as well but they read the field as a mouse relative input rather than a absolute joystick. So you need to trim down the sensitivity to make it work well.

One could set GamePad alt mode and use a Bluetooth keyboard and mice mapped to one BlueRetro output to play on a single DC controller port.
nmalinoski
Posts: 1974
Joined: Wed Jul 19, 2017 1:52 pm

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by nmalinoski »

This seems loosely up my alley. I've been looking for something akin to the Brook Retro Board to allow me to wire up a DDR dance pad to multiple, different consoles (Specifically PS1/PS2, Xbox, GameCube/Wii, with Dreamcast, N64, PS3, and/or Xbox 360 as bonuses). What makes the Brook Retro Board a poor fit is that it doesn't allow the user to specify the type of controller you have--to my knowledge, it will only show up as a regular game pad--so I wouldn't be able to get my dance pad to actually show up as a dance pad in games that support that alternate controller identifier. (I believe the Xbox and Xbox 360 games can show whether you're using a regular controller or a dance pad, and I'm pretty sure the PS2 versions with online support would as well.)

This device seems not too far from what I'm looking for, although I expect it would have to be reengineered to some degree to allow for a screw terminal block. Being based on an ESP32, and thus capable of having WiFi and a web interface, sounds really neat and like it would be straightforward to configure controllers.

Question: Does the BlueRetro automatically detect which console it's connected to, or does it need to be reconfigured every time you want to switch it to a different console? If possible, autodetection (whether through communication protocol analysis or bridging pins on the output connector) could open the door for storing a profile for each console and then loading the corresponding profile when a given console is detected.
For example, Smash TV for the NES had an interesting feature where you can use two controllers at once to emulate the arcade dual-stick setup. BlueRetro can emulate these two controllers and map them to the different analog sticks on a single controller.
What might be interesting, although extremely niche, would be the inverse. Micro Machines on the N64 had an 8-player mode, where two players would use half a controller each to control a vehicle. I'm not aware of any other N64 games that did that, and you'd need some way of connecting an eighth controller, so it might not be worth the effort.
sofakng
Posts: 218
Joined: Fri Sep 02, 2016 1:30 am

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by sofakng »

nmalinoski wrote:This seems loosely up my alley. I've been looking for something akin to the Brook Retro Board to allow me to wire up a DDR dance pad to multiple, different consoles (Specifically PS1/PS2, Xbox, GameCube/Wii, with Dreamcast, N64, PS3, and/or Xbox 360 as bonuses). What makes the Brook Retro Board a poor fit is that it doesn't allow the user to specify the type of controller you have--to my knowledge, it will only show up as a regular game pad--so I wouldn't be able to get my dance pad to actually show up as a dance pad in games that support that alternate controller identifier. (I believe the Xbox and Xbox 360 games can show whether you're using a regular controller or a dance pad, and I'm pretty sure the PS2 versions with online support would as well.)

This device seems not too far from what I'm looking for, although I expect it would have to be reengineered to some degree to allow for a screw terminal block. Being based on an ESP32, and thus capable of having WiFi and a web interface, sounds really neat and like it would be straightforward to configure controllers.
You could always use a DB25 breakout board to connect any controller that you wanted to, assuming you didn't need level shifters. (only certain consoles require it)
Question: Does the BlueRetro automatically detect which console it's connected to, or does it need to be reconfigured every time you want to switch it to a different console? If possible, autodetection (whether through communication protocol analysis or bridging pins on the output connector) could open the door for storing a profile for each console and then loading the corresponding profile when a given console is detected.
Yup! BlueRetro has full console autodetection but I'm not sure how the profiles are stored. (darthcloud will have to answer)
For example, Smash TV for the NES had an interesting feature where you can use two controllers at once to emulate the arcade dual-stick setup. BlueRetro can emulate these two controllers and map them to the different analog sticks on a single controller.
What might be interesting, although extremely niche, would be the inverse. Micro Machines on the N64 had an 8-player mode, where two players would use half a controller each to control a vehicle. I'm not aware of any other N64 games that did that, and you'd need some way of connecting an eighth controller, so it might not be worth the effort.
That sounds definitely possible (with the 7-player limit I believe), but again I'll let darthcloud respond.
User avatar
darthcloud
Posts: 131
Joined: Mon May 22, 2006 11:44 pm
Location: Canada

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by darthcloud »

nmalinoski wrote: Question: Does the BlueRetro automatically detect which console it's connected to, or does it need to be reconfigured every time you want to switch it to a different console? If possible, autodetection (whether through communication protocol analysis or bridging pins on the output connector) could open the door for storing a profile for each console and then loading the corresponding profile when a given console is detected.
For example, Smash TV for the NES had an interesting feature where you can use two controllers at once to emulate the arcade dual-stick setup. BlueRetro can emulate these two controllers and map them to the different analog sticks on a single controller.
What might be interesting, although extremely niche, would be the inverse. Micro Machines on the N64 had an 8-player mode, where two players would use half a controller each to control a vehicle. I'm not aware of any other N64 games that did that, and you'd need some way of connecting an eighth controller, so it might not be worth the effort.
Yes BlueRetro detect the console automatically, no config required, but their is an option to force it to a specific one, its in auto mode by default. Parallel system with only output pin (SMS, NeoGeo) need to be configure since they output nothing to be detected.

You can map buttons to any of the output ports, so this is already supported via the config, bluetooth limit is seven but by using one wiimote and a classic controller you can go around this by having one person on the wiimote and the other on classic extension to reach 8p. I didnt know this and I will add a preset config for it :)
User avatar
darthcloud
Posts: 131
Joined: Mon May 22, 2006 11:44 pm
Location: Canada

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by darthcloud »

And for DDR not sure if Bluetooth dance pad exist, that should already work if so.

For N64 & GC i'm pretty sure the dance pad report themselves as standard controller. If for some system its something different I can add an output mode for it.

Also config is via web-bluetooth not wifi. Wifi would kill the adapter latency as it share the bluetooth antenna.
nmalinoski
Posts: 1974
Joined: Wed Jul 19, 2017 1:52 pm

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by nmalinoski »

darthcloud wrote:And for DDR not sure if Bluetooth dance pad exist, that should already work if so.
I don't think Bluetooth dance pads are a thing; the last consoles that DDR games were on that had BT (PS3, Wii) ended up with USB dance pads.

The dance pad I'm looking to use is currently Frankensteined into the control box of one of those flappy-style Konami mats for PS1/PS2, so I'm hoping for something with a screw-terminal block that would let me directly wire in the pad (and a couple of buttons for Start/Select).

If there's USB input, I have a USBemani around that I might be able to use, but I'd really like a cleaner solution with fewer boards--basically a wired/non-BT version of what you're working on.
User avatar
darthcloud
Posts: 131
Joined: Mon May 22, 2006 11:44 pm
Location: Canada

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by darthcloud »

nmalinoski wrote:
darthcloud wrote:And for DDR not sure if Bluetooth dance pad exist, that should already work if so.
I don't think Bluetooth dance pads are a thing; the last consoles that DDR games were on that had BT (PS3, Wii) ended up with USB dance pads.

The dance pad I'm looking to use is currently Frankensteined into the control box of one of those flappy-style Konami mats for PS1/PS2, so I'm hoping for something with a screw-terminal block that would let me directly wire in the pad (and a couple of buttons for Start/Select).

If there's USB input, I have a USBemani around that I might be able to use, but I'd really like a cleaner solution with fewer boards--basically a wired/non-BT version of what you're working on.
For sure some of BlueRetro code can be leverage for that mainly the Adapter/Wired part but it's another project by itself. My focus will be on Bluetooth for at least the next year.

ESP32S2 got a USB PHY but it got only a single core which would make porting the current design less trivial. But if they ever release a real ESP32 successor with USB then that would certainly something I will look into at that point.
ldeveraux
Posts: 1127
Joined: Thu Mar 01, 2018 10:20 pm

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by ldeveraux »

@darthcloud I was about to sign up, and maybe I'm simple, but what are the differences between 2P, 4P, 5P, etc varieties of cable? First guess was # of players it supports, but I figured I'd ask!
User avatar
darthcloud
Posts: 131
Joined: Mon May 22, 2006 11:44 pm
Location: Canada

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by darthcloud »

ldeveraux wrote:@darthcloud I was about to sign up, and maybe I'm simple, but what are the differences between 2P, 4P, 5P, etc varieties of cable? First guess was # of players it supports, but I figured I'd ask!
Yes it's the number of player supported by the cable, It's mostly info as all cable will support max player.

Only the SNES got option for 2P vs 5P since I actually got to merge 2 cable in one for 5P since available extension cable are missing wires!
User avatar
bobrocks95
Posts: 3470
Joined: Mon Apr 30, 2012 2:27 am
Location: Kentucky

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by bobrocks95 »

Would love to use my Wii U Pro controller on anything and everything. Interesting project!
PS1 Disc-Based Game ID BIOS patch for MemCard Pro and SD2PSX automatic VMC switching.
User avatar
SCARTicus
Posts: 189
Joined: Wed Apr 05, 2017 4:51 pm
Location: TX

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by SCARTicus »

This project looks amazing and I will definitely be buying a couple... as long as the input lag is real low. Do you have numbers?
User avatar
darthcloud
Posts: 131
Joined: Mon May 22, 2006 11:44 pm
Location: Canada

Re: [BETA] BlueRetro - Multiplayer Bluetooth controllers ada

Post by darthcloud »

SCARTicus wrote:This project looks amazing and I will definitely be buying a couple... as long as the input lag is real low. Do you have numbers?
I will run the tests once I reach v1.0 (after Genesis/PSX/PS2/NeoGeo is implemented). Before Beta board ships.

Basic methodology documented here:
https://hackaday.io/project/170365-blue ... -blueretro

But in short for each system & each bluetooth controller type I will compare the time between the button press inside Bluetooth/wired controller and one of the RGB out transition from black to white (I'll probably measure the data line between console and controller to see the sampling point of the console aswell). This allow to use the same test setup with any system (at least those with RGB out ;) )

I will have a small test program for each system that poll the controller every frame (60Hz) (like real games typically do) and toggle the screen between black and white on buttons press and release (0v to 0.7V on RGB lines).

The expectation doing this for a regular wired controller would be that if the sampling point (of the console) is right after the button was pressed the latency will be minimal near 0ms, if the sampling point was right before the buttons press the latency will be maximal near 1 frame.

For BlueRetro expectation is that the total lag will be the minimum of the wired controller + bluetooth controller lag + blueretro processing lag.

The minimum measurement for BlueRetro minus the wired controller minimum should tell us what the additional lag is. Each test will involve taking around 10000 samples.
Post Reply