Managing a separate emulator for every older console gets messy once arcade boards, handhelds, controller profiles, shaders, and save states all need their own tools. RetroArch keeps that setup under one frontend by loading libretro cores for the systems you actually use, so you can install RetroArch on Fedora and manage most of the workflow from one interface.
Fedora provides RetroArch through its standard DNF repositories, while Flathub publishes a separate Flatpak build. The Fedora package is best for distro-managed updates and packaged free cores. The Flathub build is useful when it is ahead of Fedora’s package or you want a runtime-separated install, but its current manifest grants broad host filesystem, device, and network access instead of tight isolation.
Install RetroArch on Fedora
Choose the RetroArch Installation Method
| Method | Source | What You Get | Updates | Best For |
|---|---|---|---|---|
| DNF | Fedora repositories | RetroArch plus Fedora-packaged assets, databases, filters, and several free libretro cores | With normal system upgrades | Users who want Fedora-managed packages and packaged cores |
| Flatpak | Flathub | RetroArch with the Flathub runtime stack and standard online-updater path | With Flatpak app and runtime updates | Users who want the Flathub release or want to avoid a temporary DNF dependency issue |
RetroArch does not include games, ROMs, or BIOS files. The install methods add the frontend, assets, and emulator cores; bring only game files and BIOS files that you are legally allowed to use.
Install RetroArch with DNF
Fedora ships RetroArch in its standard repositories. This path also pulls in supporting packages such as retroarch-assets, retroarch-database, retroarch-filters, and several free libretro-* cores.
Update Fedora Before Installing RetroArch
Open Activities and search for Terminal. Refresh package metadata before installing RetroArch so DNF resolves the current dependency set:
sudo dnf upgrade --refresh
These commands use
sudofor root privileges. If your account is not configured for sudo yet, follow the guide on how to add a user to sudoers on Fedora.
Install the RetroArch DNF Package
Install RetroArch from the Fedora repositories:
sudo dnf install retroarch
Verify the installed frontend before opening it:
retroarch --version
RetroArch - Frontend for libretro Version: 1.22.0 (Git c54db71) Jan 26 2026 Compiler: GCC (16.0.1) 64-bit
The version, Git revision, and compiler line change as Fedora updates the package.
Install RetroArch with Flatpak
Fedora Workstation, Silverblue, and Kinoite include Flatpak, but Flathub is optional. On a trimmed mutable Fedora install where flatpak --version is missing, install Flatpak first:
sudo dnf install flatpak
The commands in this section add Flathub at system scope, then keep the install, update, and removal commands at the same scope.
Enable Flathub for RetroArch
Add the Flathub remote if it is not already configured:
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Use the grep command in Linux to filter the remote list and confirm that Flathub exists at system scope:
flatpak remotes --columns=name,options | grep -E '^flathub[[:space:]]'
flathub system
If Flathub exists but is disabled, re-enable it with
sudo flatpak remote-modify --enable flathub.
Install the RetroArch Flatpak
Install RetroArch from Flathub with its application ID:
sudo flatpak install flathub org.libretro.RetroArch
Check the installed Flatpak record:
flatpak info org.libretro.RetroArch | grep -E '^[[:space:]]*(ID|Ref|Arch|Branch|Version|Origin|Installation|Runtime):'
ID: org.libretro.RetroArch
Ref: app/org.libretro.RetroArch/x86_64/stable
Arch: x86_64
Branch: stable
Version: 1.22.2
Origin: flathub
Installation: system
Runtime: org.kde.Platform/x86_64/6.10
The Flatpak version and runtime branch change as Flathub publishes updates.
Launch RetroArch on Fedora
Launch RetroArch from the Terminal
Use the native command when you installed the Fedora package:
retroarch
Use the Flatpak launcher when you installed the Flathub build:
flatpak run org.libretro.RetroArch
Launch RetroArch from Activities
Open Activities, search for RetroArch, and launch it from the results. You can also open Show Applications and start it from the app grid.

