RetroArch is the Swiss Army knife of emulation. One app, dozens of emulators, every retro system you care about — all with a single controller setup, universal save states, and consistent hotkeys. It runs on Windows, Mac, Linux, Android, iOS, Steam Deck, Raspberry Pi, and most retro handhelds.

It’s also the most intimidating emulator to set up for the first time.

This guide walks you through the entire process from download to playing your first game. If you’ve tried RetroArch before and bounced off the UI, give it one more shot. Once it clicks, you won’t go back.

What RetroArch Actually Is

RetroArch isn’t an emulator — it’s a frontend. Think of it as a universal player that loads different emulator engines (called cores) as plugins.

  • RetroArch = the player (handles UI, controllers, save states, shaders)
  • Cores = the emulators (each one handles a specific system)
  • Content = your ROMs/game files

You download RetroArch once, then install cores for whatever systems you want to play. The mGBA core plays GBA games. The Beetle PSX core plays PS1 games. The Gambatte core plays Game Boy games. One app, one controller config, one set of hotkeys.


Step 1: Download and Install

Go to retroarch.com and download the version for your platform.

Windows: Grab the installer (.exe) or the portable version (.7z). I recommend portable — it keeps everything in one folder you can move or back up easily.

Mac: Download the .dmg, drag to Applications.

Linux: Available through Flatpak, AppImage, PPA, or compile from source. Flatpak is the easiest.

Steam Deck: Install through Steam (free) or through EmuDeck (which sets up RetroArch and other emulators automatically).

Android: Download from the Google Play Store or F-Droid.

iOS: Available on the App Store.


Step 2: First Launch — Update Everything

On first launch, head to Main Menu > Online Updater and run these updates:

  1. Update Core Info Files — metadata about available cores
  2. Update Assets — icons, fonts, UI elements
  3. Update Controller Profiles — autoconfig files for controllers
  4. Update Databases — game databases for playlist scanning

This takes a minute or two. It populates RetroArch with all the metadata it needs to function properly.


Step 3: Download Cores

Now install the emulator cores for the systems you want to play.

Main Menu > Load Core > Download a Core

You’ll see a long alphabetical list. Here are the recommended cores for the most popular systems:

SystemRecommended CoreNotes
NESMesenHigh accuracy, modern
SNESbsnes (accuracy) or Snes9x (speed)bsnes is cycle-accurate; Snes9x is lighter
Game Boy / GBCGambatteExtremely accurate, lightweight
Game Boy AdvancemGBABest GBA core, active development
Nintendo 64Mupen64Plus-NextUse with ParaLLEl RDP for best results
Nintendo DSmelonDSBest accuracy and features
PlayStation 1Beetle PSX HW“HW” version enables resolution upscaling
PSPPPSSPPExcellent compatibility
Sega GenesisGenesis Plus GXAlso handles Master System, Game Gear
Sega DreamcastFlycastGood compatibility
ArcadeFBNeoBest for classic arcade games

Don’t overthink it. Download the ones you need. You can always add more later.


Step 4: Set Up Your Controller

RetroArch uses a virtual controller called RetroPad — a standardized layout that maps to whatever physical controller you plug in.

Most modern controllers (Xbox, PlayStation, Switch Pro) are auto-detected. Plug it in and it should work immediately.

If it doesn’t, or if you need to customize:

  1. Settings > Input > Port 1 Controls
  2. Map each button manually

Critical tip: Set a Hotkey Enable button. Go to Settings > Input > Hotkeys > Hotkey Enable and assign it (I use Select/Share). This prevents accidental triggering of RetroArch functions during gameplay. All hotkey combos will require holding this button first.

Essential Hotkeys

ActionDefault (keyboard)With controller
Open Quick MenuF1Hotkey + Start
Save StateF2Hotkey + R1
Load StateF4Hotkey + L1
Fast ForwardSpaceHotkey + R2
ScreenshotF8
QuitEscHotkey + Start (hold)

Step 5: Add BIOS Files (If Needed)

Some systems require BIOS files — firmware dumps from the original console hardware. RetroArch doesn’t include these. You need to dump them from hardware you own.

Where to put them: Settings > Directory > System/BIOS — set this to a folder, then place BIOS files there.

Which systems need BIOS?

