protonscr

Unwanted deadzone with steering wheel and xinput, vanilkla wine is ok.

protonopen
ValveSoftware/Proton#4066 · opened 2020-07-14 by kokoko3k · updated 2021-02-01 · 5 comments · github
1 matching comments, n / p to jump
Kkokoko3k 2020-07-14 github

Proton Version tested: 4.11 and 5.0-9

I've tried several racing games via proton, and it seems there is always a deadzone on the steering wheel (grid autosport, dirt rally)
The deadzone setting in the game was always 0

  • steam input is disabled.

To inspect the issue,

  • i calibrated the wheel with jscal (before the calibration js0 had a dead zone too)
  • i downloaded an xinput joystick tester for windows and replaced the grid autosport main executable with it.
  • Started it via steam and verified that my stearing wheel has an unwanted dead zone.
  • started it manually to compare proton and vanilla wine (This does NOT happen if i use vanilla wine (tested version 5.3 and 5.10, also wine-staging 5.10, they all works ok)
#unwanted deadzone:
STEAM_COMPAT_DATA_PATH=/home/big/Giochi/Steam/SteamApps/compatdata/255220 WINEPREFIX=/home/big/Giochi/Steam/SteamApps/compatdata/255220/pfx/ /mnt/rotativo/steam/steamapps/common/Proton\ 5.0/proton run  /koko/tmp/ControllerTester/ControllerTester.exe
#no deadzone:
STEAM_COMPAT_DATA_PATH=/home/big/Giochi/Steam/SteamApps/compatdata/255220 WINEPREFIX=/home/big/Giochi/Steam/SteamApps/compatdata/255220/pfx/ wine  /koko/tmp/ControllerTester/ControllerTester.exe
  • Also it may be helpful to know that this does NOT happen if i use an xbox360 controller
#dmesg
[31753.055574] input: Thrustmaster F430 Force Feedback as /devices/pci0000:00/0000:00:14.0/usb2/2-10/2-10.1/2-10.1:1.0/0003:044F:B65A.001E/input/input57
#lsusb
Bus 002 Device 023: ID 044f:b65a ThrustMaster, Inc. 

My tests point me to believe that the issue is entirely related to protonè

Kkakra 2021-01-29 github

This probably comes from using SDL2 and will be fixed with one of the next updates of SDL2 which should find its way into Proton.

Kkokoko3k 2021-02-01 github

Thanks for answering.
Since vanilla wine works ok, do you think i can try to preload system sdl libs (or find another way to make proton use them) and workaround the issue?

Kkakra 2021-02-01 github

Preloading won't work in pressure vessel. You'll have to wait for the steam runtime picking up the new SDL version. Updates are posted here: https://github.com/ValveSoftware/wine/issues/94 - it also has the links to the SDL bug reports and repo to see the progress.

Kkakra 2021-02-01 github

If you want to work around that NOW, you can use the following udev rule for Thrustmaster devices:

# /etc/udev/rules.d/99-joystick.rules
KERNEL=="event*", ATTRS{id/vendor}=="044f", ACTION=="add", RUN+="/usr/bin/evdev-joystick --evdev %E{DEVNAME} --deadzone 0"
Kkokoko3k 2021-02-01 github

Thank you very much for pointing me out to that thread, very informative.