The Nintendo 3DS can play GBA games through several methods, both natively and through emulation.
Comparison of methods
In order of most to least recommended.
open_agb_firm
- Runs natively, not via emulation (high compatibility, but no cheats, fast-forward, etc)
- Supports real-time clock for Pokemon, but no camera or accelerometer
- Must be booted from chainloader (by holding START on boot), like GodMode9
- This does allow faster launching than injects if your system is powered off.
- Has a file manager that allows you to select a ROM
- Supports button remapping (including circle pad and touchscreen, but not New 3DS L2/R2)
- Brightness can be adjusted in-game
- Automatic ROM patching is supported
- Streaming, 3DS HOME Menu, etc. are inaccessible while a game is running
- Saves are stored on SD card and easy to manage
- Lacks a user interface for configuring settings (a text editor must be used to change the config file)
- Still under active development
Virtual Console (VC) injects
- Run natively, not via emulation (same caveats as above)
- Must manually be created using a PC program (Windows-only, closed-source and abandoned by dev)
- Each game has its own separate icon on the HOME Menu
- No button remapping
- No adjustable brightness
- No automatic ROM patching
- Streaming, 3DS HOME Menu, etc. are inaccessible while a game is running
- Saves are stored in NAND and are difficult to backup and restore (requires GodMode9 and multiple reboots for each save)
mGBA
- A full emulator, which means that it has fast-forward, cheats, save states
- Performance isn't perfect, especially on old 3DS
- Not compatible with all games, but may have higher compatibility with ROM hacks that are not designed to run on actual GBA hardware
- Runs in 3DS mode, so you can stream it or use the HOME Menu while it's running
- Supports button remapping
- Has a ROM picker
- Saves are stored on SD card and easy to manage
- Supports additional hardware features, such as accelerometer (for WarioWare: Twisted!) and camera (for Game Boy Camera)
GBARunner2
- A middle-ground between emulation and native
- it's basically the worst of both worlds, still no emulator features, but some games are incompatible or have issues
- Included with TWiLightMenu++
- Has a ROM picker
- Streaming, 3DS HOME Menu, etc. are inaccessible while a game is running
- Saves are stored on SD card and easy to manage
Overview table
Feature | open_agb_firm | VC Injects | mGBA | GBARunner2 |
---|---|---|---|---|
Games run natively | ✓ | ✓ | ✗ | △ |
Runs full speed on Old3DS | ✓ | ✓ | ✗ | ✓ |
Retail game compatibility | ✓ | ✓ | △ | △ |
Homebrew/ROM hack compatibility
(For things not intended to run on official hardware) |
△ | △ | ✓ | △ |
Runs from HOME Menu | ✗ | ✓ | ✓ | ✓ |
Drag-and-drop / ROM picker | ✓ | ✗ | ✓ | ✓ |
Cheats, fast-forwarding,
save states |
✗ | ✗ | ✓ | ✗ |
Motion sensor support | ✗ | ✗ | ✓ | ✗ |
Easy save file access from SD | ✓ | ✗ | ✓ | ✓ |
Wireless streaming via NTR
(New3DS only) |
✗ | ✗ | ✓ | ✗ |
Under active development | ✓ | ✗ | ✓ | ? |