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
| Method | Source | Updates | Best For |
|---|---|---|---|
| DNF | Fedora repos | With system upgrades | Users who prefer distro-tested packages |
| Flatpak | Flathub | Independent releases | Users 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:
- Open RetroArch and navigate to Main Menu → Online Updater.
- Select Core Downloader.
- Browse the list and download cores for the systems you want to emulate (e.g.,
Snes9xfor SNES,mGBAfor Game Boy Advance,PCSX ReARMedfor 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 Updater → Update Installed Cores.
Load Your First Game
Once you have at least one core downloaded, you can load a ROM file:
- From the main menu, select Load Content.
- Navigate to your ROM file location (commonly
~/ROMs/or~/Downloads/). - Select the ROM file. RetroArch will prompt you to choose a core if multiple cores support that file type.
- The game loads and you can begin playing. Press
F1to 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 Settings → Input → Port 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 Settings → Drivers → Video and change from gl to glcore or vulkan depending on your GPU. Then save the configuration with Main Menu → Configuration File → Save 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.