mGBA
mGBA emulates Nintendo Game Boy Advance, Nintendo Game Boy, Nintendo Game Boy Color and Nintendo Super Game Boy. It reads 4 files, none of them required: it starts games without them.
About this profile
Install this emulator's files
The installer finds your setup and its BIOS folder, then downloads only the files this emulator reads there and checks each one.
Open the Start menu. Type PowerShell and open it. Paste the line. Press Enter.
&([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --emulator mgbaOpen Terminal, in Applications, then Utilities. Paste the line. Press Return.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator mgbaOpen a terminal. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator mgbaSwitch to Desktop Mode. Open Konsole. Paste with Ctrl+Shift+V. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator mgbaInstall Termux, a terminal app. Run pkg install python and termux-setup-storage once. Then paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator mgbaOpen a terminal on the device. Or connect from a computer with SSH, a terminal over the network. Paste the line. Press Enter.
curl -fsSL https://abdess.github.io/retrobios/i | sh -s -- --emulator mgbaPlatform details
-
gba:
- bios_size: 16384
- hle_bios: yes
- source_ref:
src/gba/hle-bios.c(emulator code, libretro port),src/gba/gba.c:513-552 - note: GBALoadBIOS() validates size (must be exactly 0x4000) then computes an internal checksum. Two official checksums are recognized: GBA_BIOS_CHECKSUM = 0xBAAE187F (standard GBA) GBA_DS_BIOS_CHECKSUM = 0xBAAE1880 (DS GBA mode) Other checksums trigger a warning but the file is still loaded.
-
gb:
- bios_size: 256
- hle_bios: no
- source_ref:
src/gb/gb.c:570-605 - note: GBIsBIOS() validates by CRC32. Accepted DMG-family checksums: DMG0 = 0xC2F5CC97, DMG = 0x59C8598E, MGB = 0xE6920754 Files not matching any known checksum are rejected.
-
gbc:
- bios_size: 2304
- hle_bios: no
- source_ref:
src/gb/gb.c:570-605 - note: Accepted CGB-family CRC32 checksums: CGB = 0x41884E46, CGB0 = 0xE8EF5318, CGBE = 0xE95DC95D AGB = 0xFFD6B0F1, AGB0 = 0x570337EA
-
sgb:
- bios_size: 256
- hle_bios: no
- source_ref:
src/gb/gb.c:570-605,src/gb/core.c:654-656 - note: Accepted SGB CRC32 checksums: SGB = 0xEC8A83B9, SGB2 = 0x53D0DD63 SGB2 maps here in standalone (marked TODO upstream). Libretro port omits SGB2 case, falls to gb_bios.bin.
Technical notes
mGBA is a Game Boy Advance emulator with Game Boy, Game Boy Color, and Super Game Boy support.
All BIOS files are optional. mGBA ships a built-in HLE BIOS for GBA (src/gba/hle-bios.c) that covers most software. The real BIOS improves accuracy (startup logo, some edge-case SWI behavior). There is no HLE BIOS for GB/GBC/SGB -- those rely on GBSkipBIOS() if no file is found.
BIOS loading is controlled by two core options: mgba_use_bios (default ON) - whether to look for BIOS files at all mgba_skip_bios (default OFF) - skip the boot animation even if loaded
The libretro port resolves BIOS filenames in retro_load_game() (src/platform/libretro/libretro.c:2060-2118). It picks the filename based on detected model: GBA -> gba_bios.bin GB (DMG/MGB) -> gb_bios.bin GBC (CGB/AGB) -> gbc_bios.bin SGB -> sgb_bios.bin SGB2 -> gb_bios.bin (falls to default, missing case)
The standalone core (src/gb/core.c:649-696) correctly maps SGB2 to sgb_bios.bin (marked TODO for a dedicated file). The libretro port omits GB_MODEL_SGB2 from its switch, so SGB2 falls to default.
GBIsBIOS() in src/gb/gb.c validates BIOS files by CRC32 checksum. Accepted checksums cover DMG, DMG0, MGB, SGB, SGB2, CGB, CGB0, CGBE, AGB, and AGB0 revisions.
4 files: 0 required, 4 optional. 1 has an HLE fallback.
In this collection: 4 in repo and 0 missing.
Optional
Section titled “Optional”gba_bios.bin optional in repo HLE fallback
- System: Nintendo Game Boy Advance
- GBA BIOS. HLE replacement built in. Real BIOS adds boot logo and full SWI accuracy.
- Size: 16.0 KB
- Collection copy:
bios/Nintendo/ Game Boy Advance/ GBA_bios.rom - Platforms:
gba_bios.bin: Batocera, KNULLI, Lakka, RetroArch, RetroBat, RetroPie, ROCKNIX.bios/gba_bios.bin: AmberELEC, EmuELEC, RetroDECK.gba/gba_bios.bin: Recalbox, RomM.GBA/boot.rom: MiSTer FPGA.GBA_bios.rom: BizHawk
Validation and source
- Validation: size
- Asked for by: libretro glue
- Source:
src/(libretro glue)platform/ libretro/ libretro.c:2068
gb_bios.bin optional in repo
- System: Nintendo Game Boy
- DMG/MGB boot ROM. Scrolling Nintendo logo. Skipped if absent.
- Size: 256 B, CRC32 59c8598e and 7 more
- Collection copy:
bios/Nintendo/ Game Boy/ GB_dmg.bin - Platforms:
gb_bios.bin: Batocera, KNULLI, RetroBat, ROCKNIX.bios/gb_bios.bin: AmberELEC, EmuELEC, RetroDECK.dmg_boot.binanddmg_rom.binandgb_bios.bin: Lakka, RetroArch, RetroPie.GB_dmg.bin: BizHawk.gb/dmg_boot.binandgb/gb_bios.bin: RomM.gb/gb_bios.bin: Recalbox
Hashes, validation and source
- CRC32:
59c8598e,c2f5cc97,e6920754,ec8a83b9,53d0dd63,66cc6d94,908ba8de,783e69c2 - Validation: crc32
- Asked for by: libretro glue and emulator code, libretro port
- Source:
src/(libretro glue),platform/ libretro/ libretro.c:2104 src/(libretro glue),platform/ libretro/ libretro.c:2111-2116 src/gb/gb.c:50-63(emulator code, libretro port),src/gb/gb.c:605-628(emulator code, libretro port),src/gb/gb.c:661-665(emulator code, libretro port)
gbc_bios.bin optional in repo
- System: Nintendo Game Boy Color
- CGB boot ROM. Used for CGB, AGB (GBA in GB mode), and SCGB models.
- Size: 2.2 KB, CRC32 41884e46 and 5 more
- Collection copy:
bios/Nintendo/ Game Boy Color/ GBC_cgb.bin - Platforms:
gbc_bios.bin: Batocera, KNULLI, RetroBat, ROCKNIX.bios/gbc_bios.bin: AmberELEC, EmuELEC, RetroDECK.cgb_bios.binandcgb_boot.binandgbc_bios.bin: Lakka, RetroArch, RetroPie.GAMEBOY/boot1.rom: MiSTer FPGA.GBC_cgb.bin: BizHawk.gbc/cgb_boot.binandgbc/gbc_bios.bin: RomM.gbc/gbc_bios.bin: Recalbox
Hashes, validation and source
- CRC32:
41884e46,e8ef5318,e95dc95d,ffd6b0f1,570337ea,69236128 - Validation: crc32
- Asked for by: libretro glue and emulator code, libretro port
- Source:
src/(libretro glue),platform/ libretro/ libretro.c:2097 src/(libretro glue),platform/ libretro/ libretro.c:2111-2116 src/gb/gb.c:50-63(emulator code, libretro port),src/gb/gb.c:605-628(emulator code, libretro port),src/gb/gb.c:661-665(emulator code, libretro port)
sgb_bios.bin optional in repo
- System: Nintendo Super Game Boy
- SGB boot ROM. SGB2 maps here in standalone (src/gb/core.c:655) but falls to gb_bios.bin in libretro.
- Size: 256 B, CRC32 ec8a83b9 and 7 more
- Collection copy:
bios/Nintendo/ Game Boy/ GB_sgb.bin - Platforms:
SGB1.sfc/sgb1.boot.romandsgb.boot.romandsgb_bios.binandsgb_boot.bin: Lakka, RetroArch, RetroPie.bios/sgb_bios.bin: AmberELEC, EmuELEC.sgb_bios.binandsgb_boot.bin: Batocera, KNULLI.GB_sgb.bin: BizHawk.bios/sgb1.boot.romandbios/sgb_bios.bin: RetroDECK.sgb/sgb_bios.bin: Recalbox.sgb_boot.bin: RetroBat.super-gb/sgb1.boot.romandsuper-gb/sgb_bios.bin: RomM
Hashes, validation and source
- CRC32:
ec8a83b9,53d0dd63,59c8598e,c2f5cc97,e6920754,66cc6d94,908ba8de,783e69c2 - Validation: crc32
- Asked for by: libretro glue and emulator code, libretro port
- Source:
src/(libretro glue),platform/ libretro/ libretro.c:2100 src/(libretro glue),platform/ libretro/ libretro.c:2111-2116 src/gb/gb.c:50-63(emulator code, libretro port),src/gb/gb.c:605-628(emulator code, libretro port),src/gb/gb.c:661-665(emulator code, libretro port)
Next steps
Section titled “Next steps”- Get your files, for the setup you play on
- Every system, and the files each one needs
- When a game does not start