Sourcing and Downloading the Best Possible ROM Dumps (My Sharing + Workflow)

tldr: I'm in desperate needs to download those classic ROMs for first to fifth generation game system! Otherwise my front-end will just be an empty shell. This post shows how I manage to meet my needs.

While setting up my front-end entertainment system using HyperSpin, I'd figure that I will eventually have to start collect those ROMs for older generation system such as Atari 5200, GB, GBC. Right now I'm having a handful of near full set ROMs for modern systems such as Playstation 1, Playstation 2, Nintendo Wii, Super Nintendo Entertainment System, but only a few for older systems such as Game Boy, Game Boy Color, Sega Genesis, and the list goes on and on. The best thing about these classic ROMs is, it doesn't cost Gigabytes of storage unlike the modern disc based game.

I'm sure you are aware by now, searching for ROMs on Google will almost result with tons of sites that provides them. Some require registrations, some have limited download count or size per day, some requires membership to download, yada-yada-yada. What I want is the follows:

Objective 1: Good and best possible ROMs dump

What I meant by best ROM dump is any ROM that is dumped exactly like the original cartridge without additional header content. This is very important as the HyperList, which is a database file that used by HyperSpin will cross matching the ROMs file based on CRC. Any addition such as header to the ROM file will alter this CRC value.

Typically the best ROM dump consist of the same ROM release in three regions, such as USA, Europe and Japan. For example, Pokemon Blue (USA), Pokemon Blue (EU), and Pokemon Blue (JP).

To date, I've found site like DopeROM to have the best rom dump ever compared to other sites like CoolRoms, FreeRoms, UltraNation, Emuparadise, etc.

Don't let the simple plain website fools and sways you away. The best gem is the content itself!

A list of best ROM dump possible for various system! Simply awesome!

You can read No-Intro homepage, which is a group of people that aim to do exactly this - Sourcing the best possible ROM dump on the planet Earth.

Objective 2: Collection set downloads

Frankly, nothing beats torrents when it comes to downloading a set of huge collection. Sure you could easily find roms collections that are highly seeded on various torrent site. However, bear in min that there is no guarantee that the torrents that I came across will have a set of best ROM dump, or any best ROM dump in the slightest.

With torrents option out of the list, the next thing to look for is for user contributed content that share content to various file hosting sites. This means finding in forums, undernet, IRC, etc. My popular hosting sites goes to, hands down!

Fortunately, someone nicked CyberPuppet from Emuparadise had done exactly this.

Cyber Puppet, you're my newest favorite person on earth now :)

He had actually uploaded and shared his mass collection of No-Intro ROM Full Collection Sets for almost all the classic systems, including Atari 5200, Atari 7800, Atari Jaguar, Atari Lynx, Bandai WonderSwan, Commodore 64, Nintendo Game Boy, Nintendo Game Boy Color, Nintendo Game Boy Advance, Nintendo 64, Nintendo Entertainment System, Super Nintendo Entertainment System, Nintendo Virtual Boy, Sega Systems, and the list just goes on and on!

Bear in mind that what he meant by collection set is literally COLLECTION SETS! So you'll find EVERY ROMs that are released in EVERY SINGLE REGION without limiting only to USA or Europe! Sorry for the capitalization but I suddenly feel the urge to emphasize that ;-P

Cyber Puppet No-Intro Complete ROM Sets Collection

The good news doesn't just ends here. What's even better is he also share those files on and! I really can't thank him enough for this! :-D

You can get his shared collections <<<< HERE >>>> on Emuparadise forum. Again, you'll have to register as member in order to see those links.

Sourcing ROM Set for Particular Game System

Some ROM sets such as MAME can be hard to source, which is why I created this section to share my findings.



Some ROM set such as MAME ROMs set or most ROM set in general, can be found on PleasureDome.UK, which is a private tracker that host some of the best collections. It, however, requires member activation and registration which can be cumbersome. Being a member in 'probation' status, I am only allowed to download their MAME 0.161 ROMs, which is what I want currently. I selected the T7Z-Merged torrent as it offers the smallest file size. In truth, the content should be the same as the other one, just that the same ROM with multiple regions are 7zipped together in an archive for maximum compression.

