protonscr

Double controller inputs

steamopen General controller / Steam Input
ValveSoftware/steam-for-linux#8132 · opened 2021-10-06 by Sanaki · updated 2025-09-10 · 25 comments · github
1 matching comments, n / p to jump
SSanaki 2021-10-06 github

Your system information

  • Steam client version (build number or date): Oct 6 2021, at 18:51:29
  • Distribution (e.g. Ubuntu): Mint 19.3 64-bit, kernel 5.4.0-87-generic
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

In attempting to help track down a bug in a game, I recently installed the new steam deb over my old version. Prior to this, my installation worked perfectly fine. This update did change directory structure a bit, which required manual intervention in a couple places (such as moving ~/.steam/steam to ~/.local/share/Steam). It also resulted in steam installing the following packages:

libxcb-randr0:i386 (1.13-2~ubuntu18.04)
mesa-vulkan-drivers:amd64 (1:20.0~git200108124800.ad4fb7e~b~padoka0)
mesa-vulkan-drivers:i386 (1:20.0~git200108124800.ad4fb7e~b~padoka0)
steam-libs-i386:i386 (1:1.0.0.71)
libxss1:i386 (1:1.2.2-1)
steam-libs-amd64 (1:1.0.0.71)

Of these, I removed the two mesa vulkan driver packages due to them breaking vulkan when present (even vkcube wouldn't render). I have a prime laptop with an nvidia card (470.74 proprietary) with my integrated card disabled, so this part seemed expected. On attempting to start up Persona 4 Golden I noticed control issues in the menu, and checked the steam controller configuration to see why. Apparently every button on each dinput or xinput controller is being sent twice, but it only appears to affect steam. Attempting to rebind my A button for instance will automatically select and confirm that binding. This occurs over both USB and bluetooth. I can't see any sign of this in other software. While this bears resemblance to #3412, LC_ALL is empty on my system and changing it doesn't have any effect. I've attempted system restarts, removal of (decidedly unrelated but also extraneous) dkms modules, etc. It's possible that I bumped kernel revisions from -86 to -87 when this started, but I can't be certain.

Tested controllers:
8bitdo SN30 Pro+
8bitdo M30

After testing a dualshock 4 (with PlayStation configuration enabled), everything works fine there, so I can at least use that for now. That said, on continuing to test the other two controllers in other modes as I write this issue, steam apparently blacklisted both and now won't register them at all. I see ~4 lines of Hiding blacklisted Device 45e/2e0 on connection now, and no response from either device.

evtest output on button press and release:

Event: time 1633560259.003018, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1633560259.003018, type 1 (EV_KEY), code 304 (BTN_SOUTH), value 1
Event: time 1633560259.003018, -------------- SYN_REPORT ------------
Event: time 1633560259.201744, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1633560259.201744, type 1 (EV_KEY), code 304 (BTN_SOUTH), value 0
Event: time 1633560259.201744, -------------- SYN_REPORT ------------

Steam console output on controller connection (before blacklist):

Local Device Found
  type: 045e 02e0
  path: sdl://3
  serial_number:  - 0
  Manufacturer: 
  Product:      dev:xb1:Xbox One S Controller
  Release:      903
  Interface:    -1

!! Steam controller device opened for index 0.
Steam Controller reserving XInput slot 0
Controller 0 connected, configuring it now...
Controller has an Invalid or missing unit serial number, setting to '45e-2e0-6665ece'
!! Controller 0 attributes:
  Type: 32
  ProductID: 736
  Serial: 45e-2e0-6665ece
  Capabilities: 001803ff
  Firmware Version: 0
  Firmware Build Time: 2147483647 (Tue, 19 Jan 2038 03:14:07 GMT)
  Bootloader Build Time: 2147483647 (Tue, 19 Jan 2038 03:14:07 GMT)
Loaded Config for Local Selection Path for App ID 413090, Controller 0: /home/ccrowley/.local/share/Steam/steamapps/workshop/content/241100/1689651975/1007024772344596662_legacy.bin
Loaded Config for Local Selection Path for App ID 413090, Controller 0: /home/ccrowley/.local/share/Steam/steamapps/workshop/content/241100/1557881022/956347096063773104_legacy.bin
BYieldingQueryAccountsRegisteredToController
Loaded Config for Local Override Path for App ID 413080, Controller 0: /home/ccrowley/.local/share/Steam//controller_base/empty.vdf
Fetching Config Sets 0
CClientJobFetchPersonalizationFileID
Set Account Config Sets 0 1 1
OnFocusWindowChanged to window type: k_nGameIDControllerConfigs_Desktop, AppID 413080
Loaded Config for Local Override Path for App ID 413080, Controller 0: /home/ccrowley/.local/share/Steam//controller_base/empty.vdf
OnFocusWindowChanged to window type: k_nGameIDControllerConfigs_Desktop, AppID 413080
Loaded Config for Local Override Path for App ID 413080, Controller 0: /home/ccrowley/.local/share/Steam//controller_base/empty.vdf

EDIT: Just noticed today's release included Remote Play updates that may be related. The rest may just be coincidental timing.

SSanaki 2021-10-26 github

Just redid my steam install from scratch, then manually moved my steamapps and userdata over to the new install (sans non-shader cache directories). While that fixed the blacklist, it did not fix the double inputs.

DD33M0N 2022-01-27 github

Your system information

Steam client version (build number or date): 16 Jan 2022 at 17:34:49
Distribution (e.g. Ubuntu): Manjaro, linux kernel 5.16.2
Opted into Steam client beta?: No
Have you checked for system updates?: Yes

Have the same exact problem, with my Xbox One S Wireless (Bluetooth) Controller. Details can be found in the closed/linked ticket above.
Games that are/became unplayable for me because of this so far are Jack Axe and TowerFall Ascension.
Tried also the blacklisting thing mentioned above, but exactly as for OP, the "blacklisting" makes the phantom controllers only hidden in the Steam menus and settings and doesn't actually disable/blacklist them from the actual games.

Ssad-goldfish 2022-01-29 github

I have the same issue tested with both an aftermarket Xbox 360 controller and an Xbox One controller. I suspect that this is because Steam detects multiple interfaces for the same controller. I am using Xpad. Starting steam with CONFIG_INPUT_JOYDEV set in the kernel seems to produce:

  Local Device Found
  type: 045e 028e
  path: sdl://0
  serial_number:  - 0
  Manufacturer:
  Product:      X360 Controller
  Release:      114
  Interface:    -1

!! Steam controller device opened for index 0.
Steam Controller reserving XInput slot 0
Local Device Found
  type: 045e 028e
  path: sdl://1
  serial_number:  - 1
  Manufacturer:
  Product:      Xbox 360 Controller
  Release:      114
  Interface:    -1

Disabling the option seems to produce only:

  Local Device Found
  type: 045e 028e
  path: sdl://0
  serial_number:  - 0
  Manufacturer:
  Product:      X360 Controller
  Release:      114
  Interface:    -1

I haven't tested this enough to be certain but I'm guessing that a user workaround would be to blacklist the joydev module. Another workaround that seems to work is to unplug the controller, start steam and then plug in the controller afterwards.

DD33M0N 2022-01-31 github

Another workaround that seems to work is to unplug the controller, start steam and then plug in the controller afterwards.

Does not work with bluetooth controller. Does not matter if I turn the controller on before or after starting Steam.

Also technically we are not talking about "double controller inputs" but "parallel controller inputs from 2 'different' controllers, that actually are 1 controller and it's shadow copy created by steam" -- so for games it seems like 2 different controllers that are handled exactly the same way (shadow controller button mappings may differ a bit). In some games you can unbind the second controller (for example in Spelunky, you can switch second player controller to Keyboard), but several simpler arcade type of games every connected controller is a thing you can't turn off.

Ssad-goldfish 2022-02-13 github

This may be some sort of library/.so issue. On my system, using the (unnoficial) flatpak version of Steam does not show two controllers in the logs.

DD33M0N 2022-07-18 github

Still an issue on Manjaro (Arch based) official Steam from repos.
However not an issue at all on my Steam Deck (SteamOS is also Arch based?).
So any hints what they have done differently on Deck, so I can do in Manjaro also?

SSbdsmall 2023-03-03 github

Any Updates on this double input issue? I have started to experience the exact same problem with my PS4 Controller both via bluetooth or wired. Many games showing the "XInput Controller" and the "XBOX 360 Controller for windows" as two controllers on one device.

JJacobBrownAustin 2023-10-31 github

Hi. I was told that your issue might be the same as mine. Please try this workaround. Edit the game properties for games having problems causes by steam input and add this environment variable.

'SDL_GAMECONTROLLER_IGNORE_DEVICES="0x054c/0x0268,0x2dc8/0x3106" %command%

The device ids can easily be found from lsusb. I don't know what it is for non-usb controllers.

Yyanfali 2024-02-22 github

I'm seeing this on debian 12 with an 8bit ultimate 2.4. It's very annoying, some menus are unusable and solasta is unplayable because the triggers double input so I can't select any characters.

Turning off steam inputs fixed this for me.

HHalfmystic 2024-04-07 github

This seems like a pretty big problem that's been open for nearly 3 years now. It's still an issue. Only Steam Input fixes it.

JJacobBrownAustin 2024-04-08 github

Only Steam Input fixes it.

What do you mean by that? For me, Steam Input is where the problem is.

DD33M0N 2024-04-08 github

Turning off steam inputs fixed this for me.

How do you do that?? Can you do this per game or you need to do globally somehow?

Yyanfali 2024-04-08 github

Turning off steam inputs fixed this for me.

How do you do that?? Can you do this per game or you need to do globally somehow?

Per game properties, you can disable it. Look for the cog in the game page.

Bbjoern-tantau 2024-04-28 github

Hi. I was told that your issue might be the same as mine. Please try this workaround. Edit the game properties for games having problems causes by steam input and add this environment variable.

'SDL_GAMECONTROLLER_IGNORE_DEVICES="0x054c/0x0268,0x2dc8/0x3106" %command%

The device ids can easily be found from lsusb. I don't know what it is for non-usb controllers.

On the Steam Deck with OpenSUSE Tumbleweed as the OS this works when the game is started outside of Steam while Steam is still running and providing controller emulation through the Desktop-Profile (where you can toggle between M/KB and controller).

As expected, when I launch my game without Steam this will disable the controller entirely. But funnily enough this also disables the controller when launching the game through Steam as a non-Steam game. Keyboard and mouse input configured through Steam Input work fine. But controller inputs are dropped.

But, when I don't use this ENV variable then I get double inputs when launching through Steam.

Very strange.

Bbubba169 2024-05-15 github

Also having this issue on some games on Steam Deck with 8bitdo Ultimate Bluetooth in 2.4ghz mode. Plate UP! will see two controllers and will actually create two characters following the same inputs. It also causes issues in Hogwarts Legacy as the A button is unresponsive in menus unless Steam Input is disabled or the command above is used. The second is preferable as it prevents controlling the character while navigating through the Steam overlay.

Is there any way to use the above command on all games by default as a temporary workaround? Copying that long string is pretty tricky on Steam Deck without a keyboard.

Eeathtespagheti 2024-05-15 github

Hi. I was told that your issue might be the same as mine. Please try this workaround. Edit the game properties for games having problems causes by steam input and add this environment variable.

'SDL_GAMECONTROLLER_IGNORE_DEVICES="0x054c/0x0268,0x2dc8/0x3106" %command%

The device ids can easily be found from lsusb. I don't know what it is for non-usb controllers.

This works only for games with SDL support

RRJQuitugua 2025-07-30 github

Hi. I was told that your issue might be the same as mine. Please try this workaround. Edit the game properties for games having problems causes by steam input and add this environment variable.

'SDL_GAMECONTROLLER_IGNORE_DEVICES="0x054c/0x0268,0x2dc8/0x3106" %command%

The device ids can easily be found from lsusb. I don't know what it is for non-usb controllers.

Hi! So if anyone else like me is having issues with their Dualsense controller being controlled by bluetooth, I set this as a launch option instead and it fixed my issue with Final Fantasy Pixel Remaster

SDL_GAMECONTROLLER_IGNORE_DEVICES="054c/0ce6" %command%

DD33M0N 2025-07-30 github

SDL_GAMECONTROLLER_IGNORE_DEVICES="054c/0ce6" %command%

where do you get the numbers 054c/0ce6 there for the BT device?

RRJQuitugua 2025-07-31 github

SDL_GAMECONTROLLER_IGNORE_DEVICES="054c/0ce6" %command%

where do you get the numbers 054c/0ce6 there for the BT device?

So I did this in CachyOS that is an Arch derivative.

  1. Open the terminal and type in sudo evtest. You'll need to install EVTest on your Arch package manager of choice for it.

  2. Find something called "Wireless Controller" while the controller was plugged in. In my case, it will be Event 26.

  3. This command will give you 2 "ATTRS", one is the vendor and the other is the Product code
    udevadm info -a -n /dev/input/eventXX | grep -iE 'vendor|product'
    Replace "XX" with your event ID

  4. Throw it in as a Steam Launch argument for your game
    SDL_GAMECONTROLLER_IGNORE_DEVICES="VENDORID/PRODUCTID" %command%
    Fill in Vendor and Product ID with what the codes are from step 3

DD33M0N 2025-07-31 github

Thanks, but now after getting the numbers through evtest I found much easier way -- from plain dmesg you need the 2 middle "4 symbol groups" or whatever you call them?:

[N juuli 31 12:45:04 2025] input: Xbox Wireless Controller as /devices/virtual/misc/uhid/0005:045E:02FD.0010/input/input39
[N juuli 31 12:45:04 2025] input: Xbox Wireless Controller Consumer Control as /devices/virtual/misc/uhid/0005:045E:02FD.0010/input/input40
[N juuli 31 12:45:04 2025] hid-generic 0005:045E:02FD.0010: input,hidraw11: BLUETOOTH HID v9.03 Gamepad [Xbox Wireless Controller] on f8:xx:xx:xx:xx:b8

So: 0005:045E:02FD.0010 => "045E/02FD".

However on my case, is seems, that the time has fixed the problem for me by itself (haven't used controller for couple of years because of this problem ... and now trying again because got pinged by email from this issue) and I didn't have it anymore and everything is working wonderfully without blocking anything. Hope it remains this way.
(
also had to remove xpadneo-dkms, or steam didn't recognize the controller for any game. because it did some switcheroo, which steam didn't like apparently:

[N juuli 31 00:27:57 2025] loaded hid-xpadneo v0.9.7
[N juuli 31 00:27:57 2025] xpadneo 0005:045E:02FD.000C: buggy firmware detected, please upgrade to the latest version
[N juuli 31 00:27:57 2025] xpadneo 0005:045E:02FD.000C: pretending XB1S Windows wireless mode (changed PID from 0x02FD to 0x028E)

and Steam didn't recognize the new 0x028E as any controller. No idea what's with the xpadneo and "buggy firmware detected".
)

TTheRealYasri 2025-08-02 github

Was having issues with yakuza 3 remastered seeing my duelsense controller instead of using the steam controller interface. Found this on reddit after digging thru tons of ai crap during my search online.

https://www.reddit.com/r/linux_gaming/comments/1h9v2r8/is_there_a_way_to_hide_a_controller_from_a_game/

Run:
protontricks 1088710 --gui
Select default wineprefix and choose explorer.
Navigate to C:\windows\syswow64
Launch control.exe, open Game Controllers and move everything to disabled.
Edit: Found better way look below...

Once I disabled the dualsense controller, everything works now. Proton/wine needs to sense that steam controller interface is being used and block the source controller from getting thru.

JJacobBrownAustin 2025-08-03 github

This works only for games with SDL support

Almost all games use SDL for controllers, either directly, or indirectly.

Ffoolishprogrammer 2025-08-03 github

I think I found my solution, but only when using game with proton 10. Seems like because I'm using wayland and steam run under xwayland, somehow set parameter PROTON_ENABLE_WAYLAND=1 do the job. Don't know why.

Setting up the SDL_IGNORE does not work when I run the game again. Only works when my laptop does not open any game after boot up.

EDIT : work for several run, now back to broken behavior. Only works only when the first time game run after booting up. Need to restart my laptop again every time I want to play with correct controller set up.

TTheRealYasri 2025-08-04 github

I figured out how to do it easier...

protontricks -l

Find your game and the id number next to the name

protontricks -c 'wine control joy.cpl' GAMEIDHERE

Then pick the controller you want to disable.


Be nice if there was a way in the games properties in steam to access panels like this. Took me way to long to figure out the needed command to jump to the right panel needed.

Mmorhook 2025-09-10 github

Turning on "steam inputs" on the controller fixed it in my case. Now I can play "the duck game" again with my daughter Kerrigan!