protonscr

DS4 Controller rumble does not work using Steam Input

steamclosed Distro Family: ArchGeneral controller / Steam Input
ValveSoftware/steam-for-linux#9552 · opened 2023-06-01 by marco-calautti · updated 2023-07-22 · 5 comments · github
Mmarco-calautti 2023-06-01 github

Your system information

  • Steam client version (build number or date): 1685572056
  • Distribution (e.g. Ubuntu): Arch Linux
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

I have an original Dualshock 4 controller, and I use Steam Input to convert it to a xbox 360 pad for the Windows games running under Proton. The games see the xbox controller just fine, but rumble is not working. This applies to both games bought on Steam, and non-steam games added as shortcuts.

Steps for reproducing this issue:

  1. Enable Steam input support for Playstation
  2. Enable Steam input on the Windows game to run
  3. Execute the game

For native linux games (e.g., Celeste), I can disable Steam input altogether and the games support the DS4 out of the box, including rumble. For proton games, If I disable Steam input, all of my games do not recognize the controller at all.

To add further context, this is what I tried and discovered:

  • It seems that Steam input is perfectly able to map the controller to an XBOX 360 controller. Indeed, If i open the wine control panel of any game configured to run with proton inside steam, I can see an x360 controller. The problem is that, this x360 controller, as seen by wine has the rumble checkbox disabled by default. However, if I check the checkbox in the gamepad configuration window inside the wine control panel, rumble work. Unfortunately, it seems that the change does not persist (i.e., If I close the control panel window, and reopen it, rumble is disabled again).
    So, the conclusion is that Steam Input is really perfectly capable of passing through rumble information between proton and linux, but the wine side has rumble for the virtual controller disabled by default.

-If I try to execute my non-steam games using Lutris, and thus using vanilla Wine/Wine-GE, Wine seems to take care on its own of the conversion, and automatically maps my DS4 controller to an Xinput device and rumble works fine.

-As another example, I tried streaming my games using Sunshine (an open implementation of NVIDIA's streaming protocol) on my PC, and Moonlight (the streaming client) on another device (to which I connected my DS4 controller). In this case, Sunshine is the one creating a virtual xbox 360 controller. So, I can again disable Steam input, run my games via steam (and thus using Proton), and I get the Sunshine's virtual controller recognized, with rumble working. The same applies if I use Steam's remote play functionality.

So, it is clear there is no issue on my system such as kernel drivers, libraries etc., this is purely Steam Input's fault.

SSlimeProgenitor 2023-06-06 github

This issue also exists on the current stable Windows and Steam Deck builds and has (evidently) been an ongoing problem for several years now.
For added information, DualSense controllers seem to be the only ones that successfully receive vibration data with Steam Input enabled. I have tested with Dualshock 4 and Nintendo Switch Pro controllers, while others have tested with Xbox 360 and generic gamepads- if Steam Input is enabled, no rumble. if Steam Input is disabled, rumble works fine

Mmarco-calautti 2023-06-07 github

I could not agree more. All these gamepad issues make using steam input essentially useless.

TTTimo 2023-06-13 github

Hello,

Thank you for your report, this has been fixed in latest beta.

Mmarco-calautti 2023-06-14 github

Thanks. It seems now steam input-based games (at least the ones I tried) have rumble working.

~However, games without steam input support (e.g., non-steam games from GOG) recognize the X360 virtual controller, but still have no rumble.~
-EDIT- Nevermind, I have a GOG games which indeed has rumble working when using the virtual XBOX 360 controller that steam input is providing.

I would say the issue is fixed!
Thanks

Kkisak-valve maintainer 2023-07-22 github

Closing per the last couple comments.

Nothing extracted yet.