Guide: SimpleMenu on the RG350

Last updated: 28SEP2020 (see Changelog for updates)

There are several different “frontends” available on the RG350. A frontend is a graphical interface that is different from the stock one that comes with a Linux distribution. It usually cosmetic in nature, developed to improve the user experience. Think of it this way: there are some brilliant developers out there, who can figure out how to do some amazing things with Linux code. But they may not also be blessed with an eye for graphic design, nor would they have a staff to help them develop an ideal user experience. Frontends seek to bridge that gap by building a better interface that runs over top of the existing Linux distribution, and today we’re going to look at my favorite RG350 frontend, SimpleMenu.

Table of Contents

What is a frontend?
Before you begin
Download and install the SimpleMenu OPK
Access the SimpleMenu configuration files
Configure the SimpleMenu .ini files
Test everything
Add box art to your game files
RG350M default and GBZRemix theme upgrades
SimpleMenu themes repository
Known issues with SimpleMenu

Changelog

What is a frontend?

An excellent example of an emulation frontend is the MacOS app called OpenEmu, pictured above. This frontend is described as a WIMP (windows, icons, menus, and pointer) interface. It takes a bunch of emulators (“cores”) and combines them into a seamless and beautiful user interface — just drag in your game files and it will automatically download the box art and place it in the correct gaming system menu. Now compare that to RetroArch, which is arguably the most popular emulation frontend today; RetroArch is available on many platforms (Windows, MacOS, Linux, Raspberry Pi, and so on), and has much wider support — a huge amount of emulators/cores are supported. But to be honest, its interface looks a little junky; it’s based on the old PlayStation 3 XrossMediaBar (XMB) that is now 14 years old, and it can be very confusing to navigate. So OpenEmu and RetroArch are two very similar frontends, but you could argue that one (OpenEmu) has more pleasing aesthetics and ease of use.

For anyone who has spent more than a few minutes with a stock RG350, the device is in dire need of a good frontend. The menus can be a chore to navigate, and nothing is customizeable. For example, I would prefer that my NES emulator icon says the word “NES” and not “FCEUX” — sure, I know that FCEUX is an NES emulator, but it’s still unintuitive and jarring. Or it’d be great if I could sort the icons myself — group the Nintendo icons together, etc. You also have to memorize which emulators run which systems: while they both play Sega Genesis games, PicoDrive runs Sega CD games, and Genplus GX does not.

In a nutshell, I would want an RG350 frontend that passes the “Dad test”. I would love to lend my RG350 to my Dad and let him play a bunch of classic games. But the way that the RG350 comes out of the box, he wouldn’t enjoy the experience, or I’d have to hover over his shoulder the entire time just to tell him how to do simple things like picking out a game to play.

In my opinion, SimpleMenu is the best frontend available on the RG350. As its name implies, it simplifies the user experience. Now, setting up that user experience actually takes a bit of work, but the rewards are worth it. So let’s walk through all the things you’ll need to do to get this awesome interface up and running. (Quick note: there are other frontends available for the RG350, and I’ll make a guide for them at a later date; for now, let’s focus on the best one first).

Bear in mind that there are a few different themes/skins you can use with the SimpleMenu frontend, but I prefer the one you see above, “GBZ35Remix”. It shows box art and system icons as you browse, and also supports a wide variety of system configurations (for example, you can have the NES show up, or the Famicom, or both — it’s all up to you). So this guide will set you up with the configuration you see above.

Before you begin

It’s always a good idea to make a backup of your latest firmware. It’s unlikely that you will mess things up by installing SimpleMenu, but it’s always better to be safe than sorry. Check out my guide on how to back up your RG350 firmware.

Download and install the SimpleMenu OPK

SimpleMenu was developed by GitHub user fgl82, and the latest release, version 6.1, came out in May 2020.

  1. You’ll want to go to their repository page and download the latest version of their OPKs:
  2. Once you’ve downloaded the latest OPK, you will want to put it on your internal microSD card. See this guide if you don’t know how to access your internal SD card via USB. Place the SimpleMenu OPK in your internal card’s /media/data/apps/ folder.
    • If you are using a RG350M, you MUST rename this file before you start it for the first time. By default, it will be “SimpleMenu-RG-350m.opk” and it needs to be renamed to “SimpleMenu-RG-350.opk” (in other words, remove the “m” from the file name).
    • You can do this renaming in the FTP client or on the device in DinguxCmdr; just be sure to do it before you start SimpleMenu for the first time — if you don’t, you will get a black screen when you set SimpleMenu as your default launcher.
  3. After you’ve added the OPK to your device, disconnect the RG350 from your computer and navigate to the SimpleMenu app on your device (it will be under the “Apps” tab, near the bottom). Start the app up, and it will likely close on its own. If it doesn’t close on its own, just press Start and select “Quit” from the settings menu. This step creates the files inside your card that you need to configure during the next step.
  4. If you haven’t already, format the microSD card you plan to use as your “storage” or “external” card — the one you’re going to load up with ROM files. Name the SD card something very simple, like “sdcard” or “RG350”. In the main directory, make a folder called “ROMS”, and within that folder, make another folder for every system you will be using: “NES”, “Sega Genesis”, “Game Boy Color”, etc. You can tweak this later, but you’ll need a preliminary folder structure for the next step.

