ValveSoftware / ValveSoftware/Proton
USB joystick device (pedals) works via wine and proton, but not when run via Steam client
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 32.8k
- Forks
- 1.6k
- PR merge metrics
- PR metrics pending
Description
This occurs with Proton 6.3-6 though I've reproduced with other versions as well.
Issue: USB joystick device (pedals) works via wine and proton, but not when run via steam
Description: I have a set of USB pedals that work fine in wine/proton games and show up in wine's control.exe panel (ID 068e:00f2 CH Products, Inc. Flight Sim Pedals). The device has an /dev/input/js* and /dev/input/event* device. It's a 3-axis joystick. The device doesn't show up in steam controller settings though two other joysticks do. When I play games, or invoke control.exe instead of the game's executable, the pedals are missing. However, if I invoke wine or proton in a different way (say, by setting the COMPAT_PATH and invoking "proton run /path/to/exe") this device does show up and does work. This is a workaround.
To reproduce: Run game via steam, then run from the command line with a different environment. In the first case, no pedals joystick; in the latter, it's there and usable. For testing I symlinked the game's launcher executable to proton's wine's control.exe, where I could see/not see the device appear.
I've attached a zip file with:
- a steam log (with
+hidp,+hid_report,+rawinput,+xinput,+dinput,+plugplay,+joystick,+winmm,+timestamp) (steam_notworking.log) - a wine log with working controls (wine_working.log)
- the environment used by proton when invoked via steam (the contents of g_settings.env) (steam_env.json)
- the environment used by proton when invoked via another method where the controls work (working_env.json)
- Scripts I used to run the game via proton and proton's wine, where the controller works.
I also note, when I start Steam from the command line I see this; only the second two show up in game and in controller settings.
type: 068e 00f2
path: sdl://0
serial_number: - 0
Manufacturer:
Product: CH PRODUCTS CH PRO PEDALS USB
Release: 100
Interface: -1
Local Device Found
type: 06a3 0c2d
path: sdl://1
serial_number: - 0
Manufacturer:
Product: Saitek Pro Flight Quadrant
Release: 100
Interface: -1
Local Device Found
type: 044f b108
path: sdl://2
serial_number: - 0
Manufacturer:
Product: Thrustmaster T.Flight Hotas X
Release: 100
Interface: -1```
(I don't understand how proton invoked from Steam has a different environment, but I think it comes down to something in the LD_LIBRARY_PATH as messing around with this in my scripts can reproduce the behavior.)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing steam_notworking.log with wine_working.log and the recorded steam_env.json and working_env.json, then inspect the attached scripts that invoke Proton. Reproduce the Steam-client and alternate-environment paths with the CH Products pedals; done means the pedals appear in controller settings and are available to the game through the Steam path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100