Best Pokémon Emulators: 10 Steps, 80 Min [2026]

Picking an emulator for Pokémon games isn’t a single decision anymore. Nintendo’s handheld lineup spans Game Boy through Switch, and no single program plays all of it well. mGBA handles Ruby and Emerald beautifully but won’t touch Diamond and Pearl. Eden can run Scarlet and Violet on a decent gaming PC, but it’s overkill (and unstable) for FireRed. This tutorial walks through the entire stack, generation by generation, with exact version numbers, settings, and the pitfalls that trip up first-time users. By the end you’ll have a working setup for every core Pokémon generation, from Red and Blue up through Scarlet and Violet.

We cross-checked version numbers current as of mid-August 2026: mGBA 0.10.5, melonDS 1.1, Azahar 2125.1.3 (with 2126.0 in release-candidate testing), and Eden 0.2.1 on desktop with newer weekly builds available. We’ll cover install steps for Windows, a note on macOS/Linux, legal ROM sourcing, controller mapping, save states, and the performance tuning that actually matters for Scarlet and Violet on modest hardware.

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

Which Emulator for Which Pokémon Generation

Before installing anything, match the emulator to the generation you actually want to play. This is the single biggest source of confusion for newcomers — people try to load Pokémon Platinum into mGBA (a Game Boy Advance emulator) and wonder why it won’t boot. Here’s the breakdown that matters in 2026.

Pokémon GenerationGamesConsoleRecommended EmulatorCurrent Version
Gen 1-2Red, Blue, Yellow, Gold, Silver, CrystalGame Boy / Game Boy ColormGBA or SameBoymGBA 0.10.5
Gen 3Ruby, Sapphire, Emerald, FireRed, LeafGreenGame Boy AdvancemGBA0.10.5 (Mar 2025)
Gen 4Diamond, Pearl, PlatinumNintendo DSmelonDS1.1 (Nov 2025)
Gen 4 remakeHeartGold, SoulSilverNintendo DSmelonDS1.1 (Nov 2025)
Gen 5Black, White, Black 2, White 2Nintendo DSmelonDS1.1 (Nov 2025)
Gen 6X, Y, Omega Ruby, Alpha SapphireNintendo 3DSAzahar2125.1.3 (Jun 2026)
Gen 7Sun, Moon, Ultra Sun, Ultra MoonNintendo 3DSAzahar2125.1.3 (Jun 2026)
Gen 8Sword, Shield, Brilliant Diamond, Shining PearlNintendo SwitchEden0.2.1 (Jun 2026)
Gen 8 spinoffLegends: ArceusNintendo SwitchEden0.2.1 (Jun 2026)
Gen 9Scarlet, Violet, Legends: Z-ANintendo SwitchEden0.2.1 (Jun 2026)

Notice the pattern: as generations get newer, hardware demands jump sharply. A ten-year-old laptop can run Emerald at full speed with room to spare. Scarlet and Violet on Eden wants a genuinely modern gaming PC. Plan your generation choice around your hardware, not the other way around.

Emulator Comparison at a Glance: Accuracy, Speed, and Community Support

Version numbers only tell part of the story. What actually determines whether an emulator is worth your time is accuracy (does it reproduce the original hardware’s quirks correctly), active development (is it still receiving compatibility fixes), and community support (can you find help when something breaks). Here’s how the four core Pokémon emulators stack up against each other on those dimensions in 2026.

EmulatorHardware AccuracyDevelopment ActivityCommunity SizeStandout Feature
mGBACycle-accurate, considered the reference GBA implementationStable, infrequent releases but active nightly buildsLarge, mature, used by speedrunning communityBuilt-in Lua scripting and memory viewer
melonDSHigh; best-in-class DS Wi-Fi emulationActive, roughly one release every few monthsLarge, strong Discord presenceLocal multiplayer between two instances
AzaharHigh; inherits Citra’s mature 3DS coreVery active, near-daily commitsGrowing fast post-Citra migrationCross-platform save compatibility with legacy Citra
EdenImproving rapidly but younger codebase than the othersVery active, weekly buildsFast-growing since 2025 launchOnly Switch emulator on Google Play Store

The general rule of thumb: the older the target console, the more mature and battle-tested the emulator options are. mGBA and melonDS have had a decade-plus to iron out edge cases. Azahar and Eden are comparatively young projects (both effectively restarted from older codebases after 2024’s legal upheavals), so expect more frequent updates but also more occasional regressions between versions — which is exactly why this guide points you toward specific stable version numbers rather than “just grab the latest build.”

Prerequisites and System Requirements

You don’t need one machine that does everything. Most people set up two or three emulators depending on which generations they care about. Here’s what each tier actually requires.

  • For Gen 1-3 (mGBA): Windows 10/11, macOS 10.13+, or Linux. Almost any CPU from the last 15 years works. 2 GB RAM is plenty. Integrated graphics are fine.
  • For Gen 4-5 (melonDS): Windows 10/11, macOS 11+, or Linux with OpenGL 3.2 support. A dual-core CPU from the last decade and 4 GB RAM handle it comfortably.
  • For Gen 6-7 (Azahar): A CPU with strong single-thread performance matters more than core count — Intel Core i5-8400 or AMD Ryzen 5 2600 or better, a GPU supporting Vulkan or OpenGL 4.3 (GTX 1050 or RX 560 class), 8 GB RAM.
  • For Gen 8-9 (Eden): Minimum tier is Intel Core i5-4430 or AMD Ryzen 3 1200 with a dedicated GPU (GTX 1050 4GB or RX 550 4GB) and 8 GB RAM. For genuinely smooth 30-60 FPS in Scarlet and Violet, aim higher: a Ryzen 7 7800X3D or Core i9-13900K class CPU, an RTX 3060 12GB or RX 6700, and 16-32 GB RAM.
  • A legally dumped ROM/game file for each title you intend to play (see the legal section below — this is not optional).
  • A USB or Bluetooth game controller is strongly recommended for Switch-era titles; keyboard works fine for GB/GBA/DS games.
  • 7-Zip or similar to extract downloaded emulator archives.

If you’re building or buying a PC specifically for Switch emulation, our RAM installation guide and thermal paste guide cover the hardware side.

Step 1: Understand the Legal Line Before You Start

Is Emulator Software Itself Legal?

Get this straight before downloading anything, because it shapes every decision that follows. Emulator software itself is legal in the United States — writing, distributing, and running an emulator is not copyright infringement as long as the emulator doesn’t include Nintendo’s own copyrighted code. Courts have upheld this going back to the Sony v. Connectix case in 2000, and nothing in 2026 has changed that baseline.

Downloading ROMs You Don’t Own

Downloading a ROM or Switch game file for a title you don’t own is a different matter and is treated as copyright infringement under US law. There’s no abandonware exception and no “it’s an old game” carve-out. The legally defensible path — the one every emulator project tells its users to follow — is dumping your own cartridges, discs, or eShop purchases using tools designed for that purpose. EmuDeck, for instance, ships zero ROMs or BIOS files specifically to stay on the right side of this line.

The Yuzu and Ryujinx Lawsuits

The most consequential recent precedent is Nintendo v. Tropic Haze LLC — the Yuzu lawsuit filed in February 2024 in a Rhode Island federal court. Nintendo alleged DMCA anti-circumvention violations and “facilitating piracy at a colossal scale.” Yuzu’s developers settled within days: a permanent injunction, project shutdown, and a $2.4 million payment. Crucially, that case targeted the encryption-bypass and key-trafficking side of the tool, not the general legality of emulation. Ryujinx followed a similar path in late 2024 after its lead developer was contacted by Nintendo’s legal team, and its public repositories came down for good. Read the official Nintendo statement on the Yuzu settlement and the EFF’s reverse-engineering FAQ for the fuller legal picture.

How to Source ROMs Legally

Practically, this means: dump your own carts with a flashcart or dumping tool where one exists, or use your own digital purchases with legitimate decryption keys you’ve extracted from hardware you own. Third-party ROM sites remain a legal risk regardless of how old the game is.

Step 2: Set Up mGBA for Game Boy and GBA Pokémon Games

Start here if you want Ruby, Sapphire, Emerald, FireRed, or LeafGreen — or the original Red, Blue, Yellow, Gold, Silver, and Crystal, since mGBA emulates GB and GBC as well as GBA. It’s the most accurate GBA emulator available and the one speedrunners and romhackers use as a reference implementation.

Installing mGBA

  1. Go to mgba.io and download the current stable release, version 0.10.5 (released March 2025, still the latest stable build as of August 2026).
  2. Choose the correct package: the 64-bit Windows installer, the macOS .dmg, or the appropriate Linux package (Flatpak, AppImage, or your distro’s repo).
  3. Run the installer and launch mGBA. On first launch, go to Tools > Settings > BIOS and point it to a legally-dumped GBA BIOS file if you have one — mGBA runs fine without it via its HLE BIOS, but a real BIOS improves boot-screen accuracy.
  4. File > Load ROM, and select your dumped .gba file.

Controller Setup and Recommended Settings

For controller setup, go to Tools > Settings > Controllers, plug in your gamepad, and click each input slot to map it. mGBA also supports keyboard-only play out of the box (arrow keys plus X/Z for A/B by default).

# Recommended mGBA config for Pokémon Gen 1-3 (Settings > Emulation)
Frameskip: 0
Rewind: Enabled, 600 frames
Preferred video renderer: OpenGL
Interframe blending: Off (accurate colors for GBC titles)
Solar sensor override: manual, only needed for Ruby/Sapphire/LeafGreen with solar events

Fixing the Real-Time Clock for Ruby, Sapphire, and LeafGreen

One setting worth flagging specifically for Pokémon: Ruby, Sapphire, and LeafGreen use the cartridge’s real-time clock for berry growth and certain events. Go to Tools > Settings > Emulation and confirm “Use BIOS RTC” or the RTC override is enabled, otherwise your berries won’t grow and daily events won’t trigger correctly.

Step 3: Install melonDS for Nintendo DS Pokémon Titles

Diamond, Pearl, Platinum, HeartGold, SoulSilver, Black, White, Black 2, and White 2 all run on the Nintendo DS. melonDS is the current best option, ahead of the older DeSmuME, particularly for its Wi-Fi and local multiplayer emulation, which matters if you want in-game trading between two emulator instances.

Installing melonDS

  1. Download melonDS 1.1 (released November 18, 2025, current stable as of this writing) from melonds.kuribo64.net.
  2. Extract the archive to a folder — melonDS on Windows is portable and doesn’t require a full installer.
  3. Launch melonDS.exe, then go to Config > Emu Settings > DS mode, and load your DS BIOS files (bios7.bin, bios9.bin) and firmware (firmware.bin) if you have them dumped from real hardware. melonDS can run in a limited HLE-BIOS fallback mode, but a real BIOS/firmware set gives you accurate boot behavior and lets Wi-Fi features work correctly.
  4. File > Open ROM, select your dumped .nds file for the Pokémon title you want.
  5. Config > Input and Hotkeys to map a controller, or use the default keyboard layout.

Recommended melonDS Settings for Gen 4 and Gen 5

For HeartGold and SoulSilver specifically, enable the “JIT Recompiler” under Config > Emu Settings for a meaningful speed boost — these games are heavier than plain Diamond and Pearl due to their denser overworld rendering.

# melonDS settings that matter for Gen 4/5 Pokémon (Config > Emu Settings)
JIT Recompiler: Enabled
JIT block size: 32 (default is fine for most CPUs)
Renderer: OpenGL (better upscaling than software renderer)
Screen layout: Vertical or Hybrid (Hybrid shows both screens plus a large top screen)
Audio interpolation: Cosine (closest to real hardware)

Setting Up Local Wi-Fi Trading

If you plan to trade or battle over local Wi-Fi between two melonDS windows on the same PC, you’ll need the multi-instance feature — open a second melonDS window via File > New Instance rather than launching the .exe twice, since only the New Instance path shares the correct local Wi-Fi bridge.

Step 4: Install Azahar for 3DS Pokémon Games

Azahar is the actively maintained continuation of Citra’s codebase, built by former Citra contributors after the original project’s shutdown. It’s the current standard for X, Y, Omega Ruby, Alpha Sapphire, Sun, Moon, Ultra Sun, and Ultra Moon.

Installing Azahar

  1. Download from azahar-emu.org. Take the stable channel, version 2125.1.3 (released June 29, 2026) rather than the 2126.0 release-candidate line unless you specifically want to test in-progress features.
  2. Install and launch. On first run, Azahar will prompt you to configure your system files — go to Emulation > Configure > System and, if you have them, add your dumped 3DS system archives for the most accurate font rendering and eShop-adjacent features (not required to play games, but improves fidelity).
  3. File > Load File, select your dumped .3ds, .cia, or .cci ROM file.
  4. Go to Emulation > Configure > Graphics and set your resolution scaling — 3x or 4x internal resolution looks noticeably sharper than native 3DS resolution on a modern monitor without heavy performance cost.

Screen Layout for 3DS Pokémon Games

Screen layout matters more for 3DS Pokémon games than any other generation, since the 3DS relies on stereoscopic depth and a secondary touch screen for menus and the PSS (Player Search System). Under Emulation > Configure > Layout, “Large Screen” or “Side by Side” both work well; test both since preference varies by game (X/Y benefit from Large Screen for battle animations, Sun/Moon’s Rotom Dex UI reads better in Side by Side).

Recommended Azahar Graphics Settings

# Azahar graphics config for smooth Gen 6/7 Pokémon (Configure > Graphics)
API: Vulkan (falls back to OpenGL automatically if unsupported)
Internal Resolution: 3x Native (1080p-equivalent, good perf/quality balance)
Texture Filter: xBRZ (freshens up low-res 3DS textures)
Shader compilation: Async (eliminates most stutter on first load of new areas)
Spirit synchronization: Off (unless testing multiplayer)

For a full walkthrough specifically focused on Azahar’s controller mapping, save management, and Citra-to-Azahar save migration, see our dedicated Azahar setup guide.

Step 5: Install Eden for Switch-Era Pokémon Games

This is the newest and most demanding tier. After Yuzu’s March 2024 shutdown and Ryujinx’s late-2024 exit, the Switch emulation scene fragmented into several successor projects — Eden, Citron, Ryubing, and Kenji-NX among them. Eden has pulled ahead as the most actively developed and widely adopted option, notably becoming the first Switch emulator accepted onto the Google Play Store, which gave it a level of platform legitimacy none of its predecessors had.

Installing Eden

  1. Download Eden from its self-hosted site at eden-emu.dev — the project moved off GitHub Releases for distribution, so don’t rely on old GitHub links. Current stable is 0.2.1 (published June 2, 2026), with newer weekly nightly builds also available if you want bleeding-edge compatibility fixes for recently-added titles.
  2. Extract the archive. Eden on Windows runs portable, no installer needed.
  3. Launch Eden.exe. Go to File > Open Eden Folder, and place your Switch decryption keys (prod.keys, extracted from your own console via a standard homebrew dumping tool) into the keys subfolder.
  4. Go to Emulation > Configure > System > Firmware, and install Switch firmware you’ve dumped from your own console. Firmware is required for full compatibility — some titles will refuse to boot without it.
  5. File > Load File or drag-and-drop your dumped game (typically a .nsp or .xci file) onto the Eden window.

Recommended Eden Settings for Scarlet and Violet

Scarlet and Violet in particular are notoriously demanding for Switch emulators because of their open-world rendering and the game’s own performance issues even on real hardware. On community benchmark posts from earlier this year, a Ryzen 9 9900X paired with a Radeon 9070 XT and 32 GB DDR5 was used to hit a stable 30-60 FPS in Scarlet/Violet and early Legends: Z-A test builds — well above the stuttering 20-30 FPS the games often manage on actual Switch hardware. On more modest but still capable hardware (RTX 3060 12GB tier), expect 30 FPS in most areas with drops in the busiest towns.

