-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Controllers changing GPIO joystick device ID on restart #17219
Comments
Is this with linuxraw joypad driver? Can you get a RetroArch log for some of these error scenarios?
That should not happen, linuxraw driver should recognize vendor/product IDs correctly. But, if there is a clash, removing the offending config files should help with that. Without autoconfig, some of the possible solutions (like the device reservation function) will not work. In any case, there were improvements after 1.17.0, so a newer Lakka nightly build may also help if there is one available. |
Currently using the Logs don't appear to show anything out of the ordinary besides the port allocations.
Sometimes GPIO connects even later.
The
Contents of
Possibly related console error but not included in the log:
Will experiment with the nightly builds and |
No faulty working can be seen from the logs. Even though the module seems to provide primarily those inputs that are read by the linuxraw driver, the udev driver can also see it, even with vid/pid 1/1 which is intentional according to source. The order of the devices is primarily controlled by the OS, but recent RA builds provide a way to override (#16647 ). If the GPIO profile was set up originally when both controllers were plugged in, it may have had the wrong vid/pid, that was a long standing fault that was also recently fixed (#17156). The autoconfig file pasted above looks correct, but there may be another one saved that has the GPIO layout and the XBox vid/pid, which can cause problems. |
Description
Controllers shifting joystick device indexes but not port mappings on restart leading to non-functional controls on both devices.
Expected behavior
GPIO joystick keeps it's configured device/port mapping from
joystick.conf
. Control mappings remember what device type they were configured for even if their index or port changes such that they stay functional during player drop in/out or restart, without having to rely on auto-configure which could overwrite said mappings.Actual behavior
The
mk_arcade_joystick_rpi
is set tomap=1
injoystick.conf
which, during normal operation, puts the joystick in index 1 port 1 and the controller in index 2 port 2 as intended when a new one is connected. However, on a restart one of several things can happen:Thinking this might be an Xbox thing or 3rd party controller issue, I tried with a PS4 controller and had the same issues. Connecting all three devices simultaneously then restarting results in even weirder behaviour:
Then disconnecting the PS4 controller but leaving the Xbox controller and restarting...
Interesting thing to note is that this happens each restart of the RetroArch application without rebooting the Pi itself or changing input device connectivity between restarts. If I leave the flipped indexes, it restarts fine as if that's the preferred order but only if I keep the same controller(s) connected every restart. This would be fine if the devices rebind to their original ports or carries the control mappings over but that never appears to be the case. Auto configure is disabled as it auto-fills the joystick mapping with non-existent or duplicate controls that cannot be removed otherwise.
This may be related, but the turbo button binding is permanently stuck as 'B' for all controllers despite what the config is set to during all this, even if the rest of the controls are seemingly inoperable. There also may be some relation to issue #17113
Going to take another deeper look at this soon with logging enabled to hopefully make sense of this behaviour.
Steps to reproduce the bug
Extra:
B
Turbo button mapping cannot be remapped or disabled during all this for some unknown reason. May be a separate issue.Bisect Results
This is occurring on a fresh install of Lakka on a RPi 4B+ using
mk_arcade_joystick_rpi
for the GPIO joystick.Version/Commit
Environment information
The text was updated successfully, but these errors were encountered: