MAME (2010) 2nd Player Remap

Until now, the only way I found to play Killer Instinct (Arcade) on Retroarch, was MAME (2016), which has some annoying crackling noises on VS screen. I tried all the other MAME cores, which wouldn’t load the rom at all or would just crash. After many hours of frustration, I finally managed to “build” my own Killer Instinct rom by merging files from other zips + using an old CHD, and it finally works flawlessly, but only on MAME (2010), and here is where the first problem comes: when I try to remap the buttons using the tab menu, it only works for player 1, while no buttons are registered at all when I try to remap the second controller, which leads us to the second problem: the second controller actually works in game, but apparently, only 4 of its buttons (besides select and start) can be used, and they are not mapped correctly (Yes, I tried remapping them on Retroarch, only 3 punches and 1 kick work). I am using RA 1.7.3 (Windows 7 - 64 bit)

TL;DR: Is there any way a second controller can be remapped with the full use of more than 4 action buttons on MAME (2010)? Thank you very much in advance.

not answering your specific question, but FYI mame2003 runs the killer instinct CHD and rom from the 0.78 romset.

1 Like

One of your issues is that your approach to “building” MAME ROMs manually is not going to work in general. Either you should start with a ROM collection that is already correct for your version of MAME (the best/easiest route) or you should learn to use arcade romset rebuilding software.

The advice in this RetroPie doc is oriented towards low-power devices, but I think it could help clarify for you the workflow of setting up arcade emulation.

  • Step 1: pick your MAME version.
  • Step 2: find the exact version romset meant for that MAME version


I know I made it sound like I’m making a mess, but all I was doing was exactly those steps: I was checking the corresponding MAME versions for each MAME core, then I was doing a rom audit (on MAME) and then, depending on the roms that were missing, I was getting them from other sources (making sure they have the correct file size and CRC that MAME was asking for) and adding them to the main zip.

So at the end, my Killer Instinct setup is: romset from 0.197, CHD from 0.78. This is the only combo (no pun intended) that seems to work for me after a fresh install of Retroarch (apparently, MAME cores tend to be “sensitive” about the slight change of shaders or latency options, hence the previous crashes). It loads on MAME, MAME 2016, MAME 2010 and yes, MAME 2003 and MAME 2003-Plus. However, the game runs horribly slow on MAME 2003 for some reason while all the other cores run it at full speed, but still, only MAME 2010 got it right on my end, with best latency and no audio glitches at all.

You are not doing it right if you have a romset from 0.197 and a CHD from 0.78. That only runs at all in mame2010 by accident. It’s surprising it doesn’t have more bugs than remapping.

Start with a romset and a CHD for mame2010. If that combination doesn’t work then it’s a bug, please post a log & we can start from there.

There are no “accidents” when it comes to MAME. The .dat is VERY specific about the rom names, sizes and CRC that the emulator loads. If my romset is being loaded, it is because all the required files are there and they are correct. But anyway, the problem is not about loading the game, it is about remapping the buttons for the second player on MAME 2010.


I guess I am still waiting for the miracle to happen. Anybody? All these months I’ve been trying new RA versions, new MAME cores, and nothing. Only MAME 2010 keeps running Killer Instinct flawlessly. Gosh, I hate not being able to play this game properly! ><

Have you tried adding the mapping manually?

I do not use MAME in RA, but I am almost sure all the paths are the same as the standalone version, so if you go to the MAME’s “cfg” folder, you should see a file called default.cfg, in which you should see the key mappings for your already set Player 1. Open the file with Notepad or ++ and see if you have the Player 2 values there as well (empty), and fill them manually with the keys you want to work with. For testing puroposes, after saving and closing the file, check it as Read Only in its properties.

Hope the above helps (havent tested it, but worth the try).

1 Like

Have you had trouble running Killer Instinct in MAME 2003 or 2003-Plus?

There is no issue mapping multiple players in either of those cores. Particularly this should be easy with MAME 2003-Plus which has a more complete integration with libretro/RetroArch controls.

If you have enough power to run KI in MAME 2010 but it’s not working right in either of the 2003 versions I’d be interested in getting a bug report at

Oh, the keys are already there, everything on paper looks exactly the way it’s supposed to look, no blank fields or anything, even the input fields on MAME itself are correct, it’s just two buttons that are not working for player 2 no matter what I do. I read that MAME 2010 core is broken, so I guess I am just looking for any possible workaround.

It does work, but it is somehow slow and the emulation doesn’t feel accurate, it is hard to explain. As soon as the game boots, you can see the RARE logo spinning and shrinking to a corner, and things like that look like a slideshow on MAME 2003. I was curious and tried the standalone MAME 0.78b and the exact same thing happens.

Thank you for taking the time to test this in not only mame2003 but also 0.78. I don’t have the experience you do with this game so the problem you’re describing wasn’t apparent.

I see that there was a timer fix in 0.116u4.

Maybe this fix could be backported to mame2003-plus although i wish the fix had been a little earlier in history.

@purplesanz Would you be willing to create an issue about the problem in the mame2003-plus repository? I have a tad bit of experience with the Killer Instinct code and if you would be able to test any possible fix then i would be interested in taking a closer look.

Yes, of course, it is done, I hope I did it right. And yes, I will be more than glad to do the testing. Thank you very much for looking into this issue.

1 Like

