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 (100% compatibility, but no cheats, fast-forward, etc)
 * Must be booted from chainloader (by holding START on boot), like GodMode9
 * Has a file manager that allows you to select a ROM
 * Streaming, 3DS HOME Menu, etc. are inaccessible while a game is running
 * Saves are much easier to move
 * Lacks a user interface for configuring settings such as brightness (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
 * Streaming, 3DS HOME Menu, etc. are inaccessible while a game is running
 * Saves are a pain 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
 * Has a ROM picker
 * Saves are 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 easy to manage