ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.47k stars 1.03k forks source link

Steering Wheel Input Not Recognized #6674

Open yacinbm opened 1 year ago

yacinbm commented 1 year ago

Hi,

I've spent the last two weeks tracking down this issue. I have a T300RS steering wheel, using the hid-tmff2 driver, and I cannot seem to make it work within Proton 7. I have based my tests mainly on Assetto Corsa (id 244210), but this is common to any game using Proton with a version more recent than 5.13. My issue is that the game can see my device (see below), but any steering/button input is not recognized in game. AC_controls Some users have reported a similar issue and solved it by adding a udev rule to their system in order to add r/w accesses to all users for the wheel, which I have successfully done.

$ ls -al /dev/hidraw2
  crw-rw-rw-+ 1 root root 240, 2 Apr  8 22:45 /dev/hidraw2
$ cat /sys/class/hidraw/hidraw2/device/uevent 
  DRIVER=tmff2
  HID_ID=0003:0000044F:0000B66E
  HID_NAME=Thrustmaster Thrustmaster T300RS Racing wheel
  HID_PHYS=usb-0000:04:00.3-1.3/input0
  HID_UNIQ=
  MODALIAS=hid:b0003g0001v0000044Fp0000B66E

I have confirmed that the device works with native Linux programs, with udevtest and oversteer. The farthest I have gotten in my investigation is that when running protontricks -c "wine control" 244210, I can replicate the behavior that I see in game, meaning that my wheel is listed, but it does not respond to any sort of inputs. That being said, by adding the --no-bwrap flag to protontricks, the wheel does respond. Now the question is, does this point to a permissions error for bubblewrap, or is something else amiss?

I am running Steam OS 3.4.6 on my Steam Deck, with the latest stable Steam for Deck version and proton 7.0-6 (also tried Proton GE, but the same symptom occurs). Let me know if you need any more details!

EDIT The issue seems to stem from Steam Linux Runtime Soldier. If I run the game without the runtime, by generating the PROTON_DUMP_DEBUG_COMMANDS and launching via /tmp/proton_<username>/run, the wheel works perfectly! I also tried running the game with Soldier with the --devel flag, but it did not change the behaviour.

kisak-valve commented 1 year ago

Hello @yacinbm, for clarity does Proton with a version more recent than 5.13 mean that the wheel works with Proton 5.13, and not Proton 6.3? Proton 5.13 and newer are run inside the Steam Linux Runtime - Soldier container environment, and if Proton 5.13 has differing behavior, that hints there is a regression on Proton's side instead of a permissions issue with the container environment.

Please add PROTON_LOG=1 %command% to a couple affected game's launch options and attach the generated $HOME/steam-$APPID.log to this issue report as a file. (Proton logs compress well if needed.) Also, please copy your system information from Steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

yacinbm commented 1 year ago

Hi @kisak-valve, It's funny you should say that, we actually narrowed down the issue to Steam Linux Runtime Soldier this morning in another issue over on the protontricks Github. The TLDR of that issue it that, when running the game without the Steam Linux Runtime Soldier, the wheel is properly recognized in game.

I only own three affected games, so here are the files you asked for (Note that Assetto Corsa-244210 uses GE-Proton7-54 because it is the only way I found to get it working on the Deck). I had to archive the files because F1-2019 somehow generated 349 MB of logs?! steam-logs.zip

Also, please find the Steam -> Help -> System Information.

kisak-valve commented 1 year ago

Again, please clearly state if your wheel works or doesn't with Proton 5.13.

This Proton version is run inside Steam Linux Runtime - Soldier and if it behaves differently than newer Proton versions, that's a useful data point.

yacinbm commented 1 year ago

I have based my tests mainly on Assetto Corsa (id 244210), but this is common to any game using Proton with a version more recent than 5.13.

yes, the wheel works with 5.13, but not with any more recent version.

Lawstorant commented 8 months ago

Proton needs to ship updated SDL2 for newer wheels compatibility.

Theogore commented 8 months ago

Proton needs to ship updated SDL2 for newer wheels compatibility.

Not sure what that is but I agree that wheel support needs to be improved.

RustyPedrosa commented 4 months ago

For anyone just trying to get their wheel working, PROTON_DUMP_DEBUG_COMMANDS has been removed from Proton 9, as mentioned recently in https://github.com/ValveSoftware/Proton/issues/7575#issuecomment-1988223540

That said, I can't get the game to launch from the tmp script with proton 8 or 7 either. No wheel for me.

krims0n32 commented 1 month ago

Is there any progress on this issue? I’ve been troubleshooting this for hours and can’t find a workaround either. Many carsim enthusiasts would love for this to be fixed <3

I don’t want to install Windows again to be able to play, feels bad man. Let me know if I can do anything to test/troubleshoot.

Theogore commented 1 month ago

@krims0n32 I would check with the folks over at #simracer:matrix.org, they have been working tirelessly to provide kernel level drivers for Simracing hardware and FFB solutions.

krims0n32 commented 1 month ago

@krims0n32 I would check with the folks over at #simracer:matrix.org, they have been working tirelessly to provide kernel level drivers for Simracing hardware and FFB solutions.

@Theogore thanks but I am unable to find this room on matrix.org

Theogore commented 1 month ago

Try this: https://matrix.to/#/#simracing:matrix.org

The Join page includes both "simracer" and "Simracing" but that's the correct URL. Hope it helps!

krims0n32 commented 1 month ago

I set my wheel to PS4/PS5 mode and now it works all of a sudden, including FFB. I tried this earlier and it didn’t work then and I can’t think of anything else I changed on my system. Strange but I’m happy. Tried BeamNG and ACC, both work.

ricardofiorani commented 3 weeks ago

Any update on this?

I have a t300rs and can't make it work.

I'm on a steam deck, and I have the exact same problem described here

The device is recognized normally on the OS level (on System settings -> Input Devices -> Game controller) and I can see input in there. image

However, inside proton on "wine control" I can see the device, but no input is registered. image

I tried switching to both PS3 and PS4 modes and it still doesn't work (turn wheel off -> switch -> turn wheel on)

EDIT: I'm trying on Assetto Corsa and DIRT 3.