Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lenovo Legion Go controller issues adressed #3682

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

lburygin
Copy link

@lburygin lburygin commented Feb 6, 2024

@JosefNemec
Copy link
Owner

// there is a bug in SDL library - probably some DEVICEREMOVED events don't fire or DEVICEADDED events fire twice

Do you have link to the bug? Did you try the latest version of SDL to see if it's fixed there?

Also, why is this new option needed if this PR completely reloads all devices anyways so there shouldn't be any ghosts left because we didn't get removed event from SDL.

@lburygin
Copy link
Author

lburygin commented Feb 6, 2024

Do you have link to the bug?

Unfortunately, I dont have the link, I just guessed that the bug is in SDL cause nothing fixes it except reloading gamecontroller subsystem.

Did you try the latest version of SDL to see if it's fixed there?

I tried latest version but I had problems with interop code (Playnite crashed on launch) and didn't have time to figure out yet how to properly update it, sorry. But it's reasonable to try on new version, you are right

Also, why is this new option needed if this PR completely reloads all devices anyways so there shouldn't be any ghosts left because we didn't get removed event from SDL.

Because there is more than one problem. In addition to SDL ghosts, there (I guessing) is an issue with Lenovo Drivers - controller being registered as new device in device manager every time it connects/disconnects, so device ID is different and if I add controller to DisabledGameControllers, after reconnect it will be unchecked because ID is not the same. So, if one uses Handheld Companion with XInput emulation they will have double triggers even after SDL reloading. The new setting 'fixes' it for this particular case (not ideal solution, but I think there is nothing we can do at the current moment, maybe you have some better ideas)

Sorry for my English

@JosefNemec
Copy link
Owner

There shouldn't be any interop issue with updated SDL, they are not making breaking signature changes in current (2.x) release as far as I know. Just make sure you are using 32bit release dlls since Playnite is 32bit process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants