
What was done
MiguelSanzBr and Claude Opus 5.5 analysed the Windows configuration app of the 8BitDo Ultimate 2 controller with REA and Ghidra and wrote a command-line tool and GUI for Linux.
MiguelSanzBr built u2ctl and u2gui, an open source Linux replacement for the Windows and macOS configuration app of the 8BitDo Ultimate 2 Wireless controller. The commits are co-authored by Claude Opus 5.5, and the protocol write-up says the vendor app was analysed through REA.
How it was done
PROTOCOL.md says the protocol was reverse engineered from 8BitDo Ultimate Software V2 (v1.37) for interoperability. The sources were the native 8BitDoAdvance.dll, analysed with objdump and Ghidra through REA, and the app's .NET assemblies, decompiled with ILSpy. The controller's config channel is a vendor HID collection with 63-byte reports, checksummed frames and a 1,592-byte config record. One Linux quirk was found: the firmware only answers while the host keeps reading the controller's XInput reports, so the tools hold the joystick node open. No code or assets from the official software are included.
Results
Everything in the protocol notes was verified against a real controller on firmware 1.10 over USB. The tools read firmware and profiles, remap buttons, set stick dead zones, triggers, rumble and gyro, set LED themes and colours, and back up and restore the whole configuration. The test suite uses an emulator of the controller firmware, with 100% coverage. Dongle pairing, macro data and firmware updates are not implemented, and the 2.4G dongle has not been tested.