Mame 2003 es una basura para jugar killer instinct

A la fecha aún no hay solución …yo creo que no se han dado el trabajo de revisar ese error en el core mame 2010 es el que corre mejor es una lastima que no se pueda configurar los botones A.B

Y como que todos se olvidan de ese core lastima sacan muchos cores nuevos y dejan de mejorar que que tiene fallos una lastima ojalá algún día reparen eso …no se tratar de compilar un core por cuenta propia si ya. Solo supura como hacerlo podría compartirlo

Please post in English, even if it’s machine-translated.

1 Like

Man, I saw the reply notification and was hoping for good news, lol.

This issue is still OPEN, by the way. Just saying.

1 Like

Hey mans, I found a solution for myself but it is quite the convoluted work around. However, it allows me to have Player 1 on my Xbox controller with all 6 buttons. And Player 2 on my arcade stick with all 6 buttons. It requires that you have Antimicro or any Joypad to Keyboard program of your choice. Antimicro allows me to remap controller buttons to a keyboard key and I set it up so when Mame2010 core starts up, it also starts up.

So what I did was map my controller 1 as usual. I cross check this by going into Test or Service inside Mame2010 core while the game is running and Input to see which keys are binded. Or go into Story Mode, let Player 2 Join and punch around. Now for Player 2 I bind keys 1,4,5,6. In Street Fighter EX for example, that’s Low Kick, Low Punch, Medium Punch and Heavy Punch.

This leaves me with two missing kicks. So what I did then was I went into Antimicro and set R2 = Keyboard “E”. This gives me Medium Kick. Now the last step was, you have to disable Retroarch’s exit button from = “escape” to “nul” temporary. You also have to clear any Autohotkeys Scripts associated with Retroarch.

This allows you to clear keys in Mame2010 GUI as Mame2010 accepts two “escape” presses to clear a key. The MameGUI opens via Tab. Run Mame2010 and enter Mame2010 GUI. Then go to where Tab to open GUI is located, it should be in Option Settings or Settings, basically NOT Player 1 or Player 2 but general input settings for navigating the GUI. Select where Tab is allocated and select it and double press “escape”. This clears the Tab key so it no longer opens Mame2010 GUI. Now DO NOT CLOSE RETROARCH. As this saves your configuration and you can’t access the Mame2010 when you reopen retroarch. Now navigate to Player 2 in the GUI and set Button 2 = Tab. Now you have Tab set to Medium Kick. Now you can assign Tab onto your Joypad Controller. The only issue with this is you no longer have access to Mame2010 GUI but after setting up you won’t need to as everything is handled by Retroarch.

Now you should have 6 buttons for player 2, and Player 1 also has 6 buttons.

You can

Setup your program to run with retroarch or your Mame2010 game like this.

un, C:\Program Files (x86)\AntiMicro\antimicro.exe

$Esc:: { Process, Close, antimicro.exe Process, Close, {{{StartupEXE}}} }

Also if everything fails or is messed up. You can go to

Where you Saved Retroach :\RetroArch\saves\mame2010 and delete the entire folder. This resets the Mame2010 GUI settings so you can Tab into again and mess around.

Also if you have difficulty preventing “escape” from exiting in Retroarch. Find retroarch.cfg in and open in Notepad.

Change input_exit_emulator = “escape” to

input_exit_emulator = “null”

I hope all or any of this information helps you configure, If you have any questions please don’t hesitate to ask. I’ve spent nearly a week on this problem as I was setting up my Arcade collection and it drove me insane.

1 Like

Oh, my god… oh, my god… OH… MY… GOD!!! It works! It was convoluted indeed, but it works! I had to do some extra steps, though:

  • Since the default button mapping for player 2 on MAME 2010 core is an absolute mess, I had to set up a game remap for my controller inside Retroarch, in order to make sure the four available buttons were in the right places.
  • Then I used JoyToKey (which I am already familiar with) to map “E” and “Tab” to the empty buttons of my second controller.
  • For some reason, MAME 2010 did not allow me to press ESC twice to clear the Config Menu entry, so I used a standalone MAME version, set player 2 button 6 as “Tab”, then set the Config Menu to blank, then I finally copied that default.cfg to the \saves\mame2010\cfg folder
  • Finally, I had to disable Slow Motion Hold on Retroarch since it was mapped to “E” by default.

And voilá, it is finally working. The only thing that makes me a little sad is the fact that the only person who could have played Killer Instinct with me is no longer my friend after these two long years, lol! But hey, I am so happy for all those people who will finally be able to play KI and KI2 with the best latency and without crackling noises. In fact, I am going to finish KI2 on my second controller right now, just for fun! ;D

“E” and Tab… so bizarre, I would have never thought of that solution, you are a genius, thanguya. Thank you so much for this!

1 Like

My pleasure mans!! I’m glad to hear you got it working, haha. I’m happy you figured out some minor details I forgot to mention, like the slowmotion, I was thinking can I see the flash and kicks but why does it slowdown lol.

I know that feeling all too well, I have 2 player setup but noone to play with. Even when growing up I didn’t have many friends. But hey, c’est la vie. I hope you and your friend can make mends, life is too short to divide and find faults in each other. I hope one day if I have kids I can play with them, I’m pretty much just setting it up now so we can play together in the future :smiley: In the mean time, computer isn’t too bad haha.