How to Set Up RetroArch: 12 Steps, 75 Min [2026]

RetroArch is the closest thing gaming has to a universal remote. One front end, one settings menu, and a core downloader that covers systems from the Atari 2600 through the original PlayStation, Sega Saturn, and PSP. That range is exactly what trips people up. New users open it for the first time, see a wall of unfamiliar menus, and close it five minutes later without a single game running.

This walkthrough fixes that problem. We will install RetroArch, set up directories the right way from the start, add cores, source BIOS files legally, map a controller, tune video and audio, and turn on RetroAchievements and netplay. By the end you will have an organized, working setup instead of a folder full of guesses. RetroArch’s current stable release is version 1.22.2, which shipped in November 2025 and remains the baseline build referenced throughout this guide.

Budget around 75 minutes for your first full pass through every step below. Once your directories and cores are in place, adding a new system later takes closer to five minutes. If you already run standalone emulators like Dolphin, Xemu, Xenia, or PCSX2 for GameCube and Wii, original Xbox, Xbox 360, or PS2 games, keep using them. RetroArch’s cores are strongest for pre-3D and early-3D consoles, and dedicated standalone tools generally still win on the systems that came later.

The reason RetroArch can cover so much ground from one app comes down to how it is built. RetroArch itself is only the shell: the menu, the input handling, the video and audio output. Every emulator inside it is a separate “core” built against the libretro API, an open specification that lets independent emulator projects plug into the same front end instead of each one shipping its own window, its own settings screen, and its own controller mapping. That is also why RetroArch feels different from the standalone emulators we cover elsewhere on this site. Dolphin, Xemu, Xenia, PCSX2, and DuckStation are each a single, deeply optimized emulator for one system, distributed and updated on their own schedule. RetroArch trades some of that per-system polish for one interface, one set of hotkeys, and one settings file across dozens of systems at once.

Google · Preferred Sources

Don't miss new tech stories on Google

Add Tech Insider once in the Google app and our stories appear in your news suggestions.

Add Now

Prerequisites: What You Need Before You Set Up RetroArch

Gather these five things before you open the installer. Skipping this step is the single biggest reason first-time RetroArch setups turn into an afternoon of frustration instead of a quick 75-minute job.

  • A supported operating system. Windows 10 or 11 (64-bit), a current Linux distribution, macOS on Intel or Apple Silicon, or Android. RetroArch also runs on Steam Deck and SteamOS, which we cover in Step 11.
  • Reasonable hardware. Any dual-core CPU from the last decade handles 8-bit and 16-bit cores without breaking a sweat, since a NES or SNES core needs a tiny fraction of what a modern CPU can offer. Cores for PS1, N64, PSP, and Saturn benefit from a quad-core CPU and a GPU with Vulkan or OpenGL 3.3 support, since shaders and higher internal resolutions lean on the GPU rather than the processor. If you are running RetroArch on a laptop with integrated graphics, stick to the glcore video driver and skip demanding shader stacks until you confirm the basics run smoothly first.
  • Free storage. RetroArch itself is a small install. Your BIOS files, cores, and game library are what actually eat disk space, so plan storage around your own collection rather than the app.
  • A controller. An Xbox, PlayStation, or Switch Pro controller all pair over USB or Bluetooth. Generic USB gamepads work too, though autoconfiguration is less reliable.
  • Your own legally dumped files. RetroArch is fully open-source software licensed under the GPLv3 and built by the libretro project, so running it is not in question. What you load into it matters more: only use ROM and BIOS files you have dumped yourself from games and hardware you own. Do not download them from ROM sites, and this guide will not link to any.

Here is how platform support breaks down, based on RetroArch’s official platforms page.

PlatformHow to InstallNotes
Windows 10/11 (64-bit)Installer or portable ZIP from retroarch.comVulkan and DirectX video drivers both available
macOS (Intel & Apple Silicon)DMG installer from retroarch.comRuns natively on Apple Silicon
LinuxAppImage, Flatpak via Flathub, or a distro packageFlatpak is the most common desktop path
AndroidGoogle Play or the full APK from retroarch.comPlay Store build is capped at 50 cores
iOSLimited distribution due to App Store policyAvailability shifts more than on other platforms
Steam Deck / SteamOSDiscover store (Flatpak) or added as a non-Steam game via SteamEmuDeck automates this alongside standalone emulators
Steam (Windows/Linux/macOS)Installed directly through the Steam clientSame RetroArch app distributed outside Steam