You're only limited to several torrents while your membership is in Probation status.

You can now browse through their full torrents once I had been verified and become one of their member.


This is yet another site where you can download MAME and MESS ROMs collections.

Archive.ORG list of MAME and MESS ROMs collection. Note that the collection might be slightly outdated. For example, MAME ROMs set is on 0.161 as of the time of this writing.


This is yet another private tracker that you can download tons of ROMs collection. In particular, there is a torrent collection of MAME ROMs too!

A member sharing his torrent upload for MAME ROMs collection.

Commodore 64

Unfortunately if you're downloading the Commodore 64 No-Intro ROMset uploaded by Cyber Puppet, those won't match with the Commodore 64 HyperList even though it is using the same romset. Also, notice that the games in the HyperList is 8236 while the No-Intro ROMset only contains 1684 ROMs.

Here is a scan using Emuparadise Commodore 64 Full ROM Set (GoodGB64 v3.00 Complete 17067 ROM Set Commodore 64). It's definitely close but still missing 2464 ROMs.

Scanning Commodore 64 Official HyperList XML against Commodore 64 Full ROM Set downloaded from Emuparadise.

To get a ROM set that will match the official HyperList for Commodore 64 as much as possible, download the ROMs from GameBase64 which is where the list is compiled (discussion link).

There aren't any all-in-one zips, instead ROMs are zipped separately by titles. The good news is there is no download speed limit nor connection limit. So it's time to use the Site Grabber feature in IDM to grab all the files in one click.

GameBase64 website to get the full Commodore 64 ROMs that is compatible with HyperList.

A screencap of using IDM Site Grabber to download all the archives.

Microsoft Disk Operating System (MS-DOS)

Other Recommended Sites to Get Best ROM dump


My WorkFlow

Having these sites at my arsenal, my first step is to simply download those No-Intro collection ROMs shared by CyberPuppet. Once downloaded, I then extracted them in a temporary ROM folder. I then use Don's HyperSpin ROM Renamer tool to easily rename those ROMs based on the HyperList XML file which has all the CRC for the game title for a particular system. Those renamed ROMs are located in my G:\roms\<game system name> folder which RocketLauncher and HyperSpin refers to.

In case some ROMs are not matching the CRC, which I found in several system (just being 1 or 2 of them out of hundreds), I then download the ROM from DopeROMs which will have them. From my personal experience, all the ROM that I downloaded from DopeROMs are having the correct CRC! Glad they offer the service for free. I could easily subscribe for premium member for that!

So there's that, my workflow on sourcing and downloading the best possible ROM dump for classic game system. Downloading ROM for modern system is relatively easy but can get complicated when it involve disc image. In fact, the HyperList still doesn't have CRC for modern game system such as Nintendo DS, Nintendo Wii, and Sony Playstation 1 and 2. It is possible that someone is working on that, so I'm keeping my hopes up. Until then, reliving these classic titles is my main priority, and I simply enjoy playing them compared to modern games.

Yea I know, I'm just THAT strange. O.O"

Now then, what is your workflow or sites to source the best ROM dump?

A Full Guide on Integrating RetroArch with HyperSpin and RocketLauncher

This is a full tutorial showing how to integrate RetroArch with HyperSpin and RocketLauncher.


RetroArch has become the choice of emulators for many players now and is increasingly popular since its launch few years ago. Its main reason is its ability to support multiple mainstream emulators and provide a unified configuration across all its offered emulators (or cores). For the uninitiated, RetroArch serves as the front-end for Libretro, which provides the cores for the emulators including BSNES, Ganbatte, and even MAME and MESS.

Setting up RetroArch

First, download RetroArch builds here. I'll leave it to you whether to download the Stable build (v1.0) or the nightly builds (v1.1.x). The later support audio and video filters as well as more path configurations and possibly more ROMs compatibility especially for the MESS or MAME cores. For this tutorial I'm going to download the nightly build. If you're using the stable build instead, some of the configurations in the screenshots might differ, especially the configuration screen.

Nightly builds for RetroArch which features the most recent core configurations for the RetroArch emulator. Make sure you download both the RetroArch and cores, which is basically the various emulators that RetroArch supports.

Extract RetroArch.7z to your Emulators folder in the HyperSpin, such as G:\HyperSpin\Emulators\RetroArch.

Extracted files from RetroArch.7z archive.

Next, extract the cores.7z into RetroArch\cores.

Before we start to integrate RetroArch into RocketLauncher, let's start by configuring some of its initial settings.

Configuring RetroArch

You'll see the following welcome screen when launching RetroArch for the first time. It will then automatically create a configuration file named retroarch.cfg under its RetroArch root folder. This is the file that RetroArch will refer to whenever you launch RetroArch.

RetroArch welcoming screen when launching for the first time.

retroarch.cfg, which is the configuration file that RetroArch will refer to whenever it is launch.Notice that it is only a single line for now, and it will then be populated as we configure some settings within RetroArch.

Navigating in RetroArch is relatively simple as shown in the welcoming screen. Pressing X to Enter/Confirm, Z to back.

The first thing we'll want to do is to configure some of the essential paths such as cores, roms, filters, shaders, etc. To do that, go to Settings > Path Options and setup the following:


Path Options
The default path options. We are going to configure some of the paths to point to the exact paths.

The following settings are based on my RetroArch folder located in G:\HyperSpin\Emulators\RetroArch. Change the path accordingly. Note that some of the options might not be available if you're using RetroArch stable build.

Browser Directory: The path to your ROMs such as G:\roms. This path will be automatically loaded when you are trying to load a game.

Content Directory: Same as Browser Directory. The path to your ROMs.

Assets Directory: The path that stores assets.
Example: G:\HyperSpin\Emulators\RetroArch\assets

Config Directory: The path that stores RetroArch configuration files. Instead of storing it in RetroArch root folder we are going to store it here instead for better file structure management.
Example: G:\HyperSpin\Emulators\RetroArch\config

Core Directory: The folder that stores RetroArch cores (.dlls), which is where we extract our cores.7z just now.
Example: G:\HyperSpin\Emulators\RetroArch\cores

Core Info Directory: The folder that stores the core information (.info). These are also extracted from the cores.7z and is the same folder as the core directory.
Example: G:\HyperSpin\Emulators\RetroArch\cores

Content History Path: The path to the file that stores for a list of games that we had launched in the past in RetroArch. Leave it as default, which it stores in RetroArch root folder.
Example:  retroarch-content-history.txt (default)

VideoFilter Directory: The folder that stores the video filters.
Example: G:\HyperSpin\Emulators\RetroArch\filters\video

AudioFilter Directory: The folder that stores the audio filters.
Example: G:\HyperSpin\Emulators\RetroArch\filters\audio

Shader Directory: The folder that stores the shaders.
Example: G:\HyperSpin\Emulators\RetroArch\shaders

Overlay Directory: The folder that stores the overlay image such as gamepad, borders, keyboards, etc.
Example: G:\HyperSpin\Emulators\RetroArch\overlays

Screenshot Directory: The folder that stores the screenshots captured in-game.
Example: G:\HyperSpin\Emulators\RetroArch\screenshots

Savefile Directory: The folder that stores the savefile for the system. The savefile is the actual save file that is generated by the emulator and is usable even if you're using other emulators. For example, Playstation 1 memory card .mcr. Note that a separate folder that are named according to the system will be generated.
Example: G:\HyperSpin\Emulators\RetroArch\save

Savestate Directory: The folder that stores the save state that you taken in game, or simply the memory content state at the point when you took it. Unlike savefile, save state are emulator dependant and you cannot simply load a save state taken in an emulator and attempt to load it using another. I simply point them to the same folder as my Savefile Directory
Example: G:\HyperSpin\Emulators\RetroArch\save

System Directory: The folder that stores the system file such as BIOS for each system. For example, SCPH-1001 for Playstation 1, MESS BIOS, etc.
Example: G:\HyperSpin\Emulators\RetroArch\system

The completed Path Options screen after you had properly set the path.

