The most recent version of this page is a draft.DiffThis version is outdated by a newer approved version.DiffThis version (2021/05/27 00:06) is a draft.
Approvals: 0/1

This is an old revision of the document!


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 better: 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.

WARNING If you upgrade from a previous Batocera version to v31, you need to update your es_systems* files and reflect the change of Python version. As you can see below, starting with Batocera 31, the location for the emulator launcher is /usr/lib/python3.9/site-packages/configgen/emulatorlauncher.py and not python2.7 as it used to be in previous versions. There is no Python 2.7 on Batocera 31 any longer.

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.1622066798.txt.gz
  • Last modified: 3 years ago
  • by lbrpdx