SystemNeeded?File(s)
PS1Yesscph5501.bin (US) or region-appropriate BIOS
Sega SaturnYessaturn_bios.bin
Sega CDYesbios_CD_U.bin, bios_CD_E.bin, bios_CD_J.bin
PC Engine CDYessyscard3.pce
Neo GeoYesneogeo.zip
Nintendo DSDependsmelonDS can use built-in firmware
GBANomGBA includes HLE BIOS
NES, SNES, GB, N64, GenesisNoNot required

If a core loads but shows a black screen, missing BIOS is the first thing to check.


Step 6: Load a Game

Two ways to do this:

Option A: Direct load (quickest)

Main Menu > Load Content — browse to your ROM file and select it. RetroArch will either auto-select a core or ask you to pick one.

Option B: Scan and build playlists (better for large libraries)

Import Content > Scan Directory — point it at your ROM folder. RetroArch matches files against its database and organizes them into system-specific playlists with box art.

For scanning to work well, your ROM files should use standard naming conventions (No-Intro or Redump naming). Weirdly-named files might not be recognized.

Once your games are in playlists, you get a nice library view with thumbnails. Download thumbnails through Online Updater > Playlist Thumbnails Updater.


Step 7: Play and Customize

You’re in. Hit F1 (or your hotkey combo) during gameplay to access the Quick Menu:

  • Save/Load State — snapshot your exact position
  • Shaders — apply visual filters (CRT scanlines, LCD grids, upscaling)
  • Core Options — per-core settings (resolution scaling, accuracy options)
  • Controls — remap buttons for specific games
  • RetroAchievements — earn community achievements (free account at retroachievements.org)

If you want that retro CRT look:

  • CRT-Royale — the gold standard for CRT simulation, resource-heavy
  • CRT-Geom — lighter CRT simulation, great for most setups
  • CRT-Lottes — good middle ground

If you want clean upscaling:

  • ScaleFX — smooths pixel art without blurring
  • xBR — edge-smoothing upscaler

Apply shaders through Quick Menu > Shaders > Load Shader Preset.


Common Issues and Fixes

“Controller isn’t working”

  • Update controller autoconfig: Online Updater > Update Controller Profiles
  • On Windows, make sure your controller is using XInput (not DirectInput)
  • Manually remap in Settings > Input > Port 1 Controls

“Audio is crackling”

  • Settings > Audio > Output — increase Audio Latency to 64ms or 128ms
  • Try a different audio driver (on Windows: switch between wasapi and xaudio)
  • Make sure Audio Sync is enabled

“Black screen when loading a game”

  • Missing BIOS file — check what the core requires
  • Wrong ROM format — some cores need specific file types (.bin/.cue vs .iso vs .chd)
  • Try a different core for that system

“Everything is running too slow”

  • Switch to a lighter core (e.g., Snes9x instead of bsnes)
  • Disable shaders
  • Disable Run-Ahead and Rewind features
  • Try a different video driver (Settings > Drivers > Video — Vulkan is often fastest)

“The menu is overwhelming”

  • Switch to Ozone menu: Settings > Drivers > Menu > ozone (more familiar desktop-style layout)
  • Start simple — you only need cores, a controller, and games. Everything else is optional.

RetroArch vs. Standalone Emulators

RetroArch isn’t always the best choice. Here’s when to use each:

Use RetroArch for: NES, SNES, Game Boy, GBA, Genesis, PS1, N64, arcade — the cores for these systems are mature and match or beat standalone emulators.

Use standalone emulators for:

  • PS2 — PCSX2 standalone is significantly better
  • GameCube/Wii — Dolphin standalone has better features and updates
  • PS3 — RPCS3, standalone only
  • PS1 — DuckStation if you prefer its UI (though Beetle PSX is also excellent)
  • Switch — standalone forks only

General rule: For anything 8-bit or 16-bit, RetroArch is the way to go. For newer systems (6th gen and beyond), check whether the standalone emulator is materially better before committing to the RetroArch core.


Where to Go From Here

Once you’re comfortable with the basics:

  • RetroAchievements — Free account at retroachievements.org. Earn achievements in retro games.
  • Netplay — Online multiplayer with rollback netcode. Works surprisingly well.
  • Run-Ahead — Reduces input latency by running frames ahead. Makes platformers feel tighter.
  • Rewind — Hold a button to rewind gameplay in real-time. Great for difficult games.
  • Custom playlists — Organize favorites, curate collections by genre or era.

RetroArch has a learning curve, but once you get past the initial setup, it’s the most powerful emulation tool available. One app, every system, every feature, every platform. It’s worth the 30 minutes it takes to get comfortable.

Official site | Libretro docs | Core list


Last verified: March 2026