Access the SimpleMenu configuration files

Windows/PC: Plug your RG350 into your PC, then use WinSCP or FileZilla to access the internal microSD card (if you don’t know how to do that, read my guide here). Navigate to /media/home/.simplemenu/sections_groups.

Mac: Plug your RG350 into your Mac, then use Cyberduck or Forklift to access the internal microSD card (if you don’t know how to do that, read my guide here). Navigate to /media/home/.simplemenu/sections_groups. If you have issues using an FTP client to access the .simplemenu folder, you can also copy of them to somewhere you can access. Make sure your external (TF2) card is in your RG350, then turn the device on. Open the app DinguxCmdr (found in the “Applications” tab). On left side of the screen, navigate to “/media/home/.simplemenu”, and on the right side of the screen, navigate to “/media/(name of your external SD card)”. Now on the left side, select the folder named “section_groups” and press the X button, and select “Copy >” and press the A button. You should see the “section_groups” folder duplicated on your external SD card. Now, turn off your RG350, remove the external SD card, and put it in your Mac, then open the “section_groups” folder.

SimpleMenu config file

Configure the SimpleMenu .ini files

Inside the “sections_groups” folder you will see a bunch of .ini (configuration) files: “apps and games”, “arcades”, etc. These are all of the different categories your systems will be organized into within SimpleMenu. Let’s open up one, the “consoles” file (which you can see above). If you’re using a Mac, open the file using TextEdit; for Windows, just double-click the file within WinSCP and a text file will automatically open. Now, let’s go over each field, because they each have their own purpose.

The “consoleList” is a list of every console that is within the “console” section/group. This is a very fluid list. You could remove systems, add others, etc. If you want to see which systems you can feature, go into /media/home/.simplemenu/themes/GBZ35Remix/theme.ini and open it up; about halfway through this file you will see a listing of all supported systems inside [brackets]. Those names can be used in any of these sections/groups. For example, you think NEO GEO should be in both the “console” and “arcade” section/group, or maybe only in one of them. You would simply put [NEO GEO] in whatever consoleList you want. Similarly, you want your consoles to show with the [FAMICOM] system instead of [NES], you can do that.

Below the “consoleList” line, each system will have its own set of configuration settings. Let’s look at the first one, [NES].

The “execs” line indicates where the NES emulator is located on your system. It will likely be in the “/media/data/apps/“ directory on your internal SD card. Your biggest concern here is to make sure this path points directly to the OPK that runs your NES ROMs (i.e. Fceux), and make sure that your OPK file is named exactly as it is in the media/data/apps directory (including capitalization). If you have a system for which there are more than one emulator (like Sega Genesis), you can either pick which emulator to use, or list them both (with a comma and no spaces between them, like this: /media/data/apps/GenplusGX.opk,/media/data/apps/picodrive_gcw0,opk).

The “romDirs” line points to where your NES ROMs are stored, which will be /media/(name of external SD card)/(name of NES folder)/. Make sure you have a “/“ after the folder name; otherwise, things will get messed up. Same thing here when it comes to exact spelling and capitalization — one tiny typo will cause NONE of your ROMs to appear.

Finally, the “romExts” line tells the program which file extensions to recognize as games. To get this section right, you’ll want to look at the folder where your ROMs are stored, and check their file extensions. For NES files, they are usually “.nes” files, or zipped as “.zip” files. Just make sure that they are all listed in this line. Capitalization matters here, so if they are “.NES” or “.ZIP”, those extensions need to be added, too (or rename the game files themselves so they are standard). One note: if you’re adding disk-based files, such as PlayStation, Sega CD, or TurboGrafx-16 CD files, they will should be in “.bin” and “.cue” files (I do not recommend .zip or .chd files for these systems because they tend to slow the games down). By default, SimpleMenu may have both “.bin” and “.cue” extensions listed in the “romExts” list, or even “.zip” files. My advice is to unzip these files into their own folders, and only write “.cue” files in the “romExts” list, since they are the ones you need to boot with to run the game. If multiple file types are listed in your “romExts” list, you’ll get multiple copies of your games showing up in SimpleMenu, but only one of them will open the game properly (you guessed it, the .cue file).

