STARESBACK.GG
LV 1
0 XP

/// FIELD NOTES FROM A SELF-AWARE GAME SITE

RetroArch Cores 2026: 200+ Emulators in 12 Steps

BY·EDITED BYSAM P.·2026-07-09·13 MIN READ·5,045 WORDS·EDITORIAL PROCESS
RetroArch Cores 2026: 200+ Emulators in 12 Steps — STARESBACK.GG blog

RetroArch does not emulate anything. This tends to surprise people who have already spent a weekend fighting with it. The menus, the shaders, the netplay, the rewind, the input remapping, the CRT filters that make your LCD ache — all of that is the frontend. The actual work of pretending to be a Super Nintendo is done by a core: a separate emulator, compiled as a loadable library, handed to RetroArch at runtime through an interface called libretro. There are, as of the middle of 2026, more than two hundred of them.

That number is the source of most of the confusion. A new user opens the Core Downloader, sees a wall of two hundred-odd entries, and does one of two wrong things: downloads every single one, or freezes and downloads nothing. This guide is the corrective. Twelve numbered steps to install, update, and configure cores in RetroArch v1.22.2 (November 2025) across Windows, Linux, macOS, and the handhelds; the one core that is actually correct for each system; and the specific, repeatable ways the whole thing falls over. There is no promotional tone here because there is nothing to sell — the entire stack is free and open source, and the only currency involved is your afternoon.

What a Core Actually Is

Before you download anything, understand the shape of the thing. Most core problems are not bugs; they are category errors — a user treating a core like an app, or the frontend like an emulator. Ten minutes of theory here will save you an hour in the troubleshooting table later.

Cores versus the frontend

RetroArch is a libretro frontend. libretro is a small, stable API — an application binary interface, really — that defines how a frontend talks to an emulator: give me a frame of video, give me an audio buffer, here is the controller state, here is the content to load. Any emulator that implements that interface can be compiled into a core: a .dll on Windows, a .so on Linux and Android, a .dylib on macOS. RetroArch loads that library dynamically, feeds it your ROM, and paints the result. Swap the core and the same UI now drives a different machine. That is the entire trick, and it is why one program can run a NES cartridge, a PlayStation 2 disc, and a copy of DOOM without knowing the first thing about any of them.

The practical consequence: a core has no menu of its own, no updater of its own, and no opinion about where your games live. It is a black box that turns input plus content into audio and video. When something breaks, the first diagnostic question is always which layer — frontend or core — and the answer is usually printed in the log if you bother to read it.

Why there are more than 200 of them

The official RetroArch cores page lists over 200 cores as of June 2026, but that count is inflated in an honest way: not all of them are emulators. A good chunk are game engines — reimplementations that need your original data files, like the DOOM engine (PrBoom), Cave Story (NXEngine), or the OpenLara Tomb Raider port. A few are multimedia programs: the FFmpeg core plays video, and there is a Lua game framework (Lutro) in there too. So "200+ cores" does not mean 200 consoles. It means 200 loadable modules, of which perhaps thirty matter to anyone building a normal retro library.

This is also why the accuracy conversation gets heated: for a single system you often have several cores, ranging from a fast, forgiving one to a slow, obsessive one. SNES alone gives you Snes9x, bsnes, and the bsnes-mercury variants. Picking between them is the actual skill, and it is what the middle of this guide is about.

The 2026 baseline: v1.22.2, not "January 2026"

Get your version facts straight, because a lot of secondhand guides do not. The current stable build in mid-2026 is v1.22.2, released 20 November 2025. The 1.22.x line (14 November 2025) unified the main menu across menu drivers and continued the Vulkan and web-player work. The earlier v1.21.0 landed on 1 May 2025 — not January 2026, whatever a scraped listicle told you — and it is the release that added the PipeWire and FFmpeg camera drivers and enabled Vulkan emulated mailbox presentation. If a guide dates 1.21.0 to 2026, treat every other number in it as suspect. You can confirm the timeline yourself against the RetroArch releases on GitHub.

None of this, incidentally, makes emulation "solved." Software cores approximate hardware; they do not become it. If you want cycle-exact behaviour with no compromise, that is the argument for FPGA hardware like the MiSTer Multisystem 2, which is genuinely cheaper than the chip it is built around. Cores are the pragmatic path: cheaper, more flexible, and in the case of the best NES and SNES cores, close enough that the difference is a lab measurement rather than a gameplay one.

Prerequisites: Versions, Hardware, ROMs

Three things must be true before step one: you are on a modern build, your hardware can run the cores you want, and you have legally obtained content plus any BIOS the core demands. Skip any of these and you will be back here inside twenty minutes.

Software versions and platform builds

Use RetroArch v1.22.2 or newer. Do not use a random three-year-old fork bundled inside some all-in-one "retro suite"; core info files and the buildbot move on, and an old frontend will happily download cores it can no longer label or load. Get RetroArch from the correct channel for your platform:

Hardware reality check

Cores are not created equal, and the gap between the lightest and heaviest is enormous — from "runs on a potato" to "wants a discrete GPU and a Vulkan driver." The rough tiers:

System classTypical coreRough requirement
8-bit (NES, SMS, GB/GBC)Mesen, Gambatte, mGBAAnything since roughly 2010
16-bit (SNES, Genesis)Snes9x, Genesis Plus GXModest CPU; bsnes accuracy wants a fast core
SNES, maximum accuracybsnes (accuracy profile)~4 GHz-class single-thread, per XDA
PlayStationBeetle PSX HW / PCSX ReARMed / SwanStationHW wants a real GPU; ReARMed for ARM handhelds
Nintendo 64Mupen64Plus-Next / ParaLLEl-N64Mid-range and temperamental
DreamcastFlycastSteam Deck-class handles it comfortably
PlayStation 2LRPS2 (paraLLEl-GS)Modern discrete GPU + Vulkan driver
ArcadeFinalBurn Neo / MAMEVaries wildly by romset era

The lesson buried in that table: match the core to the metal. On a lower-end ARM handheld — the kind of device weighed up in our Retroid Pocket 5 versus 6 breakdown, where the extra 70% CPU costs 45% more — you run PCSX ReARMed, not Beetle PSX HW, and Snes9x, not bsnes accuracy. On a Steam Deck, which our Switch 2 comparison found wins nine times out of ten on the emulation front, you can afford Flycast at high internal resolution and even take a run at LRPS2. Choosing the wrong tier for your device is the single most common self-inflicted wound in this hobby.

What you bring: ROMs, BIOS, and the law

Cores ship no games and, mostly, no BIOS. You supply both. ROMs are your business and your legal exposure; the defensible position — the one The Machine will state plainly and then stop nagging about — is that you dump your own cartridges and discs. The core will not judge you. A rights holder might. Curation matters more than volume: a tight, verified set beats a bloated dump, which is the entire argument of our Miyoo Mini Plus game-list piece and its 6,041-ROM aggregation.

BIOS files are separate. Several cores refuse to load content without them — PlayStation (SCPH images), Sega CD, Dreamcast, and others. They go in RetroArch's system directory, and the md5 must match what the core expects or you will get a silent failure. A sane layout:

RetroArch/
  system/
    scph5501.bin        # PS1 (NTSC-U) - match md5 to libretro docs
    scph7502.bin        # PS1 (PAL)
    bios_CD_U.bin       # Sega CD (US)
    dc/
      dc_boot.bin       # Dreamcast boot ROM
      dc_flash.bin      # Dreamcast flash

# Verify each md5 against the per-core BIOS list in the libretro docs
# before you blame the core for "failed to load content".

Steps 1–3: Install and Update RetroArch

The frontend first. A current frontend is a precondition for current cores, because the buildbot compiles cores against a moving libretro API and an old app can be left holding libraries it cannot initialise.

Step 1 — Install the correct build

Rationale: where you get RetroArch determines how you update it and which cores are even available. The Steam build, the standalone build, and the distro/Flatpak build are subtly different animals, and mixing update mechanisms across them is how people end up with two half-broken installs. Pick one channel per machine and commit. On Windows use the installer or winget; on Linux and the Steam Deck use the Flathub Flatpak; on macOS use the Homebrew cask. Do not run RetroArch out of a temp folder or a synced cloud directory — file locking and path resolution will bite you.

Step 2 — Update the app through your package manager

Rationale: the in-app Online Updater refreshes cores, not the RetroArch binary. To move from, say, 1.21.0 to 1.22.2 you update the app itself, using the mechanism that matches how you installed it. These are the current, correct commands:

