steam-for-linux icon indicating copy to clipboard operation
steam-for-linux copied to clipboard

Steam input does not passthrough rumble to Xbox controllers.

Open Bitwolfies opened this issue 3 years ago • 18 comments

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:

  1. Play a game that does not support steam input natively.
  2. Using an xbox controller, force it on.
  3. Notice how any rumble actions no longer work.

Bitwolfies avatar May 17 '22 01:05 Bitwolfies

Same here on Kubuntu 22.04 with xpadneo 9.3. Xbox Series Controller connected with Bluetooth.

man-stein avatar Jun 04 '22 07:06 man-stein

Just reinstall xnadneo. This is happen when you get kernel update. And reconnect again.

deathxxx123 avatar Jun 20 '22 20:06 deathxxx123

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.

Bitwolfies avatar Jun 20 '22 22:06 Bitwolfies

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.

man-stein avatar Jun 21 '22 16:06 man-stein

Rumble on BT connection is working only with xpadneo driver.

deathxxx123 avatar Jun 21 '22 17:06 deathxxx123

Rumble on BT connection is working only with xpadneo driver.

Yes, I'm aware of it. As I wrote, I'm using it.

man-stein avatar Jun 21 '22 17:06 man-stein

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.

Bitwolfies avatar Jul 15 '22 19:07 Bitwolfies

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

EwokExile avatar Jul 22 '22 17:07 EwokExile

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.

Bitwolfies avatar Jul 22 '22 17:07 Bitwolfies

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.

EwokExile avatar Jul 22 '22 17:07 EwokExile

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.

ruineka avatar Sep 13 '22 13:09 ruineka

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.

Bitwolfies avatar Sep 14 '22 04:09 Bitwolfies

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.

ruineka avatar Sep 14 '22 05:09 ruineka

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.

Bitwolfies avatar Sep 14 '22 06:09 Bitwolfies

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.

Bitwolfies avatar Sep 14 '22 06:09 Bitwolfies

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.

ruineka avatar Sep 14 '22 13:09 ruineka

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.

Bitwolfies avatar Sep 14 '22 23:09 Bitwolfies

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.

Bitwolfies avatar Sep 15 '22 00:09 Bitwolfies

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.

Bitwolfies avatar Sep 28 '22 23:09 Bitwolfies

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.

man-stein avatar Sep 29 '22 18:09 man-stein

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.

pvizc avatar Sep 30 '22 12:09 pvizc

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!!

pvizc avatar Oct 01 '22 08:10 pvizc

Do you mean "with Steam input enabled, rumble is working again"? It was already working if Steam Input was disabled.

man-stein avatar Oct 01 '22 10:10 man-stein

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.

pvizc avatar Oct 02 '22 09:10 pvizc

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.

MastaG avatar Oct 19 '22 10:10 MastaG

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.

Bitwolfies avatar Oct 22 '22 05:10 Bitwolfies

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).

andrebrait avatar Oct 24 '22 13:10 andrebrait

Its fixed, as of today's beta, its fixed.

Bitwolfies avatar Oct 27 '22 22:10 Bitwolfies

I tested with a few games, Crash Bandicoot N Sane, Sackboy, and Mekazoo, all three had working rumble.

Bitwolfies avatar Oct 28 '22 03:10 Bitwolfies

I can confirm it. It is working again with the current Steam beta (tested with ETS2).

man-stein avatar Oct 28 '22 07:10 man-stein