Keyboard configuration issues with an IPAC2 in a Retropie/Pi/Mame arcade setup
-
Pi Model or other hardware: 4
Power Supply used: not sure, but I've used it before with a similar setup
RetroPie Version Used : How do I find this out? It was downloaded in 2023
Built From: Pre made SD Image on RetroPie website
USB Devices connected: IPAC2
Controller used: Custom Arcade build with Sanwa joysticks and happ buttons
Error messages received: none
Guide used: trawled the site for all the guides on controllers for ES, RP, and ROMs
File: (File with issue - with FULL path)
Emulator: Emulation Station / RetroPie config
Attachment of config files:
How to replicate the problem:Hello,
I've built a custom arcade standup unit, mostly to play old arcade games from the 1980s and 1990s.
I previously built this Pi4 on a different SD card with an Xin-mo to connect an arcade setup. Then the joysticks broke, and the Xin-mo was unreliable, so I bought an IPAC2 to replace that, and some Sanwa joysticks and Happ buttons. So all I have to do is upgrade the pieces and it'll work right?
So I understand there are three/four levels of controller inputs.
-
There's the IPAC2 baked in configuration. I bought this in 2022, so its one of the newer ones. I've tested it on a windows PC, and all the standard MAME keys are coming up when I push the buttons, or the cursor is moving in the right direction.
-
There's the retroarch.cfg, which I've manually configured to mimic the standard MAME setup.
-
There's the configuration in Emulation Station. I've configured this from the keyboard input menu, but it only accepts a "player one", there's nothing for "player 2". When I previously had the Xin-Mo keyboard board, I had to insert a line of code to split the keyboard in two, but with the IPAC2 as I understand I don't need to do this. More on this later.
-
There's the standard ROM configs, which I haven't touched, but worked in the previous build, so I presume that isn't the problem.
So when I'm in emulation station I can move around with the configuration from the "configure input" menu in ES. But when I go into MAME and select a game to play eg Street Fighter 2, then the player 1 controls are screwed up, but the player two controls work. It's like the config from the ES is taking precedence over the RP configuration.
So for player 1, it appears that the two configs are bleeding into one another. Instead of up being up, up is up/right. It's like it's trying to go up and right at the same time, so every move is one degree off in the 8 point circle of directional moves. Maybe I have the sanwa joystick the wrong way around, but... player 2 directions work!
For player 2, the config is getting read off either the retroarch.cfg or the IPAC2 config. The directions work, but there's some issues with button order which I'll need to look at.So what I think I need to do is define the two players separately in ES the same way I did in the retroarch.cfg. I can't see where to do this apart from through the GUI on "configure input" and then there's no option for creating the second player (the IPAC2 is running on a single USB) so I'm hoping there's another way. The ES and RP configs just seem to be clashing as the player 1 doesn't work but the player 2 does.
Or that I'm just doing something very basic wrong.
I would greatly appreciate your patience and time on this.
-
-
Is the IPAC configured as a gamepad or as a keyboard ? If both P1 and P2 are gamepad based but don't produce the same inputs when the same button is pressed, then it won't work.
You say you modified
retroarch.cfg
- can you post the configuration you added to the file ? -
@mitu Thanks for coming back, I appreciate your time. I've included the screenshot of what they added. One thing I did read on the docs is that if your IPAC2 is auto configured, and you configure again in retroarch then if you engage a command it might do it twice?
I saw the point on the - is it a gamepad or a keyboard. I haven't checked in the Ultimarc application, but it said in those docs that it comes in keyboard mode, and when I plugged the keyboard into my PC then it did do the keyboard output (that was possible) to notepad. But that being said, when you go into Emulation Station for the first time, it does say "one gamepad detected" so maybe I do need to download that config app and make sure it's set to keyboard?
Edit: I can see that my last poor attempt to configure the controller in ES has overwritten my config for player 1 in retroarch.cfg so it's all jumbled again. It was late and I didn't do it properly, I really just want it to point at the MAME and IPAC2 defaults for simplicity.
I also checked the es_config.xxx? (I can't remember the name of the file) but it just seemed to be a short xml file with no controller information.
Thanks again!
-
@Jolt said in Keyboard configuration issues with an IPAC2 in a Retropie/Pi/Mame arcade setup:
Thanks for coming back, I appreciate your time. I've included the screenshot of what they added. One thing I did read on the docs is that if your IPAC2 is auto configured, and you configure again in retroarch then if you engage a command it might do it twice?
I don't think so. If your IPAC is configured as a keyboard, then modifying
retroarch.cfg
accordingly should be enough.I saw the point on the - is it a gamepad or a keyboard. I haven't checked in the Ultimarc application, but it said in those docs that it comes in keyboard mode, and when I plugged the keyboard into my PC then it did do the keyboard output (that was possible) to notepad.
So it seems it works like a gamepad.
But that being said, when you go into Emulation Station for the first time, it does say "one gamepad detected" so maybe I do need to download that config app and make sure it's set to keyboard?
If you keep a button pressed and start configuring it, it will also print the name of the device - which might give an indication whether it's a keyboard or gamepad. Alternatively, you can run the following command after exiting EmulationStation and you can see which kind of devices are detected currently by the system.
cat /proc/bus/input/devices
I also checked the es_config.xxx? (I can't remember the name of the file) but it just seemed to be a short xml file with no controller information.
That would be
es_input.cfg
(in/opt/retropie/configs/all/emulationstation
), which is indeed anxml
formatted file. If you only see information about a keyboard, then it means your IPAC is presenting itself as a keyboard. -
Thanks @mitu
I've run the cat command and I'm getting more devices than I was expecting. I have a USB hub and a USB keyboard along with the IPAC2, but there seem to be multiple instances of this. Sorry I should have stated that before.
Is this normal? Or are these multiple instances conflicting somehow?
Many thanks
Jolt -
@Jolt said in Keyboard configuration issues with an IPAC2 in a Retropie/Pi/Mame arcade setup:
Is this normal? Or are these multiple instances conflicting somehow?
I don't think there's an issue here. The IPAC seems to work like a keyboard, there's no gamepad/joystick entry shown. You can configure it in ES, but do so only for P1. For P2, manually editing
retroarch.cfg
should be enough.
Also, please enable SSH and copy/paste the commands output from the terminal to the topic, don't post any more pictures. -
@mitu Thanks again, I'll try this. .... but...
I do feel a bit silly, when I set the controls last night I didn't do a complete button mapping and now I can't select the "configure inputs" in emulation station.
I tried to go into ../config/all/retroarch.cfg and update the configuration there back to the MAME default, but it ignores that an uses the incomplete mapping I did last night.
I looked on forums a bit and it suggested to run the retropie_setup.sh, but I'm a bit concerned about how much that will roll everything back.
Is there a way to reset all the keyboard controller work only? Or is there a way to manually hardcode the Emulation Station controls like I've done in the rertoarch.cfg?
Thanks again! -
@Jolt said in Keyboard configuration issues with an IPAC2 in a Retropie/Pi/Mame arcade setup:
I tried to go into ../config/all/retroarch.cfg and update the configuration there back to the MAME default, but it ignores that an uses the incomplete mapping I did last night.
retroarch.cfg
is not the MAME configuration file, it's RetroArch's, which happens to also run MAME cores.I looked on forums a bit and it suggested to run the retropie_setup.sh, but I'm a bit concerned about how much that will roll everything back.
Running the setup script will not do any un-intended configurations. You can use the reset configuration menu and you'll be able to start over with the EmulationStation's input configuration.
Is there a way to reset all the keyboard controller work only? Or is there a way to manually hardcode the Emulation Station controls like I've done in the rertoarch.cfg?
You can manually add the configuration in EmulationStation, but it's better to go through the input configuration - see above on how to reset the configuration and start anew.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.