Jump to content
LaunchBox Community Forums

Need help with MAME input configuration

Recommended Posts

59 minutes ago, vgbox said:

Maybe the solution is to create a second cfg\default.cfg, call it, say, default2.cfg, with different JOYCODE 4 buttons order and make the arcadestick.cfg call that? If so, which command lines are needed? I need to create second mame.ini as well with "ctrlr                     ArcadeStick"?

If you look at the ArcadeStick.cfg I had previously attached, you'll see along with the port assignments, all the controller assignments are there too.  So it doesn't need to 'call' default.cfg at all.

While still looking at the previous ArcadeStick.cfg that I had attached, since the player 4 controls now need to be player 1 (and vice versa), you need to swap those assignments.  Which I went ahead and did here  ArcadeStick.cfg 

Don't touch your mame.ini.

Replace the previous ArcadeStick.cfg with this one.

Keep the Custom Command lines that you did earlier (aka "Option 2").

Play a fighting game.

Report back.

Edited by JoeViking245
  • Thanks 1
Link to post
Share on other sites
Posted (edited)


I changed to your ArcadeStick.cfg and the wrong button layout remain.

It seems that after the exchange (in fighting games), mame keeps the Xinput player 1 buttons layout (first pic) and messes with the button names of player 1 and 4 (first and second pic).

Player 1 general input in SFA2 (wrong buttons layout with wrong buttons names:


Player 4 general input in SFA2 (correct buttons layout with wrong buttons names): 


Player 1 general input outside of fighting games, correct buttons layout with correct buttons names:


Player 4 general input outside of fighting games, correct buttons layout with correct buttons names:


Edited by vgbox
Link to post
Share on other sites

Oops. Ya, sfa2.cfg. 😊

Hmmm... the last 'good' P4 image doesn't look like the default.cfg you previously posted (as far as the button assignments).

Regardless, if appears your default.cfg is still good for you.  And what I thought might be an easy way, wasn't. lol  Maybe try a sort-of going back to square one:

(If you previously made your default.cfg read-only, you will need to undo that, and then change it back later.)

  • Make a copy of your existing "default.cfg".  (i.e. "default - Copy.cfg"  This will be like a backup of your known, good configuration)
  • Start MAME
  • Go into Configure Options, General Inputs, Player 1 Controls.
  • Using your RA Pro.3, set the inputs for it. (like you did previously when setting it up as player 4)
  • Hit Escape, then go into Player 4 Controls.
  • Using one of you other regular controllers, set the inputs for it.
  • Hit EscapeEscape, then select Save Configuration then hit Escape again.
  • (maybe start one of the fighting games to make sure the RA Pro is working correctly)
  • Exit MAME


  • Move the (just now modified) "default.cfg" to your /MAME/ctrlr/ folder and rename it to "ArcadeStick.cfg".
  • Edit "ArcadeStick.cfg" and add in the 4 "<mapdevice" lines near the top, right after "<input>.  Save the file.
<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
    <system name="default">
           <mapdevice device="REAL ARCADE PRO.3" controller="JOYCODE_1" />
           <mapdevice device="XInput Player 2" controller="JOYCODE_2" />
           <mapdevice device="XInput Player 3" controller="JOYCODE_3" />
           <mapdevice device="XInput Player 1" controller="JOYCODE_4" />

           <port type="P1_JOYSTICK_UP">
           etc, etc, etc
  • Go back to your /MAME/cfg/ folder and rename "default - Copy.cfg" back to "default.cfg"  (or make another copy and rename it so that you still have a backup)
  • (put it back to read-only)

Assuming your "mame.ini" ctrlr line has nothing after, when you launch a game, it will load the controllers using the "default.cfg".

On the games that you set the Custom Command-Line to "-ctrlr ArcadeStick", it should load the RA Pro.3 as Player 1.

(fingers crossed)

  • Thanks 1
Link to post
Share on other sites
Posted (edited)


I did the above. The problem remains as seen in the general input screenshots.

As seen in the screenshots, SFA2 P1 and Vendetta P4 have the same buttons naming because that is the rap3 buttons naming language. After the exchange, for some reason, the SFA2 P1 Did not inherited the P4 Vendetta rap3 buttons order and that is the problem (it only inherited the rap3 naming language). In other words, after the exchange, SFA2 P1 buttons order should be 0, 3, 5, 4, 1, 2, 7, 6.

Notice that for SFA2 P4 the buttons order is also messed up but i would not care since as far as i know, there are no 4 players fighting games.

Btw, rap3 first buttons order starts from 0 and goes to 1, etc. while xinput (the xbox controllers) first button starts from 1 (A), an go n to 2(B), 3 (X), 4(Y), etc.

Edited by vgbox
Link to post
Share on other sites


The save configuration feature is available only when opening mame itself. I did not open mame itself, i opened mame by opening SFA2 via LB and then configured the buttons in general input, after that the inputs are saved automatically, there is no save configuration feature when opening a mame game via LB.

Yes, the rap3 responded correctly - the buttons order was the right one. The buttons order got messed only after the exchange.


The rompath in mame.ini is "roms;X:\Roms\MAME 0.227 ROMs (merged);X:\Roms\MAME 0.227 CHDs (merged);X:\Roms\MAME 0.227 Software List ROMs (merged)"

My mame version is 0.227. When i update mame i only overwrite mame64.exe and leave the rest as is.

Link to post
Share on other sites
2 hours ago, vgbox said:

I did not open mame itself,

When you loaded the game from LaunchBox, it was loading the config file "ArcadeStick.cfg" for that game as you had previously told it to do.  Making changes to Input (General) (aka General Inputs) won't get saved to "default.cfg".  Also, making changes to Input (this machine) won't get saved to "ArcadeStick.cfg".  They'll get saved to "sfa2.cfg" in the cfg folder.  So you may want to delete that [again].  It will recreate itself, but it's just keeping tracks of  'coins' inserted and marquee info (if applicable).

You can Right-Click a game in LaunchBox and select Open MAME ("MAME" being whatever you called the emulator when you set it up).  This will open MAME itself.  Which is what (I believe) is what you need to do, and then go through the steps again.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...