MAME is an emulator application designed to recreate the hardware of arcade game systems in software, with the intent of preserving gaming history and preventing vintage games from being lost or forgotten. The aim of MAME is to be a reference to the inner workings of the emulated arcade machines; the ability to actually play the games is considered 'a nice side effect' 2. The name is an acronym for Multiple Arcade Machine Emulator. The first public MAME release (0.1) was on February 5, 1997, by Nicola Salmoria.
As of version 0.139, released July 29, 2010, the emulator now supports 4472 unique games and 8831 actual ROM image sets and is growing all the time. However, not all of the games in MAME are currently playable; 1364 ROM sets are marked as not working in the current version, and 51 are not actual games but BIOS ROM sets. The project is currently coordinated by Aaron Giles.
Tutorial: How to update your MAME ROMset to a newer version with CLRmamepro Note #1: This tutorial will show you only how to update your ROMset. If you are completely new to MAME you will probably want to read the noob-friendly MAME guide from first. Note #2: This tutorial assumes that you already have a complete ROMset from a previous MAME version. If you don’t have a complete ROMset than I would suggest to just grab a complete set for the current MAME version and return to this tutorial if you want to update it in the future. I'm not covering SoftwareLists for the MESS side of MAME in this Tutorial, only the arcade games.
Also I'm not an expert for MAME, I just know my way around the things I need from it. If you find any errors or wrong facts in my tutorial, please let me know! I’m always eager to learn more. Why update the ROMs?: MAME is very sensitive about its ROM versions. You can get an older version of a ROMset to work with a newer MAME version but you should be aware that you can run in many errors and missing files. In the best case your ROMset version matches exactly the MAME version you are using. The MAME developers are updating MAME every last Wednesday of the month, so if you download a complete ROMset today it won’t work perfectly fine with the newest MAME version by the end of next month.
If all the games you want to play are all there and working perfectly fine you probably won’t care about new updates, but if you want to get all the new emulation improvements and newly added ROMs you should keep track of them. Now is a complete ROMset with all CHDs roughly 400GB in size, so you probably don’t want to download that amount of data every month. It’s faster to just download all new added ROMs, CHDs and Samples and update the ROMset you already have. And with the program CLRmamero you can do this. If you want more information about why MAME is so sensitive about the ROM versions and mandatory file names I highly recommend this Reddit thread: Step 1: Groundwork 1. First of all you should know what ROMset version you have.
This issue only happens for some games. I downloaded a Rom Pack for 0.138 and the closest version to this is MAME2010 so I downloaded the upgrade pack up to 0.139 from the website as I had not had any luck with clrmamepro. Each Way Nudger (JPM) (MPS), 139 Ko. Each Way Shifter (Barcrest?, set 1, version 16), 3 Ko. Each Way Shifter (Barcrest?, set 2, version 8a), 3 Ko.
I don’t know if there’s a comfortable way to find out what version you have. Normally your ROMset version should be the same as the MAME version you are currently using but I can’t guarantee that this is the case for you. So if you have absolutely no idea what ROM version you have I would suggest what I wrote at the beginning of this tutorial.
Download a complete set of the current version and write down what version that is, so you can update that set in the future. Download all ROM update packs beginning from the version you have until to the current version. With all I mean all and not just the latest. For example if your ROMset is on version 0.168 and you want to update to version 0.171 you will need the update packs: 0.168 to 0.169, 0.169 to.170 and 0.170 to 0.171! Download CLRmamepro at and install/extract it. You will also need to install/update to a version of MAME which matches the version you want to update your ROMset to. In this tutorial I show you how I update my 0.170 ROMset to version 0.171.
I use for that MAMEUIFX64 0.171. Optional: If you use a branch of MAME which supports some extra games (like MAMEUIFX) you would probably want these games too. Normally they are not included in an official complete MAME ROMset so you have to download them separately. Use Google to find out if your MAME version supports additional games and then download them. If you use MAMEUIFX like myself you can legally get the additional games in their official forum: Just download all ROMs and Samples and keep in mind to create separate folders for ROMs and Samples.
Step 2: Setting up the profile and paths 5. Open the “cmpro64.exe” and you will be greeted with a messagebox. Click okay and you will automatically be in the profiler menu. Here you have different options to include a database for Clrmamepro to work with. The easiest and in my opinion the best way is to use the database which comes directly with MAME itself.
So click on the create button and a new window will open. As filename search for the.exe file of your MAME version. As description I recommend you name it after the MAME branch and version you are using. In my case I name it MAMEUIFX64 0.171. Keep MAME as the emulator. Click on “Create Profile” and a new window opens in which can organize your profiles.
For now just click on OK. Now your newly created profile should show up in the profilelist. Double-click on your new profile. Now Clrmamepro wants to extract the database from your MAME.exe file. After a short scan it may ask you if you want to import SoftwareLists. If you don’t use MESS within MAME you won’t need that.
I don’t use MESS or want to update a MESS romset so I say “NO” to the SoftwareLists. Now some error messages are popping up. That’s totally normal. Just confirm every message with “OK TO ALL”.
Now you’re in the main menu of CLRmamepro. At first we have to set up our rom paths. Click on 'Settings' for that. In the left upper corner you can select for what kind of files you want to set up the paths. We want to add our ROM-Paths so we select “ROM-Paths”.
You can either click on “Add” to add your paths or just drag-and-drop them into the window. So add the path to your current romset you want to update. ( NOT the paths which are containing your updates!) 11. Every file CLRmamepro finds within the ROM- and Sample-Paths which don’t fit to the current MAME version will automatically be moved into the Backup folder. The standard setting for this is a folder called “backup” within CLRmamepro folder. If your CLRmamepro installation is on the same drive as your MAME romset than you can leave it as it is. If CLRmamepro and your ROMset are on different drives I highly recommend changing the backup folder path into an empty folder which sits on the same drive as your ROMs.
It will highly increase the speed. Leave the rest as it is. Change the path type to “Add-Paths”. Here you need to add every path you want the program to look for updates or new ROMs you want to add. If you have more than one update pack you can add all update packs at once in order to update your ROMset to the current version. No need to repeat this entire updating process for every single update pack.
IMPORTANT: You have to add the backup path too! In my case I want to update from 0.170 to 0.171 and add the extra games for MAMEUIFX. Optional: If you want to scan/fix/update your Sample files too, choose “Sample-Paths” and add the folder for it as well. A small explanation what sample files are (thanks Google): Samples go in a folder called 'samples' in your main Mame directory. They are used in conjunction with games that either doesn't have emulated sound or used external sound samples via another device (like a Tape). Mame will automatically use the correct ones with the game if they are present in the samples folder. Close the window.
All settings are being saved automatically. Step 3: The Scanner 15. After we have set up all paths we want that CLRmamepro scans our current romset and fix/remove every outdated ROM, CHD and Sample file. For that we click on 'Scanner'. The “You want to scan” section is self-explanatory. In the “You prefer” section you have to select the option which matches to your ROMset. So if you have a split set select “Split Sets”, etc.
If you don’t know what kind of set you have just go with “Split Sets”. “Prompts” you can leave it as it is. In the check/fix section we want to check and fix everything.
Click on “All” and every checkbox should be checked now. Ignore the “Advanced” and “LogFile” button and click on “Systems”. A new window opens up. Here click first on “All” and then on “Auto-Assign”. It will automatically set the paths for all systems into the ROM-Path you chose earlier. At the end of this tutorial I will say something more to this but for now just close the window.
Click on the “Hash & CHD” button. In the new window check both options at the bottom “Run Analysis” and “Fix file (If Possible)'.
These options will decrease the scanning speed but if you have corrupted ROM files it will try to repair them automatically. Leave the rest at is and close the window. Ignore “Statistics”.
Now we have configured the scanner and it should hopefully look like this: 22. Click on “New Scan” and wait. The scanner will tell you if it finds something which needs to be fixed. Confirm every message with “Yes To All”. In the “Scan Results” window you can see exactly what is currently wrong with your romset. You don’t have to worry about that. When the scan is finished a window pops up that’s giving you information about the current status of your ROMset.
Click on “OK” and close the scanner. Step 4: The Rebuilder 24. Our ROMset is cleaned and fixed now. At next we have to update it to the new version.
For that click in “Rebuilder”. Check the box “Use Add-Paths” and CLRmamepro will use all the paths for the updates that we already set up.
At 'destination' you have to check the box “Use System Default Paths”. In the Merge option you can choose how you want to have your ROMset to be constructed. For the best compatibility with LaunchBox I highly recommend a split or non-merged set!
Here are the differences between the different set options: Non-Merged: Each set has ALL files it needs. This is normally a waste of disk space because even clone sets have the parentsets included. Split: Parent sets only have the parent files and a clone sets consists of the clone files only. Merged Sets: Full merged sets are parentsets only, which also include all clone files.
So you will have every version of the game in just on file. I don’t want to waste disc space so I go with a split set in this tutorial. IMPORTANT: If you change the way of how your ROMset is currently constructed prepare for long waiting times because your whole set will be extracted and completely new rebuild. At “Compress Files” you have to choose which file format you want for your ROMS. I prefer.7z because it saves more space on the hard drive as.zip.
IMPORTANT #1: If you change the file format to a different format as your ROMs are already zipped it will take very long to rebuild your ROMset, because all your ROMs will be extracted and compressed again. So if you have all your ROMs in.zip files and you want it to change to.7z prepare for a long waiting time until everything is done. IMPORTANT #2: If you want to use.7z you will have to need 7-Zip installed on your PC. If you want to use.rar you will have to need WinRAR installed on your PC. Check “Recompress Files”, “Show Statistics” and “Remove Matched Sourcefiles”. Ignore “Systems” and “Advanced” and click on “Rebuild”. Optional: If you get an error relating to a.7z file it helps to copy the “7z.exe” and “7z.dll” from your 7-Zip folder into your “CLRmamepro” folder.
Now the rebuilding starts. Depending on your ROMset and your options it could take quite a while. When the rebuilding is finished you get a status report. Click on ok and close the rebuilder. Now we are almost finished. If you want to update your CHDs now is the time to do this.
But be aware that CHDs have their own update packs and you’ll have to download them separately. To update them just move the folders which are containing the CHD files from your CHD update folders into your ROM folder. You have to do that manually because the rebuilder of CLRmamepro doesn’t copy any new CHDs into your ROM folder.
Only the scanner renames/removes old ones (if you have CHDs checked in the options). I also would highly suggest you to do that in order of the versions.
For example if you want to update from 0.171 to 0.173 first move the updated CHDs from the 0.171 to 0.172 pack, than the ones from 0.72 to 01.73 etc. If Windows asks you if you want to integrate the files in the already existing folders confirm that with 'Yes'. BUT if it asks you at any point if you want to overwrite old files I would suggest you to decline that and do another scan so that the scanner of CLRmamepro can fix the CHD names from the older update packs. To speed up the scan you can uncheck 'ROMs' and 'Samples' in the scanner options first before you start the scan. After the finished scan you just have to move the remaining CHDs from the update pack which wanted to overwrite old CHD files into your ROM folder and then simply continue with the other update packs. Repeat that if Windows asks you again if you want to overwrite some files. Do the same with your Sample files if you want to add or update them.
Just keep in my mind to move them in your samples and not into your ROM folder. Go back to the “Scanner” and click on “New Scan”. If you have unchecked “ROMs” and “Samples” in order to update your CHDs check those two again before you start the final scan. If everything worked the new scan result screen should look like this: I only miss a sample file for one game which I couldn’t track down yet.
Everything else is complete and now up to date. Now you can delete all your update folders.
Bonus Step: Split your ROMset in to different systems If you don’t want every ROM in one big single folder and instead separate folders for separate arcade systems you can split them with CLRmamepro too. For example if you like to have the NeoGeo ROMs separated because you want them as a separate platform within LaunchBox. NOTE:If you are using the by @Antropus to import your MAME games into LaunchBox you won't need to do this and you should keep all ROMs in a single folder. Go back to the “Scanner” and click on “Systems”. Choose the System you want to be separated from your other ROMs and make a double-click on the path. Choose or create an empty folder in which you want to move the ROMs for that system and click “OK”.
Now click on “Move Sets” and the program will automatically move all ROMs into the folders you chose. NOTE: If you want to scan your ROMs again a message will show up saying that the new paths for your systems aren’t ROM-paths. Click on yes to add them automatically to your ROM-Paths. I hope this tutorial was understandable and useful for some of you. If you have questions feel free to ask.
Like Brad said they have their own update packs and you can update the ROMs without the updated CHDs or a complete CHD set. For the latter be aware that the scanner will of course tell you that you’re missing some CHDs and sets. I also cover CHDs on Step 34. If you want to update the CHDs you can just move all the CHDs from your CHD update packs after you already scanned and rebuild your entire romset. That's because the rebuilder of CLRmame doesn’t copy any new CHDs into your romfolder. Only the scanner renames/removes old ones (if you have CHDs checked in the options).
I would suggest you to do that in order of the versions. So first copy/move the updated CHDs for 0.162, than the ones from 0.163 etc. If it asks you at any point if you want to overwrite old files I would suggest you to decline that and do another scan so CLRmame can fix the CHD names from the older update packs.
After that you just move the remaining CHDs from the update pack which wanted to overwrite old CHD files and than simply continue with the other update packs. If you've finished updating the CHDs I would suggest to do one last final scan.
Thanks for pointing that out. I guess I will add these information’s to the tutorial as well any time soon. EDIT: Just updated Step 12, 34 and 36 with some new information's:). I'm still having a little trouble with CHDs because I can't find an update pack to save my life. I can't even a torrent or full CHD pack for.173. So basically I now have a fully updated from set at.173 (thanks to your tutorial) but an outdated CHD set at.161. If I could find update packs I would do that but since I cant seem to, is there a way to run a check to see which specific CHDs are outdated?
This way I could just get them individually. Least amount of hassle would be a full.173 CHD set but as mentioned I can't find one. As always thank you for the advice.
This is a great tutorial, however I am thoroughly confused about certain things: I thought that the tutorial is aimed at scanning/fixing and then rebuilding existing Rom set 0.170 into a new rom set 0.171. I’m assuming therefore that before your start, you have an existing MAMEUIFX 0.170 installation, containing the 0.170 full romset in the /roms folder. So if your tutorial is aimed at updating to a new romset of 0.171, surely you must also have the MAMEUIFX 0.171 emulator installed as well, with its own folder structure and currently empty /roms folder? If so, shouldn’t your tutorial show how to “REBUILD” from the source of /MAMEUIFX-0.170/ roms folder into /MAMEUIFX-0.171/ roms folder?? Because from my understanding, your tutorial has scanned/fixed your existing 0.170 romset and then updated it using “REBUILDER” to 0.171 romset.
But the updated roms are surely still present in your 0.170 /roms folder? Do you then simply copy the updated roms to your 0.171 /roms folder or what. I don’t know if I understand your question correctly. I have my own folder structure so I don’t use the „roms“ folder within the MAMEUIFX installation. So for me it’s always the same folder in which I keep my MAME ROMs and I just point every new version of MAMUIFX to that folder. If you keep your ROMs within the MAEMUIFX folder than you can simply just move that folder into the new MAMUIFX installation.
It shouldn’t matter if you do this before or after the update. Rebuilding the whole set into a new folder every time would just be an unnecessary waste of time in my opinion.