# Windows (winget)
winget upgrade Libretro.RetroArch

# Linux and Steam Deck (Flatpak)
flatpak update org.libretro.RetroArch

# macOS (Homebrew cask)
brew upgrade --cask retroarch

If you installed from the Microsoft Store, Steam, or a distro's native package, update through that instead — do not layer winget or brew on top of a Steam install.

Step 3 — Verify the version

Rationale: never assume an update took. Open Settings → Information → System Information and read the version line. This is also where you confirm your video driver, which matters later for Vulkan-only cores. Expected output looks like this:

Settings > Information > System Information

RetroArch Version : 1.22.2
Git Version       : (commit hash)
Build Date        : Nov 20 2025
Current Video Driver : vulkan
Frontend Identifier  : (your platform)

If the version still reads 1.21.0 after an update, the update did not apply — close RetroArch fully (check the tray/background process) and run the command again.

Steps 4–6: Core Info Files and the Downloader

Here is where most guides — including the scraped ones citing a nonexistent "setup guide" on the shattered.io domain, which is actually the home of the 2017 SHA-1 collision demo and has nothing to do with RetroArch — get the ordering wrong. Core info files come before cores. Full stop.

Step 4 — Update Core Info Files first

Rationale: a core info file (*_libretro.info) is the metadata that tells RetroArch a core's display name, which systems it handles, what file extensions and BIOS it needs, and whether it even shows up in the Core Downloader. Without current info files, the downloader is empty or mislabelled and freshly downloaded cores appear as cryptic filenames with no system association. Go to Online Updater → Update Core Info Files and let it finish. This is the genuine, long-standing first move — it is in the official libretro docs on downloading cores, not folklore. Expected result: a brief progress bar, then a silent return to the menu. That silence is success.

Step 5 — Open the Core Downloader and read the list

Rationale: now that info files are current, Online Updater → Core Downloader shows the real, labelled list — over 200 entries, each named by system and core ("Nintendo - NES / Famicom (Mesen)"). Do not scroll it like a shopping cart. Read it like a menu where you will order four dishes. Downloaded cores land in your cores directory as libraries:

RetroArch/cores/
  mesen_libretro.dll
  snes9x_libretro.dll
  genesis_plus_gx_libretro.dll
  flycast_libretro.dll
  fbneo_libretro.dll
  # ...only what you selected, not all 200

Step 6 — Learn Update Installed Cores (the automation)

Rationale: cores are built nightly by the libretro buildbot, so they drift ahead of whatever you downloaded. Online Updater → Update Installed Cores is the one-click refresh: it pulls the latest build of every core you already have and skips the ones you do not. This is the "core update automation" people mean — it is not new to any single version, but it is the correct way to stay current without re-picking from the 200-entry list every week. Run it monthly, or after any frontend update, so your cores match the API the new binary expects.

Steps 7–9: Download the Cores That Matter

Now the actual selection. Three steps, grouped by vendor, then a fourth instruction that is really a warning: stop.

Step 7 — The Nintendo set

Rationale: these cover the bulk of most libraries and are the ones where accuracy differences are most audible and visible. Download, at minimum:

Step 8 — Sega, Sony, and arcade

Rationale: one Sega core covers almost everything, and the PlayStation choice depends entirely on your hardware tier from the prerequisites.

Step 9 — Do not download all 200

Rationale: grabbing every core is pointless clutter. It bloats your cores directory, slows the core list, and buries the four cores you use under a hundred you will never touch — homebrew engines, dead forks, platform ports for machines you do not own. There is no performance or convenience benefit to hoarding libraries; a core does nothing until you load it. Pick per system, the way you would curate a handheld's ROM set rather than dumping every file you can find. If you later need one more, the Core Downloader is thirty seconds away. Prune, do not accumulate.

The Right Core Per System

This is the reference the rest of the guide orbits. For each major system there is a correct default and a reason. Where a secondhand source has fed you a mangled developer name, it is corrected here — getting the lore right is not pedantry, it is how you tell a real recommendation from a scraped one.

SystemRecommended coreDeveloper / lineageNote
NES / FamicomMesenSour (M. Bibaud)Cycle-accurate PPU
SNESSnes9x / bsnesSnes9x team / Near (byuu)bsnes accuracy wants ~4 GHz
Sega 8/16-bit + CDGenesis Plus GXEke-Eke, on Charles MacDonald's Genesis PlusWidescreen via wide build
PlayStationBeetle PSX HWMednafen lineageLighter: PCSX ReARMed, SwanStation
DreamcastFlycastflyinghead, forked from reicastGreat on Steam Deck
ArcadeFinalBurn NeoFBNeo teamLate-1970s boards onward
PlayStation 2LRPS2PCSX2 fork; paraLLEl-GS by ThemaisterVulkan LLE renderer
Nintendo 3DS(none supported)Citra — deprecatedDropped after 2024 legal action

NES and SNES: accuracy at two price points

For NES, Mesen is the answer and has been for years. Developed by Sour (M. Bibaud, of the SourMesen repositories) — not the fictitious "Alexey Smirnov" that some 2025 listicles invented — it emulates the NES picture processing unit with near cycle-perfect timing, which is why it wins the edge cases that trip lighter cores: mid-scanline effects, precise sprite-zero hits, the demos that exist specifically to break emulators. It is documented on the libretro Mesen page. It is not heavy; there is no reason to run anything else on NES.

SNES splits by budget. Snes9x is the sane default: fast, accurate enough for essentially every commercial game, happy on modest hardware. bsnes — Near's engine, formerly higan — is the accuracy monk, and its top profile is genuinely demanding; XDA's 2025 analysis pegs the comfortable requirement at roughly a 4 GHz-class core for the accuracy build. On a desktop, fine. On a handheld, that is Snes9x territory and you should not pretend otherwise.

Sega, PlayStation, and arcade

Genesis Plus GX is one of the great single-core bargains: Master System, Game Gear, Mega Drive/Genesis, Sega CD, and SG-1000 all in one library, developed by Eke-Eke on the bones of Charles MacDonald's original Genesis Plus — not "Etah," which is a scraper's garble of the handle. A separate wide build adds the widescreen hacks. Full accuracy, full compatibility, documented on the libretro Genesis Plus GX page. There is no serious competitor for 8/16-bit Sega.

PlayStation is the one genuine fork in the road. Beetle PSX HW is the fidelity option — internal upscaling, PGXP geometry correction, texture work — and it is correspondingly heavy; it wants a real GPU. Its lighter cousins, PCSX ReARMed and SwanStation, are tuned for lower-end and ARM hardware and are the correct pick on most handhelds. Arcade goes to FinalBurn Neo, which covers boards from the late 1970s onward and is the fighting-game community's default; reach for MAME only when FBNeo lacks a romset you need.

Dreamcast, N64, PS2, and the deprecated

Flycast is the Dreamcast recommendation, developed by flyinghead as a fork of the now-dormant reicast — not "TheFly," another scraped mangling. It also handles Naomi and Atomiswave, and it runs well on Steam Deck-class hardware. N64 remains the awkward child: Mupen64Plus-Next is the default but saw stability regressions reported in early 2025 and stays a moving target, so keep ParaLLEl-N64 installed as the low-level fallback and run Update Installed Cores often.

PS2 is the frontier. LRPS2 is a modern PCSX2 fork built for libretro, and its headline feature is paraLLEl-GS, a brand-new graphics-synthesizer renderer written entirely as a Vulkan compute program by Themaister (Hans-Kristian Arntzen) — a low-level-emulation approach that chases hardware-accurate output using the GPU, announced on the libretro LRPS2 blog post. It requires the video driver set to Vulkan; on OpenGL it simply will not appear. Finally, the obituary: the Citra 3DS core is deprecated. Upstream Citra shut down after Nintendo's 2024 legal action, the libretro team flagged the core for removal, and by 2026 it is unmaintained and absent from the Core Downloader on most platforms. Do not build a 3DS plan around it.

Steps 10–12: Load, Override, Automate

Cores installed, correct ones chosen. Now make them play, and make your settings stick per core instead of trampling every other system.

Step 10 — Load a core and content

Rationale: RetroArch separates "which emulator" from "which game," so you load them in that order: Load Core, pick the core, then Load Content, pick the ROM. Watching the log the first time is worth it — it tells you the core initialised, the API matched, and the content mounted. Expected log excerpt:

