mGBA to emulator Nintendo GameBoy Advance autorstwa Jeffreya Pfau napisany w C, więc powinien w miarę dobrze radzić sobie również na słabszych platformach. Nowa wersja, jak wspomina autor, to zestaw poprawek, które mają poprawić stabilność i kompatybilność aplikacji z emulowaną konsolą.
Dla chcących śledzić na bieżąco rozwój tego emulatora dobrą wiadomością będzie informacja, iż projekt ma swoje "nocne" kompilacje - binarki znajdziecie tutaj
A new release of mGBA, version 0.7.1, is available. This version is a bugfix release, which contains many stability and accuracy fixes. Notably, the new Switch port no longer crashes on second load and the dreaded save bug in the Vita port is now fixed. An extensive list of changes follows after the cut.
Bugfixes:
- 3DS: Work around menu freezing (fixes #1294)
- GB: Fix crash when accessing SRAM if no save loaded and cartridge has no SRAM
- GB Serialize: Fix loading states with negative pixel x (fixes #1293)
- GB, GBA Serialize: Fix loading two states in a row
- GBA: Fix video timing when skipping BIOS (fixes #1318)
- GBA DMA: Fix Display Start DMAs
- GBA DMA: Fix DMA start/end timing
- GBA DMA: Fix invalid DMA handling (fixes #1301)
- GBA Memory: Fix a few AGBPrint crashes
- GBA Memory: Fix OOB ROM reads showing up as AGBPrint memory
- GBA SIO: Prevent writing read-only multiplayer bits
- GBA Video: Fix enabling layers in non-tile modes (fixes #1317)
- Python: Fix crash when deleting files owned by library
- Python: Make sure GB link object isn’t GC’d before GB object
- PSP2: Fix file descriptors dying on suspend (fixes #1123)
- Qt: Fix tile and sprite views not always displaying at first
- Qt: Fix audio context holding onto closed game controller
- Qt: Fix color picking in sprite view (fixes #1307)
- Qt: Fix window icon on X11
- Qt: Fix quick load recent accidentally saving (fixes #1309)
- Switch: Fix final cleanup (fixes #1283)
- Switch: Fix gyroscope orientation (fixes #1300)
Misc:
- GBA Video: Improve sprite cycle counting (fixes #1274)
- Qt: Updated Italian translation (by Vecna)
mGBA 0.10.3 / Jan 7, 2024
A new release of mGBA, version 0.10.3 is available. This version is a bugfix release, which contains several important fixes. Important fixes include multiplayer windows always going too fast, and an issue with the updater that prevented switching to the development branch. An extensive list of changes follows after the cut.
Emulation fixes:
- ARM: Remove obsolete force-alignment in bx pc (fixes #2964)
- ARM: Fake bpkt instruction should take no cycles (fixes #2551)
- GB Audio: Fix channels 1/2 staying muted if restarted after long silence
- GB Audio: Fix channel 1 restarting if sweep applies after stop (fixes #2965)
- GB Audio: Fix restarting envelope when writing to register (fixes #3067)
- GB Audio: Improve “zombie mode” emulation in CGB mode (fixes #2029)
- GB I/O: Read back proper SVBK value after writing 0 (fixes #2921)
- GB SIO: Disabling SIO should cancel pending transfers (fixes #2537)
- GBA Audio: Fix sample timing drifting when changing sample interval
- GBA Audio: Fix initial channel 3 wave RAM (fixes #2947)
- GBA Audio: Fix sample position issues when rate changes (fixes #3006)
- GBA GPIO: Fix tilt scale and orientation (fixes #2703)
- GBA BIOS: Fix clobbering registers with word-sized CpuSet
- GBA SIO: Fix normal mode SI/SO semantics (fixes #2925)
Other fixes:
- GB: Fix applying a patch that changes the cartridge mapper (fixes #3077)
- GBA Savedata: Fix crash when resizing flash save games for RTC data
- mGUI: Fix cases where an older save state screenshot would be shown (fixes #2183)
- Qt: Re-enable sync for multiplayer windows that aren’t connected (fixes #2974)
- Qt: Fix mute settings not being loaded on setting screen (fixes #2990)
- Qt: Fix screen freezing on macOS after closing save state window (fixes #2885)
- Vita: Fix camera setting not appearing (fixes #3012)
Misc:
- mGUI: Persist fast forwarding after closing menu (fixes #2414)
- Qt: Add exporting of SAV + RTC saves from Save Converter to strip RTC data
- VFS: Use anonymousMemoryMap for large 7z allocations (fixes #3013)
0.10.2: (2023-04-23)
Emulation fixes:
- GBA Audio: Fix improperly deserializing GB audio registers (fixes #2793)
- GBA Audio: Clear GB audio state when disabled
- GBA Memory: Make VRAM access stalls only apply to BG RAM
- GBA Overrides: Fix saving in PMD:RRT (JP) (fixes #2862)
- GBA SIO: Fix SIOCNT SI pin value after attaching player 2 (fixes #2805)
- GBA SIO: Fix unconnected normal mode SIOCNT SI bit (fixes #2810)
- GBA SIO: Normal mode transfers with no clock should not finish (fixes #2811)
- GBA Timers: Cascading timers don’t tick when disabled (fixes #2812)
- GBA Video: Fix interpolation issues with OpenGL renderer
Other fixes:
- Core: Allow sending thread requests to a crashed core (fixes #2784)
- FFmpeg: Force lower sample rate for codecs not supporting high rates (fixes #2869)
- Qt: Fix crash when attempting to use OpenGL 2.1 to 3.1 (fixes #2794)
- Qt: Disable sync while running scripts from main thread (fixes #2738)
- Qt: Properly cap number of attached players by platform (fixes #2807)
- Qt: Disable attempted linking betwen incompatible platforms (fixes #2702)
- Qt: Fix modifier key names in shortcut editor (fixes #2817)
- Qt: Fix a handful of edge cases with graphics viewers (fixes #2827)
- Qt: Fix full-buffer rewind
- Qt: Fix crash if loading a shader fails
- Qt: Fix black screen when starting with a game (fixes #2781)
- Qt: Fix OSD on modern macOS (fixes #2736)
- Qt: Fix checked state of mute menu option at load (fixes #2701)
- Qt: Remove OpenGL proxy thread and override SwapInterval directly instead
- Scripting: Fix receiving packets for client sockets
- Scripting: Fix empty receive calls returning unknown error on Windows
- Scripting: Return proper callback ID from socket.add
- Vita: Work around broken mktime implementation in Vita SDK (fixes #2876)
Misc:
- Qt: Include wayland QPA in AppImage (fixes #2796)
- Qt: Stop eating boolean action key events (fixes #2636)
- Qt: Automatically change video file extension as appropriate
- Qt: Swap P1 and other player’s save if P1 loaded it first (closes #2750)
0.10.1: (2022-01-10)
Emulation fixes:
- GB Audio: Fix channels 1/2 not playing when resetting volume (fixes mgba.io/i/2614)
- GB Audio: Fix channel 3 volume being changed between samples (fixes mgba.io/i/1896)
- GB Audio: Fix up boot sequence
- GB Audio: Fix updating channels other than 2 when writing NR5x
- GB BIOS: Include timing in degenerate ArcTan2 cases (fixes mgba.io/i/2763)
- GB Memory: Actually, HDMAs should start when LCD is off (fixes mgba.io/i/2662)
- GB Serialize: Don't write BGP/OBP when loading SCGB state (fixes mgba.io/i/2694)
- GB SIO: Further fix bidirectional transfer starting
- GBA: Fix resetting key IRQ state (fixes mgba.io/i/2716)
- GBA Video: Ignore disabled backgrounds as OBJ blend target (fixes mgba.io/i/2489)
Other fixes:
- GBA: Fix forceskip BIOS logic for multiboot ROMs (fixes mgba.io/i/2753)
- GBA Cheats: Fix issues detecting unencrypted cheats (fixes mgba.io/i/2724)
- Qt: Manually split filename to avoid overzealous splitting (fixes mgba.io/i/2681)
- Qt: Fix scanning specific e-Reader dotcodes (fixes mgba.io/i/2693)
- Qt: Don't re-enable sync if GBA link modes aren't the same (fixes mgba.io/i/2044)
- Qt: Improve handling of multiplayer syncing (fixes mgba.io/i/2720)
- Qt: Fix initializing update revision info
- Qt: Redo stable branch detection heuristic (fixes mgba.io/i/2679)
- Res: Fix species name location in Ruby/Sapphire revs 1/2 (fixes mgba.io/i/2685)
- VFS: Fix minizip write returning 0 on success instead of size
Misc:
- macOS: Add category to plist (closes mgba.io/i/2691)
- macOS: Fix modern build with libepoxy (fixes mgba.io/i/2700)
- Qt: Keep track of current palette preset name (fixes mgba.io/i/2680)
- Qt: Move OpenGL proxy onto its own thread (fixes mgba.io/i/2493)
mGBA 0.10.0 Dec 17, 2021
Features
- Preliminary Lua scripting support
- Presets for Game Boy palettes
- Add Super Game Boy palettes for original Game Boy games
- Tool for converting scanned pictures of e-Reader cards to raw dotcode data
- Options for muting when inactive, minimized, or for different players in multiplayer
- Cheat code support in homebrew ports
- Acclerometer and gyro support for controllers on PC
- Support for combo “Super Game Boy Color” SGB + GBC ROM hacks
- Improved support for HuC-3 mapper, including RTC
- Support for 64 kiB SRAM saves used in some bootlegs
- Discord Rich Presence now supports time elapsed
- Additional scaling shaders
- Support for GameShark Advance SP (.gsv) save file importing
- Support for multiple saves per game using .sa2, .sa3, etc.
- Support for GBX format Game Boy ROMs
- New unlicensed GB mappers: NT (newer type), Sachen (MMC1, MMC2)
Emulation fixes
- ARM7: Fix unsigned multiply timing
- GB: Copy logo from ROM if not running the BIOS intro (fixes #2378)
- GB: Fix HALT breaking M-cycle alignment (fixes #250)
- GB Audio: Fix channel 1/2 reseting edge cases (fixes #1925)
- GB Audio: Properly apply per-model audio differences
- GB Audio: Revamp channel rendering
- GB Audio: Fix APU re-enable timing glitch
- GB I/O: Fix writing to WAVE RAM behavior (fixes #1334)
- GB MBC: Fix edge case with Pocket Cam register accesses (fixes #2557)
- GB Memory: Add cursory cartridge open bus emulation (fixes #2032)
- GB Serialize: Fix loading MBC1 states that affect bank 0 (fixes #2402)
- GB SIO: Fix bidirectional transfer starting (fixes #2290)
- GB Video: Draw SGB border pieces that overlap GB graphics (fixes #1339)
- GBA: Improve timing when not booting from BIOS
- GBA: Fix expected entry point for multiboot ELFs (fixes #2450)
- GBA: Fix booting multiboot ROMs with no JOY entrypoint
- GBA: Fix 1 MiB ROM mirroring to only mirror 4 times
- GBA Audio: Adjust PSG sampling rate with SOUNDBIAS
- GBA Audio: Sample FIFOs at SOUNDBIAS-set frequency
- GBA BIOS: Work around IRQ handling hiccup in Mario & Luigi (fixes #1059)
- GBA BIOS: Initial HLE timing estimation of UnLz77 functions (fixes #2141)
- GBA DMA: Fix DMA source direction bits being cleared (fixes #2410)
- GBA I/O: Redo internal key input, enabling edge-based key IRQs
- GBA I/O: Disable open bus behavior on invalid register 06A
- GBA Memory: Fix misaligned 32-bit I/O loads (fixes #2307)
- GBA Video: Fix OpenGL rendering on M1 Macs
- GBA Video: Ignore horizontally off-screen sprite timing (fixes #2391)
- GBA Video: Fix Hblank timing (fixes #2131, #2310)
- GBA Video: Fix rare crash in modes 3-5
- GBA Video: Fix sprites with mid-frame palette changes in GL (fixes #2476)
- GBA Video: Fix OBJ tile wrapping with 2D char mapping (fixes #2443)
- GBA Video: Fix horizontal lines in GL when charbase is changed (fixes #1631)
- GBA Video: Fix sprite layer priority updating in GL
Other fixes
- ARM: Disassemble Thumb mov pseudo-instruction properly
- ARM: Disassemble ARM asr/lsr #32 properly
- ARM: Disassemble ARM movs properly
- Core: Don’t attempt to restore rewind diffs past start of rewind
- Core: Fix the runloop resuming after a game has crashed (fixes #2451)
- Core: Fix crash if library can’t be opened
- Debugger: Fix crash with extremely long CLI strings
- Debugger: Fix multiple conditional watchpoints at the same address
- FFmpeg: Fix crash when encoding audio with some containers
- FFmpeg: Fix GIF recording (fixes #2393)
- GB: Fix temporary saves
- GB: Fix replacing the ROM crashing when accessing ROM base
- GB: Don’t try to map a 0-byte SRAM (fixes #2668)
- GB, GBA: Save writeback-pending masked saves on unload (fixes #2396)
- mGUI: Fix FPS counter after closing menu
- Qt: Fix some hangs when using the debugger console
- Qt: Fix crash when clicking past last tile in viewer
- Qt: Fix preloading for ROM replacing
- Qt: Fix screen not displaying on Wayland (fixes #2190)
- Qt: Fix crash when selecting 256-color sprite in sprite view
- Qt: Fix coloration of swatches on styles with distinct frame backgrounds
- VFS: Failed file mapping should return NULL on POSIX
Miscellaneous
- Core: Suspend runloop when a core crashes
- Core: Add wallclock offset RTC type
- Debugger: Save and restore CLI history
- Debugger: GDB now works while the game is paused
- Debugger: Add command to load external symbol file (fixes #2480)
- FFmpeg: Support dynamic audio sample rate
- GB: Support CGB0 boot ROM loading
- GB Audio: Increase sample rate
- GB MBC: Filter out MBC errors when cartridge is yanked (fixes #2488)
- GB MBC: Partially implement TAMA5 RTC
- GB Video: Add default SGB border
- GBA: Automatically skip BIOS if ROM has invalid logo
- GBA: Refine multiboot detection (fixes #2192)
- GBA Cheats: Implement “never” type codes (closes #915)
- GBA DMA: Enhanced logging (closes #2454)
- GBA Memory: Implement adjustable EWRAM waitstates (closes #1276)
- GBA Savedata: Store RTC data in savegames (closes #240)
- GBA Video: Implement layer placement for OpenGL renderer (fixes #1962)
- GBA Video: Fix highlighting for sprites with mid-frame palette changes
- mGUI: Add margin to right-aligned menu text (fixes #871)
- mGUI: Autosave less frequently when fast-forwarding
- Qt: Rearrange menus some
- Qt: Clean up cheats dialog
- Qt: Only set default controller bindings if loading fails (fixes #799)
- Qt: Save converter now supports importing GameShark Advance saves
- Qt: Save positions of multiplayer windows (closes #2128)
- Qt: Add optional frame counter to OSD (closes #1728)
- Qt: Add optional emulation-related information on reset (closes #1780)
- Qt: Add QOpenGLWidget cross-thread codepath for macOS (fixes #1754)
- Qt: Enable -b for Boot BIOS menu option (fixes #2074)
- Qt: Add tile range selection to tile viewer (closes #2455)
- Qt: Show warning if XQ audio is toggled while loaded (fixes #2295)
- Qt: Add e-Card passing to the command line (closes #2474)
- Qt: Boot both a multiboot image and ROM with CLI args (closes #1941)
- Qt: Improve cheat parsing (fixes #2297)
- Qt: Change lossless setting to use WavPack audio
- Qt: Use FFmpeg to convert additional camera formats, if available
- Qt: Resume crashed game when loading a save state
- Qt: Include cheats in bug report
- SDL: Support exposing an axis directly as the gyro value (closes #2531)
- Windows: Attach to console if present
- VFS: Early return NULL if attempting to map 0 bytes from a file
- Vita: Add bilinear filtering option (closes #344)
A new release of mGBA, version 0.9.3 is available. This version is a bugfix release, which contains many important fixes. Importantly, random freezing with the OpenGL display driver, mostly when using fast forward, which had only partially been fixed in 0.9.2, should now be properly fixed. An extensive list of changes follows after the cut.
Emulation fixes:
- GB I/O: Fix incrementing SGB controller when P14 is low (fixes #2202)
- GB Video: Render SGB border when unmasking with ATTR/PAL_SET (fixes #2261)
- GBA SIO: Fix SI value for unattached MULTI mode
- GBA Video: Fix backdrop color if DISPCNT is first set to 0 (fixes #2260)
- GBA Video: Don’t iterate affine backgrounds when disabled
- GBA Video: Delay enabling backgrounds in bitmap modes (fixes #1668)
Other fixes:
- ARM Decoder: Fix decoding of lsl r0 (fixes #2349)
- FFmpeg: Don’t attempt to use YUV 4:2:0 for lossless videos (fixes #2084)
- GB Video: Fix memory leak when reseting SGB games
- GBA: Fix out of bounds ROM accesses on patched ROMs smaller than 32 MiB
- GBA: Fix maximum tile ID in caching for 256-color modes
- GBA Video: Fix cache updating with proxy and GL renderers
- Libretro: Fix crash when using Game Boy codes (fixes #2281)
- mGUI: Fix crash if autosave file can’t be opened (fixes #2268)
- Qt: Remove potentially deadlocking optimization
- Qt: Fix corrupted savestate and fatal error text
- Qt: Fix sprite compositing when sprite tiles go out of bounds (fixes #2348)
Misc:
- GBA I/O: Update KEYINPUT in internal I/O memory (fixes #2235)
- SDL: Use SDL_JoystickRumble where available
- Wii: Add adjustable gyroscope settings (closes #2245)
mGBA 0.9.2 Jul 10, 2021
Emulation fixes:
- GB Video: Clear VRAM on reset (fixes #2152)
- GBA SIO: Add missing NORMAL8 implementation bits (fixes #2172)
- GBA SIO: Fix missing interrupt on an unattached NORMAL transfer
- GBA Memory: Fix prefetch mask when swapping modes within a region
- GBA Serialize: Fix loading audio enable bit late (fixes #2230)
- GBA Video: Revert scanline latching changes (fixes #2153, #2149)
Other fixes:
- 3DS: Fix disabling “wide” mode on 2DS (fixes #2167)
- ARM Debugger: Fix disassembly alignment (fixes #2204)
- Core: Fix memory leak in opening games from the library
- Core: Fix memory searches for relative values (fixes #2135)
- Core: Fix portable mode on macOS
- GB Audio: Fix audio channel 4 being slow to deserialize
- GB Core: Fix GBC colors setting breaking default model overrides (fixes #2161)
- mGUI: Cache save state screenshot validity in state menu (fixes #2005)
- Qt: Fix infrequent deadlock when using sync to video
- Qt: Fix applying savetype-only overrides
- Qt: Fix crash in sprite view for partially out-of-bounds sprites (fixes #2165)
- Qt: Fix having to press controller buttons twice for menu items (fixes #2143)
- Qt: Redo sensor binding to be less fragile
- Qt: Reuse timer when rescheduling missing frames (fixes #2236)
- Qt: Fix bounded fast forward with enhancement OpenGL renderer
- Util: Fix loading UPS patches that affect the last byte of the file
Misc:
- Util: Improve speed of UPS patch loading
mGBA 0.9.1 April 18, 2021
A new release of mGBA, version 0.9.1, is available. This version is a bugfix release, which contains many important fixes for bugs not caught before 0.9.0 was released. Importantly, fixes for save states affecting both GBA and GBC, the OpenGL renderer lagging when fast-forwarding, and improved detection of Pokémon ROM hacks. An extensive list of changes follows after the cut.
Emulation fixes:
- ARM: Fix LDM^ with empty rlist (fixes #2127)
- Core: Fix first event scheduling after loading savestate
- GB Serialize: Fix switching speed modes when loading a state (fixes #2097)
- GB: Fix skipping BIOS
- GBA Memory: Fix loading Thumb savestates when in ARM mode
- GBA Video: Fix window start on modes 3-5 with mosaic (fixes #1690)
- GBA Video: Fix mode 3-5 overflow with mosaic (fixes #1691)
Other fixes:
- GBA: Fix non-USA 1.0 FireRed misdetecting as a ROM hack (fixes #2100)
- GBA: Fix crash when ROM loading fails
- GBA e-Reader: Fix bitmap short strip scanning
- GBA Video: Fix mode 5 frame 1 caching (fixes #2075)
- GBA Video: Don’t attempt to copy invalid registers when switching renderer
- Qt: Fix crash when switching from high-resolution OpenGL renderer to software
- Qt: Fix OpenGL renderer lagging behind when fast-forwarding (fixes #2094)
- Qt: Fix smudged window icon on Windows
- Qt: Fix saving settings enabling camera when camera name changes (fixes #2125)
- Qt: Fix frames getting backlogged (fixes #2122)
- Qt: Restore maximized state when starting (fixes #487)
Misc:
- Core: Truncate preloading ROMs that slightly exceed max size (fixes #2093)
- GBA: Default-enable VBA bug compat for Ruby and Emerald ROM hacks
- GBA Memory: Log GPIO writes on non-GPIO carts as Pak Hardware instead of Memory
- Qt: Add ROM filename and size to bug reporter
- Qt: Improve handling of disabling VBA bug compat mode (fixes #2129)
mGBA 0.8.4 Oct 29, 2020
A new release of mGBA, version 0.8.4, is available. This version is a bugfix release, which contains many stability and accuracy fixes. Notably, an issue in the 3DS version that would lead to the 3DS crashing when exiting the emulator, and an issue that would lead mGBA to appearing in a language other than English by default on macOS despite the system language being set to English, have been fixed. The previously mentioned bug with Advance Wars is still present in 0.8.4. It has also been discovered to affect Final Fantasy I. This can be worked around by using a dump of the official BIOS, or using a development build, also available on the download page, which has the bug fixed. An extensive list of changes follows after the cut.
Emulation fixes:
- GB Audio: Fix initial sweep state
- GB Audio: Fix deserializing audio channels 2 and 3
- GB Audio: Fix deserializing while audio was disabled (fixes #1305)
- GB Video: Fix drawing background when window is force-disabled by frontend
- GB, GBA Video: Copy disable flags when drawing scanlines in proxy when not blocking
- GBA Audio: Fix deserializing SOUNDCNT_L
- GBA Audio: Fix stereo in XQ audio
- GBA Audio: Fix volume/mute in XQ audio (fixes #1864)
- GBA Hardware: Fix GB Player detection on big endian platforms
- GBA Video: Invalidate map cache when modifying BGCNT (fixes #1846)
- GBA Video: Don’t draw sprites using unmapped VRAM in GL renderer (fixes #1865)
- GBA Video: Fix rare regression blending semitransparent sprites (fixes #1876)
- GBA Video: Do not affect OBJ pixel priority when writing OBJWIN (fixes #1890)
- GBA Video: Fix deferred blending when OBJWIN matches window (fixes #1905)
- GBA Video: Fix mode 4 transparency in OpenGL (fixes #1907)
Other fixes:
- 3DS: Redo video sync to be more precise
- 3DS: Fix crash with libctru 2.0 when exiting
- ARM Decoder: Fix decoding pre-indexed writeback instructions (fixes #1915)
- Core: Fix reported ROM size when a fixed buffer size is used
- Core: Fix memory leak loading ELF files
- GBA: Disable more checks when loading GS save with checks disabled (fixes #1851)
- GBA: Fix endianness issues in renderer proxy
- GBA Core: Fix memory leak when loading symbols
- GBA Serialize: Ensure program counter is aligned when loading
- Qt: Add dummy English translation file (fixes #1469)
- Qt: Fix Battle Chip view not displaying chips on some DPI settings
- Qt: Fix camera image being upside-down sometimes (fixes #829 again)
- Qt: Fix drawing on macOS break when using OpenGL (fixes #1899)
- Qt: Fix stride changing when toggling SGB borders (fixes #1898)
- Qt: Fix aliasing on background logo (fixes #1886)
- mGUI: Fix closing down a game if an exit is signalled
- mGUI: Fix cycling through config setting states with accept button
- mVL: Fix injecting accidentally draining non-injection buffer
- VFS: Fix directory node listing on some filesystems
Misc:
- GBA Video: Improve speed of window texture generation on AMD
- Vita: Clear both buffers when loading a game
0.8.3: (2020-08-03)
Emulation fixes:
- ARM: Fix LDM^ writeback to user-mode register
- ARM: Fix LDM^ {pc} differences (fixes mgba.io/i/1698)
- ARM: Fix edge case with Thumb SBC flags (fixes mgba.io/i/1818)
- GB MBC: Fix MBC1 RAM enable bit selection
- GB MBC: Fix MBC2 bit selection
- GB Memory: Fix OAM DMA from top 8 kB
- GB Video: Always initialize palette
- GBA Savedata: Fix potential corruption when loading a 1Mbit flash save
- GBA Video: Fix invalid read in mode 4 mosaic
- GBA Video: Fix color of disabled screen
- SM83: Fix flags on little endian PowerPC
Other fixes:
- 3DS: Fix garbage on borders of scaled screens
- All: Correct format strings for some numbers on Windows (fixes mgba.io/i/1794)
- All: Correct more format strings on Windows (fixes mgba.io/i/1817)
- ARM: Fix decoder detection of branches with ALU and LDR instrctions
- CMake: Fix build with libzip 1.7
- CMake: Add missing dllexports.h file to dev installation
- GB Core: Fix extracting SRAM when none is present
- GBA: Fix leak if attempting to load BIOS multiple times
- GBA Memory: Fix instability on Wii when using AGBPrint
- GBA Savedata: Fix extracting save when not yet configured in-game
- Qt: Fix file handle leak on opening an invalid ROM
- Qt: Fix Italian RTC translation (fixes mgba.io/i/1798)
- Qt: Add missing option for Wisdom Tree in overrides list
- Qt: Fix stability regression on AMD drivers (fixes mgba.io/i/1791)
- Util: Fix crash if PNG header fails to write
- Vita: Fix flickering when using frameskip (fixes mgba.io/i/1822)
- Wii: Fix pixelated filtering on interframe blending (fixes mgba.io/i/1830)
Misc:
- FFmpeg: Use range coder for FFV1 to reduce output size
- Qt: Add per-page scrolling to memory view (fixes mgba.io/i/1795)
- Qt: Add setting to display ROM filename in title (closes mgba.io/i/1784)
0.8.2: (2020-06-14)
Emulation fixes:
- ARM: Fix timing on Thumb shift instructions
- GB: Fix GBC game registers after skipping BIOS
- GB MBC: Support 4MB MBC30 ROMs (fixes mgba.io/i/1713)
- GB Video: Fix BGPS value after skipping BIOS (fixes mgba.io/i/1717)
- GBA: Add missing RTC overrides for Legendz games
- GBA BIOS: Reset renderer when RegisterRamReset called (fixes mgba.io/i/1756)
- GBA SIO: Fix Multiplayer busy bit
- GBA SIO: Fix double-unloading active driver
- GBA Timers: Fix deserializing count-up timers
- GBA Video: Fix mosaic objects drawing past the end (fixes mgba.io/i/1702)
- GBA Video: Fix disabling OBJWIN in GL renderer (fixes mgba.io/i/1759)
- GBA Video: Add missing parts of 256-color mode 0 mosaic (fixes mgba.io/i/1701)
- GBA Video: Fix double-size OBJ wrapping in GL renderer (fixes mgba.io/i/1712)
- GBA Video: Simplify sprite cycle counting (fixes mgba.io/i/1279)
- GBA Video: Fix sprite/backdrop blending regression
Other fixes:
- 3DS: Fix framelimiter on newer citro3d (fixes mgba.io/i/1771)
- ARM: Fix disassembling of several S-type instructions (fixes mgba.io/i/1778)
- ARM Debugger: Clear low bit on breakpoint addresses (fixes mgba.io/i/1764)
- CMake: Always use devkitPro toolchain when applicable (fixes mgba.io/i/1755)
- Core: Fix ELF loading regression (fixes mgba.io/i/1669)
- Core: Fix crash modifying hash table entry (fixes mgba.io/i/1673)
- GB Video: Fix some cases where SGB border doesn't draw to multi-buffers
- GBA: Reject incorrectly sized BIOSes
- GBA: Break infinite loop for 0-frame mVLs (fixes mgba.io/i/1723)
- Qt: Fix OpenGL 2.1 support (fixes mgba.io/i/1678)
- Qt: Fix unmapping zipped ROM (fixes mgba.io/i/1777)
Misc:
- 3DS: Clean up legacy initialization (fixes mgba.io/i/1768)
- GBA Serialize: Only flunk BIOS check if official BIOS was expected
- Qt: Disable Replace ROM option when no game loaded
- Qt: Defer texture updates until frame is drawn (fixes mgba.io/i/1590)
- Qt: Set icon for Discord Rich Presence
- Qt: Show a warning when save file can't be opened
mGBA 0.8.1 Feb 16, 2020
A new release of mGBA, version 0.8.1, is available. This version is a bugfix release, which contains many stability and accuracy fixes. Notably, many Qt frontend bugs have been fixed, and the SDL version was updated. An extensive list of changes follows after the cut.
Emulation fixes:
- GB Serialize: Fix timing bug loading channel 4 timing
- GBA: Fix multiboot entry point while skipping BIOS
- GBA BIOS: Fix undefined instruction HLE behavior
- GBA DMA: Fix invalid audio DMA parameters
- GBA Memory: Misaligned SRAM writes are ignored
- GBA Serialize: Fix serializing DMA transfer register
- GBA Serialize: Fix audio DMA timing deserialization
- GBA Video: Fix OAM not invalidating after reset (fixes #1630)
- GBA Video: Fix backdrop blending on lines without sprites (fixes #1647)
- GBA Video: Fix OpenGL sprite flag priority
Other fixes:
- Core: Fix race condition initializing thread proxy
- Core: Fix integer overflow in ELF loading
- FFmpeg: Fix crash when -strict -2 is needed for vcodec or container
- FFmpeg: Disallow recording video with no audio nor video
- GBA: Automatically skip BIOS for multiboot ROMs
- Qt: Only dynamically reset video scale if a game is running
- Qt: Fix race condition with proxied video events
- Qt: Fix color selection in asset view (fixes #1648)
- Qt: Fix missing OSD messages
- Qt: Fix crash unloading shaders
- Qt: Fix toggled actions on gamepads (fixes #1650)
- Qt: Fix extraneous dialog (fixes #1654)
- Qt: Fix window title not updating after shutting down game
- Qt: Fix GIF view not allowing manual filename entry
- Qt: Fix non-GB build (fixes #1664)
- Qt: Fix pausing Qt Multimedia audio (fixes #1643)
- Qt: Fix invalid names for modifier keys (fixes #525)
- SDL: Refresh stale pointers after adding a joystick (fixes #1622)
- Util: Fix crash reading invalid ELFs
- VFS: Fix handle leak when double-mapping (fixes #1659)
Misc:
- FFmpeg: Add more presets
- Qt: Fix non-SDL build (fixes #1656)
- SDL: Use DirectSound audio driver by default on Windows
- Switch: Make OpenGL scale adjustable while running
mGBA 0.8.0 Jan 21, 2020
A little late (okay, a lot late), mGBA 0.8.0 is finally available as a stable release. This is a major feature release and includes some highly anticipated features. Notably, the high-resolution OpenGL renderer for GBA games, BattleChip Gate support, interframe blending, and much more. Additionally, it includes over 50 bug fixes and hundreds of other changes. A preview of the features follows after the cut, along with a full list of changes.
Changes from 0.7.3
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)
Miscellaneous
- 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
- 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
- SM83: Support PC-relative opcode decoding
- Switch: Dynamic display resizing
- Switch: Support file associations
- Vita: L2/R2 and L3/R3 can now be mapped on PSTV (fixes #1292)
Changes from 0.8 beta 1
Emulation fixes
- ARM: Fix STR writeback pipeline stage
- ARM: Partially fix LDM/STM writeback with empty register list
- ARM: Fix stepping when events are pending
- GBA DMA: Fix case where DMAs could get misaligned (fixes #1092)
- GBA Memory: Fix open bus from IWRAM (fixes #1575)
- GBA Timers: Improve timer startup emulation
- GBA Video: Fix OpenGL renderer 512x512 backgrounds (fixes #1572)
- GBA Video: Fix BLDY for semitransparent sprite on non-target-2 backgrounds
- GBA Video: Fix effects blending improperly in some non-last windows
- GBA Video: Copy higher priority target 1 flag
Other fixes
- 3DS: Fix screen darkening (fixes #1562)
- Core: Fix uninitialized memory issues with graphics caches
- Core: Return null for out of bounds cached tile VRAM querying
- GBA Video: Fix OpenGL fragment data binding
- GBA Video: Fix mosaic in modes 1-5 in OpenGL (fixes #1620)
- Debugger: Fix tracing skipping instructions (fixes #1614)
- OpenGL: Only invalidate texture if dimensions change (fixes #1612)
- Qt: Fix fast forward mute being reset (fixes #1574)
- Qt: Fix scrollbar arrows in memory view (fixes #1558)
- Qt: Fix several cases where shader selections don’t get saved
- Qt: Fix division by zero error in invalid TilePainter state
- Qt: Fix “restart needed” dialog after first config (fixes #1601)
- Qt: Fix undesired screen filtering when paused (fixes #1602)
- Qt: Fix sprite view using wrong base address (fixes #1603)
- Qt: Fix inability to clear default keybindings
- Qt: Release held actions if they get rebound
- Qt: Fix crash double-clicking menus in shortcut settings (fixes #1627)
- Qt: Fix record A/V window not updating resolution (fixes #1626)
- Vita: Fix analog controls (fixes #1554)
- Wii: Fix game fast-forwarding after slowing down
- Wii: Improve audio buffering (fixes #1617)
Miscellaneous
- GB Memory: Support manual SRAM editing (fixes #1580)
- GBA: Trim non-movie ROMs to 32 MiB if applicable
- GBA Audio: Redo channel 4 batching for GBA only
- GBA I/O: Stop logging several harmless invalid register reads
- GBA Video: Changing OpenGL scaling no longer requires restart
- Debugger: Separate aliases from main commands
- Debugger: Print break-/watchpoint ID when breaking in CLI
- Debugger: Minor interface cleanup
- SDL: Use controller GUID instead of name
- SM83: Rename LR35902 to SM83
- Tools: Allow using threaded renderer in perf.py
- Tools: Clean up unused argument in mgba-perf
Gunstar Future Heroes (2005, Sega)
mGBA 0.7.3: (2019-09-15)
Emulation fixes:
- GB: Fix savedata initialization (fixes mgba.io/i/1473, mgba.io/i/1478)
- GB: Fix SGB controller incrementing (fixes mgba.io/i/1104)
- - GB Audio: Improve channel 4 supersampling
- GB Printer: Reset printer buffer index after printing
- GB Audio: Deschedule channel 3 when disabled (fixes mgba.io/i/1463)
- GB Audio: Deschedule channel 1 when disabled by sweep (fixes mgba.io/i/1467)
- GB Video: Increment BCPS/OCPS even in mode 3 (fixes mgba.io/i/1462)
- GBA Memory: Fix STM to VRAM (fixes mgba.io/i/1430)
- GBA Memory: Fix STM/LDM to invalid VRAM
- GBA Video: Fix wrapped sprite mosaic clamping (fixes mgba.io/i/1432)
- GBA Audio: Fix channel 4 aliasing (fixes mgba.io/i/1265)
Other fixes:
- Core: Fix crashes if core directories aren't set
- Core: Fix crash when exiting game with cheats loaded
- GBA: Set up GPIO mapping on null and ELF ROM regions (fixes mgba.io/i/1481)
- GBA Cheats: Fix PARv3 Thumb hooks
- GBA Cheats: Fix value incrementing in CB slide codes (fixes mgba.io/i/1501)
- Qt: Fix FPS target maxing out at 59.727 (fixes mgba.io/i/1421)
- Qt: Cap audio buffer size to 8192 (fixes mgba.io/i/1433)
- Qt: Fix race conditions initializing GDB stub
- Qt: Improve cheat view UX
- Libretro: Fix crash changing allowing opposing directions (hhromic)
- mGUI: Fix crash if last loaded ROM directory disappears (fixes mgba.io/i/1466)
- Switch: Fix threading-related crash on second launch
Misc:
- Qt: Make mute menu option also toggle fast-forward mute (fixes mgba.io/i/1424)
- Qt: Show error message if file failed to load