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

and 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.