[Guide] Play Non-Arcade systems with MAME or MESS


How To: Play Non-Arcade systems with MAME or MESS

This guide describes how to setup your game files to play non-arcade systems using MAME or MESS. Many (non-arcade) old-school systems work with MESS and MAME using softlists. These sytems include (but are not limited to):

  • Neo Geo CD
  • Phillips CD-i
  • Atari 5200
  • Vectrex
  • Game . com
  • Emerson Arcadia
  • Channel F
  • Sharp X1
  • And more…

Softlists allow the MAME/MESS core to load the game software based on some information in a “HASH” database. More detailed information can be found here. Suffice to say, it’s complicated. MAME or MESS2014 can be used. Both have varying success at emulating certain systems, so it’s beneficial just to setup both and see which one works the best for you.


1) Get the latest MAME core or MESS2014 core

Download the latest “Arcade (MAME)” core and/or “MULTI (MESS 2014)” core from the Retroarch Online Updater

2) Create a hash folder for the core

In your retroarch system directory, you will either already have a folder named ‘mame’ or ‘mess2014’, or you will have to create the folder and add a hash folder inside it. Your directory structure would then look like this:

...path_to_retroarch_system_directory/system (folder)
     mame (folder)
        hash (folder)
     mess2014 (folder)
        hash (folder)

3) Download and place the hash xml files into the folder

You can get individual hash files from the MAME github site here.

Alternatively, I’ve cloned the folder as of the writing of this guide, you can download all the hash files from here.

As an example, I want to play Neo Geo CD games, so I’ll have to donwload the neocd.xml file and place it in my hash folder (or both the MAME and MESS2014 hash folders).

Now my hash folder contains neocd.xml:

...path_to_retroarch_system_directory/system (folder)
     mame (folder)
        hash (folder)
            neocd.xml (hash file)
     mess2014 (folder)
        hash (folder)
            neocd.xml (hash file)

4) Setup your directory structure for the game system(s)

It’s important to name the folder for a game system exactly to match what MESS/MAME is looking for. If the folder is not named correctly, launching will not work. The name of the folder typically matches the name of the hash xml file or the name of the bios file (but is not necessarily always exactly the same). Here’s some examples of folder names for various game systems:

System Folder Name
Neo Geo CD neocdz
Philips CD-i cdimono1
Atari 5200 a5200
Vectrex vectrex
Game . com gamecom
Emerson Arcadia arcadia
Sharp X1 x1

5) Setup your game file directories

Place your rom files, including bios files, and chd files into the appropriate folder. As an example, let’s say I want to emulate Neo Geo CD and I want to play League Bowling. My directory structure would look like this:

...path_to_my_game_system_files/neocdz (folder)
     league bowling (1994)(snk)(jp-us)[!].chd (CHD File)
     neocd.zip (BIOS File)
     neocdz.zip (BIOS File)
     neogeo.zip (BIOS File)

6) Get dummy files if needed

For CD based systems, there’s a file thats not included in your typical romset that we’ll need. That file is named the same as the game you want to launch. In the example above, the MAME hash file shows the game name as lbowling, but as you can see I don’t have a game file with that name yet, because it wasn’t in the romset. To get around this, you can create a dummy/empty file of the correct name with a zip extension. After you add this file, now your directory looks like this:

...path_to_my_game_system_files/neocdz (folder)
     lbowling.zip (Dummy / Empty File)
     league bowling (1994)(snk)(jp-us)[!].chd (CHD File)
     neocd.zip (BIOS File)
     neocdz.zip (BIOS File)
     neogeo.zip (BIOS File)

For simplicities sake, I’ve created dummy / empty files for the entire romset for both Neo Geo CD and for Philips CD-i. You can download these dummy files and just place them all in the appropriate folder.

7) Launch the game

Now you can launch the game from Retroarch, by selecting ‘Load Content’ and pointing to the lbowling.zip (empty/dummy) file. Woo hoo!

You can also launch the game from the command line, like this:

(Windows Command for MAME)
"...\path_to_program\retroarch.exe" -L "...\path_to_cores\cores\mame_libretro.dll" "...\path_to_game_files\neocdz\lbowling.zip"
(OSX Command for MESS2014)
/Applications/RetroArch.app/Contents/MacOS/RetroArch -L "/Applications/RetroArch.app/Contents/Resources/cores/mess2014_libretro.dylib" "/path_to_game_files/neocdz/lbowling.zip"


There is a specific benefit initially to running from the command line, as the MAME / MESS2014 core will print out if it cannot find a (bios) file that it expects to run the game. This is particularly helpful when troubleshooting and making sure you’ve downloaded all the correct files. For example, if I’m trying to run a gamecom game and I happened to forget to place the bios file in the folder, the command line output would show the following:

NAME: gamecom
YEAR: 1997
[libretro INFO] Screen orientation: HORIZONTAL
Value  not supported for option netdevprovider - falling back to auto
[libretro DEBUG] Screen width=208 height=160, aspect=1000/769=1.300390
[libretro INFO] OSD initialization complete
internal.bin NOT FOUND (tried in gamecom gamecom)
external.bin NOT FOUND (tried in gamecom gamecom)
Required files are missing, the system cannot be run.

This is giving me the hint that MAME tried to find a file named gamecom. So, I need a file named gamecom.zip

Additional Examples

Launch the Philips CD-i Game Hotel Mario using MESS2014

  1. Place the hash file cdi.xml into the hash directory:
...path_to_retroarch_system_directory/system (folder)
     mess2014 (folder)
        hash (folder)
            cdi.xml (hash file)
  1. Place the game files into a folder named cdimono1, including BIOS files, CHD Files, and an empty/dummy file:
...path_to_my_game_system_files/cdimono1 (folder)
     hotmario.zip (Dummy / Empty File)
     hotel mario (1994)(philips)(eu)[!].chd (CHD File)
     cdibios.zip (BIOS File)
     cdimono1.zip (BIOS File)
     cdimono2.zip (BIOS File)
  1. Launch the game in Retroarch by pointing to hotmario.zip, or by launching from the command line with the following:
(Windows Command)
"...\path_to_program\retroarch.exe" -L "...\path_to_cores\cores\mess2014_libretro.dll" "...\path_to_game_files\cdimono1\hotmario.zip"
(OSX Command)
/Applications/RetroArch.app/Contents/MacOS/RetroArch -L "/Applications/RetroArch.app/Contents/Resources/cores/mess2014_libretro.dylib" "/path_to_game_files/cdimono1/hotmario.zip"

Launch the Game . com Game Sonic Jam using MESS2014

  1. Place the hash file gamecom.xml into the hash directory:
...path_to_retroarch_system_directory/system (folder)
     mess2014 (folder)
        hash (folder)
            gamecom.xml (hash file)
  1. Place the game files into a folder named gamecom, including BIOS files:
...path_to_my_game_system_files/gamecom (folder)
     sonicjam.zip (Cartridge File from romset)
     gamecom.zip (BIOS File)
  1. Launch the game in Retroarch by pointing to sonicjam.zip, or by launching from the command line with the following:
(Windows Command)
"...\path_to_program\retroarch.exe" -L "...\path_to_cores\cores\mess2014_libretro.dll" "...\path_to_game_files\gamecom\sonicjam.zip"
(OSX Command)
/Applications/RetroArch.app/Contents/MacOS/RetroArch -L "/Applications/RetroArch.app/Contents/Resources/cores/mess2014_libretro.dylib" "/path_to_game_files/gamecom/sonicjam.zip"

(Super Obscure Example) Launch the VIC-1001/VIC-20 Cartridge game Defender using MAME

  1. Place the hash file vic1001_cart.xml into the hash directory:
...path_to_retroarch_system_directory/system (folder)
     mame (folder)
        hash (folder)
            vic1001_cart.xml (hash file)
  1. Place the game files into a folder named vic1001, including BIOS files:
...path_to_my_game_system_files/vic1001 (folder)
     defender.zip (Cartridge File from romset)
     vic1001.zip (BIOS File)
     c1541.zip (BIOS File)
  1. Launch the game in Retroarch by pointing to defender.zip, or by launching from the command line with the following:
(Windows Command)
"...\path_to_program\retroarch.exe" -L "...\path_to_cores\cores\mame_libretro.dll" "...\path_to_game_files\vic1001\defender.zip"
(OSX Command)
/Applications/RetroArch.app/Contents/MacOS/RetroArch -L "/Applications/RetroArch.app/Contents/Resources/cores/mame_libretro.dylib" "/path_to_game_files/vic1001/defender.zip"

(Extra Super Obscure Example) Launch the Sharp X1 Floppy DIsk game Donkey Kong 3: Dai Gyakushuu using MAME

  1. Place the hash file x1_flop.xml into the hash directory:
...path_to_retroarch_system_directory/system (folder)
     mame (folder)
        hash (folder)
            x1_flop.xml (hash file)
  1. Place the game files into a folder named x1, including BIOS files:
...path_to_my_game_system_files/x1 (folder)
     dkong3dg.zip (Floppy File from romset)
     x1.zip (BIOS File)
  1. Launch the game in Retroarch by pointing to dkong3dg.zip, or by launching from the command line with the following:
(Windows Command)
"...\path_to_program\retroarch.exe" -L "...\path_to_cores\cores\mame_libretro.dll" "...\path_to_game_files\x1\dkong3dg.zip"
(OSX Command)
/Applications/RetroArch.app/Contents/MacOS/RetroArch -L "/Applications/RetroArch.app/Contents/Resources/cores/mame_libretro.dylib" "/path_to_game_files/x1/dkong3dg.zip"

Happy Obscure Gaming!

Arcade MAME Help
Game.Com in Retroarch
[Guide] Play Neo Geo CD games using FBAlpha
Run NEO GEO CD games on Retroarch (mame_libretro) via RocketLauncher
Core and Feature Requests

thanks for your guide very helpful


I have found a curious situation. If the computer/console support multiple software lists and there is a rom with the same name in more than one of these multiple software lists, the emulator crashes. Only happens with Retroarch MAME.

Example with the MSX computers, tested this way: ROM: phc70fd (WAVY PHC-70FD) Game: brucelee (it appears both as cassette and/or cart) abadcrim (it appears both as cassette and/or floppy)

Hope this helps.


Very helpful, thanks!


Thanks for the guide, but it isnt working on my configuration with the cd-i emulation. I get an error that the cdimono1 is not available.

When i start mame64 without retroarch within a cmd its working and the game is playable.

Folder structure is like described in the tutorial. Did anything changed on retroarch?

Br Dox


Your bios file, cdimono1.zip, is either not found/not in the correct place or the version you have isn’t compatible with the retroarch mame / mess core version you’re using.


Hi @zachmorris thanks for your reply. Do you know a checksum from a cdimono1 for the newest version of retroarch and mame?


This site is a good reference for sets:

Go down to the section ‘Files’ and select your MAME / MESS core version to get checksum info



so checksum is okay so far. iam using Win10 1803 and Retroarch 1.7.5 with MAME 0.204.

MAME alone works with this cdimono1 file in the same folder structure like in retroarch. Did i need to change something in retroarch?


I tried a few CD-I infamous games and so far it’s working great, never tried to play anything non-arcade through MAME until now and your guide helped a lot, clear instructions and easy to understand, thanks a lot for that.

The only one not working is Zelda’s Adventure but it’s a common problem apparently, it used to work fine through MESS a good bunch of years ago, but now it’s apparently broken (game freezes when you walk off screen).

There’s a specific build of MESS from the time when it was working available called TinyCD-I available so it’s still possible to play it, but I was wondering if somehow, a solution available with Retroarch’s cores selection was found / is possible ? I tried with MAME 2016 / MAME / MESS2014, same problem on all cores.

Not that it’s pretty important concerning the “quality” of the game, but if a solution is possible, I’m interested to know.

EDIT: “The Apprentice” doesn’t seem to work either, more concerned about this one 'cause it seems to be more than decent and also one of the only really good title not available elsewhere.


Thanks for this great guide. This forum need more stuff like this. Can I request a post update on how to get the MSX and Amiga running inside MAME?


MAME can play MSX and Amiga, but in my opinion, it can’t do either of those as well as other available retroarch cores: BlueMSX or fMSX for MSX and uae for Amiga. It would probably be better to make a guide for those.


@zachmorris this is great work here. Are you familiar with http://github.com/libretro/docs, which is where a few folks maintain the libretro docs published at http://docs.libretro.com?

You have written some useful and comprehensive content here and elsewhere, so I wanted to make sure to invite you to contribute to the docs if you find yourself interested in creating more guides in the future.