Game Controller Collective Wiki
// All Little Endian
SDL_HARDWARE_BUS:SDL_HARDWARE_BUS_VIRTUAL    0x00
SDL_HARDWARE_BUS:SDL_HARDWARE_BUS_USB        0x03
SDL_HARDWARE_BUS:SDL_HARDWARE_BUS_BLUETOOTH  0x05
SDL_JoystickType:SDL_JOYSTICK_TYPE_UNKNOWN        0x0
SDL_JoystickType:SDL_JOYSTICK_TYPE_GAMECONTROLLER 0x1
SDL_JoystickType:SDL_JOYSTICK_TYPE_WHEEL          0x2
SDL_JoystickType:SDL_JOYSTICK_TYPE_ARCADE_STICK   0x3
SDL_JoystickType:SDL_JOYSTICK_TYPE_FLIGHT_STICK   0x4
SDL_JoystickType:SDL_JOYSTICK_TYPE_DANCE_PAD      0x5
SDL_JoystickType:SDL_JOYSTICK_TYPE_GUITAR         0x6
SDL_JoystickType:SDL_JOYSTICK_TYPE_DRUM_KIT       0x7
SDL_JoystickType:SDL_JOYSTICK_TYPE_ARCADE_PAD     0x8
SDL_JoystickType:SDL_JOYSTICK_TYPE_THROTTLE       0x9
XINPUT_DEVSUBTYPE:XINPUT_DEVSUBTYPE_UNKNOWN          0x00
XINPUT_DEVSUBTYPE:XINPUT_DEVSUBTYPE_GAMEPAD          0x01
XINPUT_DEVSUBTYPE:XINPUT_DEVSUBTYPE_WHEEL            0x02
XINPUT_DEVSUBTYPE:XINPUT_DEVSUBTYPE_ARCADE_STICK     0x03
XINPUT_DEVSUBTYPE:XINPUT_DEVSUBTYPE_FLIGHT_STICK     0x04
XINPUT_DEVSUBTYPE:XINPUT_DEVSUBTYPE_DANCE_PAD        0x05
XINPUT_DEVSUBTYPE:XINPUT_DEVSUBTYPE_GUITAR           0x06
XINPUT_DEVSUBTYPE:XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE 0x07
XINPUT_DEVSUBTYPE:XINPUT_DEVSUBTYPE_DRUM_KIT         0x08
XINPUT_DEVSUBTYPE:XINPUT_DEVSUBTYPE_GUITAR_BASS      0x0B
XINPUT_DEVSUBTYPE:XINPUT_DEVSUBTYPE_ARCADE_PAD       0x13
GUID Structure (AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP)
AABB CCDD EEFF GGHH IIJJ KKLL MMNN OO PP joystick\* Source
SDL_HARDWARE_BUS_BLUETOOTH 0x0000 VID 0x0000 PID 0x0000 button_mask axis_mask android\SDL_sysjoystick.c
SDL_HARDWARE_BUS_BLUETOOTH 0x0000 First4(desc) CRC32(desc) button_mask axis_mask android\SDL_sysjoystick.c
SDL_HARDWARE_BUS_USB 0x0000 VID 0x0000 PID 0x0000 Version 0x00 0x00 darwin\SDL_iokitjoystick.c
SDL_HARDWARE_BUS_BLUETOOTH 0x0000 First12(Product) darwin\SDL_iokitjoystick.c
SDL_HARDWARE_BUS_USB 0x0000 VID 0x0000 PID 0x0000 Version 'h' 0x00 hidapi\SDL_hidapijoystick.c
SDL_HARDWARE_BUS 0x0000 VID 0x0000 PID 0x0000 Version 0x00 0x00 linux\SDL_sysjoystick.c
SDL_HARDWARE_BUS 0x0000 First12(Name) linux\SDL_sysjoystick.c
0x0000 0x0000 VID 0x0000 PID 0x0000 0x0000 0x00 0x00 SDL_joystick.c
SDL_HARDWARE_BUS_VIRTUAL 0x0000 VID 0x0000 PID 0x0000 0x0000 'v' SDL_JoystickType virtual\SDL_virtualjoystick.c
SDL_HARDWARE_BUS_USB 0x0000 VID 0x0000 PID 0x0000 Version 0x00 0x00 windows\SDL_dinputjoystick.c
SDL_HARDWARE_BUS_BLUETOOTH 0x0000 First12(joystickname) windows\SDL_dinputjoystick.c
SDL_HARDWARE_BUS_USB 0x0000 VID 0x0000 PID 0x0000 Version 'r' 0x00 windows\SDL_rawinputjoystick.c
SDL_HARDWARE_BUS_USB 0x0000 VID 0x0000 PID 0x0000 Version 'w' SDL_JoystickType windows\SDL_windows_gaming_input.c
SDL_HARDWARE_BUS_USB 0x0000 VID 0x0000 PID 0x0000 Version 'x' XINPUT_DEVSUBTYPE windows\SDL_xinputjoystick.c