Frogging-Family / wine-tkg-git

The wine-tkg build systems, to create custom Wine and Proton builds
883 stars 159 forks source link

Controller not working with multiple games in Proton-TkG 6.9 (but working in Proton-6.3) #386

Closed CartoonFan closed 2 years ago

CartoonFan commented 3 years ago

Hello there, everyone! I'd just like to report that I've unfortunately run into controller issues with Proton-TkG 6.9. For some reason, several games do not detect my controller with Proton-TkG 6.9, but work fine with Proton 6.3. If it's useful, I tested with an 8bitdo Pro 2 controller, which has a physical switch to change controller type. For at least a couple games, the controller works fine in the Dualshock mode, but not in the Xinput mode. Also, I'm using a 5.11.22-159-tkg-upds kernel, running Arch Linux on a bcachefs filesystem.

As far as the games go, here's a (not comprehensive) list:

Works in 6.3, but not in 6.9:

Works in 6.9 (probably also in 6.3, though I didn't test all of them):

I apologize if this is already covered by sdl_joy or something else, but I wanted to put this out there. I've also noticed that, in some games (Mega Man Legacy Collection, for example), the Steam overlay doesn't come up on 6.9. Not sure if that's relevant, but hopefully any little bit helps. Thanks!

Tk-Glitch commented 3 years ago

It should indeed be covered by the sdl_joy patchset. But currently that patchset is disabled globally due to deep breakage it creates on current wine. The fact that it works on older version where the patch is expected to work seems to confirm that some gamepads will break on some games without it.

When I decided to disable the patch after multiple reports of total gamepad support loss (that I could reproduce), I tested the staging gamepad patches (what's being used currently) with what I have (steam controller, xbox one controller, Dualshock 3 and Dualsense) and all of them were (an still are) working in all the games I have tested with gamepad support. However, since this varies on a per-game basis, it'll be worth trying more games. I think I do have Guacamelee! Super Turbo Championship Edition and Shantae and the Pirate's Curse, so I'll install them and try.

I've also noticed that, in some games (Mega Man Legacy Collection, for example), the Steam overlay doesn't come up on 6.9.

That is kinda weird. I'm seeing this comment in proton-db: set steam input to forced off to get controller to work, occasional sound popping Which seems to point to some specific weirdness with that game and some controllers combo.

Edit: I only have Guacamelee! Super Turbo Championship Edition, actually.

CartoonFan commented 3 years ago

Thanks for looking into it, @Tk-Glitch! I tried to include as many games as I could so others could test it.

That is kinda weird. I'm seeing this comment in proton-db: set steam input to forced off to get controller to work, occasional sound popping Which seems to point to some specific weirdness with that game and some controllers combo.

I just read that too. Hmm, strange. With 3.16 and 6.3, it worked fine, without changing the controller mode or anything🤔😕

EDIT: I'm sure there's more games that what I have here, so let me know if you want me to try more. Also, here's the output of wine --version: wine-6.9.r0.gcfe44f6d ( TkG Staging Esync Fsync )

ThisNekoGuy commented 3 years ago

@Tk-Glitch With Proton-tkg 6.9.r5.gd97f6a5f, Subnautica thinks that up and down on the D-pad don't exist and that left and right are up and down

It also thinks that left and right triggers are flipped (but this specifically is also present in Proton 6.3-4)

And sometimes the game just wouldn't launch but it was fixable by just stopping the process and trying again

CartoonFan commented 3 years ago

@ThisNekoGuy Hmm, the closest thing I've experienced is the trigger half-axis issue, where, due to Windows' expectations, the triggers will do weird things, like appear to be held down constantly, or trigger a right trigger press with the left trigger. From my own experience, One Piece Pirate Warriors 3, with an unofficial mod for controller prompts, will only let you map (and use) the left trigger. CrossCode, a native game, also has some mapping issues, so it's not necessarily always Wine-specific. Also weird on Proton (at least for my controller) is how most games handle left-stick input. Moving to the right is fine, but moving to the left slows movement down a lot, almost like I'm hitting a deadzone. Additionally, moving up&left moves just left, as if I'm not holding up at all. Finally, while it's neither here nor there, the grip buttons don't show up or register at all, but this is also true for other native apps, so it's probably a Linux issue at least.

Sorry for the long post, though. Just wanted to give some support.

CartoonFan commented 3 years ago

So, it's an upstream thing, huh...😓 Oh well. I guess it'll get fixed eventually, unless I can find a non-steam game that has the same differences in behavior between mainline 6.3 and 6.9. Thanks again, @Tk-Glitch.

CartoonFan commented 3 years ago

Sorry, @Tk-Glitch, but how did you determine it was an upstream bug? I'm not trying to be difficult, but I can't seem to trigger the undetected controller behavior outside of Proton-tkg. For example, in Sokobond (added to original post), Wine mainline, Wine-tkg, regular Proton...all three seem to detect the controller just fine. I can only seem to encounter the behavior with Proton-tkg.

Tk-Glitch commented 3 years ago

The tags were only for myself. It's not an "upstream wine bug" per say. We simply don't have a single patch touching gamepad support anymore in tkg - since the proton sdl joy was the only one, and broke due to upstream changes - so it's not really our bug either. The problem seems to be between current upstream/staging and the steam input handling. Now why it only affects some gamepads is funny.

For example, in Sokobond (added to original post), Wine mainline, Wine-tkg, regular Proton...all three seem to detect the controller just fine. I can only seem to encounter the behavior with Proton-tkg.

That tends to prove what I said above. The problem is an interaction between upstream and steam input. Did you try disabling steam input or even the overlay altogether on the affected games? That should allow a fallback to wine's own gamepad handling and work as it would when running it with a regular wine build.

CartoonFan commented 3 years ago

The problem seems to be between current upstream/staging and the steam input handling. Now why it only affects some gamepads is funny.

I agree😆

That tends to prove what I said above. The problem is an interaction between upstream and steam input. Did you try disabling steam input or even the overlay altogether on the affected games? That should allow a fallback to wine's own gamepad handling and work as it would when running it with a regular wine build.

I'll give that a try😄. Also, when you say "upstream", you're talking about mainline Wine, right? Not like...any version of Proton or anything like that?

EDIT: I just tested it with Sokobond. Turning the overlay off did nothing, but disabling steam input worked. I guess it really was the interaction between Steam, Wine, and my gamepad giving me issues. It seems that I usually get the weird bugs😆 Thanks again, @Tk-Glitch!

CartoonFan commented 3 years ago

So, I just tested with proton-tkg 6.18.r10.gdbf2d00a, and roughly half of the problem games work. The rest are crashing, though, so I'll probably won't close this just yet, but it looks good to me so far.

CartoonFan commented 2 years ago

Tested with 7286e0c11904d89170016ba5b31de21b3f1b4651 on all the games listed, and except for Mega Man X Legacy Collection 2 (xaudio crash) and Ziggurat (native version available, so I didn't feel like it), all of them work fine with the overlay enabled. Good job, everyone!

Closing #386.