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).
The xpadneo author here... There may be some issues that come into play when using the Xbox controllers over Bluetooth:
When using xpadneo (that means, not using the controllers via SDL hidraw mode), xpadneo prevents (1) from happening. When using SDL in hidraw mode, there's no point in using xpadneo at all because everything bypasses the driver anyways. To prevent using hidraw mode, it's essential that your system doesn't apply read/write permissions to the hidraw file in /dev. This fixes most if not all of the problems.
When using the controllers via USB or dongle, there won't be a hidraw device anyways because only in Bluetooth mode the controllers act as HID devices.
When SDL is updated to latest versions (via your system or Steam Linux runtime), point (1) should also be fixed because all latest games and Steam Input itself should be able to load newer SDL versions even when compiled for older versions.
I think, the issue can be closed because rumble is working again with Steam Input (Beta and Stable client).
Rumble is not working for me on a DS4 controller. I did some experiments, and it seems that Steam input is perfectly able to map the controller to an XBOX 360 controller. Indeed, If i open the wine control panel of any game configured to run with proton inside steam, I can see an x360 controller. The problem is that, this x360 controller, as seen by wine has the rumble checkbox disabled by default. However, if I check the checkbox in the gamepad configuration window inside the wine control panel, rumble work. Unfortunately, it seems that the change does not save (i.e., If I close the control panel window, and reopen it, rumble is disabled again).
So, the conclusion is that Steam Input is really prefectly capable of passing through rumble information between proton/wine and linux, but the wine side has rumble for the virtual controller disabled by default.
but the wine side has rumble for the virtual controller disabled by default.
This is an interesting observation and actually makes sense. Yes, Steam Input creates a virtual device in wine - xpadneo actually uses the same device ID (but on bus 5 = BT instead of bus 3 = USB) and presents compatible HID reports. The bus ID seems to be ignored within wine, so it matches there, but SDL doesn't ignore it which is important so SDL does not intercept our xpadneo input reports.
but the wine side has rumble for the virtual controller disabled by default.
This is an interesting observation and actually makes sense. Yes, Steam Input creates a virtual device in wine - xpadneo actually uses the same device ID (but on bus 5 = BT instead of bus 3 = USB) and presents compatible HID reports. The bus ID seems to be ignored within wine, so it matches there, but SDL doesn't ignore it which is important so SDL does not intercept our xpadneo input reports.
Sorry, but this is not super clear to me. What does this imply? That Steam Input is doing something wrong here?
P.S. Just to add further information. If instead I use Sunshine on my PC to stream my game, and I connect using Moonlight on another device, rumble works! So, it seems sunshine is doing a better job at creating a virtual xbox controller on the host than Steam input does.
Further, using Lutris, vanilla Wine is able to automatically map my DS4 controller to an Xinput device and rumble works also there. I wonder why Steam has to make things so complicated, when wine already does the mapping automatically.
Sorry, but this is not super clear to me. What does this imply? That Steam Input is doing something wrong here?
Yes and no... It's actually SDL which does not read the HID descriptor and rather relies on controllerdb.
Further, using Lutris, vanilla Wine is able to automatically map my DS4 controller to an Xinput device and rumble works also there.
Latest wine can handle HID descriptors properly, so it works unless Steam Input is present which uses SDL to map the controls.
I wonder why Steam has to make things so complicated, when wine already does the mapping automatically.
Older Proton and wine versions won't work correctly so Steam Input is still needed there. But I'm guessing that Steam Input may shift over to a similar solution and use HID directly.
This is still an issue on every version of steam I've tested as of today. (windows, steam deck, proton)
DS4 controller, Steam Controller, and Switch Pro Controller all have zero rumble when Steam Input is enabled in the controller menu. Steam Controller does still have haptics, but no rumble from games.
Turning off Steam Input support for DS4 and Switch Pro controller is enough to get them rumbling in games.
the DualSense and DualSense Edge controllers are the only controllers I'm able to test that still have rumble when using Steam Input, which implies that the Steam Input team has figured out how to fix this, they just haven't patched it for other controllers
Your system information
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: