0.8 beta1 / 21-10-2019

mGBA

competition

mGBA is an open-source modern Game Boy Advance emulator under active development that also supports Game Boy and Game Boy Color games. As of yet, it's the most complete GBA emulation effort and is also available as a libretro core on RetroArch.

PerformancePerformance
AccuracyAccuracy
FeaturesFeatures

Most Recent Changes

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)