About this project

mGBA is an open-source emulator for running Game Boy Advance (GBA) games, with additional support for Game Boy and Game Boy Color titles. It prioritizes speed and accuracy, running at full speed even on low-end hardware. The project offers both a feature-rich Qt frontend and a lightweight SDL frontend, along with cores for RetroArch/Libretro and OpenEmu. Key features include highly accurate GBA hardware emulation, local link cable support, save type detection, motion sensor and rumble cartridge support, real-time clock, solar sensor for Boktai games, Game Boy Camera/Printer support, a built-in BIOS, Lua scripting, turbo/fast-forward, rewind, frameskip, screenshots, cheat codes, nine savestate slots with previews, video/GIF/WebP/APNG recording, e-Reader support, remappable controls, ZIP/7z loading, IPS/UPS/BPS patches, and debugging via command-line interface or GDB remote (compatible with Ghidra and IDA Pro). It supports a wide range of Game Boy mappers, including MBC1-7, MBC30, M161, and various unlicensed mappers, with some partially supported. Planned features include networked multiplayer, Dolphin/JOY bus link cable, MP2k audio mixing, re-recording support, and a comprehensive debug suite. Supported platforms include Windows 7+, macOS 10.9+, Linux, FreeBSD, Nintendo 3DS, Switch, Wii, and PlayStation Vita. System requirements are minimal, needing only OpenGL 1.1+ (3.2+ for shaders). The project provides detailed build instructions for Docker, Unix-like systems, Windows (MSYS2 and Visual Studio), and console toolchains (devkitARM, devkitPPC, devkitA64, vitasdk). Dependencies are optional and features are disabled if not found. mGBA is licensed under the Mozilla Public License 2.0 and includes several third-party libraries.