[INFO] Loading core: "Nintendo - NES / Famicom (Mesen)"
[INFO] Version of libretro API: 1
[INFO] Compiled against API: 1
[INFO] Content loaded: Super Mario Bros. (World).nes
[INFO] Using core-provided audio rate: 48000 Hz
[INFO] Core loaded successfully.

If "Content loaded" never appears and you get "failed to load content" with no detail, ninety percent of the time it is a missing or wrong-md5 BIOS — go back to prerequisites.

Step 11 — Save per-core and per-game overrides

Rationale: the cardinal config sin is editing the global configuration to fix one core, then discovering you have broken three others. RetroArch's override system exists precisely to stop this. Set your options while a game runs — video driver, shader, aspect, core-specific toggles — then Quick Menu → Overrides → Save Core Overrides (applies to every game on that core) or Save Game Overrides (that one title only). These write a scoped .cfg into a config/<Core Name>/ folder that loads on top of the global config. An override for the heavy PlayStation core might read:

# config/Beetle PSX HW/Beetle PSX HW.cfg
# (written by Save Core Overrides - core option keys are
#  generated automatically; edit via Quick Menu > Options)

video_driver = "vulkan"
video_shader_enable = "true"
aspect_ratio_index = "22"
# core options such as internal resolution and PGXP
# are stored per-core and only override the global cfg

Step 12 — Scan your ROMs into playlists

Rationale: once cores are chosen, you want content to remember which core it uses. Import Content → Scan Directory points RetroArch at your ROM folder; it matches files against a database and builds per-system playlists. Set a default core per playlist (playlist settings → Set Default Core) and launching a game skips the "Load Core" step entirely — the playlist already knows. This is the difference between a pile of cores and an actual library.

Five Pitfalls That Eat Your Afternoon

Every one of these is common, every one is avoidable, and every one has cost someone an evening. They are grouped by where in the process they strike.

Setup-stage pitfalls

  1. Downloading cores before updating info files. The Core Downloader looks empty or shows nameless entries, or new cores load as gibberish filenames. Fix: run Update Core Info Files first, every time, then the downloader.
  2. Missing or wrong-md5 BIOS. PlayStation, Sega CD, and Dreamcast cores fail to load content, often silently. Fix: place the exact BIOS in the system directory and verify its md5 against the per-core list in the libretro docs — a renamed file with the wrong hash still fails.

Core-choice pitfalls

  1. The wrong core for the hardware. bsnes accuracy stutters on a handheld; Beetle PSX HW crawls on an integrated GPU; paraLLEl-GS never appears because the driver is OpenGL. Fix: Snes9x instead of bsnes on weak CPUs, PCSX ReARMed or SwanStation instead of Beetle PSX HW on ARM, and set the video driver to Vulkan before expecting Vulkan-only renderers.
  2. Chasing deprecated cores. Hunting for a working Citra 3DS core in 2026 is a dead end; it was dropped after Nintendo's 2024 action. Fix: accept the deprecation and use a maintained standalone if you genuinely need 3DS — do not expect RetroArch to carry it.

Config-stage pitfalls

  1. Editing the global config for a single core. You fix PS1 and break SNES because the change was global. Fix: use Save Core Overrides / Save Game Overrides so the change is scoped, and keep the global config minimal.
  2. Hoarding all 200 cores. A cluttered core list, slow menus, and the four cores you use buried under a hundred you do not. Fix: delete the libraries you never load; the Core Downloader will hand any of them back in seconds.

Troubleshooting Table

When a specific symptom appears, work the table before you work the forums. Read the log first (Settings → Logging, then reproduce) — the answer is usually already printed there.

Load and initialisation failures

These are the errors that stop you before a frame renders: empty downloaders, missing content, black screens. Almost all trace back to info files, BIOS, or driver mismatch.

Performance, audio, and video sync

These appear after the game boots — stutter, crackle, lag, glitches. They are usually the wrong core for the hardware or a latency setting fighting your display.

