[Bug 52841] New: leverless arcade controller SOCD cleaning regression

WineHQ Bugzilla wine-bugs at winehq.org
Tue Apr 19 20:24:33 CDT 2022


https://bugs.winehq.org/show_bug.cgi?id=52841

            Bug ID: 52841
           Summary: leverless arcade controller SOCD cleaning regression
           Product: Wine
           Version: 7.0
          Hardware: x86-64
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: -unknown
          Assignee: wine-bugs at winehq.org
          Reporter: namtsui at gmail.com
      Distribution: ---

Created attachment 72236
  --> https://bugs.winehq.org/attachment.cgi?id=72236
fix

downstream bug: https://github.com/ValveSoftware/Proton/issues/5527

There is a regression in wine SDL. I tested wine 7.0 using Linux 5.17.2. I
think this is the commit to blame:
https://github.com/wine-mirror/wine/commit/9cf1e8353cf05af1009e3e5d40b62f0e70761f3f

See the file: wine-7.0/dlls/winebus.sys/bus_sdl.c
https://github.com/wine-mirror/wine/blob/6d4ec1255acceec7152ed98764ee29991ac04f10/dlls/winebus.sys/bus_sdl.c#L850-L855

Leverless arcade controllers have all-buttons. One such controller is the
hitbox controller from the company hitbox. It has four directional buttons
mapped to DPAD. It has simultaneous opposite cardinal direction (SOCD)
cleaning. If you hold down + up, it should output up. If you hold left + right,
it should output nothing at all (neutral).

I added print statements. See the attached fix.

In clip 1, I demonstrate SDL2 events when down and up are held simultaneously
during a jump for a while:

    hold down (DOWN press event)
    hold up (DOWN release event. UP press event.)
    hold both for a while
    release all (UP release event. DOWN release event.)

[1] https://clips.twitch.tv/PlausibleSparklingButterJonCarnage-1nJQjUmS_kATb5Y6

In clip 2 the actual bug is shown.

    hold down (DOWN press event)
    press up (DOWN release event. UP press event.)
    steps 1 to 2 were demonstrated in clip 1.
    release up (DOWN press event. UP release event.)
    keep holding down

[2] https://clips.twitch.tv/FunnyPlayfulClintmullinsArgieB8-p3pUOVQuS-eA8oqi

The UP release event at the end in step 3 causes the axis to be reset to 0.
This ignores the DOWN press event immediately preceding it.

Clip 3 shows after the proposed fix is applied.

[3] https://clips.twitch.tv/RacyNeighborlyCookiePeteZaroll-2wwLnflwjAa3ZlFz

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list