Here are some examples of common problems that you may get when you run MAME after first installation or an update. Most errors occur due to missing ROM sets or ROM sets that have been changed during an update though, sometimes it's due to the machine not working.
One of the most asked questions I've seen is "I've got MAME version 0.XXX. Can I run my ROM set from version 0.YYY on it?" The simple answer is... maybe. As MAME is updated, some ROM sets are updated too. If the machine you want to run hasn't changed, then MAME should run it without a problem. If MAME gives you an error, the only way to know what is wrong is to use the -verifyroms
option on the command line. This will tell MAME to check your ROM sets and tell you what is wrong with them. The output MAME generates can be quite long and it's best to send it to a text file. Use the following command to do this...
C:\Mame\mame64 -verifyroms >roms.txt
This will take some time but it will give you a thorough overview of your ROM set. Once complete, open the file in your favourite text editor and you will have the information about you ROM sets. Now depending on the issues, you need to decide whether to download a complete new ROM set that matches your MAME version, or try and fix it. A ROM manager like CLRMamePro can fix a lot of simple problems like wrong names and unneeded files. If you have missing files, you might want to check the sections below as they will tell you how to fix them.
Probably the most common error when running a machine is ignoring the warning screens when it starts. These screens tell you important information about the loading machine, including it's status. If you run a machine with a problem, you'll probably get a message like this...
MAME categorizes its machines in three ways...
Folder | Description |
Good | Good status machines should run without any errors. If the machine is good and you get errors, it's most likely caused by ROMs (though sometimes machine drivers do get broken!) |
Imperfect | Imperfect machines do normally function, but have bugs. These bugs could range from graphic errors all the way through to game breaking problems. |
Preliminary | Preliminary machines are often very broken and most barely run. |
You can find out a machines status before you run it in the machine information panel in MAME's user interface...
The colour of the panel tells you the status of the machine. Green means that the machine is working. Amber tells you that the machine is imperfect. The bottom line will tell you what element of the machine is broken and the "Overall" line will tell you if the machine does work. Red tells you that the machine is preliminary so will probably not work.
Imperfect and preliminary machines will give you problems, no matter what you do. The only way these machines will be fixed it by the MAMEDev team and nagging them about is not a good idea! You can check on any bugs you find on the mameTesters site. The search will show if the bug has been reported and if it hasn't, you can add it.
The most frustrating part of running a "working" machine in MAME is when it doesn't actually work. If there is a problem, you'll probably get an error like this...
or
The most common problem is not having the right ROM files to get the machine working. Next, is when MAME has been updated and incorrect or damaged ROM files have been replaced with good ones or their names have been changed.
First thing to do is to check that you have the correct zipped ROM files in the ROMs folder. You can do this by typing the following...
mame64 <system> -verifyroms
You will get an error of romset <system> not found if the ROM set is missing. If the ROM file looks right and you still get an error then it could be caused by a missing or updated BIOS or device files. BIOS files are used by some machines to control and hold settings and language information. For example Metal Slug is a NEO-GEO game and requires the BIOS file neogeo.zip to be in the ROMs folder as well as mslug.zip. Device files hold ROM images of common devices used on various machines. For example Xevious is a Namco game and requires xevious.zip to be in the ROMs folder as well as namco50.zip, namco51.zip and namco54.zip. To find out what files are required to run the machine you wish to use, go to the Arcade Database and find the page for the machine. If you scroll the page down, you will find a section called "Files". If you click "Show MAME Required Files" you will see the required rom sets to get the machine working. Once you have downloaded the files from a ROM site, put them in your C:\Mame\roms folder.
Sometimes the MAME devs will rename ROM sets as more information about the emulated machine is found. Technically the right ROMs are still there, but MAME can't find the set due to the new name. If you have the right name then all you would have to do is rename the zipped rom file to the correct name for it to work again.
If you find that a machine that was working fine, doesn't run any more, you might want to verify that all the files are there. The images above show the kind of error messages you could expect. If you get errors like the ones above, you will need to fix them to get the machine running again. There are two ways to fix these errors...
The easiest way to fix these kind of errors is to re-download the whole system ROM zip file. Before downloading, make sure that the ROM file supports the version of MAME that you are using or you'll just get the same error! There are several sites on the internet which host the updated ROM files. Google is your friend here. The Pleasuredome bittorrent site can also be a good place to get updates, as they host an update torrent which has the zip files of all of the changed machines in it.
If you want to just update the ROM file, rather than the whole zip file, then you will need to find the ROM that you need and drop the un-compressed file over the relevant zip file. It will then replace the incorrect ROM file with the right one. To find the ROM file that is incorrect or missing, you will need to use the command line to get MAME to show the rom audit. Open a command prompt and use this command replacing <system> with the system name you want to check.
mame64 <system> -verifyroms
This is the kind of message that you will get...
The list generated will give you an idea of any wrong or missing files in the zip file. If the ROM is marked as "NEEDS REDUMP", there is very little you can do about fixing it until the physical ROM is redumped by the dev team. Normally these files will not show as missing as there is a file there for the chip, it's just broken. If the missing file ends in .chd then you are missing the CHD image file required to run the system. You will need to get this file for the system to run. You can find more information on CHD files on the About Roms/CHDS page.
Any missing files or ones shown as incorrect will need to be replaced. You could use Google to search for the files. There are a lot of sites where you can get them from. When you have them, just drop them over the zipped ROM file and the new ROMs will be added. Now if you run the verify command again you should see something like this...
On top of missing files, sometimes the MAME devs will rename the ROM files inside sets as more information about the emulated machine is found. Technically the right ROM file is still there, but MAME can't find it due to the new name. For most ROMs it's easier just to re-download the whole set again as it is quicker than renaming individual files. Also a ROM manager can rename the ROMs in seconds, if you have one set up. If you really want to do it manually, you will need to extract the whole ROM zip file and manually rename each incorrect file to the correct name. You'll then have to re-archive the rom file with the correct name. I really don't reccommend this unless you are an expert!
If you are 100% sure that all the files are right and you still cannot run a machine that ran perfectly before you updated MAME, then you may need to delete the nvram and/or cfg file for it. These files contain configuration information and/or data from the onboard memory found on a machine's main circuit board. If the chips on the board have changed, then the memory files may be not compatible anymore. To delete these file you will need to open the C:\Mame\nvram or C:\Mame\cfg folders and delete the folder/file that matches the name of the machine that your are trying to run.
There are also programs out there that can help you manage ROM files and help you fix a lot of the issues above. I'd personally recommend CLRmame as a good ROM manager. Once mastered, it is a really powerful tool and it really helps you manage your ROM files. As a bonus, it can also be used on other emulators too.