Hi!
The circumstance that there is no separate repository for stable cores means that users with non-rooted Android devices have no chance to roll back to a working version if they updated to a broken core until it has been fixed. I would like to suggest two solutions and hear your opinions.
1) The cores need to be accessible in a location where RetroArch is able to execute binaries. That’s why RetroArch always resets the libretro_directory to it’s default which is /data/data/com.retroarch/cores. But what if the user could change this to whatever readable and writable location he wants and whenever RetroArch tries to start a core it copies the appropriate core to maybe /data/data/com.retroarch/cores/current_core.so and executes this one? In this case the user can always backup and restore a working core version.
If you don’t like such an Android-only workaround what do you think about this:
2) When updating cores they are downloaded to the core_assets_directory (which is /sdcard/Download by default), extracted and stored in /data/data/com.retroarch/cores. If a user would like to restore a previously download core from the build bot website he just needs to place the zip file into this location. Now when he triggers the core update the updater notices that there already is a file with the name he was instructed to update. So the updater skips to download anything but continues the process with the existing zip file.