I recently built my own Picade 8" with a Pi4 and I’m really enjoying it.
However, one thing I’m curious about is that the built-in gamepad (connected via GPIO > XHat-Board) is recognized by RetroPie as a keyboard, rather than as a gamepad, which I would have expected.
You might say, “So what?” But this leads to an issue: you can’t play games with two controllers simultaneously. When I connect an additional controller (I’ve tried several via Bluetooth as well as a USB gamepad), it’s recognized as a gamepad, but it’s mapped to Player 1. As a result, I end up with two controllers for Player 1 (both the Picade’s built-in buttons and the second connected controller) but none for Player 2.
The only way to resolve this so far is to connect two external gamepads at once.
My question is: Is there a way to map, configure, tweak, code, or script Picade/RetroPie/XHat so that when a second controller is connected, it’s assigned to Player 2 instead of Player 1?
The only relevant forum posts I found are quite old and refer to outdated XHat firmware.
I imagine I’m not the only one facing this issue, so perhaps there’s already a solution?
I managed to get two players / two different controllers working at the same time by changing settings in retroarch.
I could achieve this by connecting my second controller and than change port binding #1 and port binding #2 under setup > retroarch > input > port binding.
I still dont know if this will be persistent or has to be done every time connecting a 2nd controller. Also curious about the behaviour when connecting a different type of controller such as USB.
Will try and report - maybe it will be helpful for others in the future.
Sidenote: To my mind, this is just a workaround. Preferably controllers attached to the X-Hat, would be identified as gamepad and not as keyboard.
I’m guessing, as I don’t own one, that having the built in controller setup as a keyboard makes the software setup easier? It may also be because the onboard buttons all go to the GPIO header, no USB HID for that?
Might be. I had GPIO interfaces that managed to identify attached gamepads as such.
They will have their reasons (or it is just because, nobody was ever thinking about it).
Unfortunately, I could not find anything official about it anywhere.