https://bugs.winehq.org/show_bug.cgi?id=47461
Bug ID: 47461 Summary: XInput: XBox 360 gamepads no longer detected (since wine 4.7) Product: Wine Version: 4.11 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: xinput Assignee: wine-bugs@winehq.org Reporter: felixhaedicke@web.de Distribution: ---
Since Wine 4.7, all my applications which use the XInput API for accessing gamepads cannot find my Xbox 360 Wireless Controllers any more.
Checked with the following applications: * Blur * Cemu - http://cemu.info/ * XInputTest - https://github.com/chrizonix/XInputTest
Messages in wine-4.7 with XInputTest (very similar with other applications): WINEDEBUG=+xinput wine XInputTest_1000_Samples.exe 001f:fixme:setupapi:SetupDiBuildDriverInfoList : stub 0x113b18, 0xc7f4c8, 2 001f:err:plugplay:install_device_driver Failed to build compatible driver list, error 0x78. 0009:trace:xinput:XInputGetState (index 0, state 00641A08)! 0009:trace:xinput:XInputGetState (index 0, state 00641A08)! Error! Player 1 - XBOX 360 Controller Not Found!
And in wine-4.11: WINEDEBUG=+xinput,+setuapi wine XInputTest_1000_Samples.exe 001e:err:setupapi:open_driver_key Failed to open driver key, error 2. 001e:err:setupapi:open_driver_key Failed to open driver key, error 2. 001f:err:setupapi:SetupDiSelectBestCompatDrv No compatible drivers were enumerated for device L"SDLJOY\VID_045E&PID_02A1&IG_0\256&030000005E040000A102000000010000&0&0". 001f:err:plugplay:install_device_driver Install function 0x17 failed, error 0xe0000228. 0009:trace:xinput:XInputGetState (index 0, state 00641A08)! 0009:trace:xinput:XInputGetState (index 0, state 00641A08)! Error! Player 1 - XBOX 360 Controller Not Found! Press Enter Key To Exit
And in wine-4.6 (which works fine): WINEDEBUG=+xinput,+setuapi wine XInputTest_1000_Samples.exe 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:HID_find_gamepads Found gamepad 0 L"\\?\HID#VID_045E&PID_02A1&IG_1#256&030000005E040000A102000000010000&0#{4D1E55B2-F16F-11CF-88CB-001111000030}" Ready! Waiting for 0009:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0032FC8C 1 C) semi-stub 0009:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0032FA7C 1 C) semi-stub 1000 Samples (Move Left Stick)0009:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0032FC6C 1 C) semi-stub 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! ...
Tested with unmodified Wine builds.
https://bugs.winehq.org/show_bug.cgi?id=47461
Felix Hädicke felixhaedicke@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |julliard@winehq.org
--- Comment #1 from Felix Hädicke felixhaedicke@web.de --- git bisect revealed:
948fc851867da01f09c84ad83df6f4eddc74fdf3 is the first bad commit commit 948fc851867da01f09c84ad83df6f4eddc74fdf3 Author: Alexandre Julliard julliard@winehq.org Date: Mon Apr 22 11:36:54 2019 +0200
ntdll: Add support for loading PE builtin dlls.
Signed-off-by: Alexandre Julliard julliard@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=47461
--- Comment #2 from Alexandre Julliard julliard@winehq.org --- If that commit makes a difference, you probably have some leftover dll files from a previous build. It seems unlikely that this commit on its own would break xinput.
https://bugs.winehq.org/show_bug.cgi?id=47461
--- Comment #3 from Alexandre Julliard julliard@winehq.org --- To make sure, you could try the bisect again, starting from a clean tree and running configure --without-mingw.
https://bugs.winehq.org/show_bug.cgi?id=47461
Felix Hädicke felixhaedicke@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|XInput: XBox 360 gamepads |XInput: XBox 360 gamepads |no longer detected (since |no longer detected (since |wine 4.7) |wine 4.10)
--- Comment #4 from Felix Hädicke felixhaedicke@web.de --- Indeed, and so the whole diagnosis was wrong. Sorry for that.
The bug was not introduced with wine-4.7, but wine-4.10 (and it is still not working with wine-4.12).
I'm currently running bisect again...
XInputTest output with wine-4.9 (working): WINEDEBUG=+xinput,+setuapi wine XInputTest_1000_Samples.exe 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:HID_find_gamepads Found gamepad 0 L"\\?\HID#VID_045E&PID_02A1&IG_0#256&030000005E040000A102000000010000&0&0#{4D1E55B2-F16F-11CF-88CB-001111000030}" Ready! Waiting for 0009:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0032FC9C 1 C) semi-stub 0009:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0032FAAC 1 C) semi-stub 1000 Samples (Move Left Stick)0009:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0032FC7C 1 C) semi-stub
0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! 0009:trace:xinput:XInputGetState (index 0, state 0x531a08)! ...
And with wine-4.10 (not working): WINEDEBUG=+xinput,+setuapi wine XInputTest_1000_Samples.exe 001f:err:setupapi:SetupDiSelectBestCompatDrv No compatible drivers were enumerated for device L"SDLJOY\VID_045E&PID_02A1&IG_0\256&030000005E040000A102000000010000&0&0". 001f:err:plugplay:install_device_driver Install function 0x17 failed, error 0xe0000228. 0009:trace:xinput:XInputGetState (index 0, state 0x641a08)! 0009:trace:xinput:XInputGetState (index 0, state 0x641a08)! Error! Player 1 - XBOX 360 Controller Not Found! Press Enter Key To Exit
https://bugs.winehq.org/show_bug.cgi?id=47461
Felix Hädicke felixhaedicke@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #5 from Felix Hädicke felixhaedicke@web.de --- bisect result:
4ca91cfd5dc4fbabd6871100776543107c5af8db is the first bad commit commit 4ca91cfd5dc4fbabd6871100776543107c5af8db Author: Zebediah Figura z.figura12@gmail.com Date: Fri Jun 7 11:48:36 2019 -0400
ntoskrnl.exe: Use INF files to locate function drivers.
Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=47461
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
https://bugs.winehq.org/show_bug.cgi?id=47461
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|4.11 |4.10 Summary|XInput: XBox 360 gamepads |XInput: XBox 360 gamepads |no longer detected (since |no longer detected |wine 4.10) | Regression SHA1| |4ca91cfd5dc4fbabd6871100776 | |543107c5af8db
https://bugs.winehq.org/show_bug.cgi?id=47461
--- Comment #6 from Zebediah Figura z.figura12@gmail.com --- Does it still fail with that commit (4ca91cfd5dc4fbabd6871100776543107c5af8db) if you run 'wine wineboot -u' first? It needs winehid.inf to exist in the C:/windows/inf/ directory, and won't work otherwise. I'm not sure if the build system is smart enough to run wineboot for you.
https://bugs.winehq.org/show_bug.cgi?id=47461
Felix Hädicke felixhaedicke@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED
--- Comment #7 from Felix Hädicke felixhaedicke@web.de --- ok, wineboot -u makes it work again.
I always thought that the WINEPREFIX is updated automatically when needed.
https://bugs.winehq.org/show_bug.cgi?id=47461
--- Comment #8 from Zebediah Figura z.figura12@gmail.com --- (In reply to Felix Hädicke from comment #7)
ok, wineboot -u makes it work again.
I always thought that the WINEPREFIX is updated automatically when needed.
It should be, yes. It's probably a bug that it's not in this case.
It seems that only touching wine.inf will trigger prefix update. That won't work here. Perhaps we should introduce some other mechanism for forcing prefix update.
https://bugs.winehq.org/show_bug.cgi?id=47461
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Ken Sharp imwellcushtymelike@gmail.com --- Closing bugs marked as invalid.