Skip to content

Adding other Libretro cores that aren't included by default

Kogimat edited this page Jul 6, 2020 · 2 revisions

So. There's some libretro armf cores that aren't actually supported that may or may not work on The Odroid Go Advance (1.0)/Odroid Go Advance BE (1.1), and they aren't enabled/included by default.

You can wedge them in and get them working, but, YMMV, and it's not supported, so... here be dragons. I'm not responsible if you break things and have to format and start over, so, take a backup before you start doing this.

The first thing to check is (by default) \emuelec\cores\ (if accessing via SMB, I don't remember where the cores actually live, but this directory appears to be junctioned to /storage/cores, where you can drop additional cores if the .so and .info don't actually exist already) and see if the core you want has the .so and .info files.

Great. From here, you have to edit the es_systems config file (\Emuelec\configfiles\emulationstation\es_systems.cfg || /storage/.config/emulationstation/es_systems.cfg) to add the system to show up in EmulationStation. It's an XML file, so making sure you've got the right tags is important or it just gets angry. Below, for example, is what I had to add to get the NEC PC-9800 working.

Name is the shortname for the system fullname is self evident path is "where are the roms?" so emulationstation can use that to make sure to load the correct core extension is "what file extensions does this core accept?" command seems to be relatively universal (yay!) platform is relevant because of how it ties into getcores.sh theme defines what information is pulled from your installed emulationstation UI theme for that collection.

  <system>
    <name>pc-9800</name>
    <fullname>NEC PC-9800</fullname>
    <path>/storage/roms/pc98</path>
    <extension>.d98 .zip .98d .fdi .fdd .2hd .tfd .d88 .88d .hdm .xdf .dup .hdi .thd .nhd .hdd .hdn </extension>
    <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --controllers="%CONTROLLERSCONFIG%"</command>
    <platform>pc98</platform>
    <theme>pc98</theme>
  </system>

Great.

This part won't be needed after 3.7, as this is apparently changing due to new features

This is neat, except that it won't do anything yet. Why? Because we still have to tell emulationstation what cores to associate with this collection.

In the Scripts subdirectory of where you found the es_systems.cfg, you'll find getcores.sh, and in keeping with using a consistent example, below is what I had to add to get the appropriate libretro cores to associate with the ES collection created above.

the "pc98"|"pc-9801"|"pc-9800" is the "platform" listed in es_systems.cfg.

It's how ES knows what collections talk to which core. in this example, the platforms "pc98", "pc-9801", and "pc-9800" will have the cores listed here as options for loading the roms in that directory.

the CORES="np2kai_libretro,nekop2_libretro" section defines which libretro core (for example, in this case, it's npkai_libretro.so and nekop2_libretro.so) or cores are available in the "Advanced System" and "Advanced Game" options menu under "emulator"

the ;; tells the bash script you've finished this particular definition.

"pc98"|"pc-9801"|"pc-9800")
        CORES="np2kai_libretro,nekop2_libretro"
        ;;

I added this to the end of the script, after making sure that there wasn't already an empty entry for it.

Once you've done this, you can restart EmulationStation (or your whole device, if you want, I suppose), and if you've done it right, and have roms in the right directory, it should work.

Getting Started

Specific Emulators

Ports (and getting them to work)

Other

Other Languages / Otros Idiomas

Español

Emuladores:

Ports:

Comprobaciones:

Desarrollo:

Otros:


русский (Russian)


Chinese

Clone this wiki locally