[Bug 46361] Sonic Mania freezes/crashes when we use a gamepad on 4.0+

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Jan 25 04:33:42 CST 2019


https://bugs.winehq.org/show_bug.cgi?id=46361

--- Comment #9 from imbert.jacquesolivier at gmail.com ---
3.12 doesn't rawinput.c and other new codes about gamepads. So before the news
codes, gamepads worked like a charm.

In some forums, I see that the following flag could be the culprit :
DIGCF_PRESENT usage.

https://community.osr.com/discussion/269299

I quote the following text : " For some reason some USB(in my case) devices in
not returned by SetupDiGetClassDevs with (DIGCF_ALLCLASSES | DIGCF_PRESENT)
falgs. Device is present in system and is showed up as connected by device
manager and devcon. And the device is returned without DIGCF_PRESENT flag.
I see the same problem for USBDeview prograam it also showed device as not
connected. What can be the reason? "

2nd solution :
https://stackoverflow.com/questions/12485414/setupdienumdeviceinterfaces-fail-issue

I quote the following text : "To return devices that support a device interface
of any class, set the DIFCF_DEVICEINTERFACE flag, set the DIGCF_ALLCLASSES
flag, and set ClassGuid to NULL. The function adds to the device information
set a device information element that represents such a device and then adds to
the device information element a device interface list that contains all the
device interfaces that the device supports.

So fix your SetupDiGetClassDevs call by adding the DIGCF_DEVICEINTERFACE flag
like:

hDevInfo = SetupDiGetClassDevs(NULL,0,0, DIGCF_PRESENT | DIGCF_ALLCLASSES |
DIGCF_DEVICEINTERFACE); "

I will these solutions. If people can test Sonic Mania in original Wine 4.0 to
confirm the issue with the gamepad, it can confirmed the current issue.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list