# Eden graphics/CPU config for Scarlet/Violet and Legends Arceus (Configure > Graphics)
API: Vulkan
GPU Accuracy: Normal
Resolution: 1080p docked profile (or 1x native handheld if your GPU is mid-range)
Async shader compilation: On (critical — avoids massive stutter entering new zones)
CPU accuracy: Unsafe (faster; switch to Accurate only if you hit specific game bugs)
Multicore CPU emulation: Enabled

Performance on Sword, Shield, and Other Switch Titles

For Sword, Shield, Brilliant Diamond, and Shining Pearl — all noticeably lighter than Scarlet/Violet — the same config runs comfortably even on the “recommended” tier hardware from our requirements table above, typically hitting a locked 30 or even 60 FPS depending on your resolution profile.

If Eden’s compatibility list is missing your title or running poorly, our Eden vs. Ryubing comparison breaks down when the alternative fork is worth trying instead.

Step 6: Set Up RetroArch as a Unified Front End (Optional)

If juggling four separate emulator windows annoys you, RetroArch lets you run GB, GBC, GBA, and DS cores (Gambatte, mGBA-core, melonDS-core) inside one front end with a single, consistent UI, shader system, and save-state interface. It doesn’t currently have a stable 3DS or Switch core, so Azahar and Eden still need to run standalone for those generations.

Installing RetroArch and Cores

  1. Download RetroArch from retroarch.com — take the stable Windows/macOS/Linux build from the official downloads page.
  2. Launch it, go to Online Updater > Core Downloader, and install the “Gambatte” core (GB/GBC), “mGBA” core (GBA), and “melonDS DS” core.
  3. Go to Main Menu > Load Content, browse to your ROM, and RetroArch will auto-suggest the matching core.
  4. Settings > Input to configure a controller once — this mapping then applies across every core, which is the main convenience RetroArch offers over running each emulator separately.

RetroArch vs. Standalone Emulators

The tradeoff: standalone mGBA and melonDS builds are generally a step ahead of their RetroArch core counterparts on new features and Pokémon-specific fixes, since core updates lag behind standalone releases. Use RetroArch for convenience across a big backlog; use the standalone apps when you want the newest compatibility patches for a specific title.

Step 7: Configure Save States and Backups

Save states are the single biggest quality-of-life win emulation offers over original hardware, but they’ve also caused real heartbreak when people lose 100 hours of progress to a corrupted state file. Set this up correctly from the start.

  • Use in-game saves as your primary save, save states as a convenience layer. Save states can desync or corrupt across emulator version updates; the game’s native save file (.sav) is the stable, portable format.
  • Back up your .sav files regularly to a cloud folder (Dropbox, Google Drive) or external drive — a single folder sync catches mGBA, melonDS, and Azahar saves since they’re all just files on disk.
  • Eden and Azahar both store user saves in their own sandboxed profile folders (typically under a “user” or “nand” directory) — locate this via each emulator’s File > Open [Emulator] Folder menu option so you know exactly what to back up.
  • Don’t rely on save states across major version updates of any emulator — a jump from mGBA 0.10.x to a future 0.11 release, for instance, isn’t guaranteed to load old save states correctly. In-game saves carry forward reliably; save states don’t always.

Step 8: Map Controllers Correctly Across All Four Emulators

Controller mapping is where most support-forum questions come from. Each emulator handles it slightly differently, and getting it wrong is the fastest way to make a game feel unplayable.

EmulatorController Menu PathNotes
mGBATools > Settings > ControllersSupports per-game controller profiles; useful if you use different pads for different generations
melonDSConfig > Input and HotkeysMap the touch screen to a mouse or right analog stick separately from D-pad/buttons
AzaharEmulation > Configure > Controls3DS has a Circle Pad and a C-Stick; map both if your controller has dual sticks
EdenEmulation > Configure > ControlsSupports Switch Pro Controller natively via Bluetooth or USB, plus generic Xinput/DirectInput pads

If you own an actual Switch Pro Controller, pair it directly with Eden — it maps automatically and gives you the closest-to-native feel for Scarlet, Violet, and Legends: Arceus, including proper HD rumble on some builds.

Step 9: Troubleshoot Performance Issues by Generation

Performance problems scale up sharply as you move to newer generations. Here’s how to diagnose and fix the most common slowdowns for each tier.

  • mGBA running slow on modern hardware: almost always a video driver issue, not a CPU issue. Switch the video renderer from OpenGL to Software (or vice versa) in Settings > Display and see which runs smoother on your specific GPU.
  • melonDS stuttering during battle transitions in HeartGold/SoulSilver: enable the JIT recompiler if it’s off, and check that “Threaded rendering” is enabled under Config > Emu Settings > Video.
  • Azahar shader compilation stutter on first entering a new Pokémon Center or route: confirm Async Shader Compilation is enabled — this is the single fix for the vast majority of one-time stutters in X/Y and Sun/Moon.
  • Eden dropping below 20 FPS in Scarlet/Violet towns: lower the resolution profile first (try handheld/1x before docked/1080p), and set GPU Accuracy to Normal rather than High if it’s currently set higher.
  • Any emulator running in slow motion despite low CPU usage: check for a V-Sync or frame limiter mismatch between the emulator’s internal setting and your monitor’s refresh rate — mismatches here commonly halve perceived speed.

Step 10: Verify Everything Works With a Fresh Save

Before committing hours to a save file, run this quick check for each emulator you’ve installed: boot the game to the title screen, start a new game, get through the opening sequence (naming your character, picking a starter if applicable), save manually, close the emulator completely, and reopen the same save. This catches BIOS/firmware misconfigurations, save-path issues, and corrupted ROM dumps before you’ve invested real time — problems that are annoying to debug after 20 hours but take five minutes to catch upfront.

Common Pitfalls to Avoid

  • Loading the wrong ROM type into the wrong emulator. A .nds file will not open in mGBA, and a .3ds file will not open in melonDS. Double-check file extensions match the emulator’s target console before troubleshooting anything else.
  • Skipping the BIOS/firmware step for DS, 3DS, and Switch titles. These emulators can technically run without dumped system files via HLE fallbacks, but you’ll hit missing fonts, broken Wi-Fi features, and in some cases games that flatly refuse to boot.
  • Downloading Eden or Azahar from a random third-party mirror instead of the official site. Because both projects moved distribution off major platforms at various points for legal-risk reasons, search results are cluttered with outdated or bundled-malware mirrors. Always go directly to eden-emu.dev or azahar-emu.org.
  • Assuming save states are a substitute for in-game saves. They’re not durable across version updates — treat them as an undo button, not a backup strategy.
  • Running Scarlet/Violet expecting Sword/Shield-level performance from minimum-spec hardware. The generational jump in GPU demand between Gen 8 and Gen 9 titles is real; check the requirements table before assuming your PC “should” handle it.
  • Ignoring controller deadzone settings on the Circle Pad (Azahar) or analog sticks (Eden). Default deadzones are sometimes too tight for cheaper third-party controllers, causing character drift in menus.
  • Forgetting to update firmware after a major Eden version jump. Older dumped firmware occasionally causes compatibility regressions with the newest emulator builds; re-dump or re-verify firmware if a previously-working game suddenly won’t boot.

Expected Output: What a Working Setup Looks Like

Once configured correctly, here’s roughly what to expect from each tier on mid-range 2026 hardware (Ryzen 5 7600 / RTX 4060 class):

GenerationEmulatorExpected FPSLoad Time (title screen)
Gen 1-3mGBA 0.10.5Locked 60, uncapped fast-forward to 300+Under 1 second
Gen 4-5melonDS 1.1Locked 601-2 seconds
Gen 6-7Azahar 2125.1.330-60 (game-dependent, mostly 60)3-6 seconds
Gen 8Eden 0.2.130-6010-20 seconds
Gen 9Eden 0.2.125-40, dips in dense towns15-30 seconds

If your numbers are dramatically below these on comparable hardware, revisit the graphics API setting first (Vulkan almost always outperforms OpenGL on Azahar and Eden) before assuming your hardware is the bottleneck.

Troubleshooting Guide

Game won’t boot past a black screen (Azahar/Eden): missing or corrupted firmware/keys is the most common cause. Re-verify your dumped keys.txt or prod.keys file is current and matches your console’s firmware version.

mGBA Fixes

mGBA save file not being recognized after switching from another GBA emulator: older VBA-M save files sometimes use a different save-type header; use mGBA’s Tools > Game Overrides menu to manually set the correct save type (Flash 128K is correct for most Pokémon GBA titles).

melonDS Fixes

Audio crackling or popping in melonDS: switch the audio backend from the default to SDL2 or WASAPI under Config > Audio Settings, and increase the audio buffer size slightly.

DS local Wi-Fi trading not connecting between two melonDS windows: confirm both instances were launched via File > New Instance rather than two separate .exe launches, and that both are set to the same Wi-Fi access point slot in settings.

Azahar Fixes

Azahar running noticeably slower after a recent update: the 2126.0 release-candidate branch trades some stability for new features; roll back to the 2125.1.3 stable build if you hit regressions.

Eden Fixes

Eden crashes on launch with a Vulkan error: update your GPU drivers first — Eden’s Vulkan backend is sensitive to driver age, and a driver more than a few months old is the most common cause of this specific crash.

Scarlet/Violet save corruption after a crash: Switch-generation saves are more fragile mid-write than older generations. Avoid force-closing Eden while the in-game save icon is visible, and keep at least two rotating manual backups of your save folder.

Controller and Networking Fixes

Controller inputs registering twice or not at all: close any background input-remapping software (Steam Input, DS4Windows, etc.) that might be double-mapping the same controller before configuring it inside the emulator.

Organizing Your ROM and Save Library Across Four Emulators

Once you’re running mGBA, melonDS, Azahar, and Eden side by side, file organization stops being optional. Each emulator looks for ROMs, saves, and system files in different default locations, and a messy folder structure is the number one reason people lose track of which save belongs to which game version. Set up a consistent structure before your library grows past a handful of titles.

Recommended Folder Structure

