ValveSoftware / Proton

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

Games no longer respond to horizontal scrolling input with Proton 5.13-1 #4341

Closed kisak-valve closed 3 years ago

kisak-valve commented 4 years ago

Originally reported on #3773 starting at https://github.com/ValveSoftware/Proton/issues/3773#issuecomment-716009447.

@Sha1rath commented on 2020-10-24T17:12:30:

I just tried it with Proton 5.13-1 and mouse wheel tilting is not recognized by the game anymore. Works again after going back to 5.09.


@kisak-valve commented on 2020-10-24T17:23:17:

Hello @Sha1rath, for clarity, are you referring to horizontal scrolling events on your mouse? What model mouse are you using?

Usually I'd ask for a Proton log to go along with the regression, but I don't think that would reveal anything interesting without some addtional logging turned on.


@Sha1rath commented on 2020-10-24T17:59:11:

@kisak-valve Yes, horizontal scrolling by tilting the mouse wheel (called tilt-wheel or 4D-wheel). I am using a Roccat Kone AIMO Remastered. In game, the tilt buttons are recognized as "Mouse 4" and "Mouse 5", xev outputs them as "button 6" and "button 7". I tried rebinding it in the game because I assumed maybe the keycodes just changed, but when assigning a new key in the settings menu, when I tilt the wheel it keeps showing "press new key" (or so). The game totally doesn't notice.

About the log: I also assumed that an input event not being recognized would not log anything.

By the way, as my mouse has a lot of buttons (12 if you count all wheel directions), I realized that many of the buttons don't work in proton. The mouse can bind its own buttons to keyboard inputs, which I did as a workaround. Would be nice to see all mouse buttons working without binding keyboard macros to them in the mouse itself. However, the only change I noticed was about the tilt wheel (which I don't want to assign with keyboard macros because it would disable horizontal scrolling in my Linux desktop)...


@alasky17 commented on 2020-10-30T17:33:54:

@Sha1rath Could you get a log with +x11drv,+x11settings,+event,+cursor,+win,+message as additional logging channels on both 5.0-9 where it is working and 5.13-1 where it fails?


@Sha1rath commented on 2020-10-30T18:35:17:

Here are the logs: DoomEternalProtonLogs.tar.gz

And here is what I did when logging them:

Both

Proton 5.13

Proton 5.0-9

Both

Thank you very much for addressing this.

P.S.: I just tried Dying Light and there I have the same problem: Tilt wheel works in Proton 5.0-9 but not in 5.13. So it is not likely just a Doom Eternal specific problem.

alasky17 commented 4 years ago

@Sha1rath I made a testing version of Proton with the commit suspected of causing this regression reverted. Could you test this build and let me know if the horizontal scrolling is working again?

To test the build: 1) Create this folder if not already in existence: ~/.steam/steam/compatibilitytools.d 2) Download the bug-18365-revert.tar bundle from here: https://www.codeweavers.com/xfer/alasky/proton-test/ (lock code is "mouse") 3) Untar the bundle in compatibilitytools.d 4) Reboot Steam. You should be able to select "bug-18365-revert" from the Proton version dropdown list.

Shallrath commented 4 years ago

@alasky17 I tested your build with Doom Eternal and it works fine, same as with Proton 5.0-9.

rbernon commented 4 years ago

Hi @Sha1rath, can you confirm if possible, that the horizontal scroll and additional buttons are correctly detected on Windows in this game?

rbernon commented 4 years ago

I quickly checked on Windows with my RAT7 mouse and it seems that the horizontal wheel does nothing there either. It's unfortunate that we moved closer to the Windows behavior and that it broke some use case but I think we now do the right thing here.

As a possible workaround to get back the old behavior, it should be possible to remap the mouse and wheel events on the X11 side, either in xorg.conf, or by dynamically changing the mouse mapping using xinput set-button-map command.

Shallrath commented 4 years ago

The horizontal scrolling isn't detected in Doom Eternal on Windows 10. So yes, if the new Proton version now has the same input event as windows, this would explain why it broke.

Another workaround is remapping the tilt wheel in the mouse itself (which gaming mice can typially do). But as I said, this has the downside of breaking horizontal scrolling on the Linux desktop.

aeikum commented 4 years ago

Hey @Sha1rath. After a bunch of internal back-and-forth, we decided to revert that commit in an upcoming release. This will restore the 5.0 and earlier behavior. It's a trade-off between supporting horizontal scroll messages, or mapping those events to the extra mouse button messages. In the end we decided it's probably nicer for users to have the extra button mappings than horizontal scrolling.

I don't promise to keep this around forever, if we suddenly need horizontal scrolling support, but it will work for you at least until that happens.

aeikum commented 3 years ago

This commit was reverted in 5.13-2. Can you confirm it's working for you again, @Sha1rath ?

Shallrath commented 3 years ago

Yes, it works :+1:

kisak-valve commented 3 years ago

Thanks for retesting, closing.