Skip to content
daniel@cosenza:~/blog
RetrogamingHow-To July 6, 2026 3 min read

How to Set Up RetroArch and Install Libretro Cores

A complete walkthrough from a fresh RetroArch install to a properly configured, playable core — including the two steps most first-time setups skip.

RetroArch ships without any emulation cores built in — the frontend and the actual per-system emulation logic are separate downloads by design (see inside libretro for why). This walks through a complete setup from installation to a properly running game.

Step 1: install RetroArch

Download from the official source for your platform (retroarch.com, or your OS’s package manager):

# macOS (Homebrew)
brew install --cask retroarch

# Windows / Linux: use the installer or package from retroarch.com,
# or your distribution's package manager, e.g.:
sudo apt install retroarch      # Debian/Ubuntu

Step 2: update the core downloader’s buildbot list

Before cores can be installed, RetroArch needs its list of available cores refreshed from the buildbot:

Main Menu → Online Updater → Update Core Info Files

Skipping this step is the most common reason a freshly installed RetroArch shows an empty or outdated core list.

Step 3: download a core for the system you want to emulate

Main Menu → Online Updater → Core Downloader → [select a system,
                                                  e.g. "Nintendo -
                                                  SNES / Super
                                                  Famicom (Snes9x)"]

Multiple cores often exist for the same system, trading off accuracy against performance — Snes9x prioritizes speed and broad compatibility, while bsnes-family cores prioritize cycle accuracy at higher performance cost (see cycle-accurate emulation for what that trade-off actually means). Starting with the most popular/default option for a system is reasonable; switching cores later is just re-running this step.

Step 4: set up your content (ROM) directory

Settings → Directory → Downloads / Assets / Cores → set paths that
                        match where your legally-owned game files live
Main Menu → Load Content → [navigate to that directory]

RetroArch scans directories rather than requiring files in one fixed location, so pointing it at wherever your content already lives is enough.

Main Menu → Import Content → Manual Scan → [select your content
             directory and the matching core] → Start Scan

This creates a playlist entry per game with box art and metadata (if available) rather than needing to browse the raw file system every time, and remembers which core each game should launch with.

Step 6: configure your controller

Settings → Input → Port 1 Controls → Set All (Manual Bind)

Most common controllers are recognized automatically via RetroArch’s autoconfig database; if buttons are mapped incorrectly or the controller isn’t recognized at all, see fixing a controller that isn’t detected for a full troubleshooting path.

Step 7: launch and verify

Main Menu → Load Content → [your playlist or file] → confirms
             the core loads and runs at a stable frame rate

Check the on-screen frame-rate display (Settings → Onscreen Display → Onscreen Notifications) on first launch to confirm the core is actually running at full speed before assuming the setup is complete.

Why the core/frontend split matters here in practice

Every step above — installing the frontend once, then downloading whichever cores you actually need — is a direct, hands-on consequence of RetroArch’s core/frontend architecture: one installation, one settings menu, one controller configuration, reused identically across however many different systems’ cores you add on top of it.