Actually we need to enumerate the 8BitDo Xbox SKUs

At the point we're calling SDL_IsJoystickXboxSeriesX(), we don't know for sure that the controller is an Xbox controller.

Fixes https://github.com/libsdl-org/SDL/issues/8174

(cherry picked from commit 15bc12165a)
(cherry picked from commit af7fe2cf9b)
This commit is contained in:
Sam Lantinga 2023-11-08 00:42:42 -08:00
parent 1dbe85efd1
commit 00096baf18
2 changed files with 6 additions and 7 deletions

View File

@ -2346,13 +2346,10 @@ SDL_bool SDL_IsJoystickXboxSeriesX(Uint16 vendor_id, Uint16 product_id)
}
}
if (vendor_id == USB_VENDOR_8BITDO) {
/* 8BitDo started making Xbox form factor controllers after the Series X
* release, so we'll assume for now that they all have the share button.
*
* We know for sure that the Ultimate Wired Controller for Xbox (0x2002)
* and the Ultimate Wireless / Pro 2 Wired Controller (0x3106) have them.
*/
return SDL_TRUE;
if (product_id == USB_PRODUCT_8BITDO_XBOX_CONTROLLER1 ||
product_id == USB_PRODUCT_8BITDO_XBOX_CONTROLLER2) {
return SDL_TRUE;
}
}
return SDL_FALSE;
}

View File

@ -52,6 +52,8 @@
#define USB_VENDOR_VALVE 0x28de
#define USB_VENDOR_ZEROPLUS 0x0c12
#define USB_PRODUCT_8BITDO_XBOX_CONTROLLER1 0x2002 /* Ultimate Wired Controller for Xbox */
#define USB_PRODUCT_8BITDO_XBOX_CONTROLLER2 0x3106 /* Ultimate Wireless / Pro 2 Wired Controller */
#define USB_PRODUCT_AMAZON_LUNA_CONTROLLER 0x0419
#define USB_PRODUCT_ASTRO_C40_XBOX360 0x0024
#define USB_PRODUCT_BACKBONE_ONE_IOS 0x0103