Make Extensions/Plugins sections in preferences more useful
The current Extensions section in preferences has the following problems:
- Plugins don't correspond to Libretro cores:
- Having a plugin installed for a platform does not mean being able to play games for that platform.
- Not all platforms are represented by plugins.
- There's a plugin for Nintendo DS, but not for Game Boy Advance, but in stable version there's a core for GBA, but not for DS.
- Plugins cannot be turned on or off.
- There are no external plugins.
- In some cases some of the plugins may not work.
- Desktop plugin does not work in Flatpak.
- Steam plugin does not work if Steam is installed as Flatpak.
- Are they called extensions or plugins? Or maybe both?
Basically, in their current state plugins are just an implementation detail. Many (most?) platforms are supported via
Retro.SimpleTypes, and only ones that need special-casing (like filtering out some files, or extracting icons, or fetching info from a game database) have plugins.
See also #21 (closed).
@aplazas suggests replacing this section with a Platforms section that lists available platforms, cores available for them, and (possibly) allows selecting libretro core for each platform.
The latter is unnecessary in Flatpak, but some distributions package multiple cores for the same platform. Currently there's no control over which core is used.
Being able to select cores would bring another problem: saves and save states aren't necessarily compatible between cores, so it might lead to a data loss.
One way to solve that is to be name them after cores instead of platforms.
- How to migrate them?
- Sometimes cores are renamed; in that case saves are compatible, and thus need to be migrated. This is not a problem currently, because platform doesn't change.