Okay, it’s a little tedious, but you’ll need to go through every .ini file and configure it for every system. Once you’ve done that for all of the systems, you’re mostly done!

Mac users: If you didn’t use an FTP client in the step above, at this point you will want to put your external microSD card back into the device, turn it on and open up DinguxCmdr again. Now, replace the internal .ini files with the external files you just configured. On left side of the screen, navigate to “/media/(name of your external SD card)”, and on the right side of the screen, navigate to “/media/home/.simplemenu”. Now on the left side, select the folder named “section_groups” and press the X button, and select “Copy >” and press the A button. You will then replace the old folder with the files you’ve been working on. At this point you can exit DinguxCmdr.

A note on XMAME and arcade games: So XMAME doesn’t follow a traditional OPK format, it is an app that is actually “installed” on the device. As such, you cannot point it to an opk file in SimpleMenu. Instead, you will need to use the code below. I have an entire SimpleMenu section in my Arcade Games guide about setting up XMAME, FBA and more with SimpleMenu.

[MAME]
execs = /media/data/local/share/xmame/xmame84/xmame.SDL.84
romDirs = /media/data/local/share/xmame/xmame84/roms/
romExts = .zip
aliasFile = /media/home/.simplemenu/alias.txt
onlyFileNamesNoPathOrExtension = yes

Test everything

Now comes the moment of truth — did you spell everything correctly? Turn on your device, then navigate to SimpleMenu under the “Apps” tab and open it up. You should be greeted with a text list of whatever system it shows you first. Press the Start button to access the SimpleMenu settings, then change the theme to “GBZ35REMIX”, and the layout to “Drunken Monkey”. Press the Start button again to exit the settings, and the interface should look a lot like the one you see at the top of this post, but with no box art (we’ll get to that next). Tab through the console lists and verify that all of your ROMs are showing up correctly. To navigate to a new section/group, press the B button, then up/down to see the different sections, and press A to go into one of them (like “handhelds”). If any of the ROMs are not showing up, or SimpleMenu crashes, go back into your .ini files and assess the problem — it’s probably a spelling or capitalization error.

SimpleMenu hotkeys:

START button: settings
L1 and R1: tab between consoles
B button: change section group (arcades, consoles, handhelds, etc.)
A button: select game, confirm
Y button: fullscreen mode
X button: add to "Favorites" list
L2 button: open/close Favorites list
           X button while in Favorites: delete from list

Add box art to your game files

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. Over on YouTube, MashTec has a good video about how to use Skraper via Windows, but I’ll write out the steps for you here:

  • 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 from someone that by registering, it significantly sped up their scraping process.
  • You’ll then see four different frontend selection options, pick the “RECALBOX” option.
  • On the next screen, click the folder icon and navigate to your ROMs folder (either on your PC or on the external microSD card you use for the RG350. 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”. We actually don’t need an .xml file for SimpleMenu, but this will keep you from getting a bunch of backup copies cluttering your ROM folders.
  • 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%/media”. 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).
  • 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.
  • One note: for disc-based games, those which are in their own folder (i.e. ROMs/Sega CD/Sonic CD/), the images will also be placed in their own folder (i.e. ROMs/Sega CD/media/Sonic CD/). SimpleMenu won’t recognize the images unless they are in the media folder itself, so you have to go into each of those folders and move the image to ROMs/Sega CD/media/ instead.

Mac users: Unfortunately, the Mac version of Skraper has not been released yet, but it’s nice to know that they are working on it. For the time being, I’ve written up a lengthy guide on how to scrape your game images as easily as possible. Or, if you’d like, you can create a Windows 10 virtual machine and run Skraper from that (it’s actually quite easy – here is my guide).

Games and Apps: To make SimpleMenu “box art” for your native games or apps, you’ll need to make a “media” folder inside the media/data/apps folder and be sure to name the .png image the same as the .opk file name in the media/data/apps folder. Note that some apps, like the Clock app, don’t have a traditional .opk launcher. Instead, SimpleMenu uses .fgl links to find the actual executable file (which is in usr/bin). So to add box art to these apps you need to make a “media” folder inside the media/data/local/home/.simplemenu/apps/ folder, and its name must match the .fgl file found in the media/data/local/home/.simplemenu/apps/ folder minus the “##_” prefix. So for the “20_pyclock.fgl” file, the image should be placed in media/data/local/home/.simplemenu/apps/media and should be named “pyclock.png”.

Comparison of RG350M SimpleMenu system icons vs the icons I created (and available for download below).

RG350M default and GBZ35Remix theme upgrades

The reason that the RG350/RG350P and the RG350M have different versions of SimpleMenu is because the RG350M has a 640×480 screen resolution — twice that of the other models. This means that the screen can accommodate much more detailed menus, which further improves the graphical interface. Unfortunately, the RG350M version of SimpleMenu didn’t upgrade many of the icons and pages for the device. This update fixes these issues. For example, on the bottom-right corner of each console page, the original SimpleMenu showed system icons that were huge and pixelated (see the before/after example above). Here is the download link to these upgraded theme files:

To update the ‘default’ theme:

Using WinSCP or FileZilla (Windows) / CyberDuck or Forklift (Mac), navigate to /media/home/.simplemenu/themes/default/ on your internal SD card. Replace the “resources” folder with the default/resources folder you just downloaded. It will ask your permission to overwrite the files, just select the “Yes to All” option.

To update the ‘GBZRemix’ theme:

Using WinSCP or FileZilla (Windows) / CyberDuck or Forklift (Mac), navigate to /media/home/.simplemenu/themes/GBZRemix/ on your internal SD card. Replace the “resources” folder with the GBZRemix/resources folder you just downloaded. It may ask your permission to overwrite the files, just select the “Yes to All” option.

To update the section_groups icons (affects all themes):

Replace the .png files found in /media/home/.simplemenu/sections_groups/ with the .png files found within /place in sections_groups/ in this zip archive.

Notes:

  • For information on how to access your internal SD card folders via your Mac or PC, check out this guide.
  • Credit where credit is due: most of the images are pulled from the excellent tronkyfran EmulationStation theme. Console icons and logos are taken from screenscraper.fr and two others were shamelessly pulled/tweaked from DBTechReviews and Starter Story (please don’t sue me).
  • I have also added PAL/Global icons for certain systems (SNES, Mega CD, and Mega Drive 32x) within their system folders. They are labeled as “system-alt.png”. So for example, to change to the Mega CD icon, you will go to resources/segacd and change the “system-alt.png” (the Mega CD icon) file name to “system.png”; same goes with the logo.png files This will replace the Sega CD icon and logo with the Mega CD ones.
  • The GBZRemix theme has support for more systems than the default theme. For example, GBZRemix has folders for PC Engine and TurboGrafx-16, but the default theme only has a PC Engine folder. To work around this, I added the TG16 icons into the PC Engine folder, as logo-alt.png and system-alt.png. You will want to remove the “-alt” from these icons in order to use them in place of the standard files.
  • If SimpleMenu fails to load after install (i.e. continues to crash when you try to open it), go into DinguxCmdr and delete /media/home/.simplemenu/last_state.sav on your internal SD card.

Here’s a quick video of these two upgraded themes in action:


SimpleMenu themes repository

There aren’t a huge amount of themes available for the RG350 devices. But here is a breakdown of what’s available. To install a theme, simply place its folder in the media/data/local/home/.simplemenu/themes folder.

Default: This theme is bundled with SimpleMenu, but is not optimized for the RG350M. See my guide above to optimize the icons for the RG350M.

GBZRemix: Also bundled with SimpleMenu. See my guide above to optimize the icons for the RG350M.

ComicBook: This is a theme I made, with two versions, one that is built for the RG350/RG350P, and another that is optimized for the RG350M. You can read the full installation guide here.

MegaPixels: This theme is not optimized for the RG350M, but here is the download link.

BlackPixel (modified v1): This theme was a recreation posted by a Reddit User.


Known issues with SimpleMenu

  • If you tab through the consoles too quickly using the shoulder buttons, especially when you get to the disc-based systems, SimpleMenu may crash.
  • There is an option to make SimpleMenu your default launcher, so you never have to deal with the stock GMenu2X interface at all. This works just fine on the RG350, but for the RG350M, you have to rename the SimpleMenu OPK before booting it for the first time (full instructions near the top of this guide, right here). If you fail to rename the file and then enable SimpleMenu as your default launcher, it will cause the RG350M to boot into a black screen instead. This has to do with the “frontend_start” file that SimpleMenu creates when you set it as your default launcher. The only way to get your system working again was to simply delete the “frontend_start” file, which is located at /usr/local/sbin/ on your internal SD card. If you have this issue, you will need to access your RG350 via an FTP client (more info on how to do that here). Note that on the Mac, the /usr/local/sbin/ folder you need to access to find and delete the “frontend_start” file is only accessible via SFTP, which I was only able to do successfully via Forklift.

Changelog

28SEP2020
– added box art instructions for Games and Apps

27SEP2020
– added theme repository

24SEP2020
– fixed broken link to RG350M version
– added code for XMAME

21SEP2020
– added Changelog
– added link to Windows 10 VM for Mac users
– added link to “ComicBook” SimpleMenu theme

I hope this guide helps you find the best frontend option for your RG350 device. Any comments, questions, or requests? Leave them below!

4 thoughts on “Guide: SimpleMenu on the RG350

Leave a Reply

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

WordPress.com Logo

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

Google photo

You are commenting using your Google 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