After you had done that, go back to the Main Menu by pressing the 'Z' button and save the configuration file. The changes that you made will be saved in RetroArch-timestamp.cfg under the config folder that we just specify.

Save the changes that we did in a new configuration file.

The configuration file will be located in the config folder that we specified earlier, which is G:\HyperSpin\Emulators\RetroArch\config and is named RetroArch-timestamp. Since RetroArch will refer to retroarch.cfg in its root folder by default, we will now copy and replace the retroarch.cfg with this file, just in case RetroArch config file is not updated.

The updated retroarch.cfg file.

And that's it! We had done the initial configuration for RetroArch. Now moving on to integrate RetroArch with RocketLauncher so that it will run RetroArch for the system that you want.

Integrating RetroArch in RocketLauncher

As usual, open RocketLauncherUI and add a new Emulator named RetroArch under the Global Settings.

Adding RetroArch emulator to RocketLauncher for the first time. Notice that I only have several Roms extensions that these are the systems that I emulate using RetroArch.

Now here is where most people are mislook, even myself! For each module, there is a separate options that you can configure either for global module settings or per game settings.

To configure the module settings, click on the Modules tab, then select RetroArch.ahk from the Installed Modules window. Next,click the Edit Global Module Settings button.

Press the X button when ask whether to select a system in the System Selection screen.

Close this dialog since we're going to configure global settings.

Next, click the magnifier icon next to ConfigFolder option to select the RetroArch\config folder.

Configure the ConfigFolder used by RetroArch module. Ignore the MESS_BIOS_Roms_Folder for now as it is only needed if you want RetroArch to emulate MESS.

Now then, go and select a system in the left hand panel and use RetroArch as the default emulator. For example, I had selected RetroArch as my default emulator for Nintendo Game Boy system.

Set RetroArch as the default emulator for your system of choice. For example, Nintendo Game Boy system.

And there you go. RocketLaunch is now configured to launch RetroArch for your system of choice. Try to audit some games and click the Rocket icon to launch the game!

Setting Another Core as Default for A Game System

By default, RetroArch uses a default core for a particular game system. For example, VBA Next core for Nintendo Game Boy Advance. In my personal preference, I would prefer Ganbatte, which supposedly give more accurate emulation.

To change the default core for Nintendo Game Boy Advance in RetroArch, select GLOBAL system in the left panel, go to Modules tab and select RetroArch.ahk. Next, click the Edit Global Module Settings button.

Edit Global Module Settings for RetroArch.ahk module.
Select the system that you want to change the default core. In this example, I'm changing the default core for Nintendo Game Boy Advance, which uses VBNext core by default.

Click the magnifier icon next to LibRetro_Core option and select the core that you want to replace.

I'm selecting gambatte_libretro.dll as the default core to emulate my Nintendo Game Boy Advance system.

Now, to test it, audit the game and click on the Rocket icon to run it. Press F1 and you should see the core replaced by the core you selected.

Setting Up Cores in RetroArch

MESS (Multi Emulator Super System)

Setting up MESS in RetroArch could be rather difficult if you don't know what to configure. Luckily for you, I had gone through that experience and hence the purpose of this tutorial.

First, you'll have to download MESS BIOS files and put it in your RetroArch\system folder. MESS requires BIOS since it is an emulator that emulates other emulators. Sound confusing? I hope not.

Note that the RetroArch\system folder is not only to put the MESS BIOS. In general, this is the path where you are supposed to put the BIOS for other systems, such as PSX, GBA, etc.

You can download MESS Complete BIOS Pack (as well as BIOS files for other system) files from Emuparadise.

A list of BIOS files used by MESS. Notice each BIOS is archived. Extract this to your RetroArch\system folder such as G:\HyperSpin\Emulators\RetroArch\system
The extracted files in RetroArch\system folder.

Note: There is no need to extract these BIOS zip files as RetroArch MESS core will handle by themselves.

Next, you'll also need to create a retroarch-core-options.cfg file within RetroArch root folder in case it is not there. We're going to add the following lines corresponding to MESS core options manually here in order for us to load the cartridges instead of softlist, such as Atari 5200 .a52 files. The reason we need to do this is you can only access Core Options once you had successfully loaded a game. And with the default settings, loading Atari 5200 ROM file such as XXX.a52 is not possible with softlist settings enabled and media type that is not set as cartridge.

It can get fairly complicated to explain. More on why here and here.

mess_softlists_enable = "disabled"
mess_softlists_auto_media = "disabled"
mess_softlists_auto_media = "disabled"
mess_media_type = "cart"
mess_boot_to_bios = "disabled"
mess_boot_to_osd = "disabled"
mess_boot_from_cli = "enabled"

Settings for MESS in retroarch-core-options.cfg

Do not confuse this with the retroarch.cfg that we configured earlier on. As the name suggest, this is configured per-core basis and can varied from core to core, whereas retroarch.cfg is global settings and does not in any way related to the core.

Next, open up RocketLauncherUI, go to GLOBAL settings, select Modules, and then select RetroArch.ahk. Click the Edit Global Module Settings, then click on the magnifier icon right next to MESS_BIOS_Roms_Folder and select the path to your MESS BIOS, such as G:\HyperSpin\Emulators\RetroArch\system\MESS

Configuring MESS BIOS ROMs folder that MESS core will use in RetroArch.

Now try to audit some system ROMs using MESS such as Atari 5200. If you're seeing a blank screen, that simply means that the MESS core in RetroArch cannot emulate it.

More Information

Libretro - MAME/MESS/UME Cores
MESS User's Manual

Atari 5200

From my personal experience, the MESS-libretro core in RetroArch still requires some work as it can only emulates a partial of Atari ROMs that I got. What I meant by partial is that you'll see a blank screen for ROMs that it cannot emulate, such as Frogger. You might want to consider to setup Kat5200 or Atari800/Atari800 Win Plus to emulate the Atari 5200 ROMs.

Extra Readings

General Information on Emulation

Final Note

More core setup will be added as I started to use RetroArch!

Extended Guide on Setting Up HyperSpin and RocketLauncher

Before you read on, this is an extended tutorial on setting up HyperSpin with RocketLauncher, which now replaces HyperLaunch.

Why Another Guide?

While trying to setup HyperSpin following Ryan's Full Guide on Setup HyperSpin MAME and Hyperlaunch, I found that some extra steps are necessary to integrate HyperSpin with RocketLauncher. Don't get me wrong, I highly recommend you follow Ryan's comprehensive guide to its entirely, which is what I did when I'm starting to set it up. But you could refer here if you're trying to integrate it with RocketLauncher instead of HyperLaunch.

Some Notes About RocketLauncher

  • HyperLaunch is renamed/rebranded as RocketLauncher to remove its ties with HyperSpin, since it is meant to be a multi purpose launcher for other Front-ends as well.
  • You can still use HyperLaunch, however I recommend to transition to RocketLauncher for any latest updates.
  • All configuration steps and settings UI remains the same in RocketLauncher just as in HyperLaunch, so the walkthrough written by Ryan's are still usable.
  • RocketLauncher provides a set of script or modules for basically every popular emulators to date. Think of the modules as a pre-defined CLI (Command Line Interface) that is pre-programmed to handle launching the emulator, e.g. feeding in some complicated parameters.


This tutorial assumes that you already read through Ryan's guide and downloaded/extracted the following:

HyperSpin v1.3.3 Full Install came bundled with HyperLaunch v2.x, which is a very old and outdated copy of HyperLaunch. We are going to replace it with RocketLauncher.

HyperLaunch 2.25c, which is pretty much outdated and replaced by HyperLaunch v3, and now RocketLauncher

First, download the RocketLauncher v1.0 (Full Install) (65MB) here.

Download RocketLauncher v1.0 (Full Install). Just like HyperSpin, you'll need to register as member to download it.

Extract it into a folder named 'RocketLauncher' under your HyperSpin folder, such as G:\HyperSpin\RocketLauncher.

The archive password is as mentioned in the download page.

Extract the downloaded into the RocketLauncher folder

Changing HyperLaunch Path to RocketLauncher

By default, if you're following Ryan's guide, HyperSpin assumes that the HyperLaunch is located at C:\HyperSpin\HyperLaunch. Since we are using RocketLauncher we will first have to change the path pointing to our RocketLauncher path.

HyperSpin 1.3.3 still refers to HyperLaunch instead of RocketLauncher. You can tell when opening the HyperHQ. Don't worry though, it is simply a pointer to the HyperLaunch.exe which we can easily change.

HyperSpin v1.3.3 still refers to HyperLaunch instead of RocketLauncher. Don't worry as we can simply redirect it to RocketLauncher in the steps below.

To do that, go to G:\HyperSpin\Settings and open up Settings.ini.

Change the HyperLaunch Path into the RocketLauncher path. Note that this is option is not visible in HyperHQ, so we'll have to do it manually.

Look at line #10 which you'll replace it with the path to RocketLauncher, such as G:\Hyperspin\RocketLauncher\

Next, we're going to COPY RocketLauncher.exe and named it as HyperLaunch.exe since it is the built-in command line that is executed by HyperSpin (see the Command Line Preview when selecting HyperLaunch as execution). We have to have these two different names because RocketLauncher.EXE is launched by RocketLauncherUI and HyperLaunch.EXE is launched by HyperSpin.

Create another executable and name it as HyperLaunch.exe. RocketLauncher.EXE is launched by RocketLauncherUI and HyperLaunch.EXE is launched by HyperSpin.

Another way to use RocketLauncher is to simply extract the RocketLauncher directly underneath the HyperSpin folder itself. However it would really mess up your directory structure since RocketLauncher also share similar directory with HyperSpin such as Modules and Settings.


Now that we have setup HyperSpin to launch RocketLauncher, which will then fire up the configured emulators depending on the selected systems, you can then remove HyperLaunch.exe from HyperSpin since we are no longer using it.

Delete HyperLaunch.exe from HyperSpin since we are no longer using it.

Some Screenshots of RocketLauncher

Following are some screenshots taken from RocketLauncher to show its similarity with HyperLaunch.

Adding HyperSpin front-end to RocketLauncher.
Adding new emulator menu page

Adding new emulator dialog.

Auditing game.


Q: Selecting a MAME game for the second time doesn't start the game.

A: This only happens if you selected HyperLaunch as the launcher in HyperHQ and the HyperLaunch process doesn't completely terminated when you quit the game by pressing Esc. Open up your Task Manager and go to the Process tab to see it is still running. Simply killing the process will solve the problem.
This complication is easily solved by using RocketLauncher instead of the pre-bundled HyperLaunch to launch the emulator

HyperLaunch.exe still running in the background even after you exited from the MAME game by pressing Esc.



Ryan's Full Guide on Setup HyperSpin MAME and HyperLaunch also covers how to use Don's HyperSpin List Generator to generate a database XML file to show only the ROMs you got. Make sure to read it if you are only having a small number of ROMs for a particular system.

Adding ROMs for Auditing

When auditing the games in RocketLauncher for any system, the ROM are matched against the database XML file based solely on the name itself, which follows the naming convention of <Game Title> (Region).<File extension>. For example, 3-D WorldRunner (USA).nes.

Unless your ROM are named exactly following these convention styles, you are probably wondering how much time are you going to spent trying to rename each and everyone of them according to the title in the database.xml. Fortunately a guy called Don's have created a suite of tools that can aid our needs.

First, download Don's HyperSpin Tools here.

Don's HyperSpin Tools homepage. Note that the same tools are also hosted in HyperSpin website.

The folder must be extracted within the HyperSpin folder.

Extract Don's HyperSpin Tools within HyperSpin root folder.

Open Dons HyperSpin ROM Renamer.exe

Open Don's HyperSpin ROM Renamer tool which will automatically rename our ROMs file to match the filename that HyperSpin recognize

As an example, let us try to audit some SNES ROMs that I had. We're going to fill in three fields:

1. HyperList XML or DAT file: The ROMs database for your selected system. These can be found under your HyperSpin\Databases folder. By default HyperSpin includes database only for a selected number of systems. To add a database for a system that is not available in HyperSpin database such as Nintendo Game Boy, visit HyperList here and download the XML files for the system that you wanted to add.

A list of database XML for almost all system to date until Wii.
Note: You'll see a friendly reminder about Malware attack on this site if you attempt to search for HyperList XML using Google. Don't worry about it much as you're just simply going to download the XML files and nothing more.

Selecting a system database XML file that our ROMs to be renamed will based upon.

2. Source ROM folder: The folder where you stored the ROMs. The types of ROMs must match the XML files you selected. For example, I'm using the Super Nintendo Entertainment System XML files, so my source ROM folder is going to be my SNES ROMs folder. In this example, I'm pointing it to my roms (temp) folder where I put my ROMs that are not renamed properly.

3. Output ROM folder: This is the folder where the renamed ROMs will locate. I recommend you to point it to another path which you use to store ROMs referred by HyperSpin and RocketLauncher.

After filling in these fields, click the Scan button and the tool will then scans for matched ROMs. In case if you're wondering, the ROMs in your folder are matched against the ROMs in the database using a CRC Hash Value that is specified in the CRC field inside the database XML file itself. In short, CRC is a mathematically generated unique value that is different according to the file size of each file. So even if you change the game title, the CRC will remains unless you changed the file content itself, such as adding ROMs header.

I highly recommend you to download ROMs released by No-Intro groups which not only have only good ROM sets, but the best out of each region such as US, EU and JP. In case you found some ROMs are not matching even if you have the same game title, it could be because the ROMs that you have are appended with extra headers. I'm going to write another post guiding you some of the best sites to get those handful of BEST ROMs.

A CRC field is available for each game title in the database XML file. This is how Dom's HyperSpin ROM Renamer Tool knows which ROM file matching with which game title. Similarly, the game title is renamed according to the <name> field specified in this file.

Clicking the Scan button will scan for ROM files matching the CRC specified in the chosen database XML file.
Clicking the Rename button will rename my ROMs in my Source ROM folder specified earlier to the Output ROM folder.

In addition to rename, you can also save a list of games with no CRCs, missing or found games in a TXT files for you to refer to. This is handy if you want to collect the full collections ROMs for a particular system. In this case, I'm missing 70 SNES ROMs from the SNES database.

Two screenshots showing my ROMs in my Source ROMs and the output ROMs after renaming.

My source SNES ROMs named with the dump release information, e.g. [!] for good dump
My output ROMs folder after renaming using Don's HyperSpin ROM Rename tool. Notice the title has been cleaned up with no dump release information.

Click the blue Play icon in RocketLauncherUI again to audit the ROMs. You'll now see the matching ROMs shown in Green now.

Auditing my renamed SNES ROMs. ROMs that are matched are highlighted in GREEN cells.

Adding Genre XML for Genre Navigation in HyperSpin.

HyperSpin support genre browsing by pressing the 'G' button. By default, only MAME wheel came with genre browsing due to reasons explained below.

HyperSpin knows which game belongs to which genre simply by reading the genre.xml, which then refers to a series of xml files that are named according to the genre type, such as Action.xml, Adventure.xml. You can see this in the HyperSpin\Databases\MAME folder which explains why genre browsing works in MAME wheel but not the SNES wheel that we just created. You can get this XML files either through HyperList or manually generated yourself. Though the genre XML files hosted in HyperList may be outdated.

Don't feel intimidated. By manual I simply means using Don's HyperSpin List Splitter which will automatically split the genres in the database XML instead of inputting them by hands.

First, open up Dons HyperSpin List Splitter program.

Open Dons HyperSpin List Splitter to split the main database XML file into multiple genre XML files

Select the HyperSpin XML File which is the XML file that has all the information about the game titles for a system. Let's follow our previous example and create genres for our SNES ROMs.

Next, select the output folder which the genre.xml and a list of other genre-type.xml files will be populated. Point this to the HyperSpin\Databases\<Your Target Game System Folder>

Fill in the HyperSpin XML file and output folder that will contains the genre XML files.

Select Split files based on Genre. In addition, you could also split by Manufacturer, Rating, and Year.

You could also split by Manufacturer, Rating, or Year.

