Guide: EmulationStation on RG350 devices

Last updated: 12OCT2020 (see Changelog for details)

EmulationStation is a graphical and themeable emulator frontend that is designed specifically for devices that don’t have keyboards (like home theater PCs and Raspberry Pi devices). Luckily, it also works on handheld devices, and someone has kindly ported a copy over for the RG350 devices.

There are several frontends (user interfaces) available for the RG350. I’ve already created guides for SimpleMenu and 350teric (“Esoteric”), and I’ll work on more as time permits.

Table of Contents:
Pros & cons
Installation guide
Known issues
Adding box art to your navigation menus
Personalize EmulationStation with themes
Set EmulationStation as your default launcher


Pros & cons:

Every RG350 frontend has its upsides and downsides. So before you decide to install, let’s list the pros and cons for this solution, and we’ll address each of them in the guide below.


  • Easy to set up (minus box art)
  • Lots of themes


  • A little slow
  • Low resolution makes text hard to read
  • Setting up box art can be a pain
  • No favorites function
  • Setting up system to launch into EmulationStation is risky

In general, EmulationStation is a nice interface that is limited by its default resolution of 320×240, and you have to get the configuration just right in order to have it work properly. But if you have tried the other frontends and you want to give this one a shot, it’s pretty fun to set up.

Installation guide

Note that the GitHub page linked below has its own set of instructions, but I do not recommend you follow them. Their installation guide will try and get you to reformat a brand new external SD card for your files, and to use their pre-packaged (and outdated) emulators. My guide is simpler and can be done on your existing external SD card with little disruption to your current setup. Okay, let’s move on.

Head over to this GitHub repository and click on the green “Code” button, then select “Download ZIP”. Once downloaded, open this .zip file and the “Internal SD Card” folder. Inside, take the emulationstation.opk file and place it in the media/data/apps folder of your internal SD card (if you don’t know how to do that, check out this guide).

On your RG350 device, navigate to the Emulators tab and find the EmulationStation app. Start it up, and it will tell you that there are no themes available. Quit out of the program — this step creates the folder we need to put the rest of the configuration files.

Go back to your unzipped EmulationStation folder we downloaded from GitHub, and the “Internal SD Card” folder. Inside, there will be a folder named “Data”, and inside that folder will be the following files:

themes (folder)

Head over to the media/data/local/home/.emulationstation folder on your internal SD card, and place the files (and the themes folder) there; you may be prompted to overwrite existing files, go ahead and overwrite them.

Now, open up the “es_systems.cfg” file on your RG350 using a text editor. You will see a series of system file tags associated with various emulators, which will look something like this:

<fullname>Nintendo Entertainment System</fullname>
<extension>.zip, .nes</extension>
<command>"opkrun" "/media/data/apps/fceux.opk" %ROM%</command>

Here is what each of these lines of code break out to:

  • <name> is the identifier of that system (don’t touch!)
  • <fullname> is the pretty name used in menus (don’t touch!)
  • <path> is the location of your ROM files
  • <extension> are the filetypes that EmulationStation will associate with your ROMs
  • <command> points to the emulator to run your ROMs
  • <platform> is the accepted platform name for the system (don’t touch!)

So you now want to go in and adjust the <path>, <extension>, and <command> lines to match the ROMs directory, file extension, and appropriate emulator for each system. For example, here is my configuration for NES games:

<fullname>Nintendo Entertainment System</fullname>
<command>"opkrun" "/media/data/apps/FCEUX_2019-11-15.opk" %ROM%</command>

This code above indicates that the name of my external SD card is “RG350”, and that my ROMs folder is named “ROMS”, and my NES folder is named “NES”. It also tells the system to only look for .nes files for my ROMs, and to use the emulator named “FCEUX_2019-11-15.opk” to run these games.

So now just go through and do that for all the systems you want to show up on the menus. It’s a little tedious but you only have to do it once (and be sure to update this file every time you start using a new emulator).

You’re all set — go ahead and start up EmulationStation (remember, it’s in the Emulators tab on your RG350 device). If you start up the app and it kicks back to GMenu2X, then you’ve likely made a typing error in your es_system.cfg file.

Known issues

  • When exiting an emulator that uses hardware scaling, the menus will appear slightly zoomed. You can fix this by restarting EmulationStation.

Adding box art to your navigation menus

Adding box art to EmulationStation is fairly tricky, because one wrong move will make the system crash. So I recommend you watch the video above to see the process in action, but also follow these instructions carefully. Note that you will need to use a Windows/PC program to generate the box art and requisite gamelist.xml file, so if you are a Mac user I would consider setting up a virtual machine.

