2016-10-03, 01:38
New builds are uploading! I've added "game resource add-ons" to solve the BIOS problem. Here's how it works:
Game resources can be distributed with the add-on, they can be provided in userdata, or they can be provided by a "game resource add-on".
For example, BlueMSX now ships with the "Machines" and "Databases" folders containing all the files that aren't copyright-restricted.
The user can provide their own Machines folder containing custom BIOSes at special://userdata/addon_data/game.libretro.bluemsx/resources/system. If this is present, it will be used instead of the version that shipped with the core.
Finally, game resources can be provided by game resource add-ons. For example, I added this to Genesis Plus GX's addon.xml:
Now, if resource.games.libretro.restricted is installed, the Machines folder from that will override the one that shipped with BlueMSX.
If the core fails to load a game and a game resource is imported (but not installed), Kodi will alert the user about this missing add-on:
This entire strategy is subject to change. It requires a quick hack to the libretro API, but the hack isn't going upstream (see RetroArch PR:3713). However, the "proper" way using a VFS is being implemented (see RetroArch PR:3715). Until then, we'll have to fork any cores that need to load resources from multiple directories. This has already been done for Genesis Plus GX and BlueMSX.
Game resources can be distributed with the add-on, they can be provided in userdata, or they can be provided by a "game resource add-on".
For example, BlueMSX now ships with the "Machines" and "Databases" folders containing all the files that aren't copyright-restricted.
The user can provide their own Machines folder containing custom BIOSes at special://userdata/addon_data/game.libretro.bluemsx/resources/system. If this is present, it will be used instead of the version that shipped with the core.
Finally, game resources can be provided by game resource add-ons. For example, I added this to Genesis Plus GX's addon.xml:
Code:
<requires>
<import addon="resource.games.libretro.restricted" version="1.0.0" optional="true"/>
</requires>
Now, if resource.games.libretro.restricted is installed, the Machines folder from that will override the one that shipped with BlueMSX.
If the core fails to load a game and a game resource is imported (but not installed), Kodi will alert the user about this missing add-on:
Code:
This game requires the following add-on: resource.games.libretro.restricted
This entire strategy is subject to change. It requires a quick hack to the libretro API, but the hack isn't going upstream (see RetroArch PR:3713). However, the "proper" way using a VFS is being implemented (see RetroArch PR:3715). Until then, we'll have to fork any cores that need to load resources from multiple directories. This has already been done for Genesis Plus GX and BlueMSX.