finds.dev← search

// the find

darthcloud/BlueRetro

★ 1,805 · C · Apache-2.0 · updated Dec 2025

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.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →