Troubleshooting

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.


.

MAME vs. ROMS

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.


.

Machine Status

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 Error Message

MAME Error Message

MAME Error Message

MAME Error Message


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...

MAME Error Message

MAME Error Message

MAME Error Message

MAME Error Message


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.


.

Missing ROMs

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...


DOS File Missing Error Message

DOS File Missing Error Message

DOS File Missing Error Message

DOS File Missing Error Message

or

UI File Missing Error Message

UI File Missing Error Message

UI File Missing Error Message

UI File Missing Error Message


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.


.

Updating ROMs

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 easy way...

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.

The harder way...

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...


005 Error Message

005 Error Message

005 Error Message

005 Error Message


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...


005 O.K. Message

005 O.K. Message

005 O.K. Message

005 O.K. Message


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!


.

Other Problems

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.


.

ROM Managers

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.