GBArunner2 Setup: Run Pokémon GBA on 3DS, 13 Steps [2026]

Running Pokémon Ruby, Sapphire, Emerald, FireRed, or LeafGreen through a software emulator is the easy path, but it is not the only one. GBArunner2 takes a different route: instead of translating Game Boy Advance instructions into DS instructions line by line, it loads a thin hypervisor onto the DS/DSi/3DS hardware and lets the console’s own ARM7 and ARM9 chips execute GBA code almost directly. The result is emulation that behaves closer to the original cartridge, running inside a homebrew menu called TWiLight Menu++ on real Nintendo handheld hardware you already own. As of October 2026, TWiLight Menu++ sits at version 27.25.1 (a hotfix shipped October 13, 2026), and GBArunner2 ships bundled inside it rather than as a separate download.

This tutorial walks through the full chain: confirming your console is a candidate, getting Luma3DS custom firmware running, dumping a NAND backup with GodMode9, installing TWiLight Menu++, sourcing a legal GBA BIOS, loading your Pokémon ROMs, and configuring GBArunner2 so it actually launches instead of freezing on a black screen. Budget two to three hours for a first attempt, most of which goes to the custom-firmware step rather than GBArunner2 itself. Everything here assumes you are running ROM dumps and BIOS files pulled from cartridges and consoles you legally own.

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

What Is GBArunner2, and Why Not Just Use a Software Emulator?

GBArunner2 is a GBA hypervisor for the Nintendo DS family, originally built by developer Gericom and maintained on GitHub, that remaps most GBA hardware calls onto the DS’s own ARM7TDMI processor instead of software-interpreting them. A standard software GBA emulator like mGBA or VBA-M reads each instruction, decides what it means, and simulates the result in code. GBArunner2 instead hands many of those instructions to the DS’s actual hardware, which happens to share the same ARM7 core family the GBA used. That is the core technical difference, and it is why GBArunner2 is described in its own documentation as sitting between a true hardware pass-through and a conventional emulator, rather than being either one outright.

The practical upshot for Pokémon players: timing-sensitive routines, some real-time clock behavior, and certain graphical effects can behave more faithfully than they do under a pure software core, at the cost of lower overall game compatibility and a much heavier setup process than just installing an app. GBArunner2 is not available as a standalone download in 2026; it ships integrated into TWiLight Menu++, the homebrew menu used across DS, DSi, and 3DS-family consoles for launching ROMs. A newer successor project, GBArunner3, is already referenced in TWiLight Menu++’s own documentation as a planned future replacement, but as of this writing GBArunner2 is still the shipping GBA engine inside the menu.

Running GBA Pokémon this way only makes sense if you already have, or are willing to set up, a homebrew-capable DSi or 3DS-family console. If you just want a fast way to play Emerald or FireRed on a PC or phone, a standard software GBA core will get you there with less friction. GBArunner2 is for players who specifically want the games running on the handheld hardware itself, often alongside a library of DS and GBA titles managed from one menu.

Why Bother Running GBA Pokémon on Real DSi/3DS Hardware in 2026?

Nintendo never shipped a built-in way to play GBA cartridges on a 3DS or 2DS. The original DS and DS Lite had a physical GBA slot, but Nintendo removed it starting with the DSi, which is exactly the gap GBArunner2 fills for anyone who moved on from an original DS but still owns a shelf of GBA Pokémon cartridges. The alternative paths are narrow: buy and maintain an original DS or DS Lite purely for GBA slot access, use a flash cart designed for native GBA hardware, or run a software emulator on an entirely different device. GBArunner2 is the only option that lets a DSi, 3DS, or 2DS owner play GBA games on the console they already have in their pocket, without a second piece of hardware.

There is also a practical angle tied to aging hardware. Original GBA and GBA SP units are now well over two decades old, and their cartridge slots, screens, and batteries degrade with use. Secondhand complete-in-box Pokémon GBA cartridges have also become harder to find in good condition as collector demand has pushed up prices. For someone who already owns a 3DS-family console and legally owns the cartridges, GBArunner2 turns that existing hardware into a second life for a GBA library rather than requiring a dedicated GBA purchase just to keep playing. It is a maintenance-heavy path compared to a software emulator, but it keeps the experience tied to Nintendo hardware end to end, from the homebrew menu to the handheld form factor to the two physical screens the DS family is built around.

Prerequisites: Hardware, Firmware, and Legal Requirements

Before starting, confirm you have the following. None of this is optional, and skipping the backup steps is the single most common way people turn a weekend project into a repair bill.

  • A Nintendo DSi, DSi XL, 3DS, 3DS XL, 2DS, 2DS XL, New 3DS, New 3DS XL, or New 2DS XL. Original DS and DS Lite models cannot run GBArunner2 in 3DS/DSi mode because they lack the extra hardware GBArunner2 depends on.
  • A microSD or microSDHC card formatted FAT32. The 3DS family only reads FAT32, not exFAT or NTFS; officially supported SD/SDHC capacity tops out at 32GB, though larger SDXC cards generally work once reformatted to FAT32. Cards above roughly 128GB can introduce performance or theme glitches, so a clean 32GB or 64GB card is the safer pick for a first build.
  • TWiLight Menu++ v27.25.1 or newer (the GBArunner2 build is bundled inside it).
  • Luma3DS, currently at version 13.4 (released April 2, 2026), as your custom firmware layer.
  • GodMode9, currently at version 2.2.3 (released March 31, 2026), for NAND backups and low-level file management.
  • Boot9strap (B9S) already installed, or a maintained guide to get there for your exact console/firmware combination. Exploit chains change by firmware version, so follow a current guide rather than a static tutorial you find elsewhere.
  • A GBA BIOS file dumped from a GBA, GBA SP, or Wii U Ambassador Program title you legally own. GBArunner2 treats the BIOS as optional but documents it as improving compatibility; do not download one from a ROM site, since a BIOS dump is copyrighted firmware, not a game file.
  • Your own GBA Pokémon cartridges, ripped to ROM files on hardware you own.
  • 60 to 90 minutes if your console already has boot9strap and Luma3DS installed; add another 60 to 90 minutes if you are starting from stock firmware.

Part 1: Preparing Your Console

Step 1: Confirm Your Console Model and Firmware Version

Open System Settings on your console and note the exact model (DSi, DSi XL, 3DS, 3DS XL, 2DS, 2DS XL, New 3DS, New 3DS XL, New 2DS XL) and the system firmware version shown under “System Update.” GBArunner2 build selection depends on whether you are on a DS-class, DSi-class, or 3DS-class system, since the DS-Homebrew wiki documents separate “shared,” “DS-specific,” and “DSi/3DS-specific” GBArunner2 builds. New 3DS-family consoles have noticeably more CPU headroom and RAM than Old 3DS and 2DS models, which translates into measurably better GBArunner2 compatibility and fewer slowdowns on demanding titles. If you have a choice of console for this project, a New 3DS XL or New 2DS XL is the easier starting point.

Step 2: Back Up Your SD Card and, Once You Have Access, Your NAND

Copy the entire current contents of your SD card to a folder on your computer before you touch anything else. If your console already has boot9strap and a homebrew entry point, boot into GodMode9 now and create a NAND backup before installing or updating anything:

GodMode9 main menu steps:
1. Hold START while powering on (or use your current GodMode9 entry method)
2. Navigate to: [S] SYSNAND SD (A:)
3. Select: SysNAND Backup -> NAND backup -> OK
4. Wait for "NAND backup created" confirmation
5. Copy the resulting .bin file from /gm9/out/ to your PC immediately
6. Store at least two copies, on two separate drives

Treat the NAND backup as the one file that lets you recover from almost any mistake later in this guide. GodMode9 is documented specifically for this role: full NAND backup and restore, title management, and partition-level access on 3DS-family consoles.

