What is the GBA file format?
The .gba file extension is used by the Nintendo Game Boy Advance game console. It is a video game image file saved in ROM format - a raw binary dump of a physical game cartridge. A .gba file contains an exact copy of the cartridge's ROM, opening with a 192-byte header that holds an ARM branch entry point, a mandatory 156-byte Nintendo logo block, game code, and an 8-bit complement checksum verified by the GBA BIOS at every boot.
GBA file emulation
Games saved as .gba files can be run on dedicated emulators available for various operating systems, e.g. Windows, macOS, or Linux. Originally the games were only to be run on the Game Boy Advance console, so to run a .gba file on any other computer system one needs to use proper emulating software such as mGBA or VisualBoyAdvance-M. Battery save data is not stored inside the .gba image - it is written to separate .sav or .srm companion files.
Other file extensions
The alternative extension .agb is, in principle, identical to the .gba format - both represent the same cartridge dump structure. The .gb and .gbc extensions, by contrast, belong to the original Game Boy and Game Boy Color respectively; those are distinct, incompatible formats. The Nintendo DS successor platform uses .nds instead.
Security & safety
RISK: MEDIUMThe legal risk outweighs the technical one: downloading commercial GBA ROMs you don't own is copyright infringement, and ROM sites are notorious for adware and fake "download" buttons. The legal path is dumping cartridges you own. File-wise, a legitimate ROM is inert data, but ROMs from shady sites can be mislabeled installers - use reputable emulators (mGBA, RetroArch) and scan unknown downloads.
Format details
in a nutshellPrograms that open GBA files
Technical details
deep spec| File type | Raw binary cartridge ROM dump (headered) |
| Byte order | Little-endian (ARM7TDMI architecture) |
| Header size | 192 bytes (offsets 0x00-0xBF) |
| Boot signature | 32-bit ARM branch opcode at offset 0x00; 156-byte Nintendo logo bitmap starting at 0x04 (hex: 24 FF AE 51 …) |
| Header checksum | 8-bit complement checksum at offset 0xBD, verified by GBA BIOS on every boot |
| Maximum ROM size | 32 MB (256 Mbit) - the physical cartridge ceiling |
| Typical ROM sizes | 4 MB, 8 MB, 16 MB, or 32 MB (always a power of two) |
| CPU instruction sets | 32-bit ARM and 16-bit THUMB (ARM7TDMI core) |
| Internal compression | None at file level; game assets may use LZ77 or Huffman compression, decoded via BIOS SWI calls |
| Save data storage | Stored separately in companion .sav / .srm files (SRAM, EEPROM, or Flash chip on the cartridge) |
| MIME type | application/x-gba-rom |
| Game code field | 4-character ASCII identifier at header offset 0xAC (e.g., AXVE for Pokémon Ruby) |
| Maker code field | 2-character ASCII licensee code at header offset 0xB0 |
| Hardware display | 15-bit BGR555 color (32,768 colors) at 240×160 pixels on native hardware |
| Successor format | .nds (Nintendo DS), which superseded the GBA platform |
| Released | 2001 (Game Boy Advance launch - AGB platform) |
| Latest version | N/A (fixed cartridge format; no versioning) |
| Specification | problemkaputt.de |
GBA conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about GBA files.