Warning: Fiddling about with things in RetroPie may break your set up. We advice you make a back-up of your SD card before doing anything we mention here. Although these instructions work with our set-up we cannot guarantee they will work with yours. We advice you to read all of this tutorial before commencing.

If you want to add a new platform to the ones already supported in RetroPie, such as a Commodore Plus/4 or Amstrad GX4000, you are going to have to make RetroPie aware that the system exists, and provide a system page for it.

This tutorial only tells you how to add the platform to the menus in Retropie. Each system you add will require a different set up to make it work. We will create some tutorials for some popular and not so popular systems in the future.

To add a page for your new system, you are going to have to edit a file called es_systems.cfg.

This file lives in a folder called /etc/emulationstation/. This folder is fiddly to get to as it involves doing a bit of stuff in the terminal, plus any changes you make to it, will get overwritten when you update your RetroPie.

So we’re going to make a copy of it, to make it easier to access, and to avoid it getting overwritten. We’re going to do the same with your themes folder to make it easier to edit the themes for your new systems too.

One thing to bear in mind though, is if new systems are added via a RetroPie update, then you will need to manually add these (or copy them) to your new custom file. It might be worth embarking on this after you have already been through Retropie’s optional and experimental packages to see if there is anything else you wish to add first.

The easiest way of copying these folders and files is via a separate PC. You’re going to need to make sure you have enabled remote command line access to your Pi using SSH. If you haven’t done this, you can follow the instructions in this article here. (remembering to make a note of your Pi’s IP address. You can also find your Pi’s IP address via an option on the the Retropie Settings page)

You will Need:​

  • PC connected to the internet
  • SSH Client (Mac users can use the built-in Terminal app (check the Other folder in your Applications folder). PuTTy is recommended for Windows users.)
  • Text Editor (We recommend BBEdit for Mac, and Notepad for Windows. Do not try using Word)

Make sure that your Raspberry Pi is connected to the Internet.

In your SSH client type the following, (replacing xxx.xxx.x.xx with the IP address for your Raspberry Pi).

ssh pi@xxx.xxx.x.xx

You then need to type the password. Unless you have changed it, the default is raspberry.

You should now see a screen like this:

04292020_124012-1.png


Now copy and paste the following into your SSH client.

sudo cp /etc/emulationstation/es_systems.cfg /opt/retropie/configs/all/emulationstation/es_systems.cfg

This makes a copy of the file that is accessible via SAMBA share. If you’ve followed the instructions here you should have set this up to transfer your ROMs across.

Now lets do the same for the themes folder:

Copy and paste the following into your SSH client:

sudo cp -r /etc/emulationstation/themes /opt/retropie/configs/all/emulationstation/themes

This one may take a little longer than the last one depending on how many themes you have downloaded.

Accessing the systems.cfg file​


If you haven’t set up SAMBA share for your Retropie, you can follow the instructions in our set-up guide here (see the section ‘adding games to your retropie).

Screenshot-2020-04-14-at-16.44.38.png


You can now locate the es_systems.cfg file via SAMBA. (It’s in configs, then go to all > emulationstation). The themes folder should also be in the same place.

Open the file in your text editor. It should look something like this:

Screenshot-2020-04-14-at-16.46.23.png


Each system is represented in the following format, here’s one for the Channel F as an example:

Code:
  <system>
    <name>channelf</name>
    <fullname>Fairchild ChannelF</fullname>
    <path>/home/pi/RetroPie/roms/channelf</path>
    <extension>.bin .rom .zip .7z .BIN .ROM .ZIP .7Z</extension>
    <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ channelf %ROM%</command>
    <platform>channelf</platform>
    <theme>channelf</theme>
  </system>

Each system is surrounded by <system></system> tags. If you’ve ever written any HTML you’d be familiar with the opening tag, and closing tag system.

Within the <system> tag there are several sections as follows:

  • <name> : This the name used internally by Emulation Station. Choose something short.
  • <fullname> : This is the longer version of the name of the system used in menus (optional)
  • <path> : This is where the ROM files are found for the new system.
  • <extension> : These are the file extensions that are accepted for the system
  • <command> : When you launch a game, this is what command is launched
  • <platform> : This is used when scraping metadata for games (optional)
  • <theme> : Which theme is used for the new system.

To create a new system you just need to add one in the above format.

You will also need to create a theme for the new system.

Go to configs / all / emulationstation / themes / <name_of_your_theme> /

You should have a folder for each system on your retropie. The easiest thing to do is make a copy of one of these folders, and base the template for your new system on that. If you’re using the default carbon theme, you can just place an svg format logo called system.svg in the art folder.

If you’re unable to copy things in the themes folder you may need to adjust your permissions. Via SSH type,

sudo chown pi -R /opt/retropie/configs/all/emulationstation/themes

And that should do the job!

We will be running a series of tutorials about adding a variety of systems in the near future.
 

Article Comments

No comments yet.

Add your Comments

Members online

Top