Part 2: Installing Custom Firmware

Step 3: Get Boot9strap and Luma3DS Running

If your console is already jailbroken with boot9strap and Luma3DS, skip to Step 4. If not, follow a current, actively maintained 3DS homebrew guide matched to your exact console model and firmware version, because the specific entry exploit used to reach boot9strap changes as Nintendo patches firmware and as the homebrew scene finds new routes in. Do not follow a tutorial from several years ago; the entry point it describes may no longer exist on current firmware, or may have been superseded by a cleaner method.

The general shape of the process is consistent across guides: verify your model and firmware, use a maintained entry point to run unsigned code for the first time, install boot9strap so that trusted custom firmware loads at the very start of the boot chain, then install or update Luma3DS, now at version 13.4, which handles patches, custom firmware, and the actual Luma3DS configuration menu you see on boot afterward. Luma3DS is distributed through its official GitHub releases page, and updating it going forward is as simple as copying a new boot.firm and boot.3dsx to the SD card root.

Step 4: Dump a Fresh NAND Backup and Console-Specific Files With GodMode9

With boot9strap and Luma3DS confirmed working, boot into GodMode9 again and take a second, post-CFW NAND backup. This gives you a clean restore point from before you start installing homebrew applications, separate from the stock-firmware backup you made in Step 2. GodMode9 v2.2.3 also handles title and partition browsing, which you will use later if you need to manually locate or remove a corrupted save file.

Part 3: Getting the Homebrew Launcher Ready

Step 5: Install the Homebrew Launcher and Universal-Updater

From the Luma3DS menu, launch into the Homebrew Launcher. Install Universal-Updater if it is not already present; it manages homebrew app installs and updates directly on the console, which saves you from manually copying every file over USB or FTP for the rest of this project. Confirm Homebrew Launcher can see and run a basic app (Universal-Updater itself is a good test) before moving on, since a broken Homebrew Launcher setup will make every later step fail in confusing ways that look like a GBArunner2 problem but are not.

Part 4: Installing TWiLight Menu++ and GBArunner2

Step 6: Download and Install TWiLight Menu++

Download the current release of TWiLight Menu++ from its GitHub releases page; v27.25.1 is the version current as of mid-October 2026 and was shipped as a hotfix specifically addressing save-corruption behavior in the bundled GBArunner2 build. Run the TWiLight Menu++ installer app on your console, pointing it at your SD card root. During install you will be asked whether to install the Virtual Console add-on as “Minimal” or “Full” — the 2026 release splits these two ways, with Minimal skipping several bundled emulator cores to save space and Full including all of them. For a Pokémon-focused GBA setup, Full is the simpler choice unless your SD card is very small, since GBArunner2 itself is still treated as an essential, always-included component regardless of which package you pick.

After installation, TWiLight Menu++ creates a standard folder layout on your SD card. Confirm it looks like this before continuing:

SD card root/
├── _nds/
│   └── TWiLightMenu/
│       ├── extras/
│       ├── gba/
│       └── bios/
├── roms/
│   └── gba/          <- your Pokémon GBA ROMs go here
├── gba/
│   └── bios.bin       <- one valid BIOS location
├── _gba/
│   └── bios.bin       <- alternate BIOS location some builds check
└── boot.firm

Step 7: Pick the Right GBArunner2 Build for Your Console

The DS-Homebrew GBArunner2 builds page documents three build categories: builds shared between DS, DSi, and 3DS; DS-specific builds; and DSi/3DS-specific builds. If you installed TWiLight Menu++ on a DSi or 3DS-family console through the standard installer, it already selects the correct shared or DSi/3DS build for you, and in most cases you do not need to manually pick a build file. The one setting worth checking manually is the DLDI driver: for an SD card used on DSi or 3DS hardware through TWiLight Menu++, the documentation points to the ARM7DLDI build path as the one the installer should have already wired up. If GBA games refuse to launch after everything else checks out, this is the first configuration detail worth re-verifying rather than reinstalling the whole menu.

