Skip to content

Commit

Permalink
Added support for "8BitDo Ultimate 2C" (XBoxOne)
Browse files Browse the repository at this point in the history
  • Loading branch information
o0Zz committed Oct 19, 2024
1 parent 8ab5bd3 commit 0682ed5
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
9 changes: 6 additions & 3 deletions doc/TestedControllers.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@
| Dualsense (PS5) | Yes | - | - |
| Xbox Original | Yes | - | - |
| Xbox 360 Controller | Yes | - | - |
| Xbox 360 Wireless adapter (Up to 4 controller) | Yes | - | - |
| Xbox 360 Wireless adapter (Up to 4 controller) (045e-0291, 045e-0719) | Yes | - | - |
| Xbox One X/S Controller | Yes | - | - |
| 8BitDo Ultimate C 2.4g Wireless Controller | Not yet | - | - |
| Cosmic Byte Xbox360 | Yes | discovery_mode=1 | - |
| Phantom White DPD Xbox One | Yes | - | - |
| Wave Afterglow PDP Xbox Series | Yes | - | - |
Expand All @@ -33,7 +32,11 @@
| Y3 Joypad with Receiver no-name | Yes | - | https://aliexpress.com/item/1005002359869263.html |
| Y3 Joypad with GAME STICK 4K LITE SEGAM M8 V4.0 | Yes | - | https://aliexpress.com/item/1005002359869263.html |
| MayFlash N64 Controller Adapter| Yes | - | https://www.amazon.com/dp/B002B9FIUU |
| Y3 Joypad (Receiver YC5)| Not yet | - | https://aliexpress.com/item/1005005458136372.html |
| Thrustmaster Dual Analog 4 | Yes | - | - |
| Playstation classic controller | Yes | Do not works with Dock or USB hub. Only works with direct USB-C OTG cable | - |
| Hyperkin N64 Adapter | Yes | - | https://www.amazon.com.au/Hyperkin-Controller-Adapter-Compatible-Nintendo/dp/B082N7K8QS |
| 8BitDo Ultimate 2C | Yes | - | - |
| BipBop 2.4g usb wireless | Yes | - | - |
| 8BitDo Ultimate C 2.4g Wireless Controller | No | Not detected: #21 | - |
| Xbox 360 Wireless Receiver (045e-02aa) | No | Not detected: #42 | - |
| Y3 Joypad (Receiver YC5)| No | Not detected: #30 | https://aliexpress.com/item/1005005458136372.html |
Binary file added doc/wireshark/8bitdo_lite_se_usb.pcapng
Binary file not shown.
9 changes: 5 additions & 4 deletions source/ControllerLib/Controllers/XboxOneController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,10 @@ static const uint8_t extra_input_packet_init[] = {
static const uint8_t xboxone_pdp_led_on[] = {
GIP_CMD_LED, GIP_OPT_INTERNAL, GIP_SEQ(3), GIP_PL_LEN(3), 0x00, GIP_LED_ON, 0x14};

static const uint8_t xboxone_pdp_auth1[] = { // This one is need for 0e6f:02de and 0e6f:0316 and maybe some others ?
static const uint8_t xboxone_pdp_auth0[] = { // This one is need for 0e6f:02de and 0e6f:0316 and maybe some others ?
GIP_CMD_AUTHENTICATE, 0xa0, GIP_SEQ(4), 0x00, 0x92, 0x02};

static const uint8_t xboxone_pdp_auth2[] = {
static const uint8_t xboxone_pdp_8bit_auth[] = {
GIP_CMD_AUTHENTICATE, GIP_OPT_INTERNAL, GIP_SEQ(5), GIP_PL_LEN(2), 0x01, 0x00};

// Seq on rumble can be reset to 1
Expand Down Expand Up @@ -87,8 +87,9 @@ static const struct xboxone_init_packet xboxone_init_packets[] = {
XBOXONE_INIT_PKT(0x045e, 0x0b00, xboxone_s_init),
XBOXONE_INIT_PKT(0x045e, 0x0b00, extra_input_packet_init),
XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_led_on),
XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_auth1), // This one is not in the linux driver but it is needed for 0e6f:02de and 0e6f:0316 - We send it everytime, we will see if it break something
XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_auth2),
XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_auth0), // 0e6f-02de and 0e6f-0316
XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_8bit_auth),
XBOXONE_INIT_PKT(0x2dc8, 0x0000, xboxone_pdp_8bit_auth), // 2dc8-2008
XBOXONE_INIT_PKT(0x24c6, 0x541a, xboxone_rumblebegin_init),
XBOXONE_INIT_PKT(0x24c6, 0x542a, xboxone_rumblebegin_init),
XBOXONE_INIT_PKT(0x24c6, 0x543a, xboxone_rumblebegin_init),
Expand Down

0 comments on commit 0682ed5

Please sign in to comment.