Pokemon-Emulation/
├── GBA-GB/
│   ├── roms/          (FireRed.gba, Emerald.gba, Crystal.gbc, etc.)
│   ├── saves/          (auto-created by mGBA next to each ROM)
│   └── bios/           (gba_bios.bin, if you have a legal dump)
├── DS/
│   ├── roms/           (Platinum.nds, HeartGold.nds, etc.)
│   ├── bios/            (bios7.bin, bios9.bin, firmware.bin)
│   └── saves/
├── 3DS/
│   ├── roms/            (X.3ds, UltraSun.cia, etc.)
│   ├── sdmc/             (Azahar's virtual SD card — save data lives here)
│   └── sysdata/          (optional system archives)
└── Switch/
    ├── roms/              (Scarlet.nsp, Legends-Arceus.xci, etc.)
    ├── keys/               (prod.keys)
    └── firmware/

File Organization Best Practices

A few organizational habits pay off quickly once you’re managing multiple generations at once. First, never rename a ROM file after an emulator has created a save for it — several emulators, particularly mGBA and melonDS, tie save files to the exact ROM filename, and a rename can orphan your save. Second, keep BIOS and firmware files in a folder separate from ROMs, since you’ll only ever have one or two of these versus a growing ROM collection, and mixing them makes backups messier. Third, if you’re syncing this folder structure to cloud storage for backup purposes, exclude the emulator’s cache and shader-compilation folders (particularly large for Azahar and Eden) — they regenerate automatically and just waste upload bandwidth and cloud storage quota.

For the 3DS and Switch tiers specifically, resist the temptation to point Azahar or Eden directly at a shared network drive for ROM storage. Both emulators do frequent small reads during gameplay (texture streaming, save writes), and network latency introduces stutter that’s easy to mistake for an emulator performance problem when it’s actually a storage bottleneck. Keep active ROMs on a local SSD, and archive completed playthroughs to network storage afterward.

Advanced Tips for a Smoother Setup

  • Use per-game shader caches in Eden and Azahar. Both cache compiled shaders locally, which means the first playthrough of a new area is where all the stutter happens — subsequent visits are far smoother. Don’t judge final performance from your very first session.
  • Prioritize RAM speed over CPU overclocking if you’re chasing extra frames in Scarlet/Violet on Eden — memory bandwidth is a bigger bottleneck than raw clock speed for Switch emulation on most modern CPUs.
  • Keep separate save folders per emulator version when testing a new nightly build, so a bad build can’t corrupt your main save.
  • Use mGBA’s built-in Lua scripting console (Tools > Scripting) if you’re into competitive breeding or IV manipulation research — it exposes memory-reading hooks the standalone game doesn’t.
  • For split-screen local trading across generations (say, DS trading between two melonDS windows), dedicate a full CPU core per instance in Task Manager’s affinity settings if you’re on a lower core-count CPU, to avoid one instance starving the other.

Frequently Asked Questions

Is it legal to use a Pokémon emulator in 2026?

Yes, the emulator software itself is legal to download, install, and run. What remains legally risky is downloading ROM or game files you don’t own from third-party sites — that’s copyright infringement regardless of the game’s age.

What’s the best single emulator to start with if I only want to play one Pokémon generation?

For most newcomers, mGBA (Gen 1-3) is the easiest entry point — lightweight, runs on almost anything, and requires no BIOS dump to get going. If you specifically want the newest games, Eden (Gen 8-9) is the one to install, but expect a steeper hardware and setup curve.

Can I use one emulator for every Pokémon generation?

No single emulator covers all consoles. RetroArch comes closest for the older generations (GB through DS) via cores, but 3DS and Switch titles still require Azahar and Eden respectively as standalone programs.

Why did Ryujinx and Yuzu shut down, and are Eden and Azahar at similar legal risk?

Yuzu settled a Nintendo lawsuit in March 2024 over DMCA anti-circumvention claims tied to decrypting and distributing Nintendo’s encryption keys, paying $2.4 million and shutting down. Ryujinx exited under similar legal pressure later that year. Eden and other successor projects have generally been more careful about not shipping or distributing decryption keys themselves, leaving that step to the user, though the underlying legal terrain hasn’t been definitively tested against these specific newer projects.

Do I need a Nintendo Switch to use Eden?

Yes, practically speaking. Eden requires firmware and decryption keys that need to be dumped from a real Switch console you own — there’s no way to legally obtain these without hardware access.

Will my save data transfer between Citra and Azahar?

Yes, Azahar was built as a direct continuation of Citra’s codebase and reads existing Citra save data and user folders without conversion in most cases.

Why is Pokémon Scarlet/Violet performance inconsistent even on powerful hardware?

Scarlet and Violet have known performance issues on real Switch hardware too — an open world with heavy draw distances the console’s GPU struggles with. Emulation inherits and sometimes amplifies these engine-level bottlenecks, which is why even high-end PCs see frame dips in busy towns rather than a rock-solid 60 FPS everywhere.

Can I play Pokémon games on Android with these same emulators?

Partially. melonDS has an official Android port (version 2.0.1), and Eden was the first Switch emulator accepted onto the Google Play Store, making mobile Gen 4-5 and even some Gen 8-9 emulation possible on a capable Android device. mGBA and Azahar also have community Android builds, though performance varies widely by phone chipset.

Related Coverage

Sources: mGBA official site, melonDS official site, Azahar official site, Eden official site, RetroArch official site, Nintendo’s statement on the Yuzu settlement, and the EFF reverse-engineering FAQ.

Nadia Dubois

Nadia Dubois

AI & Innovation Editor

Nadia Dubois is the AI & Innovation Editor at Tech Insider, where she tracks the rapid evolution of artificial intelligence, from foundation models to real-world enterprise deployment. She previously covered AI and startups for La Tribune and contributed to MIT Technology Review's European coverage. Nadia specializes in generative AI, AI regulation, and the intersection of technology and European industrial policy. She holds a dual degree in Computational Linguistics and Journalism from Sciences Po Paris.

View all articles