Part 5: Adding Your BIOS and ROMs

Step 8: Source a Legal GBA BIOS Dump and Place It Correctly

A GBA BIOS is the small boot firmware image the original Game Boy Advance hardware runs before handing control to a cartridge. GBArunner2 treats it as optional, but its own documentation notes a correct BIOS dump improves startup accuracy and compatibility for some titles. Legal sourcing means dumping it yourself from a GBA or GBA SP you own, or extracting it from a Wii U with Ambassador Program GBA titles you legitimately purchased. Never download a BIOS file from a ROM site; unlike a game ROM, the BIOS is console firmware and treating it casually is exactly the kind of shortcut that gets emulation guides taken down.

Once you have a legitimate dump, name the file bios.bin and place a copy in each of the locations GBArunner2’s own build documentation checks:

cp bios.bin /SD_ROOT/bios.bin
cp bios.bin /SD_ROOT/gba/bios.bin
cp bios.bin /SD_ROOT/_gba/bios.bin

Placing it in all three paths costs nothing and avoids a confusing failure mode where one build checks a path another build ignores.

A Note on Dumping Cartridges Yourself

GBArunner2’s own install documentation and the broader DS-Homebrew community treat ROM dumping as the user’s own responsibility, and that is deliberately where this guide leaves it too: the actual mechanics of reading a cartridge into a .gba file depend on the dumping hardware you use, whether that is a GBA flash cart with dumping firmware, a dedicated cartridge reader, or an older piece of community dumping software run against a GBA or GBA SP you still own. What matters for this tutorial is the output, not the method: a clean .gba file with no header corruption, matched to a cartridge you can point to as the legal source. If a dumped ROM behaves oddly in GBArunner2, re-dump it rather than assuming the emulator is at fault, since a cartridge with worn contacts can produce a file that looks complete but has corrupted sectors.

Step 9: Copy Your Pokémon GBA ROMs to the Right Folder

Dump your own Pokémon Ruby, Sapphire, Emerald, FireRed, or LeafGreen cartridges to .gba files using hardware you own, then copy them into /roms/gba/ on the SD card. Keep filenames simple, avoid special characters, and avoid duplicate files with slightly different names, since TWiLight Menu++’s ROM scanner can occasionally index both and confuse your save-file pairing later.

# Example clean naming convention
/roms/gba/Pokemon_Emerald.gba
/roms/gba/Pokemon_FireRed.gba
/roms/gba/Pokemon_LeafGreen.gba
/roms/gba/Pokemon_Ruby.gba
/roms/gba/Pokemon_Sapphire.gba

Part 6: Configuring GBA Mode

Step 10: Configure TWiLight Menu++ GBA Mode Settings

Launch TWiLight Menu++ and open its settings menu. Confirm the GBA mode is set to use GBArunner2 rather than any alternative GBA core that may also be bundled, and confirm the BIOS path setting points to one of the bios.bin locations from Step 8. On 3DS-family consoles specifically, check the display setting related to what the community calls the TWLBg bug, a known issue where duplicated or accumulated graphical lines build up near the bottom of the screen during GBA mode on some 3DS hardware; recent TWiLight Menu++ builds include a workaround toggle for this rather than a full fix.

Step 11: Launch Your First Pokémon Game and Verify GBArunner2 Is Running

From the TWiLight Menu++ ROM list, select one of your Pokémon GBA files. You should see a brief GBArunner2 loading screen before the familiar Game Freak logo and GBA boot animation appear. If the console instead hangs on a black screen for more than about 15 seconds, or resets back to the DS menu, something in Steps 6 through 10 needs rechecking before you try a different game.

Example of what a working boot sequence looks like in the console’s debug log, viewable through GodMode9’s log viewer if you enabled logging:

[GBARunner2] ARM7DLDI build loaded
[GBARunner2] BIOS found: /gba/bios.bin (16384 bytes)
[GBARunner2] ROM loaded: Pokemon_Emerald.gba
[GBARunner2] Save type detected: FLASH 128K
[GBARunner2] Hypervisor handoff complete
[GBARunner2] Entering GBA execution mode

