Raspberry Pi 4
For information, Recalbox IS NOT compatible with Raspberry Pi 4 yet.
Pour information, Recalbox N'EST PAS encore compatible avec le Raspberry Pi 4.
The Recalbox Team.
Recalbox 4.1 - AdvanceMame key mapping
I have an iPac2 configured as keyboard connected to a Pi3.
The Pi3 is running Recalbox 4.1 (I build it myself to add a package).
Key mapping through AdvanceMame configuration menu is not saving correctly (if I quit AdvanceMame and get back into it, keys are reset to their defaults), so I have setup the keys myself in the advancemame.rc.origin file. This works pretty well.
Now my issue is that in a specific game, a needed key is mapped to "w" (indicated in the key configuration menu "this game") and I don't know which input_map name it is.
I have some keys mapped such as "input_map[p1button1] keyboard[0,enter]".
Other keys are mapped such as "input_map[XXX] auto".
One of these "auto" should be the "w".
As if I try to re-configure the key the changes are not saved, I don't know what is the "XXX".
I don't know if it's clear enough, but roughly I need to know what are the keys mapped behind that "auto" configuration.
Thanks in advance.
@garden-dwarf why don't you want to follow the wiki to make your ipac work as a gamepad ?
Regarding the mapping problem in itself, i'd manually launch advmame with the default configuration file, map my keys, save, and have a look at the resulting configuration file.
Advance mame is a rather well documented software, there is quite some info available on its web site.
I can't give you the exact answer for your question, no pi at hand, not much time to tinker either
Thank you for your time and your answer.
The fact is that the wiki supposes that the iPac2 is a recent version (post-2015, if you go to the main website ultimarc.com into the download section they indicate the difference). The recent versions of iPac2 can be set as a gamepad, but this isn't working with an older one (and guess what, mine is older!). I have tried the wiki, then because I wasn't able to obtain good results I set it up as a keyboard, and it is working... until I encounter the above issue.
Believe me I spent time on google and the different forums I found, but wasn't able to solve my issue.
Your suggestion to launch AdvMame manually is worth to be tried, I'll do it. In the meantime, any other suggestion is welcome.
Bye for now!
@garden-dwarf Dude, the wiki exlpains that it is for a FULL keyboard encoder, and a utility called xarcade2jstick will convert it to 2 seperate gamepads.
If you need helkp with the wiki page, please tell me, I know it may be confusing : https://github.com/recalbox/recalbox-os/wiki/keyboard-encoder-configuration-(EN)
Previously I have set the xarcade2jstick stuff, but if I'm right they are made to handle gamepads from various platforms, and not my arcade cabinet configuration.
I explain. Controls you setup in emulationstation are propagated to Mame. But if in your arcade cabinet you have more buttons than the amount you can setup in emulationstation, they are not available in Mame. That's the point. I cannot setup all my buttons in emulationstation, so I have chosen to setup a keyboard to emulate all buttons I need.
Sorry but I'm on this since weeks and I may be wrong, but from what I've experienced it is not a good idea for me to go for the xarcade2jstick.
Here is my configuration:
- 1 shift-button (iPac2 shift I mean, which extends twice the buttons).
- 1 game-button.
- 2 volume buttons (that's why I have re-built Recalbox, in order to map these buttons to control the system volume - with happykeys by the way).
- 1 player1 button.
- 1 player2 button.
- 2 joysticks.
- 16 "play button" (8 for player 1, 8 for player 2).
- 2 coin doors
PS: I have tried to launch advmame through ssh, and I still cannot get the advmame.rc file written with more information (input map "auto" stays to "auto" and does not provide more information, nothing written back to the file even if I change something through the interface). So I have modified a complete advmame.rc to change all "auto" to different keys. And the result is that it seems that I've found the key I was looking for. But when I change it, the change is applied to other keys too. Weird. If you want, I can provide you more information such as the "game" name. You can try it by yourself. Not easy.
@garden-dwarf what was your command line to launch advmame ? Do you know how to find how recalbox launches advmame ? either in the code, either in the logs ?
I login from my computer to recalbox using ssh root@recalbox (name on my network).
Then cd /recalbox/share
Then advmame -log -cfg /recalbox/share/temp.rc my_game (my_game replaced by the rom name without extension of course)
I downloaded & compiled the latest version of AdvanceMame (something like the 3.1 is provided along with Recalbox 4.1, and the latest AdvMame is 3.5).
Running fine but problem still not solved.
@garden-dwarf I guess it means it can't save to a custom file, which is an advancemame problem
@Substring I assume you are right, maybe some file/folder missing or so. I'll check further. Thanks.
@garden-dwarf You could eventually copy the .rc file from recalbox to the default one of advmame, make your mappings, compare changes and push them back to recalbox' .rc
If you have some time, could you please install sltblgpo.zip (belgian slot game, maybe not very interesting for you but representative of my issue).
In the game "input (this game)" you can configure the "select" and "stake" keys. If you leave mame and get back to it, you will see that the configuration is lost.
I tried with advancemame on RecalBox as well as on Windows, same results.
Maybe I have to address this to the advancemame team.
@garden-dwarf Several people reported that custom inputs are not saved when not using the default advmame.rc file. What I do in such cass is launch advancemame from commandline, make all the edits I need, and read the syntax from the default config file (somwhere in
Thanks for the tips, I tried and it does not solve my issue.
If someone wants to spend time on it, trying the game I mentioned, he will understand what the problem is.