JosefNemec / Playnite

Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.
https://playnite.link
MIT License
9.34k stars 502 forks source link

Controller detected but only triggers work #3794

Closed the0neWhoKnocks closed 2 months ago

the0neWhoKnocks commented 2 months ago

Bug Description

My old official Bluetooth XBox controller worked in Playnite, but a joystick died and I decided to upgrade to the 8bitdo 3-mode controller.

I have the controller set to 2.4 wireless (X-Input), and it works everywhere except Playnite aside for the triggers scrolling the UI vertically.

I used sdl2-gamepad-mapper and it detected my controller, I copied the resulting string over to gamecontrollerdb.txt, still the same result.

There's a similar report on reddit as well.

To Reproduce

No response

Diagnostics ID

1c5df34a-9fe2-455f-a94a-6f93017fc917

Screenshots

No response

JosefNemec commented 2 months ago

Try replacing this file in Playnite's install folder: https://github.com/libsdl-org/SDL/releases/download/release-2.30.6/SDL2-2.30.6-win32-x86.zip

Other than that, no idea. I do see some open issues in SDL2's repo related to 8bitdo controllers, but it looks like most of them are caused by bad mappings. Make sure that your custom mapping in gamecontrollerdb.txt is the only one for that controller ID (maybe there's broken duplicate one as well).

the0neWhoKnocks commented 2 months ago

Replacing the .dll worked. Perhaps adding that to the controller support documentation as a possible fix, may help others.

I commented out my addition to gamecontrollerdb.txt, restarted Playnite and it still worked.

How does gamecontrollerdb.txt work? I was assuming that I'd just have to add my contoller's mapping string and Playnite would just pick it up from there. Are the definitions baked into that .dll?

JosefNemec commented 2 months ago

Replacing the .dll worked. Perhaps adding that to the controller support documentation as a possible fix, may help others.

That means the issue was somewhere in SDL2 and was fixed in some recent update. Playnite doesn't use the most up to date version since there wasn't Playnite update for some time now, I will have to push new Playnite update with update SDL2 dependency.

JosefNemec commented 2 months ago

SDL2 was updated to the latest version in 10.34 update.