Step 1: Download and Install RetroArch for Your Platform

Start at the official RetroArch website rather than a third-party mirror. As How-To Geek puts it in its own setup walkthrough:

“Head to the RetroArch home page, then click the ‘Downloads’ tab. Here, you’ll find the latest release for your platform.”

How-To Geek, technology publication

On Windows, grab the 64-bit installer if you want Start Menu shortcuts and automatic updates, or the portable ZIP if you plan to run RetroArch from a USB drive or keep multiple versions side by side. On macOS, download the DMG and drag RetroArch into Applications. On Linux, Flatpak through Flathub is the path most desktop users take, since it handles dependencies automatically and slots into the Discover or GNOME Software app center.

Android users have a real decision to make here. The Google Play build is convenient, but its core downloader is disabled and the app supports a maximum of 50 cores, according to listings on APKMirror. If you want every available core, download the full APK from the official RetroArch site or the buildbot instead. It is worth the extra step if you plan to emulate more than a handful of systems.

Because RetroArch is the reference front end for the libretro API, maintained by the libretro team and documented on GitHub, installation itself carries no licensing cost or account requirement. Run the installer, accept the default install location unless you have a reason to change it, and move to first launch.

Step 2: First Launch, Directories, and Menu Driver

The first time you open RetroArch matters more than any other single moment in this process. Russ Crandall, who writes setup guides at Retro Game Corps, frames it this way:

“After you have installed RetroArch, launch the app for the first time. This will create your file directory structure, and you can also check to see if your controller works out of the box with the interface.”

Russ Crandall, Retro Game Corps

On desktop, RetroArch opens into the Ozone menu driver by default, a clean, icon-based interface built for mouse and controller navigation. Handheld users and anyone on lower-power hardware often switch to the lighter RGUI driver under Settings > User Interface > Appearance, since it renders faster and reads better on smaller screens.

Before you install a single core, go to Settings > Directory and set every path explicitly. Do not leave this for later. Point System/BIOS, Downloads, ROMs or Content, Screenshots, Saves, and States at folders you chose on purpose, ideally all inside one parent folder. A typical layout looks like this:

RetroArch/
├── cores/
├── system/          (BIOS files go here)
├── roms/
│   ├── nes/
│   ├── snes/
│   ├── genesis/
│   ├── gba/
│   ├── n64/
│   ├── psx/
│   └── saturn/
├── saves/
├── states/
├── screenshots/
└── playlists/

Setting this up now saves you from the most common first-week complaint: save files and BIOS files scattered across default folders you can never find again. Once directories are set, plug in your controller. RetroArch’s autoconfig usually detects it immediately and shows a confirmation prompt, which is your cue that input is already working before you have installed a single game system.

Step 3: Open the Core Downloader and Install Your First Cores

A “core” is a self-contained emulator built to run inside RetroArch’s shell. Instead of installing a separate app for every console, you install cores from one menu. How-To Geek’s guide describes the process directly:

“But don’t fire up your browser: you can install cores from inside RetroArch.”

How-To Geek, technology publication

From the Main Menu, choose Online Updater > Core Downloader. You will see a long list, and as How-To Geek notes, “cores are sorted by the systems they emulate, so download cores for all of your games.” A public core-downloader guide cited in our research puts the total at roughly 200-plus cores, though the exact number shifts slightly as cores get added or retired, so treat that as a ballpark rather than a fixed count.

You do not need all 200. Most people land on one solid core per system and stick with it. It also helps to know that more than one core often exists for the same system, built by different developers with different priorities. Some prioritize raw accuracy to the original hardware, running slower as a trade-off, while others prioritize speed and compatibility across a wider range of ROM dumps. When two cores show up for the same console, that is why, and it is worth trying both before deciding one is “better.” These are the cores that come up most often in setup guides and community recommendations:

SystemCommonly Recommended CoreBIOS Required?
NESNestopia UENo
SNESSnes9xNo
Genesis / Mega DriveGenesis Plus GXNo
Game Boy / GBAmGBANo
Nintendo 64Mupen64Plus-NextNo
PlayStation (PS1)Beetle PSX HWYes
Sega SaturnBeetle SaturnYes
PSPPPSSPPYes (firmware)
ArcadeFinalBurn Neo or MAMEVaries by ROM set

Tap each core to install it. RetroArch downloads and slots it into the cores folder you set in Step 2 automatically, no manual file placement needed.

Step 4: Source and Place BIOS Files the Right Way

Three systems in the table above need BIOS files to boot games at all: PS1, Saturn, and PSP. NES, SNES, Genesis, and N64 games run without any console firmware. This is one of the most common points of confusion for new users, since it means half your library works instantly and the other half needs one extra step first.

A BIOS file is firmware you dump from a console you own, the same way you would dump a game cartridge or disc. Downloading BIOS files from a website is both a copyright problem and a common malware vector, so this guide will not point you toward one. Once you have your own legally sourced dump, placement is simple. As Russ Crandall explains in his setup notes:

“Additionally, inside your ROMs folder, make a BIOS folder and put the BIOS files inside.”

Russ Crandall, Retro Game Corps

In practice, that means dropping the files into the System directory you configured in Step 2. File names have to match what the core expects exactly, including the region code baked into the file name. A US PS1 BIOS dump, for example, follows a naming pattern like this:

system/
├── scph5500.bin   (Japan)
├── scph5501.bin   (North America)
├── scph5502.bin   (Europe)
└── saturn_bios.bin

If a game boots to a black screen or freezes on a splash logo, mismatched BIOS naming or region is almost always the cause, more on that in the troubleshooting section below. Get this step right once and every PS1, Saturn, and PSP game you scan afterward just works.

Step 5: Scan Your Content and Build Playlists

With cores and BIOS files in place, it is time to turn a folder of files into a browsable library. From the Main Menu, go to Import Content, then choose Scan Directory and point it at your roms folder. RetroArch walks the folder, matches each file against its internal database by checksum, and assigns the correct core automatically.

Each system gets its own playlist file, saved with an .lpl extension, in the playlists folder you set earlier. These are plain JSON under the hood. A single entry looks roughly like this:

{
  "path": "/RetroArch/roms/snes/Super Metroid.sfc",
  "label": "Super Metroid",
  "core_path": "DETECT",
  "core_name": "DETECT",
  "crc32": "DETECT",
  "db_name": "Nintendo - Super Nintendo Entertainment System.lpl"
}

Setting core_path and core_name to DETECT tells RetroArch to pick whichever core you have installed for that system at launch time, which is handy if you ever swap Snes9x for a different SNES core later. Once scanning finishes, your systems appear as tiles on the main menu, each one holding a scrollable list of games with box art pulled from RetroArch’s thumbnail server the first time you’re online.

Step 6: Map a Controller and Fix RetroPad Binding Issues

RetroArch does not map your controller directly to each console’s original layout. Instead, it maps every physical pad to an internal abstraction called RetroPad, styled after a SNES controller, and each core translates RetroPad inputs to whatever the original system expected. This is what makes one controller work identically across 15 different systems, but it is also why button prompts sometimes look wrong at first glance.

Head to Settings > Input > Port 1 Controls. Most modern controllers, including Xbox, DualSense, and Switch Pro pads, get picked up by autoconfiguration the moment you plug in or pair them. If a button feels off, rebind it manually here rather than fighting the default. Keyboard players configure the same bindings under the keyboard section, and a typical manual config looks like this inside retroarch.cfg:

input_player1_a = "x"
input_player1_b = "z"
input_player1_x = "s"
input_player1_y = "a"
input_player1_start = "enter"
input_player1_select = "rshift"
input_player1_l = "q"
input_player1_r = "w"

Hold onto one detail from here on: RetroArch’s menu itself has its own hotkeys, separate from in-game controls. By default, the F1 key toggles the Quick Menu on a keyboard, which is where you will spend most of your time once games are running, saving, and loading.

Step 7: Configure Video Output, Shaders, and Aspect Ratio

Open Settings > Video and pick a driver first. Vulkan tends to give the most consistent shader performance on newer GPUs, while glcore is the safer fallback on older or integrated graphics. Windows users also have d3d11 and d3d12 available if Vulkan causes flickering on a particular setup.

Aspect ratio trips up more people than it should. Leave it on “Core Provided” unless you have a specific reason to override it, since that setting lets each core apply the aspect ratio the original hardware actually used rather than stretching everything to your monitor’s native ratio. Integer scaling, a separate toggle nearby, keeps pixel art crisp by only scaling in whole-number multiples instead of arbitrary sizes that blur fine detail.

Shaders are where RetroArch starts to feel less like an emulator and more like a CRT time machine. Open the Quick Menu while a game is running, choose Shaders, and browse the slang shader presets bundled with RetroArch. CRT-style presets such as crt-royale and crt-easymode recreate scanlines and phosphor glow, while simpler presets just smooth pixel edges. A basic shader config inside retroarch.cfg looks like this:

video_shader_enable = "true"
video_shader = "shaders_slang/crt/crt-easymode.slangp"
video_smooth = "false"
aspect_ratio_index = "22"

Save shader choices per core or per game using Quick Menu > Overrides once you find a look you like, so you are not reselecting a CRT preset every time you load Super Metroid versus Mega Man 2.

Step 8: Tune Audio Sync, Run-Ahead, and Input Latency

RetroArch’s Run-Ahead feature, found under Settings > Latency, is one of its more distinctive tools. It runs several frames of emulation ahead of what you see on screen, then rolls back and re-renders once your input arrives, which cuts the input lag baked into most emulation setups. It costs extra CPU time, so it is worth testing rather than blindly maxing out the frame count.

Audio settings live under Settings > Audio. If you hear crackling or stutter, the audio driver is usually the culprit before anything else. Windows users get better results from WASAPI than DirectSound in most cases, while Linux users generally do better on PipeWire or ALSA than plain PulseAudio. A reasonable starting configuration:

run_ahead_enabled = "true"
run_ahead_frames = "2"
audio_sync = "true"
audio_latency = "64"

When you launch a game with logging turned on (Settings > Logging > Log to File, or run retroarch from a terminal with –verbose), you will see output confirming what actually loaded. It looks roughly like this:

[INFO] [Environ]: SET_PIXEL_FORMAT: RETRO_PIXEL_FORMAT_RGB565.
[INFO] [Core]: Version of libretro API: 1
[INFO] [Overrides]: No core-specific overrides found.
[INFO] [Content]: Loading content file: "roms/snes/Super Metroid.sfc".
[INFO] [Content]: Content loaded successfully.

That confirmation line, “Content loaded successfully,” is the signal that your core, BIOS (if needed), and file path all lined up correctly. If a game hangs before that line appears, the problem sits upstream in your core or BIOS setup rather than in audio or video.

Step 9: Master Save States, Rewind, and the Quick Menu

Save states are RetroArch’s version of pausing a game mid-frame and resuming exactly where you left off, independent of whatever save system the original game shipped with. They live in the states folder you configured in Step 2, separate from in-game save files in the saves folder. Each system supports multiple save state slots, so you can keep several snapshots of the same game without overwriting one another, useful for testing a risky boss attempt without losing your main progress point. Rewind is a related but distinct feature: hold the rewind hotkey and RetroArch plays recent frames backward from a memory buffer, useful for undoing a mistimed jump without reloading a state.

The Quick Menu, opened with F1 by default, is where all of this comes together while a game is running. From there you can save or load a state, jump straight to shader and video settings, check core-specific options that only appear for that system, or quit back to the playlist without digging through nested settings menus. Spend a few minutes clicking through it once, since almost everything you will touch regularly during actual play lives in that one menu rather than the main settings screen.

Default keyboard hotkeys cover the basics without any setup:

ActionDefault Key
Toggle Quick MenuF1
Save stateF2
Load stateF4
Take screenshotF12

RetroArch also binds fast-forward, slow-motion, and state-slot switching by default. Check Settings > Input > Hotkeys to see the full list on your system and remap anything that clashes with a game’s own controls. If you plan to use RetroAchievements in hardcore mode, covered next, keep in mind that save states and rewind get disabled automatically while hardcore is active.

Step 10: Turn on RetroAchievements and Netplay

RetroAchievements adds Xbox-style achievement tracking to classic games that never shipped with any. RetroArch supports it natively. Go to Settings > Achievements, switch Achievements on, then enter your RetroAchievements account credentials and save, following the same setup pattern documented in RetroPie’s own achievements documentation. Create a free account at RetroAchievements first if you do not already have one. Toggle on hardcore mode if you want unlocks to count for leaderboards, just remember it turns off save states and rewind while active.

Netplay is RetroArch’s built-in online multiplayer layer, letting two or more people play the same emulated game together over the internet using the same core. From the Main Menu, choose Netplay, then either host a session or connect to a friend’s IP address and port. From the command line, hosting and connecting looks like this (replace the example address with whatever your friend actually shares with you):

# Hosting a session
retroarch --host -L cores/snes9x_libretro.so "Chrono Trigger.sfc"

# Connecting to a friend's session
retroarch --connect 203.0.113.10 --port 55435 -L cores/snes9x_libretro.so "Chrono Trigger.sfc"

Both sides need the same core and, ideally, the same game revision. Mismatched regions or ROM versions are the most common reason netplay fails to sync, which we cover again in troubleshooting below.

Step 11: Install RetroArch on Steam Deck and Other Handhelds

On Steam Deck, you have two separate install paths. Switch to Desktop Mode and install RetroArch as a Flatpak through the Discover store, or stay in Gaming Mode and add RetroArch as a non-Steam game through the Steam client itself. Both are legitimate routes, and which one you pick mostly comes down to whether you want RetroArch to show up as a Steam library tile from the start.

Steam Deck’s controls are already recognized as a standard gamepad, so the RetroPad mapping from Step 6 carries over automatically, no extra configuration needed. Shader performance and run-ahead settings from Steps 7 and 8 are worth revisiting on Deck specifically, since you are working with a battery-powered, thermally constrained device rather than a desktop GPU.

If manually setting directories, BIOS placement, and per-system folders sounds like more setup than you want to do on a handheld, EmuDeck is a separate companion tool worth knowing about. It automates RetroArch installation alongside several standalone emulators, complete with pre-built folder structures and Steam library shortcuts. We cover that entire process in our EmuDeck Steam Deck tutorial, and it is a genuinely different tool from a manual RetroArch install rather than a replacement for this guide.

Step 12: Back Up Your Configuration and See the Full Setup Together

Your entire setup lives in one file: retroarch.cfg, stored in RetroArch’s config directory (shown under Settings > Directory > Config if you are not sure where yours sits). Copy that file, along with your saves, states, and playlists folders, to cloud storage or an external drive once everything works. Reinstalling RetroArch after a system wipe takes minutes if you have this backup, versus hours of reconfiguring from scratch.

Keep cores current through Online Updater > Update Installed Cores every so often, since core updates fix compatibility issues and add features independent of RetroArch’s own version number. Update RetroArch itself the same way you installed it, through the platform’s app store, Flatpak, or a fresh installer download.

Pulling the directory, input, video, latency, and achievement settings from the steps above into one place, a finished retroarch.cfg for a basic multi-system setup looks something like this:

# Directories
system_directory = "/RetroArch/system"
rgui_browser_directory = "/RetroArch/roms"
savefile_directory = "/RetroArch/saves"
savestate_directory = "/RetroArch/states"
screenshot_directory = "/RetroArch/screenshots"

# Input (Player 1)
input_player1_a = "x"
input_player1_b = "z"
input_player1_start = "enter"
input_player1_select = "rshift"

# Video
video_driver = "vulkan"
aspect_ratio_index = "22"
video_shader_enable = "true"
video_shader = "shaders_slang/crt/crt-easymode.slangp"

# Latency and audio
run_ahead_enabled = "true"
run_ahead_frames = "2"
audio_sync = "true"
audio_latency = "64"

# Achievements
cheevos_enable = "true"
cheevos_hardcore_mode_enable = "false"

That single file is your complete, working RetroArch setup: directories that keep files organized, input that responds the way you expect, video that looks right for the system you are playing, latency tuned for responsiveness, and achievements tracking active. Everything else you add later, more cores, more systems, more shader presets, builds on top of this same foundation.

RetroArch vs. Standalone Emulators: When Each Makes Sense

A question that comes up constantly once people finish this setup: should everything run through RetroArch, or is it better to keep some systems on their own dedicated emulator? The honest answer depends on which console you are talking about, not on picking a side once and applying it everywhere.

For 8-bit and 16-bit systems, arcade boards, N64, and PSP, RetroArch’s cores are mature, well maintained, and rarely behind a dedicated standalone alternative in either compatibility or performance. There is little reason to run a separate NES or SNES emulator when a RetroArch core does the job inside the same interface as everything else. The picture changes once you get to sixth and seventh-generation hardware. GameCube and Wii emulation is a genuinely complex engineering problem, and Dolphin has years of focused development purpose-built around solving it, which is why we cover Dolphin as its own dedicated setup rather than folding it into a RetroArch core. The same logic applies to PCSX2 for PS2, Xemu for the original Xbox, and Xenia for Xbox 360: each targets one system with a level of depth that a shared multi-system front end has a harder time matching.

A practical middle ground many people land on: use RetroArch as the daily driver for classic and handheld-era systems, where its playlists, shaders, and unified controls genuinely make life easier, and keep standalone emulators installed separately for the newer systems where they outperform any RetroArch core. Nothing stops you from running both side by side, and most of the setup work here, directory habits, BIOS handling, controller mapping, carries over conceptually even when you switch to a different tool entirely.

5 Common RetroArch Setup Pitfalls (and How to Fix Them)

  1. Skipping directory setup on first launch. Fix it before installing a single core, not after. Retrofitting a directory structure once ROMs, saves, and states are already scattered means manually moving files and re-scanning everything.
  2. Downloading BIOS or ROM files from random websites. Beyond the legal exposure, these sites are a well-documented source of bundled malware. Dump your own files from hardware and discs you own instead.
  3. Mismatched BIOS file names or regions. A Japanese BIOS dump will not boot a US game correctly, and a misnamed file will not be recognized at all. Match the exact naming convention your core’s documentation expects.
  4. Hitting the Android 50-core cap without realizing it. If cores seem to be missing on Android and you installed from Google Play, that is the built-in ceiling talking. Switch to the full APK from the official site if you need more.
  5. Enabling every video and latency feature at once. Turning on run-ahead, shaders, and increased internal resolution simultaneously on modest hardware makes it hard to tell which single setting is actually tanking your frame rate. Change one thing at a time.

Troubleshooting RetroArch: 10 Issues and Their Fixes

Most RetroArch problems trace back to one of a handful of root causes: a driver mismatch, a missing or misnamed BIOS file, or a setting that made sense on one machine and does not translate to another. Working through the table below in order, top to bottom, resolves the overwhelming majority of setups that stall out before a single game loads correctly.

IssueLikely CauseFix
RetroArch crashes on startupOutdated or mismatched GPU driversUpdate GPU drivers, then try switching video driver (Vulkan, glcore, or d3d11)
Black screen after loading a gameIncompatible shader preset or video driverDisable shaders, switch video driver, reload content
No sound during gameplayWrong audio driver selectedTry WASAPI instead of DirectSound (Windows) or PipeWire/ALSA instead of PulseAudio (Linux)
Controller not detectedAutoconfig failed to recognize the padManually bind under Settings > Input, try a different USB port or re-pair Bluetooth
PS1 or Saturn game stuck on a splash screenMissing or misnamed BIOS fileVerify BIOS file name matches the region exactly and sits in the System directory
Cores missing from Load Core menu (Android)Google Play build’s 50-core capInstall the full APK from retroarch.com instead
Audio crackles or stuttersAudio latency set too low, or run-ahead overheadRaise audio_latency, test with run-ahead temporarily disabled
RetroAchievements not unlockingHardcore mode restrictions, or save states in useConfirm login credentials, avoid save states/rewind while hardcore mode is active
Netplay fails to connectRouter not forwarding the port, or firewall blockForward the netplay port on the host’s router, confirm both sides run the same core version
Scanned games show no thumbnails or wrong systemPlaylist matched to the wrong database, or missing thumbnail packRe-scan with the correct system folder selected, download thumbnails via Online Updater

If none of the above resolves the problem, RetroArch’s own log file is the next stop. Turn on Settings > Logging > Log to File, reproduce the issue, then read through the log for the exact line where something fails to load. That log is also the single most useful thing to paste into a community forum or Discord if you end up asking for help, since “it doesn’t work” gets a much slower response than a specific error line.

