nefarius / DsHidMini

Virtual HID Mini-user-mode-driver for Sony DualShock 3 Controllers
https://docs.nefarius.at/projects/DsHidMini/
BSD 3-Clause "New" or "Revised" License
1.27k stars 55 forks source link

XInput (Xbox One Controller Emulation) compatibility improvements #358

Closed nefarius closed 7 months ago

nefarius commented 7 months ago

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

nefarius commented 7 months ago

Testing with Hollow Knight

XINPUT compatible HID device

Not yet enough to make the game detect the controller.

nefarius commented 7 months ago

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!

nefarius commented 7 months ago

Changing the device class to HIDClass made DSHM devices appear in the HidHide config tools!

nefarius commented 7 months ago

Next subject: why is the device not recognized by Gamepad Tester.

nefarius commented 7 months ago

Funny enough it works just fine on Windows 10 Chromium Edge:

image

Firefox also happy:

image

Doesn't get detected by Brave on Windows 11...

image

Oh well...

According to the Chromium source code these devices should be enumerated using XInput so I wonder where these inconsistencies come from.

nefarius commented 7 months ago

R&D notes dump

image

image

image

image

image

image

image

image

image

image