Your system information
- Steam client version (build number or date):
- Distribution (e.g. Ubuntu): Debian 12
- Opted into Steam client beta?: [Yes/No] No
- Have you checked for system updates?: [Yes/No] Yes
- Steam Logs: [generate by running this command in a terminal
tar -zcvf ~/Desktop/steam-logs.tar.gz ~/.steam/steam/logs]
- GPU: Nvidia/Intel/AMD nvidia
Please describe your issue in as much detail as possible:
Describe what you expected should happen and what did happen. Please link any large code pastes as a Github Gist
When playing a game that can use multiple gamepads, such as multiplayer games, and whilst also using Steam Input for those gamepad(s), then each of the gamepads used will be duplicated by Steam Input. This has the affect as each controller is controlling two players in the game, instead of the intended one.
I have had this problem in multiplayer games such as Trine, Lego Marvel Superheroes (and other Lego games), and Teenage Mutant Ninja Turtles: The Cowabunga Collection.
In some single player games, I've also noticed weird activity, but I cannot describe as well. It might be because the game is combining multiple virtual controller inputs into a single playable character. For example, a single button press would act like a double button press.
Workaround for SDL
I have confirmed a workaround for this issue using the SDL_GAMECONTROLLER_IGNORE_DEVICES environment variable for the games having the problem.
Here is an example workaround added to one of the games.
SDL_GAMECONTROLLER_IGNORE_DEVICES="0x054c/0x0268,0x2dc8/0x3106" %command%
The device IDs correspond to my PS3 Sixaxis gamepad, and my 8Bitdo Ultimate gamepad. I have found them by using the lsusb command.
From what I can tell, SDL is used by most native games, and also emulation layers like wine, proton, and dosbox.
SDL_GAMECONTROLLER_IGNORE_DEVICES would probably have no affect in games that are not going through SDL.
Guessing at root cause
I believe that the problem is caused by a bug in Steam where it is not correctly telling the games to ignore the original controllers that it is creating virtual copies of. I don't know if Steam is supposed to be using SDL_GAMECONTROLLER_IGNORE_DEVICES, or some other more sophisticated mechanism. Whatever it is trying to use is broken, at least for me on Debian 12.
Steps for reproducing this issue:
- Use Steam Input on 1 or more gamepad.
- Play a game that can use multiple gamepads. Mostly multi-player games.
- Each gamepad will be controlling 2 players instead of the expected 1 player per gamepad.
Your system information
tar -zcvf ~/Desktop/steam-logs.tar.gz ~/.steam/steam/logs]Please describe your issue in as much detail as possible:
Describe what you expected should happen and what did happen. Please link any large code pastes as a Github Gist
When playing a game that can use multiple gamepads, such as multiplayer games, and whilst also using Steam Input for those gamepad(s), then each of the gamepads used will be duplicated by Steam Input. This has the affect as each controller is controlling two players in the game, instead of the intended one.
I have had this problem in multiplayer games such as Trine, Lego Marvel Superheroes (and other Lego games), and Teenage Mutant Ninja Turtles: The Cowabunga Collection.
In some single player games, I've also noticed weird activity, but I cannot describe as well. It might be because the game is combining multiple virtual controller inputs into a single playable character. For example, a single button press would act like a double button press.
Workaround for SDL
I have confirmed a workaround for this issue using the SDL_GAMECONTROLLER_IGNORE_DEVICES environment variable for the games having the problem.
Here is an example workaround added to one of the games.
The device IDs correspond to my PS3 Sixaxis gamepad, and my 8Bitdo Ultimate gamepad. I have found them by using the
lsusbcommand.From what I can tell, SDL is used by most native games, and also emulation layers like
wine,proton, anddosbox.SDL_GAMECONTROLLER_IGNORE_DEVICES would probably have no affect in games that are not going through SDL.
Guessing at root cause
I believe that the problem is caused by a bug in Steam where it is not correctly telling the games to ignore the original controllers that it is creating virtual copies of. I don't know if Steam is supposed to be using SDL_GAMECONTROLLER_IGNORE_DEVICES, or some other more sophisticated mechanism. Whatever it is trying to use is broken, at least for me on Debian 12.
Steps for reproducing this issue: