ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.45k stars 1.03k forks source link

Games launched with proton do not detect controllers #1549

Open Tuerai opened 5 years ago

Tuerai commented 5 years ago

Compatibility Report

System Information

I confirm:

steam-742120.log

Symptoms

Tested with an Xbox One S controller, and a PS Dual Shock 4 controller, both connected wired. They work in native steam games. They work in games where I use Lutris with WINE. They work in Steam Big Picture Mode. They are not detected at all in games I launch through proton. Have tested in Burnout Paradise and Dragon Quest XI.

Reproduction

I have steam installed on Arch Linux. I have launched it as both "Steam Native" and as "Steam Runtime" with the same behavior on both (works in BPM and not detected by Proton-launched game).

I tried both with and without xboxdrv/ds4drv installed, and had the same behavior as well.

ipkpjersi commented 4 years ago

Interesting revelation. Found a fix.

Step One: Open Big Picture mode, then navigate to Settings > Controller Settings. Check Xbox Configuration Support

Step Two: (Still in BPM) Navigate to Fallout: New Vegas > Manage Game > Controller Options > Steam Input Per-Game Setting > Set to: "Forced Off"

Profit. Still running Proton 3.7-8. I'll check back on the topic if the fix is only temporary.

This worked for me with both an Xbox 360 Wireless controller and Xbox One Bluetooth Wireless controller in NBA 2K Playgrounds 2.

howdev commented 4 years ago

Usually only the DS4 does not detect in some proton games. When use per game forced on this would make DS4 detect as Xbox controller. For Xbox controller should work by default because of the protocol.

WoutLin commented 4 years ago

I have been using my controller successfully for Wreckfest since following the advice of Steam Support: select ONLY xbox configuration support (nothing else).

However after remapping controls to my liking and playing the game flawlessly, on shutdown and restart the controls are back to default. Since I did not find any solutions to this issue after searching, I worked out a fix myself. Maybe it can help someone else if I am not the only one that had this issue.

My fix for proton controller settings not saved after shutting off wreckfest:

copy all files from: [GAME INSTALLATION FOLDER]/steamapps/compatdata/228380/pfx/drive_c/users/steamuser/My Documents/my games/wreckfest/76561197999597403/controllers

to: [STEAM INSTALLATION FOLDER]/userdata/[USER ID]/228380/local/wreckfest/controllers

ultra-azu commented 4 years ago

So I just wanted to say that I tried both the workaround of disabling Controller Configuration in the game, disabling it globally, disabling the xpad driver, but I still can't play Proton games with my Xbox One controller. Like everyone else, the controller works fine elsewhere. I'll provide any info needed.

landsman commented 4 years ago

Flatout not working for me too with configured Dual Shock 4 controller (usb / bluetooth too). It's pitty.

WoutLin commented 4 years ago

I recently got Flatout UC to work with my GameSir G3 gamepad. I followed Steam support advice and in general controller settings, selected only xbox, everything else blank.
Then in game controller settings I mapped the gamepad sticks and buttons to keyboard buttons used by the game. Next in the game controller options I picked "keyboard". If I select xbox controller the template of functions cannot be changed but using keyboard it is customizable. I can use the gamepad fully customizable. Left stick for steering. Right stick throttle/brake. Triggers for hand brake and nitrous. Works perfect.

landsman commented 4 years ago

@WoutLin It's working with Xbox in settings, thanks!

minneyar commented 4 years ago

Just thought I'd chime it that I was having a similar issue with Bloodstained: Curse of the Moon 2. I'm using an 8BitDo SN30 pro+ in Xinput mode, connected via USB. It shows up at /dev/input/js0, is the only gamepad, and works fine in other games and in big picture mode, but the game did not recognize it at all.

I was able to fix it in a similar to way to other people here:

  1. Go to the global Controller Settings in Steam and enable Xbox Configuration Support
  2. Go to Steam's Controller Settings specifically for the game and set "Steam Input Per-Game Setting" to Forced Off

Now the game (using Proton 5.0-9) detects my gamepad and works fine.

RazrFalcon commented 3 years ago

@minneyar Thanks! Surprisingly, disabling "Steam Input Per-Game Setting" fixed a controller detection in Burnout Paradise.

neurodiverseEsoteric commented 3 years ago

Proton 5.13 seems to be better at detecting controllers, but for some reason does not detect the 'O' and 'R1' buttons on my 'Mad Cats FightStick PS3 Controller' even though the buttons work and wine control.exe and linux can detect them being pressed

dj--alex commented 3 years ago