A correct save-type detection line matters more than it looks: Pokémon GBA titles use flash memory save chips, and a misdetected save type is one of the more common causes of saves silently failing to persist between sessions.

Part 7: Saves, Backups, and Trading

Step 12: Set Up Save Backups Before You Actually Play

TWiLight Menu++’s v27.25.1 hotfix release specifically addressed a bug where saving under GBArunner2 could corrupt data on the SD card, which is a strong signal that save reliability on this engine deserves active attention rather than blind trust, even on a current build. After your first successful in-game save, power off cleanly through the GBA mode’s proper exit sequence rather than holding the power button, then copy the resulting .sav file from the roms/gba folder to your computer. Repeat this copy after every meaningful play session, the same discipline veteran emulator users apply to save states on any platform.

# On a PC with the SD card mounted
cp /path/to/sdcard/roms/gba/Pokemon_Emerald.sav ~/pokemon-backups/Pokemon_Emerald_$(date +%F).sav

Step 13: Understand Link Cable and Local Wireless Trading Limits

If your goal includes trading or battling, read the compatibility notes on the GBATemp wiki’s GBArunner2 link page before you plan a trading session around it. That page specifically lists Pokémon Emerald and FireRed wireless linking as non-working under GBArunner2, which rules out the in-game Union Room and wireless trade features players might expect from a modern setup. Standard GBA link-cable functionality for earlier titles is a separate code path from wireless, and compatibility there varies by game and build; do not assume trading or linking works until you have tested the specific pair of games and the specific connection method you plan to use.

GBA Pokémon Compatibility on GBArunner2: What Works and What Doesn’t

GBArunner2’s own documentation does not publish a single compatibility percentage, and the community wikis describe compatibility as varying by console mode and specific build rather than being a fixed, universal number. The table below reflects documented behavior from the DS-Homebrew wiki and the GBATemp GBArunner2/Link page rather than an invented score.

GameSingle-Player BootSave TypeLink CableWireless/Union Room
Pokémon RubyDocumented as workingFlash memoryVaries by build, test before relying on itNot applicable (no wireless on Ruby/Sapphire)
Pokémon SapphireDocumented as workingFlash memoryVaries by build, test before relying on itNot applicable
Pokémon EmeraldDocumented as workingFlash memoryVaries by build, test before relying on itListed as non-working
Pokémon FireRedDocumented as workingFlash memoryVaries by build, test before relying on itListed as non-working
Pokémon LeafGreenDocumented as workingFlash memoryVaries by build, test before relying on itNot independently confirmed; test before relying on it

Treat “documented as working” as single-player boot and save/load behavior rather than a guarantee that every peripheral-dependent feature functions. If a specific feature matters to your playthrough, such as the e-Reader connectivity some early GBA Pokémon releases supported, test it directly rather than assuming compatibility carries over from a different game in the same series.

GBArunner2 vs Software GBA Emulators: Which Should You Use

The honest answer depends on what you are optimizing for. If you want the simplest path to playing Pokémon Emerald on a phone, laptop, or Steam Deck, a conventional software core is faster to set up and has broader game compatibility. GBArunner2 earns its complexity when the goal is specifically running Pokémon on real DSi/3DS hardware, managing a unified DS-plus-GBA library from one homebrew menu, or getting timing behavior closer to the original chip.

FactorGBArunner2 (on 3DS/DSi)Software GBA Core (e.g. mGBA)
Execution modelHypervisor, hands instructions to real ARM7 hardwareFull software interpretation/JIT
Setup complexityHigh: requires CFW, homebrew entry, menu installLow: install one app, point at ROM folder
Runs onDSi, 3DS, 2DS family only (modded)Windows, macOS, Linux, Android, iOS, Switch, Steam Deck
Wireless Pokémon featuresDocumented gaps (Emerald/FireRed wireless non-working)Also inconsistent, core-dependent
BIOS requirementOptional, improves compatibilityOptional on most accurate cores
Best forReal-hardware purists, unified DS+GBA menu usersFastest path to playing on any device

