You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ROG Xbox Ally: Steam Client shows 4 paddle buttons (2 non-functional), likely same root cause as hid-asus-ally Legion Go S identity workaround (#2371) #2838
Please describe your issue in as much detail as possible:
The Steam Client's Controller Configuration for the built-in ROG Xbox Ally controller shows 4 extended/paddle button slots (L4, R4, L5, R5), even though this device only has 2 physical rear paddles. On the Device Support debug screen, all four slots are exposed as bindable inputs, but only 2 of them ever register true when physically pressed. The other 2 never trigger any input.
When launching a game (tested with Resident Evil 7 Biohazard), Steam Input loads a modified "Official Layout" whose diagram displays 4 paddle positions, with L5/R5 pre-bound to Left/Right Stick Click by default. This exactly matches the Lenovo Legion Go S's controller layout, which does have 4 rear paddles, rather than the ROG Xbox Ally's actual 2-paddle layout.
I originally filed this as a Steam Client issue (ValveSoftware/steam-for-linux#13652), since that's where the symptom is visible. However, I suspect the root cause may actually sit here, in SteamOS or the kernel driver stack, based on a very similar precedent. Issue #2371 in this repo describes the hid-asus-ally driver's RGB joystick LEDs only being recognized by the Steam Client after renaming the LED class device from ally:rgb:joystick_rings to go_s:rgb:joystick_rings. That is, intentionally borrowing the Legion Go S's device identity as a stopgap, because the Ally doesn't have a native profile yet.
If the same approach was used for the controller's own HID identification, not just the RGB LEDs, that would explain why Steam Input treats the Ally's built-in controller as if it were a Legion Go S for the purposes of button layout and glyphs, including the 4 paddles that only exist on that device, not the Ally.
If this theory is correct, the real fix would need to happen at the driver or SteamOS level, giving the Ally controller its own distinct identity instead of impersonating the Legion Go S, rather than only in the Steam Client's layout database.
Steps for reproducing this issue:
On a ROG Xbox Ally (base model), go to Settings > Controller > [Ally controller] > Device Support (or equivalent debug/binding screen), and note that L4, R4, L5, and R5 all appear as available inputs.
Physically press each of the 2 rear paddles and observe that only 2 of the 4 listed slots register input. The other 2 never change from false.
Launch a game (e.g. Resident Evil 7 Biohazard) and open Controller Settings > Current Button Layout. The "Official Layout" diagram and Quick Settings panel display all 4 extended button slots (L4/R4/L5/R5) as configurable, with L5/R5 pre-bound to Left/Right Stick Click by default, despite only 2 physical paddles existing on the device.
Your system information
Please describe your issue in as much detail as possible:
The Steam Client's Controller Configuration for the built-in ROG Xbox Ally controller shows 4 extended/paddle button slots (L4, R4, L5, R5), even though this device only has 2 physical rear paddles. On the Device Support debug screen, all four slots are exposed as bindable inputs, but only 2 of them ever register
truewhen physically pressed. The other 2 never trigger any input.When launching a game (tested with Resident Evil 7 Biohazard), Steam Input loads a modified "Official Layout" whose diagram displays 4 paddle positions, with L5/R5 pre-bound to Left/Right Stick Click by default. This exactly matches the Lenovo Legion Go S's controller layout, which does have 4 rear paddles, rather than the ROG Xbox Ally's actual 2-paddle layout.
I originally filed this as a Steam Client issue (ValveSoftware/steam-for-linux#13652), since that's where the symptom is visible. However, I suspect the root cause may actually sit here, in SteamOS or the kernel driver stack, based on a very similar precedent. Issue #2371 in this repo describes the hid-asus-ally driver's RGB joystick LEDs only being recognized by the Steam Client after renaming the LED class device from
ally:rgb:joystick_ringstogo_s:rgb:joystick_rings. That is, intentionally borrowing the Legion Go S's device identity as a stopgap, because the Ally doesn't have a native profile yet.If the same approach was used for the controller's own HID identification, not just the RGB LEDs, that would explain why Steam Input treats the Ally's built-in controller as if it were a Legion Go S for the purposes of button layout and glyphs, including the 4 paddles that only exist on that device, not the Ally.
If this theory is correct, the real fix would need to happen at the driver or SteamOS level, giving the Ally controller its own distinct identity instead of impersonating the Legion Go S, rather than only in the Steam Client's layout database.
Steps for reproducing this issue:
false.Related issues: