Last updated 30AUG2020
I’m still a day or two away from completing my RG350 arcade guide (a companion to the RG350 home console/handheld guide I published a couple days ago), but I’ve recently made a breakthrough when it comes to the XMAME app, and I wanted to share those results with you. In short, this quick guide will show you how to trick XMAME into looking at your external SD card for ROM files, instead of its default location on the internal SD card. Special thanks to user retro_doggy_earthcore on the DroidBox Forums for the tip.
(Edit: my RG350 arcade guide is now live, check it out!)
XMAME contains three distinct emulators (0.52, 0.69, and 0.84), all with different degrees of compatibility. So one game may work fine with .52, but not work with the .69 or .84 versions. If you want full compatibility, you would need to add the ENTIRE ROM sets for all three of these versions; considering that these sets are huge (upwards of 10+ GB each), that’s a significant investment. However, if you’re short on space, your best bet would be to focus on the most recent version, which is 0.84. Note that these XMAME emulator versions are sometimes referred to by the MAME versions they support, which are:
By default, XMAME will look in specific folders for its ROM files, and you cannot change those paths in its settings. Unfortunately, those folders are located on your internal card, not the external card you likely use to store all of your files. Here is the location of those folders on the internal card:
/media/data/local/share/xmame/xmame52/roms /media/data/local/share/xmame/xmame69/roms /media/data/local/share/xmame/xmame84/roms
If you have a large-capacity internal card, then feel free to place your game files in those folders. However, if you want to keep your game files on the external card, you will need to create “links” (also known as “symbolic links”), which are Linux-friendly folders that act as shortcuts to other locations. So what we’ll do is create three links that will direct XMAME to look at the folder on your external card instead. In order to complete this step on Windows, you will need to install WinSCP; check out my guide on how to set it up. For Mac users, we’ll use a bit of Terminal wizardry.
PC/Windows users: There are two steps to this process: delete the old folders, then make links in place of those folders that point to your external SD card.
- Open WinSCP, and connect to your device using SFTP (this won’t work if you only connect via FTP); click on the “New Session” button and select SFTP to get started). Navigate to the default XMAME ROM location (/media/data/local/share/xmame/). There you will see three folders, xmame52, xmame69, and xmame84. Go into one of these folders, inside you will see a folder called “roms”. You can either delete that folder, or rename it to something else if you’d like to preserve anything inside (for example, if there are games already inside). Do that same process for the other two xmame folders (xmame69 and xmame84), so that all three now are free of having “roms” folders inside.
- Next, right-click anywhere in that WinSCP window and select New > Link. A window will pop up, and in the first field (“Link/shortcut file:”) you will want to write out the path of your XMAME folder on your external card, such as /media/RG350/ROMS/XMAME. In the second field (“Point link/shortcut to:”), write the default XMAME folder, such as /media/data/local/share/xmame/xmame52/roms. Press “Ok”, and then you should see a new shortcut folder appear, named “roms”. Repeat this process for the other two folders.
** This guide assumes that you are going to only download ONE of the 0.52, 0.69, or 0.84 romsets, and not all three. If you are going to download and use all three romsets, then this process is a bit more challenging, since you’ll have three distinct romset folders on your external SD card. If this is the case, you’ll need to point each symlink to its respective folder. For example, for 0.52 the “Link/shortcut file” will be /media/RG350/ROMS/XMAME52 (or whatever it’s called on your external card), and the “Point link/shortcut to” will be /media/data/local/share/xmame/xmame52/roms.
Mac users: I wasn’t able to successfully use an FTP client to create a link, due to permission errors, so we’re going to do it via Terminal. There are two steps to this process: delete the old folders, then make links in place of those folders that point to your external SD card.
- Make sure your internal and external SD cards are in your device, then turn it on. Go to Applications > DinguxCmdr on your device, and navigate to he default XMAME ROM location (/media/data/local/share/xmame/). There you will see three folders, xmame52, xmame69, and xmame84. Go into one of these folders, inside you will see a folder called “roms”. You can either delete that folder, or rename it to something else if you’d like to preserve anything inside (for example, if there are games already inside). Do that same process for the other two xmame## folders, so that all three now are free of having “roms” folders inside.
- Next, exit DinguxCmdr and plug the RG350 into your Mac via USB. Open up Terminal (located in Applications > Utilities). Type “ssh firstname.lastname@example.org” (this may be different if you have a different IP address or username, see this guide for more info), then press Enter. You’ll see the cow graphic, and then you’ll be tunneled into the RG350. Next, type “cd /” and Enter to get to the root folder. Finally, type “ln -s /media/RG350/ROMS/XMAME /media/data/local/share/xmame/xmame52/roms” and press Enter. Bear in mind that for this line, you want to use the actual name of your SD card (mine is called RG350), and the name of your ROMS/XMAME/roms folder on the SD card. Write this last line again but with “xmame69” and “xmame84” in place of the xmame52. That’s it, you’re done. Here is a breakout of all the code, one line at a time:
ssh email@example.com cd / ln -s /media/RG350/ROMS/XMAME /media/data/local/share/xmame/xmame52/roms ln -s /media/RG350/ROMS/XMAME /media/data/local/share/xmame/xmame69/roms ln -s /media/RG350/ROMS/XMAME /media/data/local/share/xmame/xmame84/roms
** Note: /RG350/ROMS/XMAME/roms could be different depending on the name of your SD card and your XMAME folder.
** This guide also assumes that you are going to only download ONE of the 0.52, 0.69, or 0.84 romsets, and not all three. If you are going to download and use all three romsets, then this process is a bit more challenging, since you’ll have three distinct romset folders on your external SD card. If this is the case, you’ll need to point each symlink to its respective folder, like this:
ssh firstname.lastname@example.org cd / ln -s /media/RG350/ROMS/XMAME52 /media/data/local/share/xmame/xmame52/roms ln -s /media/RG350/ROMS/XMAME69 /media/data/local/share/xmame/xmame69/roms ln -s /media/RG350/ROMS/XMAME84 /media/data/local/share/xmame/xmame84/roms
One quick note on audio samples: if you download the audio samples to accompany your games, place them in the following folders. They are relatively small for these romsets (about 50MB each), so leaving them in their default location of your internal SD card should be relatively painless – no extra symlinks required.
/media/data/local/share/xmame/xmame52/samples /media/data/local/share/xmame/xmame69/samples /media/data/local/share/xmame/xmame84/samples
Now that we’ve set up where to store the game files, you can now place the files into your game folder if you haven’t already. On your RG350, boot up the program. Tab between the three different versions (0.52, 0.69, 0.84) using the R1 button, then once you’re on the one you want to use, press the START button to refresh the game list. It might take a while to load all of your ROMs, but after that, everything that is playable should appear. When booting up a game for the first time, you may get some system notifications (white boxes of text on a black background) that will ask you to press “OK” to continue. To press “OK”, just tap left then right on the D-Pad.
Return to the default setup
So what happens if later down the line you buy a hefty 128GB card for your internal firmware, and have plenty of space to store the XMAME roms in their default location? All you need to do is go into each respective folder on your internal SD card (/media/data/local/share/xmame/xmame52/ and so on) and delete the “roms” syslink you created — they’re really just glorified shortcuts, so you won’t break anything by deleting them. Now, just make a regular folder in each of those locations, and name it “roms”, and put your roms into each of those folders. Note that if you want to run all three versions of the MAME emulator that are available within XMAME, you’ll need all three romsets in their respective folder.
Hope this quick tip is helpful, and be sure to check out my full arcade setup guide for more tips and tricks!