5 Common Pitfalls That Corrupt Saves or Stall Your Setup

  • Skipping the pre-CFW NAND backup. Installing boot9strap and Luma3DS is low-risk when done correctly, but “correctly” assumes you can recover if a step goes wrong. Without a NAND backup from Step 2, a bad flash can mean sending the console in for repair instead of retrying in ten minutes.
  • Hard-powering-off during a GBA save. Because the TWiLight Menu++ v27.25.1 hotfix exists specifically to fix GBArunner2 save corruption, assume earlier or future regressions are possible and always exit through the proper menu sequence rather than holding the power button mid-save.
  • Using an exFAT or oversized SD card. The 3DS family reads FAT32 only. A card formatted exFAT, or an SDXC card left in its factory format, will not mount correctly, and some users waste an hour assuming TWiLight Menu++ is broken when the card format is the actual problem.
  • Downloading a BIOS file from a ROM site. Beyond the legal issue, BIOS files circulating online are frequently corrupted, wrong-region, or bundled with unrelated junk data, which produces exactly the kind of intermittent compatibility bugs this guide is trying to help you avoid.
  • Assuming wireless trading works because link-cable trading does. These are different code paths inside GBArunner2. Confirmed documentation lists Pokémon Emerald and FireRed wireless/Union Room functionality as non-working; do not build a multiplayer session around a feature you have not personally tested on your exact build.

Troubleshooting: 8 Fixes for the Most Common GBArunner2 Problems

Most GBArunner2 problems trace back to one of three root causes: a BIOS path pointing at nothing, an SD card formatted incorrectly for the 3DS family, or a stale TWiLight Menu++/Luma3DS version mismatch. Work through these in order before assuming a given game or ROM file is simply incompatible.

  • Game boots to a black screen and hangs. Re-check the BIOS path in all three locations from Step 8, and confirm the ROM file is not corrupted by re-dumping it from the original cartridge. A black screen that never progresses past the loading flicker almost always means GBArunner2 could not find a BIOS file it trusts, even though the file technically exists somewhere on the card.
  • Console resets to the HOME Menu or TWiLight Menu++ immediately after launch. This usually points to a build mismatch; re-run the TWiLight Menu++ installer and let it reselect the correct GBArunner2 build for your console type rather than manually swapping files. Manually copying build files between console types is the most common way this mismatch gets introduced in the first place.
  • Save data disappears between sessions. Confirm you exited through the proper GBA mode exit sequence, not a hard power-off, and check the debug log for a correct “Save type detected” line matching flash memory. If the log shows no save type detected at all, the ROM header may be damaged and should be re-dumped.
  • Graphical artifacts or duplicated lines near the bottom of the screen on 3DS hardware. This matches the documented TWLBg bug; check TWiLight Menu++’s settings for a 3DS-mode display workaround toggle before assuming your ROM is damaged. The artifact is cosmetic and does not indicate save or ROM corruption on its own.
  • Audio stutters or desyncs from gameplay. Historical TWiLight Menu++ changelogs reference timer-synchronization fixes for GBArunner2 audio; confirm you are on the current v27.25.1 release rather than an older cached install. Audio issues that persist on the current release are more likely tied to an Old 3DS/2DS CPU bottleneck than a configuration mistake.
  • SD card not detected after formatting. Reformat specifically as FAT32 (not exFAT, not NTFS) using a dedicated formatting tool rather than your OS’s quick-format default, which can silently choose exFAT on larger cards. Windows in particular tends to default larger cards to exFAT unless you explicitly force FAT32 in a third-party formatter.
  • Homebrew Launcher won’t launch Universal-Updater or TWiLight Menu++. Go back to Step 5 and confirm boot9strap and Luma3DS are actually active (check the Luma3DS config screen appears on boot) before troubleshooting anything GBA-specific. A failure this early in the chain has nothing to do with GBArunner2 itself.
  • Game runs but performance is noticeably choppy. Confirm whether you are on an Old 3DS/2DS versus a New 3DS-family console; the extra CPU and RAM on New 3DS hardware materially improves GBArunner2 performance, and some demanding titles may simply run better there than on older hardware. There is no software setting that fully closes this gap, since it reflects a real difference in the underlying chip.