SymptomLikely causeFix
Core Downloader is empty or unlabelledCore info files not updatedOnline Updater → Update Core Info Files, then reopen
"Failed to load content," no detailMissing or wrong-md5 BIOS / regionAdd correct BIOS to system; verify md5 against docs
Core loads, then black screenVideo driver mismatch (gl vs vulkan)Switch video driver, restart RetroArch
paraLLEl-GS renderer greyed outVideo driver is not VulkanSettings → Drivers → Video = vulkan, restart
SNES stutter, low FPSbsnes accuracy on a weak CPUSwitch to Snes9x
PS1 slowdownBeetle PSX HW on weak/integrated GPUUse PCSX ReARMed or SwanStation
N64 crashes or glitches earlyMupen64Plus-Next regressionTry ParaLLEl-N64; Update Installed Cores
Audio crackle or popsAudio latency too low / driverRaise audio latency; try the PipeWire driver (1.21+)
Noticeable input lagNo runahead; vsync stackingEnable runahead 1 frame (see advanced)
3DS core missing from listCitra deprecated and removedNo supported RetroArch path; use a standalone
Cores vanish after app updateAPI bump / core directory movedOnline Updater → Update Installed Cores
Engine core says "requires content"Game-engine core needs data filesSupply the original data (e.g. a DOOM WAD)
Overrides ignoredSaved to the wrong scopeUse Save Core/Game Overrides; check the config dir

Advanced Tips

Once the basics hold, these are the settings that separate a working setup from a good one: latency reduction, per-core shader presets, and manual core installs for platforms the buildbot skips.

Runahead and latency

Runahead is RetroArch's best trick: it runs the core one or more frames into the future, discards the visible frame, and re-simulates from your input, effectively removing the input latency the original hardware never had to buffer. One frame is usually plenty and often makes emulated games feel more responsive than the real console. It costs CPU — the second-instance mode roughly doubles core work — so it is a desktop and Steam Deck luxury more than a handheld one. Set it per core via Quick Menu → Latency → Run-Ahead, which writes:

run_ahead_enabled = "true"
run_ahead_frames = "1"
run_ahead_secondary_instance = "true"
# Second Instance is safer for save states than single-instance;
# raise frames only if a game still feels laggy, and watch your CPU.

Shaders and per-core presets

Shaders are where the CRT nostalgia lives, and they belong in overrides, not the global config. Load a preset (Quick Menu → Shaders), tune it, then Save → Save Core Preset so a scanline mask follows your 2D systems without smearing itself across a PS2 game that never touched a CRT mask. A common, sane split: a CRT-Royale or Guest preset on 8/16-bit cores, and nothing (or a mild sharp-bilinear) on 3D cores where internal upscaling is already doing the heavy lifting.

Manual and precompiled cores

Not every platform is served by the in-app downloader. LG's WebOS TVs (armv7) are the classic example: the community webosbrew/retroarch-cores repository ships around 170 precompiled cores, rebuilt in December 2025, that you sideload after installing the Homebrew Channel and the WebOS RetroArch build. The pattern generalises — drop a *_libretro.so into the cores directory and RetroArch will pick it up on next launch:

# LG webOS TV example (armv7)
# Repo: github.com/webosbrew/retroarch-cores  (~170 cores, rebuilt Dec 2025)
# After Homebrew Channel + the webOS RetroArch build, copy the
# precompiled libraries into the cores directory:

/media/internal/retroarch/cores/mesen_libretro.so
/media/internal/retroarch/cores/genesis_plus_gx_libretro.so
# then run Update Core Info Files so they are labelled correctly.

The same libretro cores also power other frontends — this is why a RetroPie box on a Raspberry Pi 5 runs the identical Genesis Plus GX and Snes9x builds. The core is portable; only the wrapper changes.

A Complete Working Configuration

To close, a config that ties the whole guide together: directory layout, sensible drivers, and the override discipline that keeps one system's settings from bleeding into another. Treat the global config as minimal and boring; put the interesting choices in per-core overrides.

Global retroarch.cfg essentials

These are the lines worth pinning globally. The :/ token resolves relative to the RetroArch base directory and works cross-platform, so the same config travels between machines:

# --- retroarch.cfg (global essentials) ---

# Directories (relative to the RetroArch base dir)
libretro_directory   = ":/cores"
core_info_directory  = ":/info"
system_directory     = ":/system"
savefile_directory   = ":/saves"
savestate_directory  = ":/states"
video_shader_dir     = ":/shaders"

