gamecontrollerDB for 8bitdo Ultimate 3 Wireless Controller for Xbox - #271
gamecontrollerDB for 8bitdo Ultimate 3 Wireless Controller for Xbox#271sdornan wants to merge 2 commits into
Conversation
The 8BitDo Ultimate 3 launched on 2026-08-31 and no released SDL knows it yet, so RetroBat cannot autoconfigure it. In 2.4G dongle mode the controller enumerates on Windows as USB\VID_2DC8&PID_2072, which maps to SDL GUID 03000000c82d00007220000000000000. That ID is absent from SDL's built-in table (checked release-3.2.30, which is the SDL3 build shipped in system/tools, plus release-3.4.0 and release-3.4.2), from the upstream SDL_GameControllerDB, and from the Linux xpad table. SDL only carries an Ultimate 3 product ID for 0x202f, which is the separate "mode switch to BT" position, not the 2.4G dongle. Button layout mirrors the sibling Ultimate entries already in this file (Ultimate 2C 0x310a, Ultimate 2 0x310b, Ultimate FC40 0x3106), which use the standard Xbox-mode ordering. The pad is confirmed to expose a working DirectInput/HID interface, so this mapping is the path RetroBat uses to pick it up. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G9s6zk6Rf9buFgSN7Q2A2b
The retail name is "8BitDo Ultimate 3 Wireless Controller for Xbox"; the "for Xbox" suffix also distinguishes it from the Ultimate 3E and matches how the Xbox-licensed 8BitDo pads are named elsewhere. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G9s6zk6Rf9buFgSN7Q2A2b
|
Correcting my own description above — some of the reasoning in it is wrong, and I'd rather flag it than have you review it as written. I tested with SDL2 Gamepad Tool (SDL 2.32.10), controller on its 2.4G dongle. SDL reports:
That decodes to vendor 0x045e (Microsoft), product 0x02ff, driver signature byte 0x72 = 'r' (RAWINPUT) — i.e. the XBOXGIP software PID, which SDL already has in controller_list.h as "Microsoft Xbox One Controller with XBOXGIP driver on Windows". The controller is Xbox-licensed and binds to xboxgip.sys, showing under "Xbox Peripherals" in Device Manager. So these two claims in the description are wrong: "its USB product ID is newer than every shipping SDL release" — 2dc8:2072 is genuinely absent from SDL, but SDL never sees that ID on the RawInput/GIP path. What is still true and verified on hardware: RetroBat does not detect the controller at all, and adding this line to gamecontroller.txt makes it work. The 2dc8:2072 GUID only appears on the DirectInput path, which is evidently the path RetroBat is using here. So the mapping does fix it, and given this file is the dinput mapping DB it may be exactly the right place. But you're better placed than me to judge whether the real fix is elsewhere — a controller that stock SDL handles via RawInput isn't being picked up by RetroBat, which would affect any Xbox-licensed pad, not just this model. Happy to close this if you'd rather chase that instead. |
Problem
The 8BitDo Ultimate 3 Wireless Controller for Xbox (launched 2026-08-31) is not autoconfigured by RetroBat. In 2.4G dongle mode the pad works at the OS level — Windows binds it under Xbox Peripherals and it responds correctly in
joy.cpl— but EmulationStation never sees it.The cause is that its USB product ID is newer than every shipping SDL release:
USB\VID_2DC8&PID_2072, i.e. SDL GUID03000000c82d00007220000000000000.0x2072is absent from SDL's built-in mapping table. Verified againstrelease-3.2.30— the SDL3 build shipped insystem/tools/SDL3_x64.dll— and alsorelease-3.4.0andrelease-3.4.2.xpadtable, which does list the siblings0x200f,0x310aand0x310b.0x202f, and its own comment marks it// mode switch to BT. That is a different switch position from the 2.4G dongle, and it exists only on SDLmain(3.5.0-dev), so no released SDL covers either mode.With no SDL match and no entry in
system/tools/gamecontrollerdb.txt, autoconfiguration has nothing to work from.Change
Adds one mapping line to
system/tools/gamecontrollerdb.txt, grouped with the other Ultimate entries in the# RetroBat modifiedblock:The GUID was derived with the standard SDL little-endian bus/VID/PID packing and the formula was validated by regenerating four GUIDs already present in this file (Pro 3
0x6009, Ultimate 2C0x310a, Ultimate 20x310b, Ultimate 2 Wireless0x6012) and confirming exact matches.The button layout mirrors the sibling Ultimate entries already in this file — Ultimate 2C (
0x310a), Ultimate 2 (0x310b) and Ultimate FC40 (0x3106) — which all share the standard Xbox-mode ordering.Verification
Confirmed working on hardware: with this line added to
system/tools/gamecontrollerdb.txt, RetroBat picks the controller up. Without it, the pad is not detected at all despite working correctly injoy.cpl.The Ultimate 3's Share button and four paddles are deliberately left unmapped, since their indices in this mode were not verified.
🤖 Generated with Claude Code