A large portion of gaming on single-board computers is done through emulation. Emulation requires ROMs, and for said emulation to work you need the correct ROMs.
For the most part, a typical user will have ROMs that have been verified by No-Intro, Redump, MAME, or some other preservation group. The problem is that some users may have ROMs that do not work in their chosen emulator, which then raises the question of if the ROMs are incorrect.
The point of this documentation is to explain how to verify your ROMs are correct, which is especially important when dealing with arcade emulation.
1. DATs
The purpose of DATs you may find within arcade documentation, generated by arcade emulators, or on preservation sites like No-Intro's DAT-o-MATIC or Redump is to verify that the ROMs you have obtained are correct. When used with a verification program, DATs make short work of verifying, renaming, and even reassembling arcade ROMs so that they work with specific arcade emulators.
Below you will find various DATs for arcade emulators, consoles, handhelds, and computers that are commonly run on typical SBCs. If one of the Arcade ROM Sets is marked "Active" then the DAT may be out of date if in a ZIP, while if a ROM Set is marked "Frozen" then it should be up to date if it is in a ZIP: all direct links to DATs should be up-to-date. The version of the ROM Set the emulator uses is listed to the right alongside the CHD version, and in the cases of the FBN/FBA ones the FBN/FBA ROM Set version and the MAME ROM Set version it is associated with.
Make sure you update any active arcade emulator from Source on your SBC at the same time you download its DAT so that they match.
For reference, here is the CHD version history. Source
- CHD v1 - MAME 0.63
- CHD v2 - MAME 0.70u1
- CHD v3 - MAME 0.77u1
- CHD v4 - MAME 0.130u1
- CHD v5 - MAME 0.145u1
1.1 Arcade - FBN/FBA
FBN (Libretro Core) (Active) - Current FBN - Current MAME (Usually)
FBA 2012 (Libretro Core) (Frozen) - FBA 0.2.97.29 - MAME 0.149
1.2 Arcade - MAME
MAME 2000 (Libretro Core) (Frozen) - MAME 0.37b5
MAME 2003 (Libretro Core) (Frozen) - MAME 0.78 - CHD v3
MAME 2003 Plus (Libretro Core) (Active) - MAME 0.78 - CHD v3
MAME 2010 (Libretro Core) (Frozen) - MAME 0.139 - CHD v4
MAME 2015 (Libretro Core) (Frozen) - MAME 0.160 - CHD v5
MAME 2016 (Libretro Core) (Frozen) - MAME 0.174 - CHD v5
1.3 Arcade - AdvanceMAME
AdvanceMAME v0.94 (Frozen) - MAME 0.94 - CHD v3
AdvanceMAME v1.4 (Frozen) - MAME 0.106 - CHD v3
AdvanceMAME v3.9 (Active) - Up-To-Date Source - MAME 0.106 - CHD v3
1.4 Arcade - Raspberry Pi 3/3B+
All-in-One Overclocked RPi3B Arcade ROM Set Setup v1.10 (Custom)
RetroPie Forum Post
What I hope people will use this for is a starting point for an arcade collection that runs well on an overclocked RPi3B or stock RPi3B+. I don't plan to update this as I have other things to attend to, but I hope it saves someone some time.
This is an advanced custom ROM Set building guide that assumes you have the various ROM Sets this requires, and have said ROM Sets in a Non-Merged state with the BIOS included in each ZIP. It has Arcade Manager CSV lists and Windows batch files to largely avoid the constant change of arcade ROMs, and so that everyone who uses this isn't making outdated ROM Sets.
The ROM Set that you will make will consist of ROMs from FBN (v0.2.97.44 as of this post), MAME 2003 Plus, and MAME 2010 that have been tested to run full speed and emulate well on an overclocked RPi3B.
Games emulated with FBN were only given a blind first pass (no FPS monitoring), while games emulated with MAME 2003 Plus and MAME 2010 were given a second pass with FPS monitoring. Some games may run imperfectly, though hopefully everything bad or unplayable was removed.
There is generally only one copy of each game, and the preference of region is USA>Europe>Japan. Games in the Casino, Erotic, Mahjong, and Quiz genres are not included, nor are there any games that require more than a single eight-way input, six gameplay buttons, one Start button, and one Coin button.
The following is the overclock used for testing these games. Please do your own stability testing and do not take it for fact that it will be stable on your RPi3B.
arm_freq=1350
core_freq=550
over_voltage=6
A stock RPi3B+ should run most of these games without much issue, though not overclocking the core_freq may be an issue.
If you are on a stock RPi3B, you'll have to either do some trial and error or learn how to overclock your RPi3B: I advise the latter after all the time it took me to make this collection.
Spreadsheet
Use this to see what is in the ROM Set without having to delve into the archive itself.
Known Problems
- All games were tested minimally.
- All games running under FBN were only tested once without any FPS monitoring.
- Included "gamelist.xml" has incorrect info here and there outside of the names (probably) all being fine (barring some Japan games inconsistently having English translations names or English localization names).
Credits
- Cosmo0 for Arcade Manager
- ArcadeControls Community for their All Killer, No Filler game list.
- janderclander14 for additional games and suggestions.
- Malachiel for finding Bubble 2000 and Pang Pang in the collection.
Changelog
v1.0 - Initial Release (Limited Released)
v1.1 - Tidied things up for a release here on the RetroPie Forum. Added personal gamelist and images to archive.
v1.2 - Changed Double Dragon, Final Fight, Michael Jackson's Moonwalker, and OutRun to MAME 2003 Plus for the optional CD-soundtrack samples. Added some info on the optional CD-soundtrack samples. Added Tempest to FBN (since controls can be tweaked in RetroArch). Added Undercover Cops: Alpha Renewal to MAME 2003 Plus.
v1.3 - Fixed Magical Drop Plus image path in gamelist.xml and added title screenshot.
v1.4 - Made Arcade Manager CSV lists so that those on Mac and Linux can sort their ROMs as well. Added Neo Geo console ROM Set creation for the heck of it. Added CLRMAMEPRO guide for the heck of it.
v1.5 - Removed Bubble 2000 and Pang Pand due to them being erotic games.
v1.6 - Changed all FBA related stuff to FBN.
v1.7 - Removed Twin Brats due to it being an erotic game.
v1.8 - Removed Demon Front, Killing Blade Plus, and Martial Masters due to them running slow.
1.5 Arcade - Raspberry Pi 1/0
GnGeo-Pi (Frozen) - MAME 0.138
MAME4All-Pi (Frozen) - MAME 0.37b5
PiFBA (Frozen) - FBA 0.2.96.71 - MAME 0.114u1
1.6 Arcade - Resources
MAME Rollback & MAME DAT Downloads
MAME Rollback ROMs are used to make any old ROM Set when combined with the current MAME ROMs.
HBMAME Download
HBMAME is where most hacks/homebrew can be found. You'll have to install matching versions of both MAME and HBMAME, then use HBMAME to export the DAT (you want the second export option in the list).
This ROM Set is completely optional. So, if you don't care about hacks or homebrew and don't mind seeing the ROM Sets you build missing some ROMs, then you can just skip this one.
1.7 Various - No-Intro
The most commonly used cartridge-based system ROMs today are those verified by the No-Intro preservation group, though they also cover other storage mediums and some digitally distributed games. This group only keeps good ROMs in their database with no duplicates beyond what makes sense. Their database also offers customization of most DATs that can be generated, with one customization being able to generate a Parent/Clone XML that can be used to effortlessly make a custom "One Game, One ROM" ROM set containing only one ROM per game: not all systems have a usable Parent/Clone database.
DAT-o-MATIC Main Download Page
- Click on the asterix on the right side of the NES, FDS, Atari 7800, and Atari Lynx entries to download their respective Header Skippers.
- You can now download all DATs at once HERE. Just keep the type set to Standard DAT right above the download button near the bottom.
The Header Skippers are used by certain verification programs to skip over the header containing ROM information for old emulators.
- Click on the asterix on the right side of the NES, FDS, Atari 7800, and Atari Lynx entries to download their respective Header Skippers.
- You can now download all P/C XMLs at once HERE. Just change the type to P/C XML right above the download button near the bottom.
The XMLs here are basically the same as any of the DATs, though some programs may be picky and require the XML extension be renamed to the DAT extension or vice-versa.
The Header Skippers are used by certain verification programs to skip over the header containing ROM information for old emulators.
1.8 Various - Redump
Much like how most people prefer No-Intro for their cartridge-based ROM verification, Redump is the prefered choice for disc-based ROM verification. However, unlike No-Intro's allowance of any ROM dump being added to their database as long as it works and is unique, Redump only allows ROM dumps that have been properly put through their strict verification process to be added. Redump's strict verification process does produce perfect copies, but it also means that some games are still missing from their database.
Redump Homepage
To download a DAT, you just go up to "Downloads", then select the ones you want.
You will also want to download the accompanying CUEs/GDIs as the CUE/GDI you may have with your disc-based ROM may not be correct.
SBI Subchannels are a form of copy protection and you will need them for any game they were used in to run said game.
1.9 Various - TOSEC
The Old School Emulation Center (TOSEC) has one of the largest and most comprehensive databases available. They cover just about everything you could think of. If No-Intro or Redump does not cover the system you need to verify, then TOSEC most likely has you covered. The only issue most will have with TOSEC is the fact it catalogs all ROM dumps so a fully verified collection will require some sifting through to find what you want.
TOSEC Download Page
Just download the latest archive available.
1.10 Arcade - RG-350
The RG-350 has several frozen emulators between FBA, XMAME (uses three different ROM sets), GnGeo, and MAME4All. The archive below contains all the DATs for these emulators.
RG-350 - Arcade ROM Set DATs
2. Verification Programs
2.1 CLRMAMEPRO [Windows & Linux (WINE)] [Closed-Source]
CLRMAMEPRO Download Page
If you do not plan to use the No-Intro DATs, then you can ignore these instructions.
All you need to do is put No-Intro's Header Skippers in the "headers" folder of your CLRMAMEPRO's program folder.
If you didn't get them at No-Intro's DAT-o-MATIC for some reason, then here they are again in a single archive.
Download No-Intro's Header Skippers
- In the ">Profiler<" window, click on "Add DatFile…". You can also drag and drop the DATs into the >Profiler< window. If you do that, then skip to Step 3.
- Navigate to wherever the DAT you want to load is, then open it.
- (Optional) Create directories to sort your DATs.
- (Optional) Repeat steps 1-2 until all DATs are loaded into CLRMAMEPRO.
- Navigate to "[NEWDATFILES]" in the upper left corner of the ">Profiler<".
- Click on the DAT you want to load, click "Default", click "OK TO ALL" each time it comes up (if it comes up at all), then refer to the appropriate instructions below.
Before starting this guide you’ll need arcade ROMs. Can’t tell you where to find those, but I can tell you that you’ll want, as resources, a recent MAME ROM Set, a recent MAME Rollback ROM Set, and optionally a recent HBMAME ROM Set (if you want hacks/homebrew/translations): don't get any CHDs for any of these as the games they go with are mostly unplayable on current SBCs. You'll also want to update any active emulator from source you intend to verify its ROMs with CLRMAMEPRO at the same time you download its DAT.
- Click "Settings".
- In the "Settings" window, with the upper left drop-down menu option set to "ROM-Paths", click "Add…".
- Create a folder wherever you like with a name that corresponds to the arcade ROM set's name, create "ROMs" and "Samples" subfolders in that folder, then select the "ROMs" folder and click "OK".
- Back in the "Settings" window, change the upper left drop-down menu option to "Samples-Paths", then click "OK".
- Select the "Samples" folder you made in step 3 and click "OK".
- (Optional) If you downloaded a Full Arcade ROM Set, you'll want to copy the contents of its "Samples" folder to the newly created "Samples" folder. If you didn't download a Full ROM Set, then try to obtain Samples for the specific ROM set you are trying to make and put them in the newly created "Samples" folder. You can put a current MAME Samples Set in the "Samples" folder if you need to as CLRMAMEPRO will trim it down to only what the ROM set used, but you'll still need to track down obsolete Samples for whatever is found to be missing later in step 14.
- Close the "Settings" window.
- Click "Rebuilder".
- In the "Rebuilder" window, select a "Source" that contains arcade ROMs, make sure the "Destination" is the "ROMs" folder you selected in step 3, change "Merge Options" to "Non-Merged Sets", click "Rebuild…", then ignore the warning.
- After an indeterminate amount of time, you will get a statistic window. Click "OK" on that statistic window, then either click the circle in the lower right corner of the "Rebuilder" window to get to the "Scanner" window, or close the "Rebuilder" window and click "Scanner".
- In the "Scanner" window, make sure everything is on in the "You want to scan", set "You prefer" to "Non-Merged Sets, turn off "Ask Before Fixing in "Prompts", turn on all "Fix" options, then click "Advanced…".
- In the "Advanced Scanner Options" window, turn off "Separate BIOS sets", then close the window.
- In the "Scanner" window, click "New Scan…"
- After another indeterminate amount of time, you will get another statistic window to click "OK" on. From here you may see that you are missing ROMs, if so, then you'll have to track those down otherwise the ROM ZIPs missing the listed files will not function correctly.
- (Optional) If you don't want to see all the ROM ZIPs you are missing completely, then right click within the "Scan Results" window, go to "View", and enable "Hide Fully-Missing Sets". This is a universal setting and will stay on for all future DATs so keep it in mind.
- (Optional) If you don't want to look for ROMs and only want the complete ROM ZIPs you have, then right click within the "Scan Results" window, go to "Delete", and click "All Listed Incomplete Sets". By default, this will move the files to your CLRMAMEPRO install's backup folder, and will be re-added if you scan again with the "Missing" fix option still on. Remember to clean out that folder in the future if space is a concern.
- (Optional) In the Scanner window, click "LogFile…", then click on the "V" to view your missing ROMs in an easier to read text file.
- (Optional) Once you find the ROMs you are missing, you can either select a folder containing them in the "Rebuilder" for the "Source, or you can drag and drop them into the "Scan Results" window if it contains the results of a scan..
- (Optional) Any missing Samples will have to be manually added to the "Samples" folder, or possibly even repackaged into the ZIPs by hand depending on the situation.
- Click "Settings".
- In "Settings", with the upper left drop-down option set to "ROM-Paths", click "Add…".
- Create a folder wherever you like with a name that corresponds to the ROM set's name, select that folder, then click "OK".
- Close the "Settings" window.
- Click "Rebuilder".
- In the "Rebuilder" window, select a "Source" folder that contains the ROMs that match your DAT, make sure the "Destination" is the one you selected in step 3, then click "Rebuild…".
- After an indeterminate amount of time, you will get a statistic window. Click "OK" on that statistic window, then either click the circle in the lower right corner of the "Rebuilder" window to get to the "Scanner" window, or close the "Rebuilder" window and click "Scanner".
- In the "Scanner" window, make sure everything is on in the "You want to scan", turn off "Ask Before Fixing in "Prompts", turn on all "Fix" options, then click "New Scan…".
- After another indeterminate amount of time, you will get another statistic window to click "OK" on. From here you may see that you are missing ROMs: you'll have to track these down if you want a complete collection.
- (Optional) If you don't want to see all the ROM ZIPs you are missing completely, then right click within the "Scan Results" window, go to "View", and enable "Hide Fully-Missing Sets". This is a universal setting and will stay on for all future DATs so keep it in mind.
- (Optional) If you don't want to look for ROMs and only want the complete ROM ZIPs you have, then right click within the "Scan Results" window, go to "Delete", and click "All Listed Incomplete Sets". By default, this will move the files to your CLRMAMEPRO install's backup folder, and will be re-added if you scan again with the "Missing" fix option still on.
- (Optional) In the Scanner window, click "LogFile…", then click on the "V" to view your missing ROMs in an easier to read text file.
- (Optional) Once you find the ROMs you are missing, you can either select a folder containing them in the "Rebuilder" for the "Source, or you can drag and drop them into the "Scan Results" window if it contains the results of a scan.
- Click "Settings".
- In "Settings", with the upper left drop-down option set to "ROM-Paths", click "Add…".
- Create a folder wherever you like with a name that corresponds to the ROM set's name, select that folder, then click "OK".
- In "Settings", change the upper-left drop-down menu option from "ROM-Paths" to "Regions".
- In "Settings", with the upper left drop-down option set to "Regions", enable the regions you want ROMs from and reorder them in your prefered order.
- In "Setting" change "Region / Language Mode" to "1G1R Mode",
- Close the "Settings" window.
- Click "Rebuilder".
- In the "Rebuilder" window, select a "Source" folder that contains the ROMs that match your DAT, make sure the "Destination" is the one you selected in step 3, then click "Rebuild…".
- After an indeterminate amount of time, you will get a statistic window. Click "OK" on that statistic window, then either click the circle in the lower right corner of the "Rebuilder" window to get to the "Scanner" window, or close the "Rebuilder" window and click "Scanner".
- In the "Scanner" window, make sure everything is on in the "You want to scan", turn off "Ask Before Fixing in "Prompts", turn on all "Fix" options, then click "New Scan…".
- After another indeterminate amount of time, you will get another statistic window to click "OK" on. From here you may see that you are missing ROMs: you'll have to track these down if you want a complete collection.
- (Optional) If you don't want to see all the ROM ZIPs you are missing completely, then right click within the "Scan Results" window, go to "View", and enable "Hide Fully-Missing Sets". This is a universal setting and will stay on for all future DATs so keep it in mind.
- (Optional) If you don't want to look for ROMs and only want the complete ROM ZIPs you have, then right click within the "Scan Results" window, go to "Delete", and click "All Listed Incomplete Sets". By default, this will move the files to your CLRMAMEPRO install's backup folder, and will be re-added if you scan again with the "Missing" fix option still on. Remember to clean out that folder in the future if space is a concern.
- (Optional) In the Scanner window, click "LogFile…", then click on the "V" to view your missing ROMs in an easier to read text file.
- (Optional) Once you find the ROMs you are missing, you can either select a folder containing them in the "Rebuilder" for the "Source, or you can drag and drop them into the "Scan Results" window if it contains the results of a scan.
2.2 CLRMAMEPRO - Mac Port [Mac] [Closed-Source]
Simply a Mac conversion of CLRMAMEPRO using Wineskin Winery.
CLRMAMEPRO - Mac Port Download Page
Refer to instructions above for the Windows version.
2.3 MAME Set Rebuilder
A simplistic arcade ROM set rebuilder. Not advised to use due to how inefficient it is, but here it is for completion's sake.
MAME Set Rebuilder
3. Sorting Programs
3.1 Arcade Manager [Windows, MacOS, Linux] [Open-Source]
The major feature for most is the automatic RetroArch overlay (bezel) creation for any arcade ROM collection. It is also a useful tool for creating your own arcade ROM set, but want to start from a base.
Arcade Manager Download Page
3.2 Simple Arcade Multifilter [Windows] [Open-Source]
What you'll want to use if creating a custom arcade ROM set from scratch.
Simple Arcade Multifilter Download Page
3.3 ROMLister [Windows] [Open-Source]
A powerful ROM sorting program, but only works with DATs generated by MAME. Some other required files are hard to track down, though links to several "catver.ini" can be found on the "Simple Arcade Multifilter" page above.
ROMLister Download Page