Flathub is the central place for building and hosting Flatpak builds. Go to https://flathub.org/builds/ to see Flathub in action.
RetroArch is a frontend for emulators, game engines and media players.
To install RetroArch through Flathub, use the following:
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub org.libretro.RetroArch
-
Run RetroArch through Flatpak:
flatpak run org.libretro.RetroArch
-
Install some libretro cores using the Online Updater. There is no need to update core info files, assets, joypad profiles, cheats, database, cg, glsl, or slang shaders, as those are shipped with the Flatpak.
-
Import content by scanning the folder where your games are kept.
-
Launch content through RetroArch either through the menu, or through the command line:
flatpak run org.libretro.RetroArch -L ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/chailove_libretro.so FloppyBird.chailove
There are a few known issues with using the Flatpak build of RetroArch, due to its sandboxed nature...
Upstream udev support for Flatpak isn't quite there yet. Because of this, the Flatpak build of RetroArch uses the SDL driver, which lacks some of the controller autoconfigs. If you have a controller that isn't detected, feel free to submit the SDL config for it over at retroarch-joypad-autoconfig.
There are a few libretro cores that have been been compiled with dependencies on libraries that are not currently deployed with Flatpak. If you find one, you are invited to create an issue detailing what's missing so that we can ship it in the sandboxed Flatpak.
To update RetroArch through Flathub, use the follow command:
flatpak update --user org.libretro.RetroArch
Through the Flatpak command line arguments, it is possible to change how RetroArch is used.
Allow Flatpak access to different mounted drives through using the --filesystem
option:
flatpak run --filesystem=host --filesystem=/media/NAS/roms org.libretro.RetroArch
To test the application locally, use flatpak-builder with:
git clone https://github.com/flathub/org.libretro.RetroArch.git
cd org.libretro.RetroArch
git submodule update --init
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak-builder builddir --install-deps-from=flathub --user --install --force-clean org.libretro.RetroArch.json
flatpak run org.libretro.RetroArch --verbose
To push up a newer version of RetroArch to Flathub, take on the following:
- Edit org.libretro.RetroArch.json
- Change all commit hashes to the latest tag, and commit hashes for each repository
- Edit org.libretro.RetroArch.appdata.xml
- Create a new
<release>
element and list the latest RetroArch CHANGES.md that apply to the Linux build - Push up a Pull Request with the new changes
- Wait to see if Flathub bot approves the changes
- Merge the Pull Request and tag the release
flatpak uninstall --user org.libretro.RetroArch
rm -rf ~/.var/app/org.libretro.RetroArch .flatpak-builder