After far too long in development, mGBA 0.8.0 is almost ready for release. While there are still a few missing features left to finish, I didn’t want to hold up 0.8 that much longer. While I’m working on those last features I’m hoping a final push for testing will help flatten out any more serious issues before the final release of mGBA 0.8.0, so I’m releasing the first beta for mGBA 0.8.

Some notable new features of mGBA 0.8 include:

A high-resolution hardware renderer for enhanced GBA graphics

Discord Rich Presence support

BattleChip Gate emulation

There are also several smaller features, some incomplete features, new debugger capabilities, and more. While mGBA 0.8 beta 1 is relatively well tested for a beta, I encourage heavy testing before deeming this a stable release, while I work on the last few features. The final release of mGBA 0.8.0 will hopefully be within the next few weeks.

The following changes were made between 0.7.3 and 0.8 beta 1:

Features:

Improved logging configuration

One-Player BattleChip/Progress/Beast Link Gate support

Add Game Boy Color palettes for original Game Boy games

Debugger: Add unary operators and memory dereferencing

GB: Expose platform information to CLI debugger

Support Discord Rich Presence

Debugger: Add tracing to file

Enhanced map viewer, supporting bitmapped GBA modes and more displayed info

OpenGL renderer with high-resolution upscaling support

Experimental high level “XQ” audio for most GBA games

Interframe blending for games that use flicker effects

Frame inspector for dissecting and debugging rendering

Switch: Option to use built-in brightness sensor for Boktai

Ports: Ability to enable or disable all SGB features (closes #1205)

Ports: Ability to crop SGB borders off screen (closes #1204)

Cheats: Add support for loading Libretro-style cht files

GBA Cheats: Add support for loading EZ Flash-style cht files

Support for unlicensed Wisdom Tree Game Boy mapper

Qt: Add export button for tile view (closes #1507)

Qt: Add recent game list clearing (closes #1380)

GB: Yanking gamepak now supported

Qt: Memory range dumping (closes #1298)

Emulation fixes:

GB: Fix using boot ROM with MMM01 games

GB Audio: Only reset channel 3 sample in DMG mode

GB Audio: Sample inactive channels (fixes #1455, mgba.io/i/1456)

GB Audio: Fix channel 4 volume (fixes #1529)

GB I/O: Filter IE top bits properly (fixes #1329)

GB Memory: Better emulate 0xFEA0 region on DMG, MGB and AGB

GB Video: Delay LYC STAT check (fixes #1331)

GB Video: Fix window being enabled mid-scanline (fixes #1328)

GB Video: Fix mode 0 window edge case (fixes #1519)

GB Video: Fix color scaling in AGB mode

GBA: All IRQs have 7 cycle delay (fixes #539, mgba.io/i/1208)

GBA: Reset now reloads multiboot ROMs

GBA BIOS: Fix multiboot entry point (fixes Magic Floor)

Other fixes:

Core: Improved lockstep driver reliability (Le Hoang Quyen)

FFmpeg: Drain recording buffers

GB: Fix reading ROM immediately after unmapping BIOS

GB SIO: Fix lockstep failing games aren’t reloaded

GBA Cheats: Fix value incrementing in CB slide codes (fixes #1501)

Libretro: Fix crash changing allowing opposing directions (hhromic)

Qt: Fix some Qt display driver race conditions

Qt: Fix menu bar staying hidden in full screen (fixes #317)

Qt: Only show emulator restart warning once per settings saving

Qt: Fix LibraryController initialization (fixes #1324)

Shaders: Fix gba-color shader resolution (fixes #1435)

Switch: Fix audio when video rate desyncs (fixes #1532)

Misc:

CMake: Don’t use libzip on embedded platforms (fixes #1527)

Core: Add keysRead callback

Core: Create game-related paths if they don’t exist (fixes #1446)

Core: Add more memory search ops (closes #1510)

Debugger: Make tracing compatible with breakpoints/watchpoints

Debugger: Print breakpoint/watchpoint number when inserting

Feature: Switch from ImageMagick to FFmpeg for GIF generation

FFmpeg: Support audio-only recording

GB Memory: Support running from blocked memory

GBA BIOS: Add timings for HLE BIOS math functions (fixes #1396)

GBA BIOS: Fix clobbered registers in CpuSet (fixes #1531)

GBA Savedata: EEPROM performance fixes

GBA Savedata: Automatically map 1Mbit Flash files as 1Mbit Flash

Debugger: Add breakpoint and watchpoint listing

LR35902: Support PC-relative opcode decoding

mGUI: Remember name and position of last loaded game

OpenGL: Only resize textures when needed

Qt: Don’t unload ROM immediately if it crashes

Qt: Support switching webcams

Qt: Cap window size on start to monitor size

Qt: Open a message box for Qt frontend errors

Qt: Increase maximum magnifications and scaling

Qt: Add native FPS button to settings view

Qt: Improve sync code

Qt: Add option to pause on minimizing window (closes #1379)

Qt: Scale pixel color values to full range (fixes #1511)

Qt: Remove What’s This icon from dialogs

Qt: Printer quality of life improvements (fixes #1540)

Qt: Add copy and QoL improvements to graphic views (closes #1541)

Qt: Show list of all sprites in sprite view

Qt: Add option for disabling OSD messages

Qt, OpenGL: Disable integer scaling for dimensions that don’t fit

Switch: Dynamic display resizing

Switch: Support file associations

Vita: L2/R2 and L3/R3 can now be mapped on PSTV (fixes #1292)

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