protonscr

[General] - "Steam Deck Controller" does not fallback to Controller Slot 0 when launching a game with external controllers no longer present.

steamclosed General controller / Steam Input
ValveSoftware/steam-for-linux#11663 · opened 2025-01-15 by ZereoX · updated 2025-04-18 · 4 comments · github
ZZereoX 2025-01-15 github

Your system information

  • Steam client version (build number or date): 1733265492 (Stable) / 1736906505 (Beta)
  • Distribution (e.g. Ubuntu): SteamOS 3.6.20 / 3.6.21 / 3.7.0 (Deck) and Manjaro w/ Gnome 46 (Desktop)
  • Opted into Steam client beta?: Yes. Issue is present on both Stable and Beta
  • Have you checked for system updates?: Yes
  • Steam Logs: steam-logs.tar.gz
  • GPU: AMD Van Gogh RDNA 2.0 (Steam Deck) and RX 7800XT (Desktop)

Please describe your issue in as much detail as possible:

If an external gamepad is seated in a controller slot before the Steam Deck, the Steam Deck Controller will be placed in a higher controller order (#‍2 or more depending on the number of connected controllers). In the event all controllers are disconnected / turned off or the Steam Deck is put to sleep, the Steam Deck Controller will remain in that slot. I assume this is expected to allow controllers that are re-connected to maintain their order (i.e. this avoids external gamepads switching which character they are actively moving in a game), however if the game is closed and re-launched the Steam Deck Controller will continue to be seated in the same slot. This may lead to input not working on games that don't fully support multiple simultaneous gamepads (e.g. Marvel Rivals).

In the console_log.txt below, Marvel Rivals was launched with an Xbox Controller which was seated first. The controller was disconnected and the game was re-launched. Upon interacting with the Steam Deck Controller it was assigned to slot 1 instead of 0.

[2025-01-15 11:07:39] Seating controller 1 in slot 0 <- Xbox One X Controller
[2025-01-15 11:07:40] Seating controller 0 in slot 1 <- Steam Deck Controller
[2025-01-15 11:07:47] Destroyed virtual controller at slot 0 for controller 1
[2025-01-15 11:07:49] Loaded Config for Last Resort Path for App ID 443510, Controller 15: /home/deck/.local/share/Steam//controller_base/chord_neptune.vdf
[2025-01-15 11:07:50] Loaded Config for Local Override Path for App ID 2767030, Controller 0: /home/deck/.local/share/Steam//controller_base/empty.vdf
[2025-01-15 11:07:50] Loaded Config for Local Selection Path for App ID 2767030, Controller 15: /home/deck/.local/share/Steam//controller_base/templates/controller_neptune_gamepad_fps.vdf
[2025-01-15 11:07:50] Loaded Config for Last Resort Path for App ID 769, Controller 15: /home/deck/.local/share/Steam//controller_base/basicui_neptune.vdf
[2025-01-15 11:07:50] Loaded Config for Local Selection Path for App ID 2767030, Controller 15: /home/deck/.local/share/Steam//controller_base/templates/controller_neptune_gamepad_fps.vdf
[2025-01-15 11:08:03] Loaded Config for Local Selection Path for App ID 2767030, Controller 15: /home/deck/.local/share/Steam//controller_base/templates/controller_neptune_gamepad_fps.vdf
[2025-01-15 11:08:03] Loaded Config for Local Selection Path for App ID 2767030, Controller 15: /home/deck/.local/share/Steam//controller_base/templates/controller_neptune_gamepad_fps.vdf
[2025-01-15 11:08:18] Loaded Config for Local Selection Path for App ID 2767030, Controller 15: /home/deck/.local/share/Steam//controller_base/templates/controller_neptune_gamepad_fps.vdf
[2025-01-15 11:08:19] Seating controller 0 in slot 1 <- Steam Deck Controller being set in slot 1 even though there is no other controller.
[2025-01-15 11:08:42] Loaded Config for Last Resort Path for App ID 443510, Controller 15: /home/deck/.local/share/Steam//controller_base/chord_neptune.vdf
[2025-01-15 11:08:42] Loaded Config for Local Selection Path for App ID 2767030, Controller 15: /home/deck/.local/share/Steam//controller_base/templates/controller_neptune_gamepad_fps.vdf
[2025-01-15 11:08:43] Loaded Config for Last Resort Path for App ID 769, Controller 15: /home/deck/.local/share/Steam//controller_base/basicui_neptune.vdf
Video

https://github.com/user-attachments/assets/97511e8f-172a-4409-83cb-3be4ea7f3fd4

Steps for reproducing this issue:

  1. Connect an external controller to your Steam Deck (USB or BT).
  2. Launch Marvel Rivals (2767030).
  3. Immediately following the Steam throbber, move the analog on the external controller (this will set it to slot 0).
  4. Move the analog on the Steam Deck (this will set it to slot 1).
  5. Disconnect the external controller.
  6. Attempt to press X to bypass the title screen.
  7. Close the title via Steam and select Exit game.
  8. Relaunch Marvel Rivals (2767030).
  9. Attempt to press X to bypass the title screen.

Reproduction Rate: 5/5

Affected Platforms

  • LCD / Jupiter: Yes
  • OLED / Galileo: Yes
  • Desktop Deck-like session (gamescope -e -- steam -gamepadui -steamdeck): Yes
  • Desktop: Yes, in Big Picture Mode

Actual result

  • Steam Deck Controller remains in controller slot 1 when launching a game and may not function if the title doesn't provide support for multiple gamepads.

Expected result

  • Steam Deck Controller is always seated in slot 0 if not other devices are actively connected at the launch of a title.

Notes

  • This issue can be worked around by launching a title and manually setting the Steam Deck Controller back to slot 0 / #‍1 from the QAM (Quick-Access Menu -> Quick Settings -> Rearrange controller order). Rebooting the device via the power menu will also resolve this (Steam -> Power -> Restart)
Mmatte-schwartz 2025-03-14 github

This bug affects the Legion Go S' "Steam Deck Controller" as well and I can consistently reproduce it in The Great Ace Attorney Chronicles.

ZZereoX 2025-04-17 github

@matte-schwartz I believe this issue should be fixed as of the April 1st update. Would you be able to confirm on your end as well that the Legion Go S controller is correctly reset into slot 0 if you disconnect any external controller and relaunch the game?

I tested on Marvel Rivals with Steam (Stable - 1743717600 / Beta - 1744067266) and the Deck was correctly seated back into Slot 0 after closing and re-launching the game.

Mmatte-schwartz 2025-04-18 github

The issue is resolved here as well.

ZZereoX 2025-04-18 github

Thanks for confirming. Closing fixed.

Nothing extracted yet.