https://bugs.winehq.org/show_bug.cgi?id=57023
Bug ID: 57023 Summary: Sony Dualshock not present in HID devices in wine 9.14 but works in 9.0 Product: Wine Version: 9.14 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: xinput Assignee: wine-bugs@winehq.org Reporter: anode.dev@gmail.com Distribution: ---
The gamepad works fine in clean wine-9.0. OS - Arch linux with latest updates
The wine version 9.14 doesn't list gamepad under registry 9.0 version creates 3 keys HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\HID\VID_054C&PID_09CC&XI_00 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\HID\VID_054C&PID_09CC&MI_03 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\HID\VID_054C&PID_09CC&XI_00
9.14 - none of above neither controller connected via USB nor Bluetooth
lsusb: Bus 003 Device 009: ID 054c:09cc Sony Corp. DualShock 4 [CUH-ZCT2x]
ls -l /dev/hid* crw------- 1 root root 240, 0 Aug 1 09:45 /dev/hidraw0 crw------- 1 root root 240, 1 Aug 1 14:05 /dev/hidraw1 <-- gamepad
cat /sys/class/hidraw/hidraw1/device/uevent
DRIVER=playstation HID_ID=0003:0000054C:000009CC HID_NAME=Sony Interactive Entertainment Wireless Controller HID_PHYS=usb-0000:00:14.0-1/input3 HID_UNIQ=84:30:95:1b:af:a6 MODALIAS=hid:b0003g0000v0000054Cp000009CC
as result "wine control joy.cpl" show nothing in "xinput devices" because it reads HID devices from registry
https://bugs.winehq.org/show_bug.cgi?id=57023
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |o.dierick@piezo-forte.be
--- Comment #1 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
Can you perform a regression test between 9.0 .. 9.14? https://wiki.winehq.org/Regression_Testing
Regards.
https://bugs.winehq.org/show_bug.cgi?id=57023
S10XC winhq.s10xc@slmail.me changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winhq.s10xc@slmail.me
--- Comment #2 from S10XC winhq.s10xc@slmail.me --- I’ve been stratching my head over this issue for 2 weeks now.
Adding a udev rule to grant rw to my user to the hidraw device restored Dinput access. However, since a recent version of Wine, Xinput fails to catch the gamepad (both Dualshock 4 & 5).
evtest; jstest both work as expected.
Worked with wine-staging 8.X. Stopped working since wine-staging 9.8.
https://bugs.winehq.org/show_bug.cgi?id=57023
--- Comment #3 from archlinuxuser anode.dev@gmail.com --- (In reply to Olivier F. R. Dierick from comment #1)
Hello,
Can you perform a regression test between 9.0 .. 9.14? https://wiki.winehq.org/Regression_Testing
Regards.
Bisected: https://gitlab.winehq.org/wine/wine/-/commit/173ed7e61b5b80ccd4d268e80c5c15f...
173ed7e61b5b80ccd4d268e80c5c15f9fb288aa0 is the first bad commit
commit 173ed7e61b5b80ccd4d268e80c5c15f9fb288aa0
Author: Rémi Bernon rbernon@codeweavers.com
Date: Sun Jan 14 12:06:23 2024 +0100
winebus: Prefer hidraw backends for DS4 and DS5 gamepads.
dlls/winebus.sys/main.c | 3 +++
https://bugs.winehq.org/show_bug.cgi?id=57023
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
https://bugs.winehq.org/show_bug.cgi?id=57023
--- Comment #4 from archlinuxuser anode.dev@gmail.com --- it can be fixed by adding HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus dword DisableHidraw=1
or chmod a+rw /dev/hidrawX
https://bugs.winehq.org/show_bug.cgi?id=57023
--- Comment #5 from archlinuxuser anode.dev@gmail.com --- can be fixed by add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus dword DisableHidraw=1
or changing permissions on gamepad device chmod a+rw /dev/hidrawX
https://bugs.winehq.org/show_bug.cgi?id=57023
--- Comment #6 from S10XC winhq.s10xc@slmail.me ---
For some reasons arch not not ship with udev rules granting current user RW permissions on gamepade hidraw devices. I do not know if it’s by design or not: device like smartcards do get an ACL update to grant current use access.
(In reply to archlinuxuser from comment #5)
can be fixed by add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus dword DisableHidraw=1
or changing permissions on gamepad device chmod a+rw /dev/hidrawX
Does it make Xinput detect the gamepad too? In my case it does not.
With PS5 controller specifically, I noticed many games do not work (I’m guessing maybe a combination of Dinput + PS5?).
https://bugs.winehq.org/show_bug.cgi?id=57023
--- Comment #7 from S10XC winhq.s10xc@slmail.me --- The "or" got me confused. This is what I get:
(In reply to archlinuxuser from comment #5)
add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus dword DisableHidraw=1
This brings back both Dinput and Xinput
chmod a+rw /dev/hidrawX
Only Dinput
https://bugs.winehq.org/show_bug.cgi?id=57023
Rémi Bernon rbernon@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rbernon@codeweavers.com
--- Comment #8 from Rémi Bernon rbernon@codeweavers.com --- Note that Dualshock controllers do not work with XInput on Windows. This is a Wine-specific behavior that is only available with DisableHidraw=1, and which will break other games which have specific compatibility for DS4 / DS5 controllers for advanced gamepad features.
https://bugs.winehq.org/show_bug.cgi?id=57023
--- Comment #9 from archlinuxuser anode.dev@gmail.com --- I have installed this package https://codeberg.org/fabiscafe/game-devices-udev which adds permissions on "hidraw" devices however gamepad still doesn't work in games even it works in "joy.cpl" I creates a registry key DisableHidraw=1 which fixes the problem