protonscr

Certain games treat DualShock 4 or DualSense bluetooth like up direction is permanently stuck

steamopen Distro Family: ArchGeneral controller / Steam Input
ValveSoftware/steam-for-linux#11421 · opened 2024-11-04 by kode54 · updated 2024-11-17 · 2 comments · github
Kkode54 2024-11-04 github

Your system information

  • Steam client version (build number or date): 1726604483
  • Distribution (e.g. Ubuntu): Arch
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes
  • Steam Logs: steam-logs.tar.gz
  • GPU: AMD Radeon RX 7700 XT

Please describe your issue in as much detail as possible:

When attempting to play either TUNIC (553420; run through Proton; Unity based) or Shield Cat Chapter 1 demo (1522890; native; Game Maker Studio runtime) with either a DualShock 4 or DualSense controller, if using them in Bluetooth mode, the games are unplayable because the Up direction on some input is stuck. They're playable if the controllers are used wired.

Steps for reproducing this issue:

  1. Pair a DualSense controller with a Bluetooth radio
  2. Connect it
  3. Launch either mentioned game
  4. Input stuck
SSamPurple22 2024-11-16 github

You can try the following to workaround the issues:

Easiest is to just enable Steam Input (this requires Steam Overlay to be enabled also) for both.

More info:

TUNIC Proton 9.0-3

Works with:

  • Easiest is to just enable Steam Input for the game
  • With active Steam udev rules (steam/steam-devices packages installed), either:
    • run Protontricks > Tunic > Select default Wineprefix > Run regedit > HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus > New DWORD Key Named "DisableHidraw" value 1
    • sudo setfacl -x u:$USER /dev/hidraw1 hidraw1 should be your controller, before connecting the controller via bluetooth do a ls -Al /dev/hidraw* then connect then ls again to be sure. This disables that your user has write access to the hidraw device (allowed by steam-input udev rules). $USER should be your username.

Shield Cat Demo Native Linux

Works with:

  • Enable Steam Input
  • sudo setfacl -x u:$USER /dev/input/js0 see above, js0 should be the Dualsense controller when connected via bluetooth

Having these "input stuck loop" issues in games, is really annoying. Trying to figure out why is also not easy sometimes.

Some more info from Archlinux wiki: ArchLinux Gamepad wiki

Of course, the best thing to do is to try to engage with the developers and let them know about the issue and ask them to try and fix it.

I've tried the above with Steam running inside flatpak on Fedora 40 Workstation (Wayland).

EDIT: Added note about Steam Overlay and Distro info.

Kkode54 2024-11-17 · hidden on GitHub github

Re: Shield Cat, the developer banned me from their Discord server after I voluntarily left.

Proton versions