Steam Deck - New Input System bugs

  • The start button / select buttons on the joysticks are inverted on Steam Deck (even when using an Xbox controller with Bluetooth connected to the Steam Deck)

  • When using a Bluetooth Xbox controller connected to the Steam Deck, the right analog keeps resetting back to 0,0 (so it’s incredible slow to aim if you are using the right stick)

2 Likes

BUMP

BUMP BUMP BUMP!

The swapped “View/Menu” XBox buttons are a severe bug I must say that makes it very problematic to easily release a game (very much an issue for us right now)… ̶I̶’̶m̶ ̶a̶l̶s̶o̶ ̶n̶o̶t̶ ̶e̶v̶e̶n̶ ̶s̶u̶r̶e̶ ̶h̶o̶w̶ ̶t̶o̶ ̶a̶c̶t̶u̶a̶l̶l̶y̶ ̶d̶e̶t̶e̶c̶t̶ ̶i̶f̶ ̶a̶ ̶b̶u̶i̶l̶d̶ ̶i̶s̶ ̶r̶u̶n̶n̶i̶n̶g̶ ̶o̶n̶ ̶D̶e̶c̶k̶ ̶(̶u̶n̶l̶e̶s̶s̶ ̶I̶ ̶w̶a̶n̶t̶ ̶t̶o̶ ̶m̶a̶k̶e̶ ̶a̶ ̶d̶e̶d̶i̶c̶a̶t̶e̶d̶ ̶b̶u̶i̶l̶d̶ ̶j̶u̶s̶t̶ ̶f̶o̶r̶ ̶t̶h̶a̶t̶,̶ ̶w̶h̶i̶c̶h̶ ̶i̶s̶ ̶n̶o̶t̶ ̶v̶e̶r̶y̶ ̶s̶u̶s̶t̶a̶i̶n̶a̶b̶l̶e̶/̶i̶s̶ ̶a̶ ̶b̶i̶g̶ ̶o̶v̶e̶r̶h̶e̶a̶d̶)̶.̶ ̶A̶n̶d̶ ̶o̶n̶e̶ ̶c̶a̶n̶’̶t̶ ̶v̶e̶r̶y̶ ̶w̶e̶l̶l̶ ̶r̶e̶l̶e̶a̶s̶e̶ ̶a̶ ̶g̶a̶m̶e̶ ̶e̶x̶p̶e̶c̶t̶i̶n̶g̶ ̶a̶ ̶V̶a̶l̶v̶e̶ ̶"̶f̶u̶l̶l̶ ̶s̶t̶e̶a̶m̶ ̶d̶e̶c̶k̶ ̶s̶u̶p̶p̶o̶r̶t̶"̶ ̶(̶/̶f̶e̶a̶t̶u̶r̶i̶n̶g̶)̶ ̶w̶h̶i̶l̶e̶ ̶h̶a̶v̶i̶n̶g̶ ̶t̶h̶e̶ ̶S̶e̶l̶e̶c̶t̶/̶S̶t̶a̶r̶t̶ ̶(̶V̶i̶e̶w̶/̶M̶e̶n̶u̶)̶ ̶b̶u̶t̶t̶o̶n̶s̶ ̶s̶w̶a̶p̶p̶e̶d̶,̶ ̶w̶h̶i̶c̶h̶ ̶m̶i̶g̶h̶t̶ ̶b̶e̶ ̶a̶ ̶c̶r̶i̶t̶i̶c̶a̶l̶ ̶f̶a̶c̶t̶o̶r̶ ̶f̶o̶r̶ ̶o̶u̶r̶ ̶g̶a̶m̶e̶ ̶t̶h̶a̶t̶ ̶i̶s̶ ̶p̶e̶r̶f̶e̶c̶t̶ ̶f̶o̶r̶ ̶d̶e̶c̶k̶-̶l̶i̶k̶e̶ ̶h̶a̶n̶d̶h̶e̶l̶d̶s̶.̶

Is there some way how to deal with it on a “PlayerInput” level directly? I didn’t find any and definitely don’t want to break controls for XBox controller because of a unity integration bug.

— fun sidenote: the steam deck behaves like an XBox controller when you don’t run the game directly on the deck, but stream it through “remote play” from a PC. Then it does have the “View” button on the left as it should, while when running on deck it has it swapped.


// a slight update that might come in handy to some people: I somewhat dealt with the issue in my case after managing to make “steam deck detection” work → if you have new SteamWorks.Net unity integration [ Releases · rlabrecque/Steamworks.NET · GitHub ], there’s a “SteamUtils.IsSteamRunningOnSteamDeck();” you can use for that. Still, it’s definitely a dirty fix, but at least I can move to other things until it is officialy at some point :confused:

Have you logged this as a bug, I haven’t?

I have issues with the right stick on the steam deck - as soon as I touch it the framerate bins and I get spikes of 100s of ms. Anyone here experienced that? I am on the 2022 LTS

EDIT: in my case this was me, the right stick callback had a console log line it that was not impacting me on mobile but was killing me on the deck!

This is a huge issue and seems like devs are not even aware of it.

Hello. Has anyone here opened a bug with Unity to track this issue?

Are you observing this issue with a game compiled to Linux, or a Windows build (running on the Steam Deck under Proton)?

Windows. But on windows, it does work fine. On Steam Deck (through Proton) it is reversed. Not sure about bug report.

Also, I remember controller vibration not working on Steam Deck. Wonder if that was fixed.

Any news on this ? Very problematic.

I just verified that this issue with the reversed Start/Select input still occurs on version 2022.3.16. It happens on a Windows build running on the Steam Deck through Proton. It does not occur on a Linux build running on the Steam Deck.

I’m submitting a bug report with a repro project now in case there has not been one yet.

after getting a response from my bug report, it is a known third party issue: Unity Issue Tracker - [Linux][New Input System] "Select" and "Start" buttons are switched when running the Build with Proton.

A comment on the issue linked a Valve/Proton issue Unity Input System: Start/Select Button swapped in low-level mapping · Issue #6861 · ValveSoftware/Proton · GitHub. As of 11/9/23, there is a fix on the bleeding edge branch of Proton Experimental so hopefully it will be coming down the pipe soon.

1 Like

Vibration is not working on Steam Deck as well.

Yeah, Gamepad.current.SetMotorSpeeds() does not work on Steam Deck.

Given that you supposedly can just throw together a whole JSON to describe a new device, I am shocked at how poorly the SteamDeck is supported (i.e., not at all) by Unity. There’s no motor support, there’s no accelerator/gyro support, there’s no touchscreen support, there’s no dual touchpad support, there’s no backbutton support. Just Gamepad basic.