XInput (Xbox One Controller Emulation) compatibility improvements
nefarius opened this issue · comments
Keeping notes and track of ideas regarding XInput mode problems and brainstorming about what could be done to improve compatibility up to a level where it - hopefully - could totally replace the need for Xbox 360 device emulation (which requires additional drivers and software due to restrictions of user-mode drivers).
See #114
Testing with Hollow Knight
XINPUT compatible HID device
- Changed Device ID to
HID\VID_045E&PID_02FF&IG_00
- Changed Hardware IDs to
HID\VID_045E&PID_02FF&IG_00
- Changed Class to
HIDClass
- Changed used INF from
dshidmini.inf
toxinputhid.inf
- Changed
HIDD_ATTRIBUTES.VendorID
to0x045E
- Changed
HIDD_ATTRIBUTES.ProductID
to0x02FF
Not yet enough to make the game detect the controller.
Testing with Hollow Knight
Changing the product string HidD_GetProductString returns to
#define DSHIDMINI_PRODUCT_STRING L"Controller (Xbox One For Windows)"
made the controller appear in HK!
Changing the device class to HIDClass
made DSHM devices appear in the HidHide config tools!
Next subject: why is the device not recognized by Gamepad Tester.
Funny enough it works just fine on Windows 10 Chromium Edge:
Firefox also happy:
Doesn't get detected by Brave on Windows 11...
Oh well...
According to the Chromium source code these devices should be enumerated using XInput so I wonder where these inconsistencies come from.