Keyboard Confusion with EmulationStation and RetroArch.cfg using: IPAC, RPi3B+, 15khz arcade monitor (focused on 0.78 libretro)
Marion last edited by
Here is the setup:
Pi Model: 3B+
Power Supply used: one with Kit (no lightning bolts ever)
RetroPie Version: I installed the stretch image that was mandatory for 3b+ support (Raspbian Stretch 4.3) + curl for current RetroPie
Built From: curl of current install script
USB Devices connected: 1x IPAC2
Controller used: IPAC2 -> Arcade buttons (using cherry switches)
Error messages received: None that I have found
Log found in /dev/shm/runcommand.log (if relevant):
Guide used: https://github.com/RetroPie/RetroPie-Setup/wiki/First-Installation#controller-configurations
File: (File with issue - with FULL pat
Emulator: I am only concerned with the mame2003 set at the moment. so libretro (yes i have the 0.78 rom set this is not a rom issue)
Attachment of config files: I'd be happy to post but I dont think any of my retroarch.cfg's are actually being used.
What I am trying to do:
I have an arcade machine running a rpi 3b+, using an GBS8100 for video sync, an amp for audio to the machine's original speaker, an IPAC2 for joystick to USB into the rpi3b+. Everything is working except button mapping.
For clarity purpose:
1p, 2p, CoinOP, 1p UDLR, 2p UDLR,
buttons are mapped button not in the right positions in most configurations.
I have 6 buttons for 1p and 2p (think street fighter layout).
Here's the issue. When I setup emulationstation with the configuration it sets several of the p1 buttons for the IPAC; however at that point my retroarch.cfg never seems to be used.
I have spent days reading these forum posts, the documents, and googling the issue. Im sure this is common but for the life of me I can not figure out why my configs arent being applied. I have tried about every combination of things to get this to work.
Things Ive Read
Things I have read repeatedly:
and tons of related posts.
Stuff Ive Tried
I can confirm that i have removed all of the retroarch.cfg files that had more than the #include statement in them. I can also confirm that config_save_on_exit = "false"
I have tried using:
i have tried using:
Neither seem to make any difference.
I have reconfiged the emulationstation mappings a dozen different ways.
Im sure the solution is something simple that I have missed, but am mostly surprised that there isnt just an IPAC to emulationstation and retroarch.cfg mapping somewhere I can use. At least none that I have found yet have worked.
@marion Don't delete any config files, they're in place for a reason.
You can try re-configuring your input by
- pressing tab while in-game, to bring up the Mame config dialog
Select + X(or
Hotkey + Xif you selected another key as hotkey) to open up RGUI and then using the Input configuration in RGUI to map player1/player2 buttons, then saving the Core overrides.
Give this a try first instead of editing configuration files.
rbaker last edited by rbaker
@marion What have you made
input_player1_aequal to when you say you have tried? Please post the actual config for us to see because we could spot a typo, for example
"f"would be correct but curly "smart quotes"
“f”would not be. Then there is the question as to whether you auto configured your ipac through emulationstation (i.e.pressed each button on first boot) or skipped it and configured solely through the retroarch config files. You could find for example that it is working in Emulationstation but not retroarch. Take a look at this:
Pay attention to the quotes. The full article is this and is a great starting point.
There can be no ready to go pre-configured file like you suggest for the ipac because everyone's panel is slightly different and what might work for me will probably not work for you and then the false promise of a plug and play outcome causes ill health!
caver01 last edited by caver01
@marion A very good point is made by @rbaker above. Those of us with arcade panels have built them differently, but we might also have our IPAC devices configured differently, so even if we did share config files, the hardware keys mapped inside the IPAC may not match.
The image above in rbaker's post shows the button layout as two rows of four buttons:
1sw1 1sw2 1sw3 1sw4 1sw5 1sw6 1sw7 1sw8
while my panel looks like this:
1sw1 1sw2 1sw3 1sw4 1sw5 1sw6
Furthermore, while rbaker uses LSHIFT for 1sw1, I am using LCONTROL. This is the keystroke that gets sent when I press my button wired to 1sw1 because that is how my IPAC is configured (i.e. using WinIPAC utility). The wiring matters, the location on your panel matters, and the actual key the IPAC is sending matters--and this is BEFORE any mapping is configured inside a retroarch.cfg file.
The easiest way to figure this out is to make a little drawing of your panel, label all of the switches as wired. Then, either run a test program or hook up the IPAC to a windows box and run WinIPAC. Then, mark on your drawing which buttons are sending which keys.
Finally, you should be able to look at a retroarch.cfg file which identifies the common gamepad button names, (a, b, x, y, etc) and you should be able to mark which IPAC keys should trigger these inputs based on which button/position you want to send each input.