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:
* All: Fix fullscreen config option being ignored
* ARM7: PSR mode bits should not get sign extended
* GB: Fix audio not being deinitialized
* GB: Fix crash when masking savedata
* GB: Properly initialize sramRealVf variable
* GB Audio: Fix serialization of channel 3 and NR52 properties
* GB Audio: Reset envelope timer when reseting sound channel
* GB MBC: Fix SRAM dangling pointer with RTC games
* GB MBC: Fix initializing MBC when no ROM is loaded
* GB Memory: Fix patching ROM bank 0
* GB Memory: Fix starting HDMAs during mode 0
* GB Memory: Fix HDMA5 value after DMA completes
* GB Video: Initialize LCDC in renderer
* GB Video: Hblank IRQs should mask LYC=LY IRQs
* GBA: Fix IRQs firing after already being cleared
* GBA: Only unhalt CPU if appropriate bit is set in IE
* GBA: Add savegame override for Crash Bandicoot 2
* GBA BIOS: Fix MidiKey2Freq BIOS reads
* GBA BIOS: Fix invalid CpuSet not setting BIOS prefetch
* GBA Cheats: Fix GameShark ROM patches
* GBA I/O: Mask off WAITCNT bits that cannot be written
* GBA Memory: Fix misaligned BIOS reads
* GBA Memory: Fix VCOUNT being writable
* GBA Video: Fix out of bounds sprite transforms
* Libretro: Fix unterminated SET_INPUT_DESCRIPTORS
* Libretro: Fix disabling BIOS
* Libretro: Fix Game Boy savestates and audio
* Qt: Fix changing resolution of software renderer
* Qt: Fix setting overrides
* Qt: Fix cut off tiles and alignment issues in tile viewer
* Qt: Only reset window dimensions when first shown
* Qt: Fix Qt Multimedia audio driver on big endian
* Qt: Fix Apply button for key and controller configurations
* VFS: Fix resizing memory chunks when not needed
* Windows: Fix Unicode directory handling

Misc:

* GB, GBA: Prevent loading null ROMs
* GB Audio: Initialize wave RAM to GBC values
* GB Memory: Reset ROM bank when loading a ROM
* PSP2: Improved controller rumble

https://mgba.io/