Thetable below provides links to the official Windowsbinaries. They provide both GUI (just launch the exe)and command-line operation (for starting by hand orfrom a frontend). Larger files are hosted on externalmirrors, selected at random, which may require atemporary redirect to the mirror site in order todownload the file.
We recommend cloning source code from our officialgit repository on GitHub. You can also clone tagged releases from our mirrors at GitLab and SourceForge. You can clone the MAME 0.267 source code withoutfetching the entire revision history with this command:
git clone -b mame0267 --depth 1 mame0267
The table below provides links to packaged source archives. Larger files are hosted on externalmirrors, selected at random, which may require a temporary redirect to the mirror site in order todownload the file.
MAME is an acronym for Multiple Arcade Machine Emulator. The intent of this emulator is preservation; the ability to play games is considered a "side-effect." MAME supports thousands of classic arcade games, although not all of them are playable. As of version 0.162 MAME absorbed its sister-project MESS (Multi Emulator Super System) which means it is also capable of playing games for classic game consoles.
Although MAME is a "command-line" application, as of version 0.171, you will get a simple "DOS-like" menu when you open it where you can do the usual things of selecting games and changing the configuration. If you do not like this menu, there are a few other options: the MAMEUI port (which, as the name suggests, adds a Windows user-interface to MAME) or frontends. As MAME is also available as Libretro core, you could also use RetroArch as frontend.
A lot of arcade games were coin-operated, so when you start a game you might wonder: "how do I insert a coin?" The answer can be found in the input configuration, but let me spoil it for you: keys "5" to "8" on your keyboard insert coins for players 1-4 and keys "1" to "4" are the start-buttons for those players. So for single player, insert coin by pressing 5 and start the game by pressing 1.
For legal reasons, this site does not contain nor link to ROMs. But MAME is an exception, as the "ROM site" in question is none other than the Internet Archive (
archive.org). You can find the game ROMs, BIOS ROMs and all other files needed to play games in the MESS and MAME collection on their site as both direct downloads and torrent files. Be aware that a complete collection can take a lot of disk space (over 50GB, and you need double that to extract the archive that holds all the ROMs). After downloading you can place game and BIOS ROMs in the "roms" subfolder inside the MAME folder.
MAME handles ROMs a little different in that you do not have to unzip every individual game. MAME can open them as ZIP files. The reason for this is that arcade ROMs tend to consist of multiple files.
I will try my best to keep this short and sweet, but I got the most recent mame installed and setup and running. I am using this with Bigbox to play on my living room TV, and was wanting to find a quick pre-made XBOX controller config file to get me up and rolling quickly. I know about setting up controls from the General Input and Machine Input, but was hoping to get something that would take care of most of the basic setups for me (trying to work smarter not harder with this).
I already found this post at
arcadecontrols.com downloaded both the original version from AldousHxlE as well as the revised version from Kinks. Placed the .cfg files in the ctrlr folder, and added the name to the mame.ini file ( I tried both versions). Only thing is when I go back to check the General Inputs in MAME, all I see are keyboard commands. No joystick commands. I'm using a wireless XBOX One Controller and checking the cfg folder my default.ini file is still in its original state since installation.
Am I missing a step or does the most recent MAME version not support this setup anymore? Am I correct to assume that if the ctrlr file worked properly I should see joystick commands on the proper controller input fields?
I already found this post at
arcadecontrols.com downloaded both the original version from AldousHxlE as well as the revised version from Kinks. Placed the .cfg files in the ctrlr folder, and added the name to the mame.ini file ( I tried both versions). Only thing is when I go back to check the General Inputs in MAME, all I see are keyboard commands. No joystick commands. I'm using a wireless XBOX One Controller and checking the cfg folder my default.ini file is still in its original state since installation
My hope/goal is to find a pre-made xbox controller setup that takes care of most setups (the above ctrlr file, they made custom configs for NEO GEO games vs CPS). But when I plug in the ctrlr file in mame.ini I don't see those changes when I open MAME and look at the Input's in either the General or Machine Input menus. All it shows is keyboard setups.
Just load up a game, press tab and then Input (General), in here you can set your all purpose controller setup. Then for individual games if you want a different control scheme instead of Input (general) you go into Input (this Machine).
Thanks Lordmonkus, but was hoping for something possibly quicker. That's why I was seeing if a premade ctrlr ( cfg ) file would take care of most of that setup. Supposedly the one I linked to at
arcadecontrols.com works for others, just can't get it to work on mine. Push comes to shove I'll just manually set them up, but was hoping to speed up the porcess.
I'm confused. I assumed that the ctrlr file IS the solution, I was asking to see if anyone here had any idea as to why the ctrlr file isn't adding the changes to my inputs. If this isn't the solution I am looking for (specified in my first post) then let me know, and I will just do it manually. But I hate to spend hours doing everything manually when I have the solution already, I may be missing one simple step to get it to work.
I guess my concern with just a general setup is do the controls translate well between fighting games, NEO GEO games, CPS games and so on? I like the idea of the ctrlr file they made because it looked like they did the grunt work of giving you the best configurations for different button layouts, thus avoiding the pitfall of having to go into the Machine Inputs... can a proper ctrlr file help with that or am I going to have to suck it up and tweak the Machine Inputs as I go along?
Gotcha... good to know. I just assumed that arcade controls would be a bit of a mess in general because there's no universal code or expectation on how to place buttons (like on consoles). Sounds like I was overthinking it a bit (which is good too know).
Agreed, i have a default that is set on my arcade stick, its setup like street fighter 2. I have buttons 1,2 and 3 on the top row, then 4, 5, and 6 on the bottom. That works for 99.9% of games. Then the odd balls that dont i do a machine controller bind.
I tried that "kinks" ctrlr file you referenced in the link (I hadn't realized could remap multiple ways in one file by machine type so that was cool). I use a XBOX One wireless as well so our setups are similar. It seems to remap with keyboard and joystick as expected (see screen snap of 1944 CP1 controller maps vs Neogeo game where can see the buttons are remapped based on machine type) when tab in using the "kinks" ctrlr file. So you might double check a couple areas to verify pulling in correct file. It sounds like you placed the downloaded cfg file into the ..\mame\ctrlr directory so that is first item. Then in your mame.ini file check that the file name is the same but don't include the CFG extension in name. I had an existing cfg I had made called "xbox2player" so I just renamed the downloaded one to what I had for testing. As long as the mame.ini reference and cfg file match it should be golden. I don't necessarily like all the mappings of buttons with XBOX controller but may borrow some of them items they I had in their file. I had a much more simpler one (just two player only) \ which like Neil9000 and Lordmonkus stated above, typically works for bulk of the games. Either way, you will want to get the ctrlr mapping issue figured out so whatever mapping choose is fixed so MAME doesn't have issues of resetting controller maps if forget to turn on controller before launch MAME.
Edit: As I was messing around noted (at least) the following problems with the "kinks" file. 1) Don't map the right stick at all, so problem with games like Robotron where just run around but cannot shoot...death results quickly! 2) there are extra spaces in the select and coin commands which seemed to cause funky results when starting games (stopped when deleted them). The Neogeo machine also had some extra spaces in the button commands. 3) they used a "remap" set of commands to map the UI arrow keys to the number pad in start of file. Don't see why since arrow keys not used anywhere else, plus they use the incorrect command for number pad key binding so number pad up/down don't work anyway because have extra "_" in them. 4) pedal/paddles don't look quite right but didn't try them. 5) the player 1 keyboard bindings were removed so would have issues if using for say Apple II emulator game with keyboard (i.e, Castle Wolfenstein).
3a8082e126