PS3 Controllers (BT) Changing Order When 4th One Connected
-
I'll preface this by saying that I believe this an an underlying OS issue and I see the same behavior on Ubuntu Desktop, Batocera x86 and Retropie x86 on a few different PC hardware (generic, Lenovo, HP, etc.).
Recalbox 7.1.1 x86 on a Asus Chromebox CN65
I'm having an issue with trying to use 4 genuine PS3 controllers via BT on an x86 build (using the Bluez driver although I tried all 3). I am able to connect/register each without issue.
-
When I power on 1 controller and launch a 4 player game (Gamecube Mario Kart Double Dash in this case), the led indicator says it is P1 and everything works as expected (mapped to P1).
-
When I power on a 2 controllers and launch the same game, the led indicator says it is P2 and everything works as expected (P1 mapped to P1, P2 mapped to P2).
-
When I power 3 controllers and launch the same game, the led indicator says it is P3 and everything works as expected (P1 mapped to P1, P2 mapped to P2, P3 mapped to P3).
-
When I power on 4 controllers and launch the same game, the led indicator says it is P4, however, P1 is now P2 in-game (LED still says P1), P2 is now P3 in-game (LED still says P2), P3 is now P4 in-game (LED still says P3) and P4 is now P1 in game (LED still says P4).
Also, I have to use the P4 controller to exit the game (select+start) since it is now P1. The controller that has LED1 lit will not work as it is technically P2 now.
FYI...I see the exact same issue is 4 player games in Retroarch (i.e. Mame TMNT). The 4th controller takes ownership of P1.
As far as I can tell, everything looks correct in /dev/input. Check the timestamps of the 'js#' entries as I powered on the controllers 1 minute apart.
# ls -la /dev/input total 0 drwxr-xr-x 4 root root 480 Mar 16 13:55 . drwxr-xr-x 15 root root 3940 Mar 16 13:55 .. drwxr-xr-x 2 root root 100 Mar 16 13:51 by-id drwxr-xr-x 2 root root 100 Mar 16 13:51 by-path crw-rw---- 1 root input 13, 64 Mar 16 13:51 event0 crw-rw---- 1 root input 13, 65 Mar 16 13:51 event1 crw-rw---- 1 root input 13, 75 Mar 16 13:52 event11 crw-rw---- 1 root input 13, 77 Mar 16 13:53 event13 crw-rw---- 1 root input 13, 79 Mar 16 13:54 event15 crw-rw---- 1 root input 13, 81 Mar 16 13:55 event17 crw-rw---- 1 root input 13, 66 Mar 16 13:51 event2 crw-rw---- 1 root input 13, 67 Mar 16 13:51 event3 crw-rw---- 1 root input 13, 68 Mar 16 13:51 event4 crw-rw---- 1 root input 13, 69 Mar 16 13:51 event5 crw-rw---- 1 root input 13, 70 Mar 16 13:51 event6 crw-rw---- 1 root input 13, 71 Mar 16 13:51 event7 crw-rw---- 1 root input 13, 72 Mar 16 13:51 event8 crw-rw---- 1 root input 13, 73 Mar 16 13:51 event9 crw-rw-r-- 1 root input 13, 0 Mar 16 13:52 js0 crw-rw-r-- 1 root input 13, 1 Mar 16 13:53 js1 crw-rw-r-- 1 root input 13, 2 Mar 16 13:54 js2 crw-rw-r-- 1 root input 13, 3 Mar 16 13:55 js3 crw-rw---- 1 root input 13, 63 Mar 16 13:51 mice crw-rw---- 1 root input 13, 32 Mar 16 13:51 mouse0
Any chance that there is someone else out there that has 4 OEM PS3 Sixaxis controllers to see if you can replicate the issue. Is there anything else I can provide to help troubleshoot the issue?
TIA,
John
-
-
@johnodon I can't test it, but I recommend that you see if these tutorials help:
- https://recalbox.gitbook.io/documentation/tutorials/controllers/configuring-custom-buttons/how-to-customize-controller-mapping
- https://recalbox.gitbook.io/documentation/tutorials/controllers/configuring-custom-buttons/create-a-custom-configuration-by-emulator
- https://recalbox.gitbook.io/documentation/advanced-user/configuration/configuration-overload
- https://recalbox.gitbook.io/documentation/advanced-user/configuration/configuration-overload/retroarch-overloads
Try to change the order of the controls in the Retroarch Menu, and then do a configuration overload.
-
@Zing Thanks for the info but this is not RA specific. The issue appears to be happening at a lower level since Dolphin is also impacted.
BTW...I just built a Pi4 using the latest image and the same controllers and the issue does not exist. Each controller maps to its respective player correctly. So, it appears that this is an x86 specific issue.
John
-
@johnodon I recommend that you open an issue:
https://gitlab.com/recalbox/recalbox/-/issues