A new release of mGBA, version 0.4.0, is available. This is a major feature release. Some of the more prominent features include official ports to the Nintendo 3DS, Wii, and PlayStation Vita, shader support, an official OpenEmu core for OS X users, and controller hotplugging. An extensive list follows after the cut.

Features:

  • Officially supported ports for the Nintendo 3DS, Wii, and PlayStation Vita
  • I/O viewer
  • Booting of multiboot images
  • Customization of GIF recording
  • Libretro: Cheat code support
  • Support for GLSL shaders
  • ROM information view
  • Support for VBA-style cheat codes
  • Savestates now store creation timestamps
  • Key autofire
  • Libretro: Allow blocking opposing directional input
  • OpenEmu core for OS X
  • Libretro: Settings for using BIOS and skipping intro
  • Libretro: Customizable idle loop removal
  • Implemented cycle counting for sprite rendering
  • Cleaner, unified settings window
  • Added a setting for pausing when the emulator is not in focus
  • Customizable paths for save games, save states, screenshots and patches
  • Controller hotplugging
  • Ability to store save games and active cheats within savestates

Bugfixes:

  • ARM7: Fix sign of unaligned LDRSH
  • ARM7: Fix decoding of some ARM ALU instructions with shifters
  • Debugger: Fix watchpoints in gdb
  • GBA: Fix warnings when creating and loading savestates
  • GBA: Fix Iridion II savetype
  • GBA BIOS: Fix misaligned CpuSet
  • GBA Cheats: Fix cheats setting the Action Replay version
  • GBA Hardware: Fix GPIO on big endian
  • GBA Memory: Fix DMA register writing behavior
  • GBA Memory: Fix DMAs triggering two cycles early
  • Libretro: Fix aspect ratio
  • Qt: Fix some potential crashes with the gamepad mapping
  • Qt: Fix keys being mapped incorrectly when loading configuration file
  • Util: Fix PowerPC PNG read/write pixel order
  • Util: Fix excessive memory allocation when decoding a PNG
  • VFS: Fix VFileReadline and remove _vfdReadline

Misc:

  • All: Improved PowerPC support
  • All: Fix some undefined behavior warnings
  • ARM7: Combine shifter-immediate and shifter-register functions to reduce binary size
  • Debugger: Convert breakpoints and watchpoints from linked-lists to vectors
  • GBA: Implement bad I/O register loading
  • GBA: Allow jumping to OAM and palette RAM
  • GBA BIOS: Finish implementing RegisterRamReset
  • GBA Config: Add “override” layer for better one-time configuration
  • GBA Input: Consolidate GBA_KEY_NONE and GBA_NO_MAPPING
  • GBA Memory: Use a dynamically sized mask for ROM memory
  • GBA Memory: Implement several unimplemented memory access types

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.