Proton 5.13, Proton 5.11-GE, Proton 5.9-Ge (newest) + PS3 controller. Not detected in ANY Steam-Proton games. On Big picture, or any other game (native, wine, steam-native) PS3 will works. Shadow warrior 2, Hard reset, Layers of fear 2, Blades of time These games works 2 months ago with PS3 Joysticks (i have 3 joysticks) using Bluetooth. I not update My Linux Mint 19.3 x64 to newest OS. Of course i try everything. not only disabling Steam input Per game...i waste 20 days for this! In previous attempt to fix i delete and clear Steam, his cache, games, saves, ALL. and reinstall Steam only. PS3 joysticks starts working, 2 months of working and now znowu not works. I change my ming and i don't publish my game on steam. Its useless without controller. I cannot play with keyboard and mouse. Its not comfortable for me.

howdev commented 3 years ago

@dj--alex try Proton 5.0.10 works even hotplug or 4.x

dj--alex commented 3 years ago

@dj--alex try Proton 5.0.10 works even hotplug or 4.x

no works. im already tested it. i retry test but Shadow warrior or other still no works. Someone tells Buy Xbox joystick but im using PS3 and don't like xbox controller I cannot play games on steam. unfortunately

howdev commented 3 years ago

@dj--alex Does it work in wired? I have dualshock4 and works with bluetooth and wired in Mint 19.3 and Mint 20. Make sure you have steam-devices package installed otherwise the controller won't be detected in Proton games.

dj--alex commented 3 years ago

@dj--alex Does it work in wired? I have dualshock4 and works with bluetooth and wired in Mint 19.3 and Mint 20. Make sure you have steam-devices package installed otherwise the controller won't be detected in Proton games.

Its installed. Wired - No. I have installed RPCS3 may this can be problem? /etc/udev/rules.d/99-ds3-controllers.rules . Have a PS3 console too.

DualShock 3 over USB

KERNEL=="hidraw", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", MODE="0666"

DualShock 3 over Bluetooth

KERNEL=="hidraw", KERNELS=="054C:0268*", MODE="0666"

howdev commented 3 years ago

@dj--alex if it doesn't even work with wired then, you really have problem. I don't have any emulator installed and I don't have any rules under udev/rules.d. So that could be your problem.

dj--alex commented 3 years ago

@dj--alex if it doesn't even work with wired then, you really have problem. I don't have any emulator installed and I don't have any rules under udev/rules.d. So that could be your problem.

Really i found solution. remove /etc/udev/rules.d/99-ds3-controllers.rules fix the problem, but it brokes completely RPCS3 and i cannot start God of war. I must select which application steam or RPCS3 can use PS3 joystick . It can be fixed for both applications can work normally with this udev rule?

howdev commented 3 years ago

@dj--alex If installing RPCS3 break Proton, then this is not Proton issue. Proton works by default with controllers.

nenoro commented 3 years ago

Proton 5.13 has fixed the issue let's hope 5.14 won't go crazy and kick the fix

ghost commented 2 years ago

Games: Skyrim SE Controller: Xbox Elite 2 (wired)

Controller works fine in native application, is not detected when launching a Proton game

rokam commented 2 years ago

Issue confirmed on GTA5 with Proton7 and with SteamController

andymason commented 2 years ago

Just chiming in with my experience. A 8BitDo Pro 2 controller in x-input (Xbox) mode worked fine with most games, but Monster Hunter Rise refused to see any controller connected.

The solution for my situation was to re-enable Steam overlay, Settings > In-Game > Enable the Steam Overlay.

I had previously turned off the overlay because I thought I didn't need it. However, for some reason this prevented recognition of the controller, or maybe stopped the profile loading?

rokam commented 2 years ago

Issue confirmed on GTA5 with Proton7 and with SteamController

I don't know what was wrong, but now it works again!

octopoulpe commented 2 years ago

Yeah. Steam Input was not working for me on every unreal engine game. I had previously disabled Steam Overlay globally. Re-enabling it solves my problem. Thanks @andymason

zdimension commented 5 months ago

Interesting revelation. Found a fix.

Step One: Open Big Picture mode, then navigate to Settings > Controller Settings. Check Xbox Configuration Support

Step Two: (Still in BPM) Navigate to Fallout: New Vegas > Manage Game > Controller Options > Steam Input Per-Game Setting > Set to: "Forced Off"

Profit. Still running Proton 3.7-8. I'll check back on the topic if the fix is only temporary.

This fixed Stray not detecting the controller on Debian 11 and Proton-GE 8.0-20240111c. Thanks!

Rabcor commented 5 months ago

Honestly this is just a default configuration issue I think. Sometimes you gotta mess with the controller options for the game in order to get controllers to work with it.

Also poeple should know if you use protontricks, your controller settings get ignored entirely, which may mean that a controller that steam doesn't detect but the os does would work, but generally it means controller support is shit if ur on protontricks compared to launching via steam. (tinkerlaunch uses the steam controller settings though, since it is launched through steam)

For instance, for me to get a ps4 controller to work i had to reconfigure the game like this:

image

By default, only steam controller and remote play are enabled.