3DS:GBA games

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