A Comprehensive Guide to Emulator Setup: Part I
(Disclaimer: The downloading and use of ROMs obtained via download is a legal gray area at best and their sources cannot be trusted in every instance. Bottom line, research before you click AND use at your own risk! No person or persons affiliated with Gaming Rebellion shall be held responsible for any damaged equipment resulting from following the steps outlined below.)
Alright, now that we have all the legal bullshit out of the way, thanks for dropping by! Lumpz the Clown here, and if anyone knows how tedious and time-consuming it can be to use emulators, it’s me. The crown jewel of my efforts is a full-size home arcade machine that houses a Dell with Windows XP and HyperSpin. After many hours of tediously adding over 900+ titles to the system and hacking the registry so that my computer boots right into my frontend upon startup (more on this later), I now have a fully functional arcade system that perfectly emulates 8 consoles, all with their own title and background art, as well as video previews of gameplay, also known as attract mode, for each game and emulator!
This DIDN’T happen overnight!
In the end, it’s an outdated Dell PC housed in a gutted Golden Tee ’97 cabinet with a CRT TV screen and a modified X-Arcade Tankstick control scheme, but I digress. The heart of this machine is where the REAL fun lies (ahem, LOTS of GAMES), but before we talk about complicated frontend setups and XML file mods, we need to start at the point where this project began.
I began by thinking of the games that I used to play in the arcade as a young clown. I remember playing Bad Dudes, Black Tiger and the totally awesome Neo-Geo cabs they had at my local Pizza Hut that housed great titles like King of the Monsters and Magical Lord. At first, I wanted to just buy a dedicated arcade cabinet with one game, but as I began researching, I learned about the great, wide world of emulation and its limitless possibilities! The goal of many emulation projects is not to earn a profit or rip off developers, but rather to keep the history of gaming’s roots alive.
The children of the 70s and 80s have since grown up and many of them have children of their own now, and if it weren’t for emulators, they wouldn’t be able to share their awesome memories with their own children. These parents remember the lump they got in their throats when they heard that quarter hit the metal, girding themselves for an audio/visual assault they would not soon forget, and they simply want to share those memories with their children. Many of these cabs were simply scrapped when they stopped working and as a result, finding a specific game can prove to be very difficult in this day and age.
This is not the case with emulation, however, as the Internet has provided an outlet for gamers to find all of the games they could ever HOPE for! The Internet allows these parents to share their awesome experiences with their children, and allows the rest of us to simply bask in the beautiful light of our childhood.
By now, I was completely hooked and eager to start the project. My first stop was Craigslist, where I found an old Dell XP computer with about 512 MB of RAM and a dated video card. After securing the computer for a measly $20, my odyssey into the big, beautiful world of emulation began!
I would recommend that your first step into the world of emulation starts with MAME. “Why,” you ask? There are many reasons, but here are a few of them: 1) the MAME project is constantly being updated and improved upon, 2) there is an EXCELLENT support community, 3) there is a TON of articles and forums for those with questions, and 4) all of us had that ONE arcade game we wish we could play again!
My own setup has two versions of MAME: Mame32 and MAME. Again, you may ask, “why?” Many of the ROMs found online may be dated and incompatible with newer versions of MAME for various reasons, but should work with Mame32 or another older version of MAME. Plus, older versions of Mame may offer high score saving support, whereas newer ones do not. In the Windows environment, it is as simple as opening up both versions of MAME and loading the ROM in each one, one at a time, to determine if the game is functional. If it doesn’t work in one, try the other, and if the ROM doesn’t work in either one, try to download the ROM from another website. ROM sites that I have had great success with include CoolROM and EmuParadise. There are many other sites available if you happen to search ROMs in your favorite search engine, but I wouldn’t recommend them as I have received many broken files and malware in the past as a result.
Below are the first steps that you would take to get MAME up and running on your computer.
1) Go to MAME‘s homepage.
2) Their latest version is in the box on the right-hand side of the screen. Click “Download Now”.
3) Click the first option available under “MAME 0.xxx Official Binaries.”
5) After the file is downloaded, click on it from your Downloads folder to open the installer, where you will set the location of the file system. Select the location and click “Extract.”
6) When it is done extracting, you will have your very own functional copy of MAME, complete with its own set of subfolders and applications! Simple as that!
You can also download MameUI, or Mame32, from here, in the event that your ROM does not work with the current version of MAME.
At first launch, MAME will automatically map all of your keys for the UI, or user interface, as well as assign buttons for the games. This is on a global level, which means that it will apply to EVERYTHING, from the MAME program to the in-game interface. I happen to have a wired XBox 360 controller that I use with my PC, and I changed the settings so that I can run everything from my controller. Below are the steps you will need to take to configure your buttons, whether for your keyboard or PC controller.
1) From the first screen, select “Configure General Inputs”.
2) Second, select “UI Interface”.
3) Scroll through the button options until you find one you would like to change. (e.g.: UI Up).
4) Press ENTER to zero out the field next to the button name.
5) Press the button you would like to assign to the function, or button name, on either your PC controller or keyboard.
6) Repeat steps 1-5 until all of the buttons have been assigned to your preferences.
7) Press ESC to return to the previous screen.
8) Scroll to and select “Player 1 Controls.”
9) Repeat steps 3-5 to assign buttons for “Player 1 Controls.” Do the same with “Player 2 Controls” and so on if you plan on using more than one interface or controller.
10) Press ESC to return to the previous screen.
11) Scroll to and select “Other Controls.”
12) Repeat steps 3-5 to assign buttons for “Other Controls.”
13) Press ESC twice to return to the main menu.
To change controls for a specific game, simply hit the TAB button after launching the game and you can have access to not only controls for that particular game (doesn’t apply to GLOBAL settings), but also any dipswitches, or in-game modifications, that may be available as well as display and audio options.
Now….ONTO THE ROMS!
As is, the MAME folder does not contain any ROMs. It will be up to you to use the resources provided or ones discovered from your own research to locate your desired ROMs, which would then be placed in “roms” folder in a ZIPPED format! That’s right! The MAME emulator will not recognize an UNZIPPED ROM, so again, after downloading the ROM from your favorite site, move it into your “rom” folder AS-IS, DO NOT UNZIP IT! The reason for this is that arcade ROMs may contain numerous files that the game requires to function, and if those files are unzipped, the emulator will not be able to determine their location to run the game. Repeat after me: DO NOT UNZIP THE ROMS! :-)
As I mentioned before, my favorite ROM sites include:
There are numerous other websites out there that provide ROMs free of charge, but I have had the best luck with the ones listed above. If your ROM does not work after downloading it, try it in another version of Mame. If that doesn’t work, download the ROM from another site and try again. Keep looking and testing until you find a working version of your desired ROM; just err on the side of caution when downloading ANYTHING and DON’T GIVE UP!
Now that you have your ROMs in the “roms” folder, you are now ready to start playing your games! Upon launch, MAME will generate a list of your games and it’s as simple as selecting a game to play! But what’s this?!
Don’t Give Up Yet!
MAME’s directory is comprised of one parent file and sometimes multiple clone files. Take a good look at the screenshot above. Notice how the name of the file is “dkongj”, with the name “Donkey Kong (Japan Set 1)” to the right of it? The MAME interface can be very difficult to interpret at times, and it will not come outright and tell you that the file you are trying to open is a clone of the ROM “dkong.” We can assume this because “dkongj” simply has the letter “j” at the end of “dkong,” so let’s try to add the “dkong” ROM back into the “rom” folder.
Unless you happen to download a GUI, or graphical user interface, program for MAME (such as IV-Play), it can be very difficult to determine which files are parents and which ones are clones. Now let’s look at another example: The Simpsons! When this game was released to the arcades, it came in a 4-player format (with four separate sets of buttons and joysticks) and 2-player format (two sets of joysticks and buttons and a character select option). The parent ROM for this game is titled “simpsons” and the clone ROM is titled “simpsons2p.”
This is by far the most troublesome hurdle for new users of MAME to try and overcome, but to make it as easy as possible, MAME will use similar naming conventions for ALL of its games! REMEMBER: dkongj = dkong + j and simpsons2p = simpsons + 2p! Some websites will even give you information about the ROM that you are downloading and whether or not it is a parent or a clone ROM, but don’t count on it every time.
Another good rule of thumb to follow is that the filesize for parent ROMs is MUCH larger than clone ROMs. If you are downloading a ROM for Donkey Kong, Jr. and you notice that the filesize is only 2KB, then it’s a pretty safe bet that it is a clone ROM. For example, my “dkong” ROM (parent) is 23KB and the “dkongj” ROM (clone) is smaller at 15KB. A more glaring example is the “simpsons” ROM (parent), which sits at a relatively large 2,427KB and the “simpsons2p” ROM (clone) is only 246KB! As you gain more experience working with MAME, you will begin to notice when a filesize is too small to be a parent ROM, which the clone ROM will require to run in the first place. Alternatively, you could make your life easier and download a GUI for MAME, such as IV-Play, to determine the name of the parent ROM you will need to download first before downloading a clone ROM.
Clone ROMs sometimes have perks that their parent ROMs don’t have. In “dkong,” the player is taken from the first stage to the last stage without visiting the second or third stages in their initial playthrough, whereas the “dkongj” ROM not only allows for natural level progression as the developer intended, but also provides more than the standard 3 initials if you happen to get a high score. While running the “simpsons” ROM, the player is forced to play as only one character (whichever character is automatically assigned to the first, second, third and fourth players) throughout the entire game, but “simpsons2p” allows the player to select which character they would like to play as, and is a better fit for those who only have two controllers. ALL ROMs should be placed in the “roms” folder for MAME to recognize them. One last time: download the PARENT ROM before attempting to launch its CLONE ROM! Moving on…
I feel that this deserves its own section simply because many of us remember pumping endless amounts of coins into Neo-Geo cabs to play some of the greats: Metal Slug, Puzzle Bobble, King of the Monsters, Magician Lord, Baseball Stars, on and on and on! The good news is that these ROMs are pretty straightforward and you won’t have to worry too much about clone ROMs, but these games require one very important file to run: the Neo-Geo BIOS file.
If you attempt to run a Neo-Geo game without this file, you will get an error message. The BIOS file contains many different files that these games require to run, so DON’T FORGET IT! Simply move the UNZIPPED Neo-Geo BIOS file into your “roms” folder and away you go! The Neo-Geo BIOS will appear in your list of games, but selecting it will do nothing. Ignore this for now. If your downloaded version of the Neo-Geo BIOS does NOT work, go to a different website and try again. As of this writing, the provided link contains a working file, but this could change as MAME updates. Onto a big ‘un!
Games That Require CHD
Another type of MAME ROM that requires additional files to run include Primal Rage 2, Killer Instinct 1 & 2, Area 51 and Street Fighter III: 3rd Strike. CHDs, or Compressed Hunks of Data (literally), can be thought of as arcade hard drives that contain files that are necessary to run relatively advanced games. If you attempt to run these games without their corresponding CHD files, you will get an error message. If you have trouble with a particular ROM, you will want to do a quick inquiry using your favorite search engine to determine if the game requires a CHD file to run. The process for adding CHD files is as follows:
1) Download the ROM and place it in your “roms” folder.
2) In your “roms” folder, create a New File and rename it EXACTLY as your ROM is named. For example, Killer Instinct’s ROM is named “kinst.” In the “roms” folder, you will want to create a New Folder named “kinst.”
3) Go to EmuParadise’s CHD page to download the appropriate CHD file. This may take some time, as the files are still quite large even when compressed. Feel free to search other sites for CHD files, but the ones at EmuParadise have proven to be the most reliable so far.
4) Unzip the file with either 7-Zip, WinZip or RarZilla, depending on it’s saved, zipped format. If the saved CHD file has the extension “.7z,” use 7-Zip. If the extension is “.zip,” use WinZip. Finally, if the extension is “.rar,” use RarZilla. Extract the CHD file into your newly created and renamed folder in your “roms” folder.
5) Run the game to test!
In the end, the setup within your “roms” folder should look something like this, with the CHD file stored in the file with the same name as the ROM you are trying to run.
This is what your “roms” folder should look like when you are done.
Here’s the contents of the “kinst” file, with the 7z file and the unzipped CHD file.
And that about covers the subject of ROMs and their corresponding CHD files. Onto the awesome gamer accolades!
Saving Your High Score
When Mame32, or MAMEUI, was first developed for Windows, players were elated that they were able to again play the games of their youth, but sadly realized that their high scores would be erased upon exit from the ROM! The reason behind this? Remember that episode of Seinfeld where George had achieved the long-standing high score in Frogger and didn’t want to lose it when he came into possession of the arcade cabinet years later? That is because when an arcade cabinet was UNPLUGGED, all of the high scores were wiped clean and the cabinet would return to its original state. The same applies in MAME. When the player exits a ROM, it’s as if they “pulled the plug”, thus losing their high score. To address this, the developer Leezer has created an unofficial hiscore.dat file that saves high scores in MAME, even if the player exits the ROM. Sadly, official MAME releases have since dropped support for this .dat file, citing that proper emulation could not be achieved with the function enabled. But FEAR NOT! The download page also contains 2 versions of Mame (v0.133u3 and Mame64 148.u2) that SUPPORT this .dat file! Here are the steps to setup high score support:
1) Download the version of Mame you prefer.
2) Extract the contents of the zipped file to a New Folder, named differently from your original MAME folder.
3) Download the latest Hiscore.dat file.
4) Extract it to the same location as your Mame executable.
5) Copy (DON’T CUT AND PASTE) ALL of your MAME folders over to the other Mame file.
6) Go into your “nvram” folder and delete its contents, but keep the file.
7) Run the older Mame executable from its folder and get a high score to test!
Sadly, even with this other version of Mame, not all games will save high scores for reasons ranging from the game’s inability to save high scores inherently to the game not being supported by the .dat file. A list of unsupported games can be found in the link provided above! Your setup should look something like this when you are done.
The older Mame folder with the copied folders from the newer MAME folder and downloaded .dat files.
One word of caution: MAME naming conventions for ROMs have changed greatly since it was first developed, and due to this, some of your ROMs may not work with the older version of Mame. If you happen to run into this problem, simply try to download an older version of the ROM to replace the one that doesn’t work. Much of this is trial-and-error, but for the most part, your downloaded ROMs that worked with your newer version of MAME will work just fine in the older one.
Instead of downloading ROMs in bulk format from, say, a torrent site, I highly suggest downloading and testing them one-by-one. I know it isn’t the fastest way, but it’s the right way if you want assurance that all of your games will work AND support saving high scores where available. I tried this method once, and it turned out to not only be a tremendous headache to rename over 500+ ROMs, but it also bogged down my system with titles I could give a shit about! Do it right and you will NOT be disappointed! :-)
Fixing Problems with Graphics in MAME
For the most part, your downloaded ROMs should play nicely with MAME, but depending on your display and computer, graphical glitches can occur, the most damning one being screen tearing. Nothing’s worse than firing up your childhood favorite only to discover that it looks like utter SHIT! Screen tearing is defined as a display showing two or more frames in a single screen draw and looks something like this.
If this happens in MAME, FEAR NOT! MAME happens to be a command-line program, and though there is no way to fix this within MAME’s interface, it CAN be fixed from the command line. In the Windows Start Menu, type “cmd” in “Search Programs and Files” or simply navigate to your Command Prompt within the Windows environment. This will pull up the Command Prompt (remember this, DOS folks?) where you will then navigate to your MAME folder. Here are the steps:
1) Upon launch, Command Prompt should take you to your <Username> location. Mine is “C:\Users\<Username>,” but yours may be different.
2) Type “cd,” (space), and the path to your MAME Folder, whatever that may be. Mine is C:\Users\<Username>\Desktop\Emulators\Mame, but again, yours may be different.
3) Type “mame <whatever your ROM’s name is>,” (space), “-triplebuffer” or “-[no]waitvsync.”
4) The game will launch with your specified command enabled!
Do, however, exercise caution when enabling “vsync.” This option basically waits for the frame to be completed before drawing another one and should only be used when “triple buffer” doesn’t work. The reason for this is that it can cause serious controller lag and burns up more computing cycles. This can be really vexing when playing titles such as “V.S. Super Mario Bros.” when accurate controller input is CRUCIAL! As the computer is drawing the frame, it is unable to take user commands immediately and can lead to your untimely demise. My STRONG suggestion is to try “triple buffer” first from the command line if the screen tearing is unbearable, and if you still have issues, consider trying the ROM in a different version of MAME or even changing your display if you want make a dedicated arcade machine that looks pretty. I have had issues with some ROMs in the past, and “triple buffer” solves the problem about 99% of the time. Moral of the story when launching a troublesome MAME game from the command line: TRY TRIPLE BUFFER FIRST!
If you happen to have any other graphical issues with ROMs, the problem is most likely that you have downloaded a bad ROM dump. In this case, the fix is simple: download another instance of the ROM from a different site!
To Sum Up
For right now, you have everything you will need to run arcade games from your home computer easily and accurately! In this article, we covered downloading two versions of MAME for ROM testing purposes as well as high score support, as well as running ROMs that require CHD files to function and enabling commands to fix graphical errors that may occur. In future articles, I will discuss front ends, .xml files and artwork to really make your machine POP! Getting it to function is necessary, but the REAL fun is reveling in the amazing artwork and attract modes that captured our imaginations in the first place! I hope this article reaches those who have been banging their heads on their desks, wondering if they will ever get to play their favorite arcade games ever again! I’m here to tell you now: if a CLOWN can do it, YOU CAN, too! Thanks for reading and Lumpz the Clown OUT!