mGBA is a Game Boy Advance emulator written in C. The project started in April 2013 with the goal of being fast enough to run on lower end hardware than other emulators support, without sacrificing accuracy or portability. Even in the initial version, games generally play without problems. It is loosely based on the previous GBA.js emulator, although very little of GBA.js can still be seen in mGBA.

mgba-logo

Changes:

Bugfixes:
– GB, GBA: Fix crashes when attempting to identify null VFiles
– GB, GBA: Fix sync to video with frameskip
– GB, GBA Savedata: Fix savestate-related save overwriting (fixes mgba.io/i/834)
– GB Audio: Fix NRx2 writes while active (fixes mgba.io/i/866)
– GB Core: Fix palette loading when loading a foreign config
– GB MBC: Pocket Cam memory should be accessible without enabling
– GB MBC: Fix SRAM sizes 4 and 5
– GB MBC: Fix RTC initialization (fixes mgba.io/i/825)
– GB MBC: Fix RTC loading when file size is off
– GB Memory: Initialize peripheral pointers
– GB Memory: Prevent accessing empty SRAM (fixes mgba.io/i/831)
– GB Memory: Fix HDMA count starting in mode 0 (fixes mgba.io/i/855)
– GB Memory: Actually load latch time from savestate
– GB Serialize: Fix deserializing video STAT
– GB Video: Fix 16-bit screenshots (fixes mgba.io/i/826)
– GB Video: Fix potential hang when ending mode 0
– GB Video: Fix read mode when enabling LCD
– GBA: Reset active region as needed when loading a ROM
– GBA: Fix keypad IRQs not firing when extra buttons are pressed
– GBA BIOS: Use core’s VRAM variable instead of renderer’s
– GBA Cheats: Fix PARv3 multiline blocks (fixes mgba.io/i/889)
– GBA I/O: Fix reading from a few invalid I/O registers (fixes mgba.io/i/876)
– GBA Savedata: Fix 512 byte EEPROM saving as 8kB (fixes mgba.io/i/877)
– GBA Savedata: Fix size of SRAM saves (fixes mgba.io/i/883)
– GBA Video: Fix broken sprite blending hack (fixes mgba.io/i/532)
– Python: Fix importing .gb or .gba before .core
– Qt: Fix command line debugger closing second game
– Qt: Fix LOG argument order
– Qt: Fix timezone issues with time overrides
– Qt: Fix sprite export pausing game indefinitely (fixes mgba.io/i/841)
– SDL: Fix potential race condition when pressing keys (fixes mgba.io/i/872)

Misc:
– CMake: Fix CPack dependencies for libpng 1.6
– GBA: Detect hardware for Pokémon FireRed ROM hacks
– GBA Cheats: Improve detection of raw cheats
– Qt: Don’t rebuild library view if style hasn’t changed
– Qt: Allow overrides to be saved before a game is loaded
– Qt: Hide mouse immediately when loading
– SDL: Fix 2.0.5 build on macOS under some circumstances
– VFS: Make VFile.truncate work growing files on PSV (fixes mgba.io/i/885)