Windows/PC users: Skraper is an all-in-one image scraping service. It will comb through your ROM folders, recognize your games, download their art, and resize the images to match the RG350 screen resolution.

  • Download Skraper and unzip the file; place the unzipped folder somewhere easy to access, like your Downloads folder or your Desktop.
  • Open the SkraperUI.exe file, which will bring up the program. Run the wizard, and select “I don’t have an account and I don’t want to register”, or register if you’d like. I’ve heard that by registering, it significantly speeds up the scraping process. Personally, I have found that there are times that the only way I can get Skraper to run is by using my registered login.
  • You’ll then see four different frontend selection options, pick the “RECALBOX” option.
  • Place your external SD card in your PC via an SD card reader. On the next screen, click the folder icon and navigate to your ROMs folder on the external microSD card. Check the “Include non-Recalbox rom folders” box, then click the “Next” button. All of your gaming systems should fill the screen; hit the “Next” button to move on, then press “Next” again.
  • Now let’s configure your global settings. On the tabs at the top of the program, select the “GAME LIST” tab. Under “Gamelist type”, keep it set to “EMULATIONSTATION GAMELIST.XML”, but in the menu below, change the setting to “No Backup, Create New or Overwrite Existing”.
  • Now go to the “MEDIA” tab. Press the Minus button near the left of this page, which will delete the “4 IMAGES MIX” icon and leave you with just the “BOX 3D” icon. Below the icon you’ll see “Media type:”, change the rightmost option from “BOX 3D” to “BOX 2D”. Under “Output folder”, change it to “%ROMROOTFOLDER%/boxart”. Also, under the “Resize width/height” options, change them to 150 if you have an RG350/RG350P, and 300 if you’re using an RG350M. Make sure that “Keep image ratio” is still checked.
  • Finally, you need to tweak your disc-based systems so they don’t get hung up. On the left menu you’ll see a list of all the consoles, pick one of the disc-based systems (let’s do Sega CD). This allows you to make specific configurations for that system. Go to the “GAMES & FRONT-END” tab, and make sure that “Use specific configuration for SEGA CD” is checked. Underneath, for the “Games/Roms file extensions”, delete everything but “.cue”; now do the same for all of your other disc-based systems (PlayStation, PC Engine CD, etc). Note, if you have your ROMs in another format (chd, iso, zip, etc.) they will likely not run on the RG350 or will have poorer performance than the bin/cue files (read more about that in this guide). Additionally, in order to work properly, you cannot have ROMs in ANY subfolders within your ROMs folder. So for example, if your PS1 games are all in .bin/.cue files in their own separate folder within the “PS1” folder, all of the files need to be moved to the root PS1 folder. It’ll look like a mess, but EmulationStation will tidy things up for you.
  • Once everything is set up, press the Play icon at the bottom-right of the screen. You can either scrape the images one system at a time, or you can select “All Systems” from the left menu and do them all at once. Sit back and watch the computer do all the hard work; once it’s done, you’ll hear a bit of Final Fantasy music to indicate that the task is finished.
  • This process will create a “boxart” folder in each of your ROMs folders, which will have the images inside. It will also create a gamelist.xml file in each of your ROMs folder, which EmulationStation will use to associate the image with your game.

If you have any games that have an “é” in its official title, like Pokémon or Astérix & Obélix, you need to go into the gamelist.xml file in that respective ROMs folder and swap out the “é” for an “e”. To do so, just open the gamelist.xml file using a text editor, and use the Edit > “Replace…” function to replace all instances of “é” with “e”. Save the .xmll file and you should be ready to go. If EmulationStation crashes when you navigate to a specific system (like NES), it’s probably the presence of one of these characters in your gamelist.xml file.

Personalize EmulationStation with themes

EmulationStation comes pre-packaged with several themes, including PixelPerfect, NBBA (mod and original), Pixel, Simple, and SimpleGCW. To switch between themes, press START while in EmulationStation, choose “UI Settings” and change the theme there. You will likely need to quit EmulationStation and restart it in order to have the theme load correctly. Note that on the RG350M, when you start up a game and quit out of it, sometimes the theme will look like it is too stretched. You can simply restart EmulationStation to make it look normal again.

To add your own theme, you just need the theme folder to be placed in the /media/data/local/home/.emulationstation/themes folder on your internal SD card. To find themes, I recommend you check out this list to find one you like, and then just google the theme name plus the word “emulationstation” — it should pop right up. If possible, use a 4:3 theme so that the images don’t appear squished. Also, note that about half of the random themes I tried just plain didn’t work with the RG350.

Set up EmulationStation as your default launcher

You can set up EmulationStation as the default launcher for your RG350 device, but it does carry some risks. In order to get it to work, you have to add a new frontend_start script to your device, which if done improperly will make it so that your device won’t boot up (you can fix this by deleting the frontend_start file via FTP, so it’s not a total loss as long as you have FTP set up already).

The video guide above, from MashTec, covers everything you need in order to set EmulationStation as your default launcher.


– added Known issues

– added MashTec’s default launcher video guide

– published guide

3 thoughts on “Guide: EmulationStation on RG350 devices

  1. I finally got around to checking if my GBZ35 themes work on ES on the RG350. I got an old build of the theme working pretty well, but I haven’t done a ton of testing. Fonts are a little funky — not sure what’s up with that. I’ll see if I can work out why that’s happening on this old build of ES that the RG350 uses.

    RG350 GBZ35 –
    RG350 GBZ35-Dark –

    Liked by 2 people

  2. Hello, sorry or my english, i’m tring to configure mame in emulationstation, all it’s good, but when i launch a game, and after when i leave this game, it return well on the menu mame of emulationstation, but when i want to launch another game, it won’t launch and then i can’t launch another game of the list without leaving emulationstation. i’ll try the last mame4all version with skipwarning parameters but i always have the problem. Did you have an idea ?


Leave a Reply to RxBrad Cancel reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s