Set Up RetroArch Cores on Fedora
RetroArch loads games through cores. A core is the emulator module for a specific console, arcade board, handheld, or game engine, and the DNF and Flatpak builds handle core downloads differently.
Use Fedora-Packaged Cores with DNF
The Fedora package installs several free libretro cores from Fedora repositories, including examples such as libretro-mgba, libretro-nestopia, and libretro-pcsx-rearmed. These packaged cores live under /usr/lib64/libretro/ and update through DNF.
Open RetroArch and go to Main Menu > Load Core to select one of the packaged cores.
Enable the Core Downloader for the DNF Build
Fedora disables RetroArch network access by default in its DNF build. If you want the in-app core downloader, run Fedora’s packaged helper from your desktop session:
retroarch-enable-network-access.sh
The helper starts and stops RetroArch to create or edit ~/.config/retroarch/retroarch.cfg, enables the online updater menu entries, and switches downloaded cores to ~/.config/retroarch/cores/. After it finishes, open Main Menu > Load Core > Download a Core.
Download Cores with the Flatpak Build
The Flathub build uses RetroArch’s standard online updater path, and current Flathub metadata includes network access. Open RetroArch and go to Main Menu > Online Updater > Core Downloader, then download the cores you need, such as Snes9x for SNES, mGBA for Game Boy Advance, or PCSX ReARMed for original PlayStation games.
The available core list changes by platform and build, so use the in-app list as the source of truth instead of copying static lists from older posts. Install only the cores you plan to use; a shorter list makes it easier to choose the right core for each file type.
Flatpak-downloaded cores live under ~/.var/app/org.libretro.RetroArch/config/retroarch/cores/. To refresh them later, return to Online Updater > Update Installed Cores.
Load Your First RetroArch Game
Once at least one core is available, load a ROM or other supported content file from the main menu:
- Select Load Content from the main menu.
- Browse to your game-file location, usually a directory such as
~/ROMs/or~/Downloads/. - Choose the file. RetroArch asks you to select a core when more than one core supports that format.
- Press
F1while a game is open to reach the quick menu for save states, screenshots, shaders, and exit options.
RetroArch does not supply game downloads. Use ROM backups, disc images, and BIOS files only when you have the right to keep and use them in your region.
RetroArch can run many classic console, handheld, and arcade games when a matching core exists. Compatibility still depends on the core, the content format, and any BIOS files that platform requires.
Manage RetroArch on Fedora
Keep updates and removal aligned with the install method you used. The DNF package belongs to the Fedora package database, while the Flatpak app belongs to the Flathub remote.
Update RetroArch on Fedora
The DNF package updates with the rest of your Fedora system:
sudo dnf upgrade --refresh
The Flathub build updates separately because it was installed at system scope:
sudo flatpak update org.libretro.RetroArch
If you want DNF upgrades to run automatically, follow the guide to install DNF Automatic on Fedora. Flatpak applications still need flatpak update or a desktop software manager.
Remove RetroArch on Fedora
Remove the Fedora package with DNF if that is the method you used:
sudo dnf remove retroarch
Confirm that RetroArch and its companion Fedora packages are gone:
rpm -q retroarch retroarch-assets retroarch-database retroarch-filters
package retroarch is not installed package retroarch-assets is not installed package retroarch-database is not installed package retroarch-filters is not installed
Remove the Flathub build with the same system scope used for installation:
sudo flatpak uninstall org.libretro.RetroArch
Confirm that the system-scope Flatpak app is gone:
flatpak list --system --app --columns=application | grep -Fx org.libretro.RetroArch || echo "NOT_INSTALLED"
NOT_INSTALLED
Clean unused Flatpak runtimes only after reviewing the list Flatpak prints:
sudo flatpak uninstall --unused
Removing the package does not erase your saves, playlists, downloaded cores, BIOS files, or controller mappings. Copy anything you want to keep before deleting the data directories.
Delete the native configuration directory if you used the DNF package and no longer need the data:
rm -rf ~/.config/retroarch/
Delete the Flatpak data directory if you used the Flathub build and no longer need the data:
rm -rf ~/.var/app/org.libretro.RetroArch/
Troubleshoot RetroArch on Fedora
Most RetroArch problems on Fedora come from package rebuild timing, the Fedora DNF build’s disabled network updater, controller detection, or a video driver that does not agree with your GPU.
Fix RetroArch DNF Dependency Errors
If DNF reports conflicting requests or missing libraries for retroarch soon after a Fedora release, refresh metadata and try the install again:
sudo dnf clean metadata
sudo dnf install retroarch
When that still fails, a mirror or package rebuild may be lagging behind the Fedora release. Check Fedora Bugzilla for RetroArch for open reports, then use the Flathub build while the DNF package catches up.
Restore the Missing Core Downloader in the DNF Build
If the Fedora DNF build does not show Core Downloader, enable RetroArch network access for your user profile:
retroarch-enable-network-access.sh
Restart RetroArch, then check Main Menu > Load Core > Download a Core. If you later want Fedora’s default packaged-core behavior back, close RetroArch and remove ~/.config/retroarch/ after saving any data you need.
Fix Flatpak Core Download or Permission Problems
The Flathub build normally includes network and device permissions. Check the current permission record if core downloads or controller access stop working:
flatpak info --show-permissions org.libretro.RetroArch | grep -E 'shared=.*network|devices=all'
shared=ipc;network; devices=all;
If those lines are missing because old overrides changed the app sandbox, reset user overrides and restart RetroArch:
flatpak override --user --reset org.libretro.RetroArch
Fix RetroArch Controller Detection
Check whether Fedora sees the controller before changing RetroArch settings:
grep -A 4 -Ei 'gamepad|controller|joystick' /proc/bus/input/devices
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 Fedora detects the controller but RetroArch does not, go to Settings > Input > Port 1 Controls and bind it manually. For the Flatpak build, verify the devices=all permission before adding custom overrides.
Fix RetroArch Black Screen Issues
A black screen after loading content usually points to the active video driver. Switch to glcore or vulkan in Settings > Drivers > Video, save the configuration, and restart RetroArch.
If you are using an NVIDIA card and still do not get usable Vulkan output, follow the guide to install NVIDIA drivers on Fedora before you test RetroArch again.
Conclusion
RetroArch is ready on Fedora through either DNF’s packaged frontend and free cores or Flathub’s separate app/runtime path. After your first core works, Steam on Fedora and Wine on Fedora pair well with RetroArch for a broader Linux gaming setup.


Formatting tips for your comment
You can use basic HTML to format your comment. Useful tags currently allowed in published comments:
<code>command</code>command<strong>bold</strong><em>italic</em><a href="https://example.com">link</a><blockquote>quote</blockquote>