// the find
darthcloud/BlueRetro
Multiplayer Bluetooth controllers adapter for retro video game consoles & computers
BlueRetro is a Bluetooth controller adapter for retro consoles, running on an ESP32. You flash the firmware, wire it to your console's controller port, and use a modern PS5/Xbox/Switch controller instead of the original. It covers an impressive range of hardware — N64, Saturn, Dreamcast, GameCube, PSX, and a dozen others — all from a single $5 chip.
The protocol coverage is genuinely impressive: each wired protocol (NSI for N64, SPI for PS1, Maple for Dreamcast, etc.) has its own dedicated C module rather than being crammed into a generic handler, which keeps the timing-critical code clean. The test suite uses pytest with Bluetooth trace replay rather than requiring real hardware for every CI run — a smart tradeoff for embedded firmware. Build is esp-idf/CMake with hardware config variants checked in as sdkconfig fragments, so targeting hw1 vs hw2 boards is a one-liner. The game ID detection and per-game mapping quirks system means it can handle games that used non-standard rumble or accessory behavior.
The project is archived — the maintainer walked away in late 2024. Any bugs you hit are yours to fix. The Bluetooth stack is a fork of Zephyr's (you can see the zephyr/ headers in-tree) layered on top of esp-idf's own Bluetooth, which means two partially-overlapping BT stacks and some gnarly coupling in the HCI/L2CAP layer that will be painful to debug if something breaks with a new controller firmware update. No OTA update mechanism is documented in the repo itself; you're reflashing via USB every time. The wired protocol implementations have almost no inline comments explaining the timing constraints, so understanding why a specific delay value was chosen requires either hardware oscilloscope work or reading the original console hardware documentation separately.