How to Install RetroArch on Fedora Linux

RetroArch lets you play classic console and arcade games on Fedora through a single interface. It uses downloadable emulator cores—individual plugins that each handle a specific system like NES, SNES, PlayStation, or arcade hardware. This guide covers installing RetroArch via DNF or Flatpak, downloading your first core, and loading a game.

Choose Your Installation Method

MethodSourceUpdatesBest For
DNFFedora reposWith system upgradesUsers who prefer distro-tested packages
FlatpakFlathubIndependent releasesUsers who want newer versions or sandboxing

DNF installs RetroArch as a native package that updates alongside your system. Flatpak provides a sandboxed version that typically receives newer releases faster. Choose DNF for simpler maintenance, or Flatpak if you want the latest features or encountered dependency issues with the repository package.

Method 1: Install RetroArch via DNF

Fedora’s repositories include RetroArch, so installation requires only a single DNF command. The package integrates with your system libraries and receives updates through standard system maintenance.

Update System Packages

Open a terminal by pressing the Super key and typing “Terminal”. Before installing new software, refresh your package database and apply pending updates to ensure dependency compatibility:

sudo dnf upgrade --refresh

Install RetroArch Package

Install RetroArch from Fedora’s repositories:

sudo dnf install retroarch

Verify the installation by checking the version:

retroarch --version
RetroArch v1.20.0

Your version number will differ based on the current package in Fedora’s repositories. You can now launch RetroArch.

Method 2: Install RetroArch via Flatpak

Flatpak packages bundle their own dependencies, which avoids the library conflicts that sometimes affect DNF packages after Fedora version upgrades. RetroArch on Flathub also tends to receive updates faster than the Fedora repository version.

Enable Flathub Repository

Fedora includes Flatpak by default, but Flathub (the main Flatpak app repository) may not be enabled. Add it as a remote source:

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

If Flathub was previously disabled, re-enable it with: flatpak remote-modify --enable flathub

Install RetroArch from Flathub

Install RetroArch using its Flatpak application ID:

flatpak install flathub org.libretro.RetroArch

Verify the installation:

flatpak run org.libretro.RetroArch --version
RetroArch v1.22.2

Launch RetroArch

Launch from Terminal

With the DNF installation, run:

retroarch

Alternatively, if you installed via Flatpak, run:

flatpak run org.libretro.RetroArch

Launch from Applications Menu

Press the Super key, type “RetroArch” in the search bar, and click the icon. You can also find it in Show Applications (the grid icon at the bottom of the dock).

Download Emulator Cores

RetroArch requires emulator cores to play games—each core handles a specific console or system. Download cores through the built-in updater:

  1. Open RetroArch and navigate to Main MenuOnline Updater.
  2. Select Core Downloader.
  3. Browse the list and download cores for the systems you want to emulate (e.g., Snes9x for SNES, mGBA for Game Boy Advance, PCSX ReARMed for PlayStation).

Download only the cores you need. Popular starter cores include Snes9x (SNES), Nestopia (NES), mGBA (GBA), and Genesis Plus GX (Sega Genesis). Installing too many clutters the menu and makes finding the right core harder.

RetroArch stores downloaded cores in ~/.config/retroarch/cores/ for DNF installations or ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/ for Flatpak. To update cores later, return to Online UpdaterUpdate Installed Cores.

Load Your First Game

Once you have at least one core downloaded, you can load a ROM file:

  1. From the main menu, select Load Content.
  2. Navigate to your ROM file location (commonly ~/ROMs/ or ~/Downloads/).
  3. Select the ROM file. RetroArch will prompt you to choose a core if multiple cores support that file type.
  4. The game loads and you can begin playing. Press F1 to open the quick menu for save states, screenshots, or to exit.

RetroArch does not include games. You must provide your own ROM files from cartridges you own. Downloading copyrighted ROMs without owning the original is illegal in most jurisdictions.

Troubleshooting

DNF Installation Fails with Dependency Errors

After major Fedora version upgrades, you may encounter dependency errors when installing RetroArch from DNF:

Problem: conflicting requests
 - nothing provides libmbedcrypto.so.7()(64bit) needed by retroarch
 - nothing provides libmbedx509.so.1()(64bit) needed by retroarch
 - nothing provides libmbedtls.so.14()(64bit) needed by retroarch

This occurs when the repository package was built against an older library version that no longer exists in the current Fedora release. First, refresh metadata and check whether an updated package is available:

sudo dnf clean all && sudo dnf makecache
sudo dnf install retroarch

If the error persists, the package maintainer likely needs to rebuild RetroArch against the newer libraries. Check the Fedora Bugzilla for retroarch to see whether a bug has already been filed. In the meantime, install RetroArch via Flatpak instead, which bundles its own dependencies and avoids system library conflicts:

flatpak install flathub org.libretro.RetroArch

Cores Fail to Download

If cores fail to download, you may see an error in RetroArch’s bottom status bar:

Download failed: buildbot.libretro.com

This error typically indicates a network or firewall issue, since RetroArch connects to buildbot.libretro.com to fetch cores. Specifically for Flatpak installations, verify the application has network access:

flatpak info --show-permissions org.libretro.RetroArch | grep -i network

Expected output confirming network access:

network

If no output appears, your firewall or system settings may block network access. Check your firewall configuration or download cores manually from https://buildbot.libretro.com/nightly/linux/x86_64/latest/ and place them in your cores directory.

Controller Not Detected

If RetroArch does not recognize your gamepad, first verify it works at the system level:

cat /proc/bus/input/devices | grep -A 4 -i "gamepad\|controller\|joystick"

When the system detects your controller, you should see output similar to:

N: Name="Xbox Wireless Controller"
P: Phys=usb-0000:00:14.0-2/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/input/input15
U: Uniq=

If no output appears, the system does not recognize your controller. Try a different USB port or check whether your controller requires additional drivers.

Conversely, if the controller works at the system level but not in RetroArch, navigate to SettingsInputPort 1 Controls and manually bind your controller. Additionally, for Flatpak installations, the sandbox may block device access. Grant permission with:

flatpak override --user --device=all org.libretro.RetroArch

Restart RetroArch after granting permissions for the change to take effect.

Black Screen or No Video Output

If RetroArch shows a black screen when loading games, the video driver may be incompatible with your GPU. To resolve this, navigate to SettingsDriversVideo and change from gl to glcore or vulkan depending on your GPU. Then save the configuration with Main MenuConfiguration FileSave Current Configuration, and restart RetroArch.

Specifically for NVIDIA GPUs, vulkan typically provides the best performance. However, if you have not installed proprietary NVIDIA drivers, see our guide on installing NVIDIA drivers on Fedora for improved graphics performance and Vulkan support.

Manage RetroArch

Update RetroArch

With DNF installations, RetroArch updates alongside your system packages:

sudo dnf upgrade --refresh

Meanwhile, Flatpak installations update independently:

flatpak update org.libretro.RetroArch

To automate DNF updates, consider installing DNF Automatic on Fedora. In contrast, Flatpak applications require separate updates using flatpak update or through GNOME Software.

Uninstall RetroArch

To remove the DNF package:

sudo dnf remove retroarch

Alternatively, to remove the Flatpak version:

flatpak remove org.libretro.RetroArch

Uninstalling RetroArch does not remove your personal data. Your save states, controller mappings, shader presets, playlists, and downloaded cores remain in the directories below. Export any saves you want to keep before deleting these folders.

Remove user data for DNF installations:

rm -rf ~/.config/retroarch/

Remove sandboxed data for Flatpak installations:

rm -rf ~/.var/app/org.libretro.RetroArch/

After removing a Flatpak application, clean up unused runtimes to free disk space:

flatpak uninstall --unused

Conclusion

You now have RetroArch running on Fedora with cores downloaded and ready to load games. Experiment with video drivers (gl, glcore, vulkan) to optimize performance for your GPU, and refer to the troubleshooting section if you encounter controller or display issues. For expanded gaming on Fedora, see our guides on installing Steam and enabling RPM Fusion for additional multimedia codecs that some cores benefit from.

Leave a Comment