lr-mame2010 Multiplayer control setup issues
-
Thanks in advance for any information. I usually get lucky searching the forums or google but haven't seen much on this topic.
I have a pi3 running retropie 4.02and in lr-mame2010 I can't configure any players besides player 1. I tried using the MAME Menu that is accessed by pressing tab (which is what I use in lr-mame2003 to reconfigure inputs) and that lets me change the player 1 inputs no problem. But I get no response from my 2nd joypad. All the player2 controls just say "n/a" And when I try to edit them they won't pickup any of the inputs from the player 2 joypad. I haven't run into this issue in any other emulator. I have tried it with 2 iBuffalo SNES pads connected and with my 2 player arcade setup connected.
A few observations I have made:
-
Even though the MAME Menu won't register player 2 joypad at all .n game some of the buttons on the player 2 joypad will register its just not mapped properly and a couple of the button do nothing.
-
I also noticed that the player1 joypad controls almost seemed to be semi tied to keyboard keys instead of just registering as plain retropad buttons in the MAME Menu.
-
lr-mame-2010 seems to create a "cfg" folder with .cfg files in it. (I can't recall exactly where it is and I'm not infront of my Pie to check) I think its in the main "home/pi" folder. In there is a default.cfg that is human readable and seems to be what is tying the keyboard keys to joypad buttons. If I duplicate the player 1 binding in that default.cfg as player 2 then in the lr-mame2010 MAME menu the player 2 controls are bound but they are bound to joypad1 buttons.
-
-
I'm not able to reproduce this. Using two of the same controllers, both my Player 1 and Player 2 work fine.
If you are using two different controllers, run thru the input setup separately with each. Like power off, plug only Player 2's controller into the USB next to the Ethernet, power on, do the Input setup. Shutdown, unplug, plug in only the Player 1 controller next to the Ethernet and repeat. Finally, shutdown and plug them in the order you want them - Player 1 next to the Ethernet, Player 2 away from the Ethernet - and power on.
I don't think the Tab menu is the right place to reconfigure libretro MAME cores, you should use the RetroArch RGUI or the Setup Script controller configuration.
The correct place for the
lr-mame2010
configuration file is/opt/retropie/configs/mame-libretro/retroarch.cfg
Note that this RetroArch core only supports two players. If one of your controllers appears as both a Player 1 and Player 2 (not uncommon with some models of console-to-USB adapter) then you can't use a second controller.
Do you have any specific reason to use mame2010? The mame2003 core is more tested and should perform better, and FBA can run many newer games that mame2003 cannot. The only reason I'd see to use mame2010 is if you want to play a MAME game not yet supported by mame2003 and not in the systems that FBA emulates (and there are a fair few games which meet these criteria).
You may find these useful:
https://github.com/RetroPie/RetroPie-Setup/wiki/RetroArch-Configuration
https://github.com/RetroPie/RetroPie-Setup/wiki/MAME -
I'm using 2 of the same controller each time I test.
I like using the Tab MAME Menu so that I am configuring each version of mame to match the controller config instead of using the RGUI to change the controller config according to the core. Personal preference I guess.
Editing the retroarch.cfg in the mame-libretro folder is having no effect on player 2 of lr-mame2010.
I don't remember this being an issue when I had everything setup in retropie v3.8 but I may have just not noticed Player2 not working. I may try uninstall/reinstall the lr-mame2010 core. Maybe something got a little messed up after the 4.02 update.
I only use lr-mame2010 for a couple games that don't work in other version. For example I can only get Xenophobe to work in 2010.
lr-mame2010 does create other configs that effect its keybindings. They are in /home/pi/cfg/ Inside there is a default and per game cfg files.
-
So my lr-mame2010 is definitely treating the player 1 controller as if it is a keyboard. And this is true for any controller I try to use. It also completely ignores the actual keyboard I have plugged in and any other controller that are plugged in.
When I use the Tab MAME menu to try and change the bindings for example "P1 UP" when I hit up on the controller it binds as "Kbd P1 JoyU" instead of "Joy 1 Up".
Somewhere there is a setting either binding the controller as if it was a keyboard or not enabling the controllers at all and by default that makes it think the controller in position 1 is a keyboard.
Uninstalling and reinstalling didn't change anything.
-
I made some headway on this. I test in Super Street Fighter II because its easy to start a 2 player game and test a 6 button layout. After resetting everything to default I noticed that player 2 worked except for button 5 and 6. After doing some research it seems that by default mame2010 only has 4 buttons for player 2 and only 3 btns for player 3 and 4 bound.
I was able to assign keyboard keys for player 2 to activate btn 5 and 6 but can't get btn 5 or 6 on the player 2 retropad to activate the player 2 btns 5 or 6 in the emulator.
This won't be a huge problem because the few games I need mame2010 for won't need over 4 buttons but this maybe something devs will want to look into for the future.
If anyone wants to test this run Super Street Fighter II in lr-mame2010. Player 1 will have all 6 buttons and player 2 will probably only have 4 of the 6 usable.
-
@dquez said in lr-mame2010 Multiplayer control setup issues:
So my lr-mame2010 is definitely treating the player 1 controller as if it is a keyboard. And this is true for any controller I try to use. It also completely ignores the actual keyboard I have plugged in and any other controller that are plugged in.
When I use the Tab MAME menu to try and change the bindings for example "P1 UP" when I hit up on the controller it binds as "Kbd P1 JoyU" instead of "Joy 1 Up".
Somewhere there is a setting either binding the controller as if it was a keyboard or not enabling the controllers at all and by default that makes it think the controller in position 1 is a keyboard.
Uninstalling and reinstalling didn't change anything.
Below work around is more specific to lr-mame2003. Doesn't do anything to correct the lr-mame2010 issue you describe. In fact I too can confirm I get similar issues you described for the mame 2010 tab menu for key binding (ie: player 1 input is defined but player 2 shows up as 'n/a' even though the controls do work). As well as sf2 player 2 is missing input for btn 5 and 6 even though it is mapped in my global RetroArch.cfg file. One difference I have is that if I try to press any other keys on my keyboard it will not register, execpt for the existing player 1 keys already defined.
The mame2003 workaround follows below, here is where I got the idea from (thanks to @kris964):
https://retropie.org.uk/forum/topic/881/keyboard-always-defaults-to-player-1/12
I am using RetroPie 4.0 on pi3.
Xarcade for players 1 and 2.
Ps3 controller for player 3.I assume you already know how to configure RetroArch.cfg in general and it goes without saying to back up all files before you change anything.
In my global RetroArch.cfg
/opt/retropie/configs/all/retroarch.cfg
I changed the following:
#Input_player1_joypad_index = 0
#Input_player2_joypad_index = 1
#Input_player3_joypad_index = 2To:
Input_player1_joypad_index = 1
Input_player2_joypad_index = 1
Input_player3_joypad_index = 0Notice the #s were removed too.
This tells RetroArch that the first joystick (retropad1) will be for player 3. In this case it is for my ps3 controller.
I did this for a few reasons. I want player 1 and 2 to be on xarcade joysticks and player 3 to be on ps3 controller. With that said, the main reason is because I also noticed mame tab menu will detect both keyboard keys and retropad1 buttons at the same time. As others have documented before, if you want to configure p1 'UP' the resulting captured input would be something like 'kb UP and retropad1 UP'.
By using the above method mentioned it will stop RetroArch from sending mame the keyboard p1 and retropad p1 input at the same time. This is because RetroArch now knows that joystick1 (ps3) should be used for retropad1. Hence after you restart your retropie and go back into mame to bind a button it will now only capture keyboard keys without the retropad1 inputs being included.
HOWEVER, because this is a work around it isn't perfect in that if you try to bind player 3 input in the mame tab menu you will notice it will now capture something like 'kb UP and retropad3 'UP'.
I believe what is essentially happening is the keyboard and retropad input combination simply gets shifted to a different player. In my case I shifted it from player 1 to player 3. This means if I was using an actual keyboard as player 3 input it will interfere with the ps3 controller (you would see the player 3 on screen being controlled by both keyboard and ps3 controller inputs).
My experience with messing with the settings and reading other people's comments tells me that somewhere RetroArch is linking keyboard input with retropad input. In reality I think the keyboard was meant to be detected as retrokb (retro keyboard) but doesn't do it correctly due to some unknown reason.
-
@dquez said in lr-mame2010 Multiplayer control setup issues:
lr-mame2010 does create other configs that effect its keybindings. They are in /home/pi/cfg/ Inside there is a default and per game cfg files.
This was very helpful as I messed up mame2010 tab menu bindings before I realized there was a mapping issues like your described above. After I deleted the default.cfg I was able to get my original key binding back. Though it does nothing to solve the issues as per your original post.
-
Through messing with and researching the issue I came across core input remapping as described here: https://github.com/RetroPie/RetroPie-Setup/wiki/RetroArch-Configuration#core-input-remapping
I have started using this method instead of hardcoding the different retroarch.cfg files or using the Tab MAME Menu to configure controls. But of course this feature is absent in the RGUI of lr-mame2010.
To keep the hardcoded retroarch.cfg I need for mame2010 from messing with my mame2003 setup. I edited the emulators.cfg in the mame-libretro configs folder. In there you can tell each emulator what retroarch.cfg to use. So I created a retroarch-2010.cfg file and changed the emulator.cfg to point to that file for mame2010.
Here is the forum post I found that states that around MAME .97 player 2 is only assigned 4 buttons: http://forum.arcadecontrols.com/index.php?topic=51443.0
The TLDR of all my messing around with lr-mame-2010 controls is:
- The Tab MAME Menu can't be used to remap player 2
- You can hardcode a input config in the retroarch.cfg but player 2 will only register up to 4 buttons.
- lr-mame2010 is missing the "Controls" feature of the RGUI Quick Menu.
-
@dquez
How did you "reset" everthing? I too was using tab to configure mame 2010. Trying to mess with player 2 in the tab menu, i changes all the n/a to "none" and now nothing works for player 2. Even binding my keys in retroarch on player 2 wont fix the prob. I think i have to reset the mame tab settings like you did.
Thanks
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.