Can't skip button mapping in emulation station
-
Hi All
I building a full sized arcade cabinet at the moment using a Pi 3B+, RetroPie v4.4 and 3 zero delay USB Keyboard Encoders with arcade style joysticks and buttons connected to the encoder boards.
I have 2 players so one usb keyboard encoder per player and a third usb encoder just for a coin mechanism and a hidden credit button. So the plan is that both the hidden credit button and coin mech are connected to the same input on the 3rd usb keyboard encoder.
Emulation Station on first boot sees that there is 3 usb input devices and the 1 and 2 player encoders work perfectly in setting up the buttons and then when I run out of physical buttons I can just hold any button to skip the rest of the buttons on the setup on screen and job done. However with the 3rd encoder I press the hidden credit button and it maps fine to button A and for the rest of the button mapping onscreen I should be able to press and hold the one button to skip through the rest of it but it won't let me. I press and hold the button for anything up to 30 seconds and it just won't skip like it did on the 1 and 2 player button setup. I tried adding a few spare buttons to the 3rd usb encoder just to see if having the extra physical buttons would allow me to skip but they don't. Is there a minimum number of buttons that need to be setup in Emulation Station before it allows me to skip the rest of the setup?
Just to be clear as I say the 3rd usb keyboard encoder is just for credit / coin input with a single button and coin mech sharing the same input so the player has the choice of pressing the button for a credit or putting a coin into the coin mech.
Is there a way to manually edit the button config for this 3rd usb encoder from the command line or something rather than having to use the emulation station gui config that unless you can get to the end of it by skipping which it won't allow me to do there is no way to save it just the option to F4 out of it.
I did try going into the MAME setup while in an arcade game and add the credit button there but it didn't work and I think I remember seeing somewhere that if you don't set up the controller via the emulation station button config then MAME or other emulators won't see it in their own set up menu.
If anyone has any ideas or suggestions I would be most grateful as I have Googled for hours trying to figure this out and haven't found anything to fix the situation yet.
Also just for your information... the 1 player and 2 player usb encoders are for illuminated buttons and work by passing a voltage not just to the bulb / led on the buttons but across the switch / button and registers a keypress when the voltage / circuit is broken which is fine I suppose but therefore doesn't allow me to use the coin mech on either of these boards because the coin mech pulses a voltage to register a keypress so hence why having to use a 3rd usb keyboard encoder board for the coin mech.
Thanks
Rab
-
First, not all buttons are 'skippable'. Some of then need to be mapped by Emulationstation in order for it to work (A/B for instance).
How. many buttons does your 3rd encoder have ? You can configure them in the emulator without configuring them in ES.- for RetroArch based emulators, you can create your own mapping as described in Controller cofiguration. Just create a
.cfg
file in the autoconfiguration folder and fill in the proper button values as determined byjstest
. - for non-Libretro emulators, you'll have to find out how to create that configuration once you start it. For MAME emulators, it's usually done by using a keyboard and pressing up the
TAB
, which will let you configure your input.
- for RetroArch based emulators, you can create your own mapping as described in Controller cofiguration. Just create a
-
Hi Mitu
Thanks for your reply. The 3rd encoder only has one button so perhaps that's where my problem is the fact that I can't skip until I assign a physical button to "Button B". I am sure I already did do A and B by adding a spare button to the encoder so I could assign both A and B and then use the second spare button to try and skip the rest of the config until I got to the end.
Just wondering does the F4 keyboard option to quit the ES mapping section.... does it safe what has been mapped and then quit or does it just quit without saving anything and the only way to save the ES button mapping is to make it to the very end?
I did try as you said about not bothering with the ES button mapping and do instead under MAME by pressing the TAB button but when I pressed the one physical button I have on the 3rd encoder it didn't register in the MAME configuration menu. And I do definitely remember seeing somewhere that the buttons need to be mapped on ES first before they can be remapped under MAME so maybe that's why it didn't work for me.
I will go and try adding a handful of spare physical buttons to the 3rd encoder to see if I can get past the main buttons of A,B, Start and Select if it will then let me skip the rest.
Not sure if setting the buttons in the config for RetroArch is going to help me with you rightly pointing out MAME being non Libretro. But I will try the config file with jtest values too if the above doesn't yield any results.
I will update once I have tried everything..... fingers crossed and thanks very much for your suggestions.
-
@belfastrab MAME is libretro (at least, the cores we default to), you just often still have access to the tab menu.
-
Sorry for the delay in replying to this. Just wanted to update this post.
Ok so it looks like the joystick inputs, Start, Select and Buttons A and B cannot be skipped but once I get past those inputs I can skip away and save the config (by getting to the end).
So I just took some spare buttons I have and plugged them into the encoder and then once they were mapped I removed the psychical buttons I don't want leaving only one in my case.
Thanks to Mitu for the help
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.