I am building my arcade and I am using a Pi4; got the latest Retroarch build and updated the various elements. I ran at first boot in emulationstation, the setup for controller; I use an Ipac2 with 8 buttons per player, a joystick per player, and then I have 2 extra buttons per player.
In the setup I have the joysticks to up-down-left-right as usual, and as far as buttons I have X, Y, A, B, LT and RT for each player; this cover 6 out of the 8 buttons per player on the panel. I set select and start to the top 2 buttons, so this leave me with 2 extra buttons per player. One of those 2 is set as hotkey in emulationstation, the other is left unassigned for now.
I then ran Retroarch from the retropie menu, and went in the settings for controllers. Changed the number of players to 2 (since I have only the ipac 2 connected), and each controller is set to be a retropad so no analog controls. I went through the configuration,and configured each player in the same exact way as I did with emulationstation: XYAB LT RT, Select Start for the 8 buttons, the joysticks for movements and select and start for the top 2 buttons. On top of that, I went in the hotkeys menu, and selected the 2 remaining buttons (the one I set as hotkey in emulationstation and the one that was not assigned) and assigned one to quit retroarch, and the other to pull the retroarch menu.
This is where confusion starts; I save and quit, so this should now be the default for all cores in retroarch; but when I run emulationstation and run a game, for example an arcade running either mame or FBA, the game start, and when I press just the button to quit retroarch or to call the menu, nothing happens. I need to hold the button I set as hotkey in emulationstation AND either the menu button or the quit button, and this will pull the menu or quit the game.
My first question here is “why do I have to press the hotkey set in emulationstation, to quit retroarch?”.
So I told myself that the hotkey is always active and it is “passed” to retroarch from emulationstation. This means that I can use those 2 buttons I used for the menu and quit retroarch, in emulationstation as L and R shoulder buttons, since the menu and the quit functions will happen only when I press the hotkey; and here we have the second issue: now that I set L and R shoulder buttons in emulationstation, when I run a mame or FBA game, L and R works, but now I can’t quit anymore nor I can pull the menu, because those combinations of buttons does not work. And out of the blue, now to quit I have to hold for few seconds the hotkey button and the button I assigned as “start” button.
I didn’t change anything in the retroarch settings; so the second question would be “did emulationstation got upset that I did assign a non-hotkey function AND a hotkey function to the same button?”.
In the end, all that I want is to use the ipac2 for my 2 player controller; and that should be pretty straightforward, but this whole hotkey situation is really confusing and it is hard to deal with, since the documentation overall is only giving generic guidelines. I get that I assign controls in the cfg file, but if I set controls in emulationstation, which run retroarch and those controls get messed up, to the point where the global controls does not even stick between cores (tried to run a Sega CD game and my A button which should be the first fire button was not working, and instead the Y button was the fire button; which I assume it is because the Sega controller has XYZ as buttons?).
On Windows I set the keys to my xbox one controller and everything works fine; select+start always works; but as far as RPI with the ipac2, since it emulate a keyboard; I guess it has issues and mess up things. Spent a day going back and forth trying to make sense of it, and most videos and tutorials mention controllers…Yes, that works great! The issue is with a usb encoder like the Ipac2, which is simulating a keyboard. For mame works great, but in a setup like the emulationstation+retroarch, it seems to be just a big pain in the neck. And I am aware that I can switch it to Xinput mode; although that didn’t work because my arcade is not set to be used as joypad; I tried and things were pretty weird when I switched to the various ipac2 modes. The only one that seems to work somehow is the keyboard mode which is the default.
Sorry for the wall of text; hopefully someone has an ipac2 used as keyboard, that can give me suggestions about how to set up things on my retropie setup. Thanks in advance