protonscr

No more than 3 controllers work if steam input is enabled

steamclosed General controller / Steam Input
ValveSoftware/steam-for-linux#9571 · opened 2023-06-08 by marco-calautti · updated 2024-07-19 · 12 comments · github
Mmarco-calautti 2023-06-08 github

Your system information

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

Please describe your issue in as much detail as possible:

If Steam input is enabled, when I try to play games supporting 4 players or more, the games only recognize 3 of the connected controllers. If I disable steam input, then (given the game has built-in support for the controllers I have), the game recognizes all controllers.

Steps for reproducing this issue:

  1. Enable steam input and enable support for all gamepad models you have
  2. Start a game supporting 4 players or more
  3. Start a 4+ players game

This issue essentially makes impossible playing 4+ players games that have no built-in support for gamepads (e.g., DS4 or Pro Controller). Which means people pay for a game that they will not be able to play as advertised.

Steam input is broken in so many ways that it is almost embarassing. If Valve has not or does not want to invest resources to fix the Steam input system (which seems to be so, according to the plenty of open and unresolved issues on this repository), then I would suggest open sourcing at least the Steam input component of Steam, to let the community jump in, in the same way Valve is doing with Proton.

TTTimo 2023-06-12 github

Hello @marco-calautti, can you provide a game that you have tested this with, and what assortment of controllers did you use?

Mmarco-calautti 2023-06-12 github

Games I tried:

  • Screaming Chicken (supports steam input and also has native support)
  • Brawlhalla (only supports steam input)

I used 3 DS4 controllers and an Xbox One controller.
In both games, if I enable steam input, only the first 3 controllers sending input to the game are recognized (no matter if they are DS4 or Xbox controllers). If I disable steam input, all 4 controllers are recognized in Screaming Chicken, while Brawlhalla simply does not register any input.

TTTimo 2023-06-13 github

Hello,

We tested with Brawlhalla and we are able to use 4 controllers simultaneously on Linux Desktop. We cannot reproduce the issue.

It's worth noting that Brawlhalla has a hardcoded limit of 4 controllers. If the host has more than 4 controllers plugged in, all extras will be ignored by the game (this can be verified on Windows as well). This matters on Steam Deck where you will need to rearrange controller order so the builtin Deck controller doesn't get picked up first (we tested Deck to be working as well).

We tested with latest Steam beta client on Ubuntu 20. enable Steam Input for XBox controllers and enable Steam Input for Playstation controllers are enabled in the Steam Input settings.

Our controller makeup is different than yours but that seems unlikely to be a root cause (Steam Controller and Xbox One S controller instead of the extra 2 DS4).

Mmarco-calautti 2023-06-16 github

It's worth noting that Brawlhalla has a hardcoded limit of 4 controllers. If the host has more than 4 controllers plugged in, all extras will be ignored by the game (this can be verified on Windows as well). This matters on Steam Deck where you will need to rearrange controller order so the builtin Deck controller doesn't get picked up first (we tested Deck to be working as well).

This might probably be the issue, as I have permanently connected 2 usb dongles for the Guitar Hero Guitars, which probably get picked first. however, this would mean that I would be able to only use 2 additional controllers, and not 3.
I will try switching the order, and report back.

Mmarco-calautti 2023-06-16 github

It seems that changing the order of the controllers made the game recognize them.
However, I find this behaviour very counter-intuitive and strictly related to how the OS/steam connects to the controllers.
I would expect the game to pick up not the first 4 controllers in a list given by the OS/Steam, but the first 4 controllers that provide for the first time some input to the game, similarly to what happens in a console. Steam input could do something in this regard to make this process smoother, and similar to what an actual gaming console does.

JJunohea 2023-12-09 github

Having this issue as well in any 4player game tested, including

  • Helldivers
  • Ember Knights
  • Castle Crashes
  • Screen Cheat
  • Hammerwatch
    and i suspect the same across most other games, it doesnt seem to matter how many ways i reorder the controllers either.

Tried with a mix of wired and wireless controllers, across a mix of Xbox One and Xbox Series X controllers

This was attempted with the official wireless dongle and using https://github.com/medusalix/xone

if there's any additional information i can provide I'm happy to run some commands or help how i can

PPtkstefano 2024-06-11 github

I'm having a similar problem in Overcooked 2. The Steam Deck correctly identifies all my four additional controllers, but it seems that the game can not handle more than 4 controllers, so, as I'm not able to remove the Deck controller I'm left with just three additional controllers.

Mmarco-calautti 2024-06-11 github

As I was suggested, change the controller order in the game's controller settings. The game will pick up the first 4 controllers of the list.

PPtkstefano 2024-06-11 github

As I was suggested, change the controller order in the game's controller settings. The game will pick up the first 4 controllers of the list.

I wasn't able to get the game to not pickup the Steam Deck controller regardless of order in the settings and I tried changing the order multiple times and relaunching the game. I'll try again anyway.

Ppwheaton 2024-06-17 github

As I was suggested, change the controller order in the game's controller settings. The game will pick up the first 4 controllers of the list.

This didn't work for me in any of the four player games I tried:

  • towerfall
  • ember knights
  • assault android cactus
  • circuit superstars
  • new star GP

I find rebooting the deck can resolve the issue temporarily. Usually for one game. Switching to a new game brings the issue back.

I have also tried a variety of wired vs wireless, all controllers work fine at the OS.

If I'm playing the deck while on the official dock there is no situation where I'm using the deck as a controller.

TTTimo 2024-06-18 github

The Steam for Linux sniper runtime was updated with SDL 2.30.4 which has a fix for this issue.

Kkisak-valve maintainer 2024-07-19 github

Closing per the last comment.

Nothing extracted yet.