ValveSoftware / Proton

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

"Hitbox" type controller, regression in Proton 7 in fighting games #5607

Closed andrewdbanks closed 2 years ago

andrewdbanks commented 2 years ago

Description

About a year ago now, there was an issue in Proton where Hitbox style controllers, a controller where you have 4 directional buttons instead of an arcade stick, would send inputs incorrectly. See issue #4787. That issue has returned in Proton 7.0-1. It seems that Proton 7 is necessary for compatibility with The King of Fighters XV, where I recognized the familiar issue. I booted up Guilty Gear Strive on the default Proton version (presumably 6.3-8) and saw that the issue was not present. When I forced version 7.0-1, it showed the same behavior as KOF XV.

System Specifications

Kubuntu 21.10 AMD Ryzen 5 5600X Radeon RX 6800 XT Mesa 21.2.2 32 GB RAM Proton 6.3-8 and 7.0-1

Steps to Reproduce

With a hitbox style controller, holding down and then quickly pressing up should result in down, then up, the down again. Instead, on Proton 7.0-1, it results in down, then up, and won't register another down input until you let go of down and press it again. You'll need a copy of Guilty Gear Strive.

  1. Boot the game up and find the training mode. Pick any character. I used Goldlewis.
  2. Go into the options and ensure that the input display is turned on, so you can see on screen which directions the game is reading.
  3. Hold down-back, which should be two buttons, down and back.
  4. Without letting go of those two buttons, tap the up button. Your character should jump and then land again.

Expected: When the character lands, they are crouch blocking. Actual: When the character lands, the game no longer sends a down input, and the character is walking backwards.

GoLD-ReaVeR commented 2 years ago

Is the behavior describe consistent with consoles? Shouldn't there be something in the hitbox to prevent you doing stuff like that for it to be tournament legal?

Can you turn off steam input support in the game's properties and see what happens then? If the hitbox stops working in Strive you may want to try KoF15 and see what happens there. I remember GBVS being steam controller input only, I haven't played Strive as I respect myself too much for that.

andrewdbanks commented 2 years ago

Is the behavior describe consistent with consoles? Shouldn't there be something in the hitbox to prevent you doing stuff like that for it to be tournament legal?

Can you turn off steam input support in the game's properties and see what happens then? If the hitbox stops working in Strive you may want to try KoF15 and see what happens there. I remember GBVS being steam controller input only, I haven't played Strive as I respect myself too much for that.

The expected behavior listed above is the tournament legal standard. Look into something called SOCD cleaning. To my knowledge, all hitboxes register a simultaneous down+up to be an up input, since going from crouching to jumping is a common use case. Like last time I filed a similar bug, I also checked this against the Linux-native Skullgirls, with no Proton involved, and got the desired result of down+up = up. With Steam Input off, it exhibits the same behavior in Proton 7 (in KOF XV and GGS), even though my KDE controller settings definitively report that down+up is sending an up input at the operating system level as expected, so this does in fact appear to be a Proton issue. You can replicate it with just about any fighting game, but I suggest Strive because it's a big game that many people own, and for the sake of eliminating variables, it's one of the ones I tested in that will work on Proton 6 and 7.

Interesting that you feel you respect yourself too much for Strive but still subjected yourself to GranBlue Fantasy Versus.

kisak-valve commented 2 years ago

Hello @andrewdbanks, this issue is already being tracked at #5527. Closing as a duplicate.