Advanced Tips: Performance, Build Choice, and What Comes After GBArunner2

If you have a choice between consoles for this project, prioritize New 3DS, New 3DS XL, or New 2DS XL hardware. Their additional CPU headroom and RAM over Old 3DS and 2DS models show up directly in GBArunner2 performance and game compatibility, since GBArunner2 leans on the host console’s processing power more than a lightweight software core would. If you are stuck on Old 3DS or 2DS hardware, stick to the five mainline Pokémon GBA titles rather than more technically demanding GBA games, since that is where compatibility documentation is most consistent.

Keep an eye on the TWiLight Menu++ changelog for GBArunner3 progress. It is already referenced inside TWiLight Menu++’s own documentation as a planned successor to GBArunner2, and when it ships as a stable, bundled replacement, expect compatibility and performance notes in this guide’s categories to shift. Until then, treat GBArunner2 as a mature but still actively patched component, evidenced by the fact that its most recent notable update, the v27.25.1 hotfix, specifically targeted save-corruption behavior rather than being a routine version bump.

For players managing a larger ROM library across DS and GBA titles, keep BIOS files, NAND backups, and save files in a separate folder on your PC outside the SD card structure, timestamped by date. This matters more on GBArunner2 specifically than on most software emulators, because the SD-card-corruption bug fixed in the latest hotfix release is a reminder that this engine writes to storage in ways that have had real, documented failure modes in the recent past.

Running Pokémon ROM Hacks and Randomizers Through GBArunner2

GBArunner2 loads any valid GBA ROM, which includes patched ROM hacks and randomized builds created from a legally dumped base ROM, not just unmodified retail cartridges. If you already patch Pokémon ROM hacks for a software emulator, the patched .gba output works the same way here: copy the finished, already-patched file into roms/gba/ exactly as you would an unmodified ROM. The caveat is that heavily modified ROM hacks sometimes rely on expanded ROM sizes, custom save layouts, or non-standard memory mapping that GBArunner2’s hardware-assisted execution model handles differently than a flexible software core does. If a specific ROM hack freezes or shows corrupted graphics under GBArunner2 but runs fine in a software emulator, that is a sign the hack is leaning on a quirk GBArunner2’s hypervisor approach does not replicate, and the fix is usually to fall back to a software core for that particular hack rather than treating it as a setup mistake on your end.

Current Version Reference: What’s Current as of October 2026

ComponentCurrent VersionRelease DateRole
TWiLight Menu++27.25.1October 13, 2026Homebrew menu, bundles GBArunner2
Luma3DS13.4April 2, 2026Custom firmware layer
GodMode92.2.3March 31, 2026NAND backup, file management
GBArunner2Bundled build inside TWiLight Menu++ 27.25.1Tracks TWiLight Menu++ releasesGBA hypervisor engine
Boot9strapCurrent release per maintained guide for your firmwareVaries by console/firmwareBoot-time exploit enabling custom firmware

Always install from the official GodMode9 project page or its GitHub releases, and from TWiLight Menu++’s own GitHub releases, rather than a third-party mirror. Homebrew tooling like this is a common target for bundled malware on unofficial download sites.

Complete Working Project: A Full GBArunner2 Pokémon Build Checklist

Here is the entire process condensed into one pass you can follow in order, console-side, after you have gathered the files above on your PC.

