Packaging Libretro cores
Games supports only Libretro cores shipping a Libretro Core Descriptor file. The cores and their descriptors are looked for in $(libdir)/libretro directory and in paths defined in the LIBRETRO_PLUGIN_PATH environment variable.
Cores currently included in the Games flatpak bundle
These cores allow some games to work out-of-the-box without having to install additional packages.
Cores added for testing purpose to the unstable nightly
These cores don't work well enough yet in Games to be added to be distributed with the stable version.
Cores available for Games as flatpak extensions
These cores include correct *.info files so they can be used in Games, but need to be provided separately (e.g. licensing issues)
flatpak remote-add --from bochecha https://www.daitauha.fr/static/flatpak/bochecha.flatpakrepo
flatpak install bochecha org.gnome.Games.LibretroPlugin.PicoDrive
Cores we need to evaluate
We are working on a tentative design for a Libretro core descriptor specification.
More information about what cores are available for which system can be found in the RetroPie-Setup wiki.
General information about the systems and available emulators can be found on the Emulation General Wiki.
Specific info about MAME support vs. other emulators is listed on NonMAME.
Rules for selection of cores
No BIOS needed, either at all or not for the commonly used games in the core, or the BIOS needs to be available by legal means that don't require a soldering iron. For example, the NeoGeo BIOS is shipped with Linux versions of the games.
- No single game ports, those should be installed as an "app", not as a data file that the front-end would handle. gnome-games should be seen as a concatenation of games available in the system, and a way to handle "data files" from older systems, such as ROMs for consoles, floppy disks from vintage computers or installers/archives for games for which we have an engine (SCUMMVM being a prime example).
- The core needs to be of decent quality and require hardware features comparable to those necessary to run GNOME Shell comfortably.
- How to choose the Libretro core if multiple ones are available for the games?
- We need to ensure that running a game with a core and then another doesn't break the saves.
- Should we use per game+core saves rather than simply per game saves?
- Should we push for and interchangeable save format per system? (NES saves should work with any NES emulator, etc.)