How to Install RetroArch on Fedora 44

Install RetroArch on Fedora 44 via DNF or Flatpak. Download emulator cores, configure controllers, and start playing retro games.

Last updatedAuthorJoshua JamesRead time7 minGuide typeFedora

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

MethodSourceWhat You GetUpdatesBest For
DNFFedora repositoriesRetroArch plus Fedora-packaged assets, databases, filters, and several free libretro coresWith normal system upgradesUsers who want Fedora-managed packages and packaged cores
FlatpakFlathubRetroArch with the Flathub runtime stack and standard online-updater pathWith Flatpak app and runtime updatesUsers 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 sudo for 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:

  1. Select Load Content from the main menu.
  2. Browse to your game-file location, usually a directory such as ~/ROMs/ or ~/Downloads/.
  3. Choose the file. RetroArch asks you to select a core when more than one core supports that format.
  4. Press F1 while 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.

Share this guide

Help another Linux user troubleshoot faster

Share this guide with someone troubleshooting Linux systems or saving it for later.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show our tutorials more often in Top Stories and mark them as preferred in AI Mode and AI Overviews when relevant.

Add LinuxCapable as a preferred source on Google
Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffeeBuy me a coffee
Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed in published comments:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<a href="https://example.com">link</a> link
<blockquote>quote</blockquote> quote block

Got a Question or Feedback?

We read and reply to every comment - let us know how we can help or improve this guide.

Verify before posting: