After a long dry spell, a new release of mGBA, version 0.5.0, is available. This is a major feature release, and includes, among other features, Game Boy and Game Boy Color support. There are other enhancements and bugfixes across the board, and an extensive list follows after the cut.

Furthermore, if you enjoy using mGBA and wish to give back, there is now a list of ways to donate on the donations page, including the newly launched mGBA Patreon.

Features:

Game Boy support

Support for encrypted CodeBreaker GBA cheats

Emulation of Vast Fame protected GBA carts (taizou)

Tile viewer

Threaded rendering mode

Libretro: Memory map and achievement support (leiradel)

GUI: Add UI control remapping

GUI: Add fast-forward

Wii: 240p support

3DS: Adjustable screen darkening

Ability to temporarily load a savegame

Load specific files out of archives

Automatic BIOS detection

Bugfixes:

ARM7: Fix decoding of Thumb ADD (variants 5 and 6)

Debugger: Fix GDB breakpoints

GBA: Fix losing IRQs when CPSR I bit isn’t cleared

GBA: Fix filehandle leak with savegames

GBA: Timer 0 cannot be count up

GBA: Count up timers should not count themselves

GBA Memory: Fix mirror on non-overdumped Classic NES games

GBA Memory: Fix ldm {pc}

GBA Savedata: Fix savedata sync timer

GBA Savedata: Only unmap savedata if present

GBA Serialize: Savestates now properly store prefetch

GBA Video: WIN0/1 take priority over OBJWIN

GBA Video: Fix out-of-order OBJWIN

PSP2: Fix GPU crash while exiting

PSP2: Fix VSync

PSP2: Fix accelerometer range

PSP2: Actually load screen mode setting

PSP2: Fix gyroscope direction

PSP2: Delete threads after they return

PSP2: Fix mapping/unmapping from not at 0

Qt: Fix bug in software renderer scaling

Qt: Fix hanging key press after disabling autofire

Qt: Fix being unable to pause manually when using auto-pausing

SDL: Fix axes being mapped wrong

Util: Fix realloc semantics in utf16to8

Util: Fix inserting too many items into a hash table

VFS: Fix uninitialized varaible reading from 7z

VFS: Fix reading multiple files from a 7z archive

Wii: Fix framelimiting after a slowdown

Wii: Fix garbage flash at startup

Misc:

3DS: Use blip_add_delta_fast for a small speed improvement

3DS: Allow UTF-16 filenames

3DS: Port to using citro3D

3DS: Use system font for menus

3DS: Attempt to use Core 2 for threads

3DS: Adjustable filering

3DS: 3D banner

All: Add QUIET parameter to silence CMake

All: Faster memory read/write

ARM7: Support forcing Thumb mode via MSR

ARM7: Flush prefetch cache when loading CPSR via MSR

ARM7: Clean up instruction decoding for future expandability

Debugger: Support register and memory writes via GDB stub

Debugger: Add software breakpoint support to gdb

FFmpeg: Full support for libavcodec 56+

GBA: Better debug logging if event processing breaks

GBA Audio: Force audio DMAs to not increment destination

GBA BIOS: Use custom ArcTan, not relying on OS

GBA Hardware: Clean up dead code in GBP

GBA Memory: Optimize stalling behavior

GBA Memory: Optimize Load-/StoreMultiple

GBA Savedata: Add realistic timing for EEPROM

GBA Serialize: Savestates now store if CPU was halted

GBA Video: Remove old slow path fallback

GBA Video: Optimize sprite drawing

GBA Video: Optimize mode 0 rendering

GBA Video: Optimize compositing cases slightly

GUI: Screenshot dimensions are now passed through

GUI: Add back logging

GUI: Only reload config if manually saved

GUI: Increase scrolling speed

OpenGL: Log shader compilation failure

OpenGL: Add texSize uniform

Qt: Make -g flag work in Qt build

Qt: Simplify OpenGL context creation

Qt: Thread startup improvements

Qt: Make audio channel/video layer options shortcut mappable

Qt: Remove some C99isms from C++ code

Qt: Remove default autofire mappings

Qt: Make reseting when pasued frame-accurate

Qt: Rearchitect game closing codepath

PSP2: Use system font for menus

PSP2: Add rumble for PS TV

PSP2: Add fit-to-height screen mode

PSP2: Sync files per descriptor

PSP2: Allow UTF-8 filenames

PSP2: Screenshots are now saved into the Photo Gallery

PSP2: Stop underclocking when menuing

SDL: Increase default audio buffer size to 1024 samples

SDL: More responsive rumble

Util: Add Vector GetConstPointer

Util: Add rtrim

Util: Add endswith

VFS: Improve zip file detection

Wii: Add pixelated resample filter

Windows: Add native VDir support

Util: Add PRIz macro for libc versions that don’t support %z

Get it now in the Downloads section. Binaries are available for Windows, Ubuntu, OS X, Nintendo 3DS, Wii, and PlayStation Vita, and the source code is available for all other platforms.