Click the Generate XML Files button and you'll then see a list of XMLs files named according to the Genre type in your Output folder.

A list of XML files named according to the genre category. The main XML file that point to these genre XML is genre.xml, which HyperSpin will locate when you enter into Genre mode by pressing 'G' button.

A quick look at the genre.xml file. This is the main file that HyperSpin looks up for other genre-type XML files. As you would have guessed, the actual game information such as titles are stored within each genre-type XML files.

A quick look at the genre XMl file, which contains the names for the other genre XML files that it is referring to. When renaming the genre name here, make sure you also rename the genre-type XML filename that it is referring to.

The content of the Action.xml file. Notice that the contents are exactly the same as the Super Nintendo Entertainment System.xml, which is the HyperList that we use as the input to Don's program. It is no surprise as the program is simply filtering each <game> element tag grouped according to the <genre> tag.

From a software engineer point of view, HyperSpin can actually filter the database XML file instead of having to create multiple XML files for it to refer. I think this is to reduce some memory or performance issues when filtering XML files since it would require a significant amount of memory space when traversing the XML element by element.

You can further cleanup duplicate genre names since they are not case sensitive by opening up the genre.xml files. As highlighted there are two genre, platform and Platform. You can even change the genre name here, but make sure you also rename the genre-type.xml files that it is referencing.

Useful Third Party Add-Ons

HyperSpeech - Speak the game titles, game wheels, etc.

HyperSearch - Allows you to search for games across all systems.

Useful Tools to Audit your ROMs

  • DatUtil - Convert DAT files to other formats.
  • Tur-Matcher - Intelligently rename your ROMs files even if you're using another ROM set to match HyperList official list
  • HyperSpin Checker - All in one tool to manage HyperSpin and other tools for auditing
  • HyperROM2XML - Generate database XML file based on your ROM folder and file names.

Sourcing and Downloading Artworks, Video Snaps Media

This part is mainly for aesthetic purpose. As I quote from somewhere I read, this will makes the shitty games looks flashy, but is still shitty.

As Ryan had pointed out, there are basically two routes that you can go. Yes, options just like in real life.

Option #1 - For the Riches

This option is only for those with big wallet and is willing to spend at least $50 for Platinum membership on HyperSpin to get the static artworks, themes for HyperSpin and another $30 for Emumovies Yearly subscription to get the animated content such as video snaps, which is the cheapest option. Personally I don't really have a lot of content right now, going on this route might be wasteful. Hence we have the second option!

This option, however, is also the easiest since all you need to do is pay your money and use single click to sync all the medias. I would opt for this if my media is constantly updating and I have huge media library before I could justify this purchase.

Upgrading your membership in HyperSpin today to supporting member to gain access to their FTP server.
Upgrading your membership in EmuMovies today to enjoy unlimited download of video snaps in 480p and access to FTP server!

Option #2 - Beggers Can't be Choosers

This option is basically for those that either don't have the penny (or credit card to pay using PayPal), or simply doesn't willing to pinch their wallet on content that should be made free and publicly available. For that, you'll have to work harder than the people who goes on Option #1.

All static contents such as artwork, titles, snap (screenshot), and background music are downloadable using their Emumovies Download Service Utility hosted from their FTP server. Animated content such as video snaps, however, are only available to download for supporting member.

Also, free users are limited to only 250MB download per day.

EmuMovies Download Service Utility. Yes, I'm logging in as a Free User.

For video snaps, you can head over to Emumovies Download page, select a game system, and manually download it. The good news is you don't have the downloading wait time like in HyperSpin. The bad news is you are restricted to download one file at a time. For IDM users, batch download is not applicable.

For most static content, there are several users that had contributed on forums such as GBATemp that attempts to upload and share the cover arts:

Cover Collections for Emulators With Cover Support (

RetroXMB Art Collection (PSX Scene)

Leave in the comments below if you have found any sites that share these artwork parks and bundles.


Hope this tutorial helps you out to setup HyperSpin and RocketLauncher. I'll also be doing some tutorial on integrating RetroArch with HyperSpin since it might involve some additional steps or complications for beginners alike. Stay tuned!