Roms are the data extracted from the chips on a system's circuit boards. The Mame program emulates the processors, sound and graphics chips and uses roms to supply the system data.
You can download roms from several sources the best of which are P2P networks or newsgroups like alt.binaries.games.mame. Legally, to have a rom on your PC you need to own the original chip or system. So to have the whole set of roms you'll need to own tens of thousands of arcade and computer systems (You'll need a big house!). You must not distribute them or supply them with Mame. BIG NO NO! There are a few legal roms available on MameDEV which are free to use. I'm not going to preach too much about this as many Mame users don't own a single arcade machine or old computer system. The risks are yours!
Roms, strangely enough, live in the roms folder. The full path would be
C:\Mame\roms. It's recommended that you keep them zipped, but if for some strange reason you want to extract them, the files need to be put into a folder named the same as the original zip. An example would be
polepos.zip would need to be extracted into a folder called
polepos in the roms folder. There isn't much point to this as the unzipping in Mame is so fast you won't notice it and extracted roms are up to 50% bigger than the equivalent zip file.
Be careful when getting roms as there are two types of sets. Parent sets contain a complete set of roms for a system whilst clone sets are for variants of a system and only contain roms that are different. The error a lot of people make is that they download a clone set, install it correctly and then find the game won't work as it's missing roms. These roms are in the parent set which hasn't been downloaded. To get the game to run you need BOTH sets. Here's an example of parents and clones for Pole Postion. Pole Position's parent set is called
polepos.zip. The following games require you to have
polepos.zip in the
C:\Mame\roms folder for them to work...
Mame uses several different types of files to run it's systems. Rom files are normally a collection of data files which are the extracted images of rom chips that make up a system. Rom files are the most common file that Mame requires and normally contain the main system OS or software data to get the system to run. Besides roms, some systems require software images as well and to make things even more complex, hardware devices to run the software. These are explained in the About Software and About Devices pages.
Here's what a rom zip file looks like...
Pacman's rom file
Key things in rom files that affect whether Mame will run it include the name of each file, the size and the CRC. The name and the CRC are used to determine if the rom file is correct and if the size is wrong there may be data missing. Use a program like CLRMame to check your roms for problems as it will compare what Mame is expecting to what you've got. It can fix several problems and will highlight more serious errors.
Some systems require BIOS files to get them to work. For example Metal Slug which is a NEO-GEO game requires you to have the
neogeo.zip BIOS file in your roms folder. BIOS files are kept separate to a system's rom data as the contents are often common to several other systems. Not having the matching BIOS file for the system will give you a file missing error!
More modern emulated systems need megabytes or gigabytes of data to store their data. Normally, hard disk and optical disk images are used to store this data. Mame supports these files in the form of CHD (Compressed Hunks of Data) files. Games that require CHD files need both a rom zip file and the matching CHD file which is stored separately to roms. For example Carnevil requires you to have carnevil.zip plus a folder called carnevil containing the file carnevil.chd. Note that the CHD file is NOT zipped. Confused? Here's an example...
Rom folder with CHD
And the CHD folder...
CHD folder contents
It's fairly straightforward but has confused so many.