Advanced Tips for Power Users

Once the basics are running smoothly, a few deeper features separate a functional setup from one that feels genuinely well tuned.

  • Per-game overrides. Quick Menu > Overrides > Save Game Overrides locks in shader, latency, or aspect ratio settings for one specific title without touching your global config, useful for the one game that needs a different aspect ratio than everything else on the same core.
  • Shader chains. Slang shaders can be stacked in passes, combining a scanline effect with a sharpening pass or color correction rather than picking one preset and living with its exact look.
  • Built-in cheat database. Quick Menu > Cheats gives access to a searchable cheat database for supported games, toggled per-game without needing a separate cheat device or file.
  • Custom DAT files for scanning. If you maintain an unusual or region-specific ROM set, importing a custom DAT file under Import Content improves match accuracy over RetroArch’s default database.
  • Steam Input alongside RetroArch. On Steam Deck, layering a Steam Input profile on top of RetroArch’s own controls lets you remap buttons per game at the Steam level, handy for games where the RetroPad default does not match your muscle memory.
  • Core-specific advanced options. Many cores expose settings beyond RetroArch’s global menu, things like internal resolution multipliers for PS1 or N64 cores, or texture filtering modes. These live under Quick Menu > Core Options while a game from that system is loaded, separate from RetroArch’s own video settings.
  • Bezels and on-screen overlays. Settings > Onscreen Display > Overlay adds console-style bezel art around the game image or touch-based on-screen buttons, which matters a lot more on a phone or tablet than on a desktop with a physical controller.

Frequently Asked Questions

Is RetroArch legal to use?

Yes. RetroArch is open-source software licensed under the GPLv3 and maintained by the libretro project, and running emulator software is not itself illegal. Legality around what you load into it depends on using ROM and BIOS files you have personally dumped from games and hardware you own.

Is RetroArch free?

Yes, RetroArch is completely free and open source, with no paid tier, subscription, or unlockable features.

What is the difference between RetroArch and EmuDeck?

RetroArch is the emulation front end itself, the app that actually runs cores and games. EmuDeck is a separate installer and automation script built specifically for Steam Deck and similar handhelds that sets up RetroArch, several standalone emulators, and folder structures together in one pass. See our EmuDeck tutorial if you want that automated route instead of the manual setup covered here.

Do I need BIOS files for every system?

No. NES, SNES, Genesis, and N64 cores run without any console BIOS. PS1, Sega Saturn, and PSP do require BIOS or firmware files dumped from your own hardware before games will boot.

Can I play online multiplayer through RetroArch?

Yes, through RetroArch’s built-in Netplay feature, which lets you host or join a session with another RetroArch user running the same core, covered in Step 10 above.

Does RetroArch support achievements?

Yes, through native RetroAchievements integration. Enable it under Settings > Achievements and sign in with a free RetroAchievements account to start unlocking achievements in classic games that never originally had any.

Why does RetroArch look different on Steam Deck than on my PC?

The core app is identical, but menu driver, theme, and default resolution often differ between a desktop install and a Steam Deck install depending on which path (Discover Flatpak versus Steam non-Steam game) you used. Controls carry over automatically either way, since Steam Deck registers as a standard gamepad. Performance and battery life are also worth tuning separately on Deck, since a shader stack that runs perfectly on a desktop GPU can shorten battery life noticeably on a handheld running off a charge.

How do I update RetroArch and its cores?

Update cores individually through Online Updater > Update Installed Cores. Update RetroArch itself through whichever channel you originally installed from, the Windows installer, Flatpak, Google Play, or a fresh download from the official site.

Related Coverage

Elias Virtanen

Elias Virtanen

Cybersecurity Analyst

Elias Virtanen is the Cybersecurity Analyst at Tech Insider, bringing hands-on expertise from his background in penetration testing and security consulting. He previously worked as a security researcher at F-Secure in Helsinki, where he focused on threat intelligence and vulnerability disclosure. Elias covers ransomware trends, zero-trust architecture, and the evolving regulatory landscape including NIS2 and the EU Cyber Resilience Act. He holds a CISSP certification and an MSc in Information Security from Aalto University.

View all articles