Customize sytems

EmulationStation displays systems based on a file called es_systems.cfg, located at /usr/share/emulationstation. In the past, you had to either edit this file and use the command batocera-save-overlay, or copy it to /userdata/system/configs/emulationstation and edit it there.

Both methods could have issues when updating (batocera-save-overlay changes are lost upon updating, and if the file has been changed, your local copy wouldn't reflect those changes).

However, there is a way to put custom informations without losing them during an update, while still having the benefits of said update.

You can create a file named es_systems_XXX.cfg where XXX is a name you wish to use for it. this file must have the same structure as the original es_systems.cfg :

<?xml version="1.0"?>
<systemList>
  <system>
        <fullname>3DO Interactive Multiplayer</fullname>
        <name>3do</name>
        <manufacturer>Panasonic - Sanyo - Goldstar</manufacturer>
        <release>1993</release>
        <hardware>console</hardware>
        <path>/userdata/roms/3do</path>
        <extension>.iso .chd .cue</extension>
        <command>python /usr/lib/python3.9/site-packages/configgen/emulatorlauncher.py %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM%</command>
        <platform>3do</platform>
        <theme>3do</theme>
        <emulators>
            <emulator name="libretro">
                <cores>
                    <core default="true">opera</core>
                </cores>
            </emulator>
        </emulators>
  </system>
  [...]
</systemList>

However, you only need to put what changes for a given <name> between the original and what you want, as the informations in this file will take priority if there is a conflict, the original es_systems.cfg file will still apply for anything else, for exemple, if you wish to change the path of the pico8 games, you simply need to create the file /userdata/system/configs/emulationstation/es_systems_pico8.cfg with the following, and then refresh the gamelist.

<?xml version="1.0" encoding="UTF-8"?>
<systemList>
  <system>
        <name>pico8</name>        
        <path>/userdata/roms/pico8real</path>
  </system>
</systemList>

Here, it'll use the folder /userdata/roms/pico8real to look for pico-8 games instead of the regular one.

  • emulationstation/customize_systems.txt
  • Last modified: 2 weeks ago
  • by fishou