steam-for-linux
steam-for-linux copied to clipboard
Steam input does not passthrough rumble to Xbox controllers.
Your system information
- Steam client version (build number or date): May 14th
- 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:
When using Steam input on non Steam input native games with a Xbox controller, rumble is not transmitted.
Steps for reproducing this issue:
- Play a game that does not support steam input natively.
- Using an xbox controller, force it on.
- Notice how any rumble actions no longer work.
Same here on Kubuntu 22.04 with xpadneo 9.3. Xbox Series Controller connected with Bluetooth.
Just reinstall xnadneo. This is happen when you get kernel update. And reconnect again.
Just reinstall xnadneo. This is happen when you get kernel update. And reconnect again.
Good idea, expect I use Xone, and this issue happens on Windows too.
Just reinstall xnadneo. This is happen when you get kernel update. And reconnect again.
Rumble is working with native linux games (without Steam), fftest and with Steam games, but not working with Steam Input. So it is not a driver or kernel issue.
Rumble on BT connection is working only with xpadneo driver.
Rumble on BT connection is working only with xpadneo driver.
Yes, I'm aware of it. As I wrote, I'm using it.
Should be noted this issue is even starting to extend to the Deck, with digital foundry complaining that rumble failed when using an external controller, I really hope this is resolved soon. https://youtu.be/UZKBSf3aLf4?t=810
Keep in mind this is an issue that affects Windows, SteamOS Holo, and other Linux installs.
Yeah, right now the only "solution" to this is to disable steam input, but I've run into quite a few games recently that don't detect a controller at all if steam input is disabled (God of War, Horizon Zero Dawn, Tales of Arise). So it's not really a great solution. To reproduce you have to install Xone (dongle) or Xpadneo (Bluetooth) for wireless controller support, then launch one of the aforementioned games. Easy to compare with something that does work with steam input disabled also, like Stray most recently
Stray actually worked fine for me with steam input (it’s even required to be enabled to get PlayStation icons for some unholy reason. Game has native PS support but forces you to emulate an Xbox controller to get the icons.)
Can’t remember if rumble worked however, regardless it’s still an issue with steam input.
My experience with Stray (using Xbox 1914 controller with latest firmware and Xpadneo) is that steam input did work, mappings were fine and all that, but no rumble. Disabling steam input everything worked as expected, including rumble.
I think this should be a priority at this point with so many devices relying on steam input these days. I hope it gets addressed sooner rather than later.
I still wonder how this wasn't fixed yet (assuming this is happening for everyone, even on Windows like it did for me) as i've now confirmed it effects Steam input NATIVE games too. Spiderman's pc port has a steam input mode and a proper fallback to another api, with it defaulting on. This is fine until you realize there's no rumble, despite it being true native steam input. Turning it off restores rumble, albeit with steam deck icons as the fall back.
So, was this not caught after all that somehow, or is it only effecting SOME controllers?
Maybe we can narrow it down a bit, im using an Xbox One S controller. Not an orignal Xb1 controller, nor an elite or series X. This issue happens when both using wired, and the wireless dongle with the xone drivers.
Replying to https://github.com/ValveSoftware/steam-for-linux/issues/8590#issuecomment-1246218686
It's all devices except for the Steam Deck that don't have working rumble using Steam Input. It's been a known issue for a while.
Replying to https://github.com/ValveSoftware/steam-for-linux/issues/8590#issuecomment-1246254355
Well, I sure hope its been known for awhile since I reported the issue! Jokes aside, I meant this doesn't seem to be a 100% issue, it only effects xbox controllers (Neither my PS4 or PS5 controller have this issue) and surely more people would be complaining about this, and clearly its begun to spread to Steam input native, despite this, I don't see a single thread in Spider-Man complaining about broken Xbox rumble, so there has to be more to this.
Wanna complicate things further? I own a steam deck, I connected my Xbox controller wirelessly to my deck and played spiderman with steam input on, and yknow what?
Rumble worked. This isn't a one size fits all issue, Ill keep digging.
Wanna complicate things further? I own a steam deck, I connected my Xbox controller wirelessly to my deck and played spiderman with steam input on, and yknow what?
Rumble worked. This isn't a one size fits all issue, Ill keep digging.
Wow really?? Thats...weird. I'll have to try with my steam deck.
Unfortunantly my testing has turned up mostly empty, here's what I know.
My distro is Arch Linux with the KDE DE, just like the Steam Deck, my controller is the Xbox One S controller. This issue has happened to me on Windows as well.
-Connected via dongle via Xone driver: No rumble using Steam input translator or Spider-Man (Steam input native) -Connected via usb via Xone driver: No rumble using Steam input translator or Spider-Man (Steam input native) -Connected via usb with Xpad driver: No rumble using Steam input translator or Spider-Man (Steam input native) (xone was uninstalled) -Connected via Bluetooth directly: Untested, doesn't hold a connection for me. -Connected via Bluetooth to Steam Deck: Rumble using Steam input translator or Spider-Man (Steam input native) worked as intended.
So clearly, whatever Valve has done to the Deck has made it immune to this issue, now the Decks firmware is still shockingly old (possible regression?) sadly, and I have not verified what driver it uses, but I assume it to be Xpad.
Reminder, this clearly does not effect every user, Spider-Man was the first native game to actually have rumble fail, and I've heard zero word of others complaining about Xbox rumble in Spider-Man.
I tried both native and runtime, no dice. I tried enabling the proper configs in big picture mode, nadda. I am truly at a loss as to why this is happening.
The only lead I have is from the xpadneo page, which lists this:
"As of SDL 2.0.12, SDL introduced a new HIDAPI which can read HID devices in raw mode, bypassing the drivers. Due to the way SDL works, and because xpadneo exposes hidraw devices as user-readable, SDL may see wrong button mappings because it may make wrong assumptions about the protocol mode of Xbox and compatible controllers. If you see wrong button mappings / missing buttons in SDL applications, or rumble does not work, you may need to turn off this behavior by setting an environment variable in your profile: SDL_JOYSTICK_HIDAPI=0
Observed problems:
Wrong mappings when using newer SDL2 versions, should be fixed by latest xpadneo
Rumble doesn't work at all, needs to be fixed by SDL2"
However sadly adding that env did not fix the issue.
Replying to https://github.com/ValveSoftware/steam-for-linux/issues/8590#issuecomment-1247417919
So springboarding off of this, I might have found the issue cause, may not have, just gonna throw out a theory.
Steam Input uses SDL, for SDL to create rumble, it uses HIDAPI, which contacts the HIDRAW file of the Xbox one controller.
Problem, the Xbox One controller does not create an HIDRAW device, on my pc, but it DOES on my steam deck, where rumble works.
This may be the fix, not yet sure.
I got the hidraw devices when connecting the Xbox Series Controller with xpadneo and bluetooth: [ 174.318753] hid-generic 0005:045E:0B13.0009: input,hidraw8: BLUETOOTH HID v5.13 Gamepad [Xbox Wireless Controller] on 3c:7c:3f:98:f7:6e [ 174.417494] xpadneo 0005:045E:0B13.0009: input,hidraw8: BLUETOOTH HID v11.30 Gamepad [Xbox Wireless Controller] on 3c:7c:3f:98:f7:6e [ 175.696181] xpadneo 0005:045E:0B13.0009: input,hidraw8: BLUETOOTH HID v11.30 Gamepad [Xbox Wireless Controller] on 3c:7c:3f:98:f7:6e
But rumble isn't working when Steam Input is active.
I've got the same exact issue. No rumble when using Steam Input with my Xbox Wireless Controller. Not using Steam Input is not an option in some games since those games completely ignore the controller.
I have tried all drivers (xpadneo, xone, xpad) connecting by cable, bluetooth and the dongle. Nothing works.
So after much testing, I noticed that in my machine there were 3 joysticks being detected (/dev/input/js0 js1 and js3) which seemed odd. Then I realized that time ago I installed the old xboxdrv driver and there was a systemd service running in the background causing these "extra" devices to appear.
In my case I stopped the systemd service, uninstalled the package and boom, now there's only one js0 input device (as it should) and many games were able again to work with Steam Input disabled, which means rumble worked again!!
Do you mean "with Steam input enabled, rumble is working again"? It was already working if Steam Input was disabled.
Do you mean "with Steam input enabled, rumble is working again"? It was already working if Steam Input was disabled.
Yes, I was just replying just in case someone else run into that problem. Steam Input has no rumble neither in my machine unfortunately.
Same here on Fedora 37 using xpad-noone and my 8Bitdo Pro2 controller (wired). Rumble works fine in RPCS3, so it must be a Steam thing...
EDIT: It seems to work again when I disable, Xbox Controller Support.
New beta update to steam converts the input ui one to that seen on the deck (even got the battery low icon in the overlay as a bug) but still, go figure, rumble still doesn't work.
Rumble works for me on my Xbox Series X controller over Bluetooth on the Steam Deck. Problem is, it works too much (see #8107).
On the DualShock 4 and DualSense controllers, everything works just fine (also tested via Bluetooth).
Its fixed, as of today's beta, its fixed.
I tested with a few games, Crash Bandicoot N Sane, Sackboy, and Mekazoo, all three had working rumble.
I can confirm it. It is working again with the current Steam beta (tested with ETS2).