1. Confirm console model + firmware version
2. Back up current SD card contents to PC
3. (If not already modded) Follow a current guide to install boot9strap
4. Install/update Luma3DS to 13.4
5. Boot into GodMode9 2.2.3, create a NAND backup, copy it to PC (2 copies)
6. Launch Homebrew Launcher, install Universal-Updater
7. Download TWiLight Menu++ 27.25.1, run installer, choose Full VC package
8. Verify folder structure: _nds/, roms/gba/, gba/bios.bin, _gba/bios.bin
9. Copy legally-dumped bios.bin into all 3 BIOS paths
10. Copy legally-dumped Pokemon .gba ROMs into roms/gba/
11. Open TWiLight Menu++ settings, confirm GBA core = GBArunner2, BIOS path set
12. Launch a Pokemon ROM, confirm GBArunner2 boot log + correct save-type detection
13. Save in-game, exit cleanly, copy .sav file to PC backup folder

Running this checklist end to end on a New 3DS XL with boot9strap and Luma3DS already installed typically takes 60 to 90 minutes, most of it spent on the initial NAND backup and the TWiLight Menu++ install. Starting from a factory-fresh console closer to doubles that, almost entirely due to researching the correct current homebrew entry exploit for your exact firmware version.

Frequently Asked Questions

Does GBArunner2 work on an original DS or DS Lite?
No. GBArunner2’s DSi/3DS-specific builds require hardware features that the original DS and DS Lite do not have. Shared builds exist for DS-class hardware, but the setup covered in this guide, run through TWiLight Menu++ on DSi/3DS, targets DSi and 3DS-family consoles.

Do I need a GBA BIOS file, or can I skip it?
GBArunner2’s documentation lists the BIOS as optional, but notes it improves compatibility. Treat it as effectively required for a reliable setup, and only source it from a GBA, GBA SP, or your own Wii U Ambassador Program install.

Can I trade Pokémon wirelessly between two GBArunner2 setups?
Not reliably for Emerald or FireRed. The GBATemp wiki’s GBArunner2 link documentation lists wireless/Union Room functionality for those titles as non-working. Link-cable-based trading on older titles uses a different code path and should be tested directly rather than assumed.

Will this void my warranty or risk bricking my 3DS?
Installing custom firmware carries real risk if steps are skipped, which is why Step 2 and Step 4’s NAND backups are not optional in this guide. Nintendo consoles modified this way are generally outside official warranty coverage; proceed with that understanding and keep backups current.

Is New 3DS required, or will an Old 3DS/2DS work?
Old 3DS and 2DS models can run GBArunner2 and boot the five mainline GBA Pokémon titles, but New 3DS-family hardware’s extra CPU and RAM deliver better performance and fewer compatibility issues, so it is the easier starting point if you have a choice.

Why did my save file disappear after I updated TWiLight Menu++?
The v27.25.1 hotfix was released specifically because earlier GBArunner2 builds could corrupt saves on the SD card. If you lost a save on an older build, update to the current release and restore your most recent .sav backup rather than restarting the game.

What’s the difference between GBArunner2 and GBArunner3?
GBArunner3 is referenced in current TWiLight Menu++ documentation as a planned future replacement for GBArunner2. As of October 2026, GBArunner2 remains the version actually bundled and shipping inside TWiLight Menu++ 27.25.1.

Can I use an SDXC card larger than 128GB?
You can usually format it as FAT32 and use it, but cards above roughly 128GB have been reported to introduce performance or theme-related glitches on 3DS-family consoles. A 32GB or 64GB card formatted FAT32 is the more reliable choice for a first build.

Marcus Chen

Marcus Chen

Gaming & Consumer Tech Editor

Marcus Chen is a senior editor at Tech Insider, where he leads coverage of the US online gaming market, including sweepstakes and social casinos, alongside consumer technology. He evaluates operators on their published terms, licensing and RNG certifications, stated redemption policies, and corroborating independent reporting, and writes plainly about what the evidence supports. Tech Insider does not run first-party money tests and does not gamble with reader funds. Marcus has reported on the technology and online-gaming industries for more than a decade.

View all articles