# Drivers - Vulkan is required for paraLLEl-GS (LRPS2)
video_driver = "vulkan"
audio_driver = "pipewire"   # or "wasapi" on Windows, "coreaudio" on macOS

# Keep the global config quiet; scope the rest per core
video_vsync = "true"
core_updater_auto_extract_archive = "true"

A per-core override in practice

And the scoped override that lives beside it — this one turns the heavy PlayStation core up on a capable machine without touching any other system:

# --- config/Beetle PSX HW/Beetle PSX HW.cfg ---
# Written by Quick Menu > Overrides > Save Core Overrides.
# Loads on top of the global cfg only when this core runs.

video_driver = "vulkan"
video_shader_enable = "false"     # 3D core; skip CRT masks
aspect_ratio_index  = "22"        # core-provided aspect

# Core-specific options (internal resolution, PGXP, etc.)
# are stored automatically and never leak into the global cfg.
run_ahead_enabled = "true"
run_ahead_frames  = "1"

Final checklist

Before you call it done, confirm the following. If every line is true, you have a maintainable setup rather than a fragile one:

That is the whole discipline. Two hundred cores exist; you need a handful; the frontend is not the emulator; and the info files come first. Everything else — the shaders, the runahead, the arguments about bsnes versus Snes9x — is decoration on a structure that, built in this order, simply works. For the deeper per-core reference, keep the libretro documentation open in a tab; it is the one source that does not scramble the version numbers.

Questions the search bar asks me

How many RetroArch cores are there in 2026?
Over 200, according to the official RetroArch cores page as of June 2026. That count includes not just emulators but game engines (PrBoom, NXEngine) and multimedia programs (FFmpeg), so it does not mean 200 consoles — perhaps thirty cores matter for a normal library.
What is the current RetroArch version?
The current stable build is v1.22.2, released 20 November 2025. The v1.21.0 release actually landed on 1 May 2025 (it added the PipeWire and FFmpeg drivers and Vulkan mailbox emulation), so any guide dating 1.21.0 to January 2026 has its timeline wrong.
Which core is best for NES and SNES?
For NES, Mesen — developed by Sour (M. Bibaud) — is the most accurate, matching the PPU with near cycle-perfect timing. For SNES, Snes9x is the fast default; bsnes offers higher accuracy but its top profile wants a roughly 4 GHz-class CPU per XDA's 2025 analysis.
Can I still get the Citra 3DS core?
No, not in any maintained form. Upstream Citra shut down after Nintendo's 2024 legal action, the libretro team flagged the core for removal, and by 2026 it is deprecated and absent from the Core Downloader on most platforms. Use a standalone 3DS emulator if you must.
Do I need to download all 200 cores?
No — grabbing all of them is pointless clutter that slows the menu and buries the few you use. Download only the cores for systems you own (typically four to a dozen), and always run Online Updater then Update Core Info Files before downloading so RetroArch labels them correctly.
Nina Velasquez — Homebrew Dev Correspondent
Nina Velasquez
HOMEBREW DEV CORRESPONDENT

Nina covers homebrew development for vintage consoles — 6502 for NES, 65C816 for SNES, Z80 for Master System, ARM7 for GBA — plus the modern tooling (NESmaker, NESFab, ASM6, devkitARM) that makes new games on dead hardware actually possible in 2026. Every post under this byline is reviewed pre-publish by Sam P., Editor & Operator — corrections to info@instalinkoteam.com. Published 2026-07-09 · Last updated 2026-07-09. Full bios on the author page.

MORE FIELD NOTES

Miyoo Mini Plus Game List 2026: 6,041 ROMs, 7.5/1010 MIN READ · BY CASEY ROURKERetroArch Cores 2026: Install 200+ in 12 Steps11 MIN READ · BY NINA VELASQUEZAnalogue 3D Firmware 1.3.0 Adds Memories in 202611 MIN READ · BY THE MACHINERetroPie PC 2026: 64-Bit Still Beta, Image Still Free8 MIN READ · BY BEN ARONOFFRetroid Pocket 6 Review 2026: $244, 120Hz, 8/109 MIN READ · BY NINA VELASQUEZRetroid Pocket 5 vs 6 (2026): 70% CPU for $45 More10 MIN READ · BY CASEY ROURKE