More actions
No edit summary |
|||
Line 65: | Line 65: | ||
'''0.10.2 2023/04/24''' | '''0.10.2 2023/04/24''' | ||
*Features: | *Features: | ||
** Scripting: New `input` API for getting raw keyboard/mouse/controller state | ** Scripting: New `input` API for getting raw keyboard/mouse/controller state. | ||
** Scripting: New `storage` API for saving data for a script, e.g. settings | ** Scripting: New `storage` API for saving data for a script, e.g. settings. | ||
** New unlicensed GB mappers: NT (older types 1 and 2), Li Cheng, GGB-81 | ** New unlicensed GB mappers: NT (older types 1 and 2), Li Cheng, GGB-81. | ||
** Debugger: Add range watchpoints | ** Debugger: Add range watchpoints. | ||
*Emulation fixes: | *Emulation fixes: | ||
** GB Serialize: Add missing Pocket Cam state to savestates | ** GB Serialize: Add missing Pocket Cam state to savestates. | ||
** GB Video: Implement DMG-style sprite ordering | ** GB Video: Implement DMG-style sprite ordering. | ||
** GBA Audio: Fix improperly deserializing GB audio registers (fixes mgba.io/i/2793) | ** GBA Audio: Fix improperly deserializing GB audio registers (fixes mgba.io/i/2793). | ||
** GBA Audio: Clear GB audio state when disabled | ** GBA Audio: Clear GB audio state when disabled. | ||
** GBA Memory: Make VRAM access stalls only apply to BG RAM | ** GBA Memory: Make VRAM access stalls only apply to BG RAM. | ||
** GBA Overrides: Fix saving in PMD:RRT (JP) (fixes mgba.io/i/2862) | ** GBA Overrides: Fix saving in PMD:RRT (JP) (fixes mgba.io/i/2862). | ||
** GBA SIO: Fix SIOCNT SI pin value after attaching player 2 (fixes mgba.io/i/2805) | ** GBA SIO: Fix SIOCNT SI pin value after attaching player 2 (fixes mgba.io/i/2805). | ||
** GBA SIO: Fix unconnected normal mode SIOCNT SI bit (fixes mgba.io/i/2810) | ** GBA SIO: Fix unconnected normal mode SIOCNT SI bit (fixes mgba.io/i/2810). | ||
** GBA SIO: Normal mode transfers with no clock should not finish (fixes mgba.io/i/2811) | ** GBA SIO: Normal mode transfers with no clock should not finish (fixes mgba.io/i/2811). | ||
** GBA Timers: Cascading timers don't tick when disabled (fixes mgba.io/i/2812) | ** GBA Timers: Cascading timers don't tick when disabled (fixes mgba.io/i/2812). | ||
** GBA Video: Disable BG target 1 blending when OBJ blending (fixes mgba.io/i/2722) | ** GBA Video: Disable BG target 1 blending when OBJ blending (fixes mgba.io/i/2722). | ||
** GBA Video: Fix interpolation issues with OpenGL renderer | ** GBA Video: Fix interpolation issues with OpenGL renderer. | ||
*Other fixes: | *Other fixes: | ||
** Core: Allow sending thread requests to a crashed core (fixes mgba.io/i/2784) | ** Core: Allow sending thread requests to a crashed core (fixes mgba.io/i/2784). | ||
** FFmpeg: Force lower sample rate for codecs not supporting high rates (fixes mgba.io/i/2869) | ** FFmpeg: Force lower sample rate for codecs not supporting high rates (fixes mgba.io/i/2869). | ||
** Qt: Fix crash when attempting to use OpenGL 2.1 to 3.1 (fixes mgba.io/i/2794) | ** Qt: Fix crash when attempting to use OpenGL 2.1 to 3.1 (fixes mgba.io/i/2794). | ||
** Qt: Disable sync while running scripts from main thread (fixes mgba.io/i/2738) | ** Qt: Disable sync while running scripts from main thread (fixes mgba.io/i/2738). | ||
** Qt: Fix savestate preview sizes with different scales (fixes mgba.io/i/2560) | ** Qt: Fix savestate preview sizes with different scales (fixes mgba.io/i/2560). | ||
** Qt: Properly cap number of attached players by platform (fixes mgba.io/i/2807) | ** Qt: Properly cap number of attached players by platform (fixes mgba.io/i/2807). | ||
** Qt: Disable attempted linking betwen incompatible platforms (fixes mgba.io/i/2702) | ** Qt: Disable attempted linking betwen incompatible platforms (fixes mgba.io/i/2702). | ||
** Qt: Fix modifier key names in shortcut editor (fixes mgba.io/i/2817) | ** Qt: Fix modifier key names in shortcut editor (fixes mgba.io/i/2817). | ||
** Qt: Fix a handful of edge cases with graphics viewers (fixes mgba.io/i/2827) | ** Qt: Fix a handful of edge cases with graphics viewers (fixes mgba.io/i/2827). | ||
** Qt: Fix full-buffer rewind | ** Qt: Fix full-buffer rewind. | ||
** Qt: Fix crash if loading a shader fails | ** Qt: Fix crash if loading a shader fails. | ||
** Qt: Fix black screen when starting with a game (fixes mgba.io/i/2781) | ** Qt: Fix black screen when starting with a game (fixes mgba.io/i/2781). | ||
** Qt: Fix OSD on modern macOS (fixes mgba.io/i/2736) | ** Qt: Fix OSD on modern macOS (fixes mgba.io/i/2736). | ||
** Qt: Fix checked state of mute menu option at load (fixes mgba.io/i/2701) | ** Qt: Fix checked state of mute menu option at load (fixes mgba.io/i/2701). | ||
** Scripting: Fix receiving packets for client sockets | ** Scripting: Fix receiving packets for client sockets. | ||
** Scripting: Fix empty receive calls returning unknown error on Windows | ** Scripting: Fix empty receive calls returning unknown error on Windows. | ||
** Scripting: Return proper callback ID from socket.add | ** Scripting: Return proper callback ID from socket.add. | ||
** Vita: Work around broken mktime implementation in Vita SDK (fixes mgba.io/i/2876) | ** Vita: Work around broken mktime implementation in Vita SDK (fixes mgba.io/i/2876). | ||
*Misc: | *Misc: | ||
** Core: Handle relative paths for saves, screenshots, etc consistently (fixes mgba.io/i/2826) | ** Core: Handle relative paths for saves, screenshots, etc consistently (fixes mgba.io/i/2826). | ||
** GB Serialize: Add missing savestate support for MBC6 and NT (newer) | ** GB Serialize: Add missing savestate support for MBC6 and NT (newer). | ||
** GBA: Improve detection of valid ELF ROMs | ** GBA: Improve detection of valid ELF ROMs. | ||
** Qt: Include wayland QPA in AppImage (fixes mgba.io/i/2796) | ** Qt: Include wayland QPA in AppImage (fixes mgba.io/i/2796). | ||
** Qt: Stop eating boolean action key events (fixes mgba.io/i/2636) | ** Qt: Stop eating boolean action key events (fixes mgba.io/i/2636). | ||
** Qt: Automatically change video file extension as appropriate | ** Qt: Automatically change video file extension as appropriate. | ||
** Qt: Swap P1 and other player's save if P1 loaded it first (closes mgba.io/i/2750) | ** Qt: Swap P1 and other player's save if P1 loaded it first (closes mgba.io/i/2750). | ||
** Scripting: Add `callbacks:oneshot` for single-call callbacks | ** Scripting: Add `callbacks:oneshot` for single-call callbacks. | ||
'''0.10.1 2023/01/10''' | '''0.10.1 2023/01/10''' | ||
Line 141: | Line 141: | ||
'''V0.10.0 2022/10/11''' | '''V0.10.0 2022/10/11''' | ||
* Preliminary Lua scripting support. | ** Preliminary Lua scripting support. | ||
* Presets for Game Boy palettes. | ** Presets for Game Boy palettes. | ||
* Add Super Game Boy palettes for original Game Boy games. | ** Add Super Game Boy palettes for original Game Boy games. | ||
* Tool for converting scanned pictures of e-Reader cards to raw dotcode data. | ** 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. | ** Options for muting when inactive, minimized, or for different players in multiplayer. | ||
* Cheat code support in homebrew ports. | ** Cheat code support in homebrew ports. | ||
* Acclerometer and gyro support for controllers on PC. | ** Acclerometer and gyro support for controllers on PC. | ||
* Support for combo "Super Game Boy Color" SGB + GBC ROM hacks. | ** Support for combo "Super Game Boy Color" SGB + GBC ROM hacks. | ||
* Improved support for HuC-3 mapper, including RTC. | ** Improved support for HuC-3 mapper, including RTC. | ||
* Support for 64 kiB SRAM saves used in some bootlegs. | ** Support for 64 kiB SRAM saves used in some bootlegs. | ||
* Discord Rich Presence now supports time elapsed. | ** Discord Rich Presence now supports time elapsed. | ||
* Additional scaling shaders. | ** Additional scaling shaders. | ||
* Support for GameShark Advance SP (.gsv) save file importing. | ** Support for GameShark Advance SP (.gsv) save file importing. | ||
* Support for multiple saves per game using .sa2, .sa3, etc. | ** Support for multiple saves per game using .sa2, .sa3, etc. | ||
* Support for GBX format Game Boy ROMs. | ** Support for GBX format Game Boy ROMs. | ||
* New unlicensed GB mappers: NT (newer type), Sachen (MMC1, MMC2). | ** New unlicensed GB mappers: NT (newer type), Sachen (MMC1, MMC2). | ||
*Emulation fixes: | |||
Emulation fixes: | ** ARM7: Fix unsigned multiply timing. | ||
* ARM7: Fix unsigned multiply timing. | ** GB: Copy logo from ROM if not running the BIOS intro (fixes mgba.io/i/2378). | ||
* GB: Copy logo from ROM if not running the BIOS intro (fixes mgba.io/i/2378). | ** GB: Fix HALT breaking M-cycle alignment (fixes mgba.io/i/250). | ||
* GB: Fix HALT breaking M-cycle alignment (fixes mgba.io/i/250). | ** GB Audio: Fix channel 1/2 reseting edge cases (fixes mgba.io/i/1925). | ||
* GB Audio: Fix channel 1/2 reseting edge cases (fixes mgba.io/i/1925). | ** GB Audio: Properly apply per-model audio differences. | ||
* GB Audio: Properly apply per-model audio differences. | ** GB Audio: Revamp channel rendering. | ||
* GB Audio: Revamp channel rendering. | ** GB Audio: Fix APU re-enable timing glitch. | ||
* GB Audio: Fix APU re-enable timing glitch. | ** GB I/O: Fix writing to WAVE RAM behavior (fixes mgba.io/i/1334). | ||
* GB I/O: Fix writing to WAVE RAM behavior (fixes mgba.io/i/1334). | ** GB MBC: Fix edge case with Pocket Cam register accesses (fixes mgba.io/i/2557). | ||
* GB MBC: Fix edge case with Pocket Cam register accesses (fixes mgba.io/i/2557). | ** GB Memory: Add cursory cartridge open bus emulation (fixes mgba.io/i/2032). | ||
* GB Memory: Add cursory cartridge open bus emulation (fixes mgba.io/i/2032). | ** GB Serialize: Fix loading MBC1 states that affect bank 0 (fixes mgba.io/i/2402). | ||
* GB Serialize: Fix loading MBC1 states that affect bank 0 (fixes mgba.io/i/2402). | ** GB SIO: Fix bidirectional transfer starting (fixes mgba.io/i/2290). | ||
* GB SIO: Fix bidirectional transfer starting (fixes mgba.io/i/2290). | ** GB Video: Draw SGB border pieces that overlap GB graphics (fixes mgba.io/i/1339). | ||
* GB Video: Draw SGB border pieces that overlap GB graphics (fixes mgba.io/i/1339). | ** GBA: Improve timing when not booting from BIOS. | ||
* GBA: Improve timing when not booting from BIOS. | ** GBA: Fix expected entry point for multiboot ELFs (fixes mgba.io/i/2450). | ||
* GBA: Fix expected entry point for multiboot ELFs (fixes mgba.io/i/2450). | ** GBA: Fix booting multiboot ROMs with no JOY entrypoint. | ||
* GBA: Fix booting multiboot ROMs with no JOY entrypoint. | ** GBA: Fix 1 MiB ROM mirroring to only mirror 4 times. | ||
* GBA: Fix 1 MiB ROM mirroring to only mirror 4 times. | ** GBA Audio: Adjust PSG sampling rate with SOUNDBIAS. | ||
* GBA Audio: Adjust PSG sampling rate with SOUNDBIAS. | ** GBA Audio: Sample FIFOs at SOUNDBIAS-set frequency. | ||
* GBA Audio: Sample FIFOs at SOUNDBIAS-set frequency. | ** GBA BIOS: Work around IRQ handling hiccup in Mario & Luigi (fixes mgba.io/i/1059). | ||
* GBA BIOS: Work around IRQ handling hiccup in Mario & Luigi (fixes mgba.io/i/1059). | ** GBA BIOS: Initial HLE timing estimation of UnLz77 functions (fixes mgba.io/i/2141). | ||
* GBA BIOS: Initial HLE timing estimation of UnLz77 functions (fixes mgba.io/i/2141). | ** GBA DMA: Fix DMA source direction bits being cleared (fixes mgba.io/i/2410). | ||
* GBA DMA: Fix DMA source direction bits being cleared (fixes mgba.io/i/2410). | ** GBA I/O: Redo internal key input, enabling edge-based key IRQs. | ||
* GBA I/O: Redo internal key input, enabling edge-based key IRQs. | ** GBA I/O: Disable open bus behavior on invalid register 06A. | ||
* GBA I/O: Disable open bus behavior on invalid register 06A. | ** GBA Memory: Fix misaligned 32-bit I/O loads (fixes mgba.io/i/2307). | ||
* GBA Memory: Fix misaligned 32-bit I/O loads (fixes mgba.io/i/2307). | ** GBA Video: Fix OpenGL rendering on M1 Macs. | ||
* GBA Video: Fix OpenGL rendering on M1 Macs. | ** GBA Video: Ignore horizontally off-screen sprite timing (fixes mgba.io/i/2391). | ||
* GBA Video: Ignore horizontally off-screen sprite timing (fixes mgba.io/i/2391). | ** GBA Video: Fix Hblank timing (fixes mgba.io/i/2131, mgba.io/i/2310). | ||
* GBA Video: Fix Hblank timing (fixes mgba.io/i/2131, mgba.io/i/2310). | ** GBA Video: Fix rare crash in modes 3-5. | ||
* GBA Video: Fix rare crash in modes 3-5. | ** GBA Video: Fix sprites with mid-frame palette changes in GL (fixes mgba.io/i/2476). | ||
* GBA Video: Fix sprites with mid-frame palette changes in GL (fixes mgba.io/i/2476). | ** GBA Video: Fix OBJ tile wrapping with 2D char mapping (fixes mgba.io/i/2443). | ||
* GBA Video: Fix OBJ tile wrapping with 2D char mapping (fixes mgba.io/i/2443). | ** GBA Video: Fix horizontal lines in GL when charbase is changed (fixes mgba.io/i/1631). | ||
* GBA Video: Fix horizontal lines in GL when charbase is changed (fixes mgba.io/i/1631). | ** GBA Video: Fix sprite layer priority updating in GL. | ||
* GBA Video: Fix sprite layer priority updating in GL. | *Other fixes: | ||
** ARM: Disassemble Thumb mov pseudo-instruction properly. | |||
Other fixes: | ** ARM: Disassemble ARM asr/lsr #32 properly. | ||
* ARM: Disassemble Thumb mov pseudo-instruction properly. | ** ARM: Disassemble ARM movs properly. | ||
* ARM: Disassemble ARM asr/lsr #32 properly. | ** Core: Don't attempt to restore rewind diffs past start of rewind. | ||
* ARM: Disassemble ARM movs properly. | ** Core: Fix the runloop resuming after a game has crashed (fixes mgba.io/i/2451). | ||
* Core: Don't attempt to restore rewind diffs past start of rewind. | ** Core: Fix crash if library can't be opened. | ||
* Core: Fix the runloop resuming after a game has crashed (fixes mgba.io/i/2451). | ** Debugger: Fix crash with extremely long CLI strings. | ||
* Core: Fix crash if library can't be opened. | ** Debugger: Fix multiple conditional watchpoints at the same address. | ||
* Debugger: Fix crash with extremely long CLI strings. | ** FFmpeg: Fix crash when encoding audio with some containers. | ||
* Debugger: Fix multiple conditional watchpoints at the same address. | ** FFmpeg: Fix GIF recording (fixes mgba.io/i/2393). | ||
* FFmpeg: Fix crash when encoding audio with some containers. | ** GB: Fix temporary saves. | ||
* FFmpeg: Fix GIF recording (fixes mgba.io/i/2393). | ** GB: Fix replacing the ROM crashing when accessing ROM base. | ||
* GB: Fix temporary saves. | ** GB: Don't try to map a 0-byte SRAM (fixes mgba.io/i/2668). | ||
* GB: Fix replacing the ROM crashing when accessing ROM base. | ** GB, GBA: Save writeback-pending masked saves on unload (fixes mgba.io/i/2396). | ||
* GB: Don't try to map a 0-byte SRAM (fixes mgba.io/i/2668). | ** mGUI: Fix FPS counter after closing menu. | ||
* GB, GBA: Save writeback-pending masked saves on unload (fixes mgba.io/i/2396). | ** Qt: Fix some hangs when using the debugger console. | ||
* mGUI: Fix FPS counter after closing menu. | ** Qt: Fix crash when clicking past last tile in viewer. | ||
* Qt: Fix some hangs when using the debugger console. | ** Qt: Fix preloading for ROM replacing. | ||
* Qt: Fix crash when clicking past last tile in viewer. | ** Qt: Fix screen not displaying on Wayland (fixes mgba.io/i/2190). | ||
* Qt: Fix preloading for ROM replacing. | ** Qt: Fix crash when selecting 256-color sprite in sprite view. | ||
* Qt: Fix screen not displaying on Wayland (fixes mgba.io/i/2190). | ** Qt: Fix coloration of swatches on styles with distinct frame backgrounds. | ||
* Qt: Fix crash when selecting 256-color sprite in sprite view. | ** VFS: Failed file mapping should return NULL on POSIX. | ||
* Qt: Fix coloration of swatches on styles with distinct frame backgrounds. | *Misc: | ||
* VFS: Failed file mapping should return NULL on POSIX. | ** Core: Suspend runloop when a core crashes. | ||
** Core: Add wallclock offset RTC type. | |||
Misc: | ** Debugger: Save and restore CLI history. | ||
* Core: Suspend runloop when a core crashes. | ** Debugger: GDB now works while the game is paused. | ||
* Core: Add wallclock offset RTC type. | ** Debugger: Add command to load external symbol file (fixes mgba.io/i/2480). | ||
* Debugger: Save and restore CLI history. | ** FFmpeg: Support dynamic audio sample rate. | ||
* Debugger: GDB now works while the game is paused. | ** GB: Support CGB0 boot ROM loading | ||
* Debugger: Add command to load external symbol file (fixes mgba.io/i/2480). | ** GB Audio: Increase sample rate. | ||
* FFmpeg: Support dynamic audio sample rate. | ** GB MBC: Filter out MBC errors when cartridge is yanked (fixes mgba.io/i/2488). | ||
* GB: Support CGB0 boot ROM loading | ** GB MBC: Partially implement TAMA5 RTC. | ||
* GB Audio: Increase sample rate. | ** GB Video: Add default SGB border. | ||
* GB MBC: Filter out MBC errors when cartridge is yanked (fixes mgba.io/i/2488). | ** GBA: Automatically skip BIOS if ROM has invalid logo. | ||
* GB MBC: Partially implement TAMA5 RTC. | ** GBA: Refine multiboot detection (fixes mgba.io/i/2192). | ||
* GB Video: Add default SGB border. | ** GBA Cheats: Implement "never" type codes (closes mgba.io/i/915). | ||
* GBA: Automatically skip BIOS if ROM has invalid logo. | ** GBA DMA: Enhanced logging (closes mgba.io/i/2454). | ||
* GBA: Refine multiboot detection (fixes mgba.io/i/2192). | ** GBA Memory: Implement adjustable EWRAM waitstates (closes mgba.io/i/1276). | ||
* GBA Cheats: Implement "never" type codes (closes mgba.io/i/915). | ** GBA Savedata: Store RTC data in savegames (closes mgba.io/i/240). | ||
* GBA DMA: Enhanced logging (closes mgba.io/i/2454). | ** GBA Video: Implement layer placement for OpenGL renderer (fixes mgba.io/i/1962). | ||
* GBA Memory: Implement adjustable EWRAM waitstates (closes mgba.io/i/1276). | ** GBA Video: Fix highlighting for sprites with mid-frame palette changes. | ||
* GBA Savedata: Store RTC data in savegames (closes mgba.io/i/240). | ** mGUI: Add margin to right-aligned menu text (fixes mgba.io/i/871). | ||
* GBA Video: Implement layer placement for OpenGL renderer (fixes mgba.io/i/1962). | ** mGUI: Autosave less frequently when fast-forwarding. | ||
* GBA Video: Fix highlighting for sprites with mid-frame palette changes. | ** Qt: Rearrange menus some. | ||
* mGUI: Add margin to right-aligned menu text (fixes mgba.io/i/871). | ** Qt: Clean up cheats dialog. | ||
* mGUI: Autosave less frequently when fast-forwarding. | ** Qt: Only set default controller bindings if loading fails (fixes mgba.io/i/799). | ||
* Qt: Rearrange menus some. | ** Qt: Save converter now supports importing GameShark Advance saves. | ||
* Qt: Clean up cheats dialog. | ** Qt: Save positions of multiplayer windows (closes mgba.io/i/2128). | ||
* Qt: Only set default controller bindings if loading fails (fixes mgba.io/i/799). | ** Qt: Add optional frame counter to OSD (closes mgba.io/i/1728). | ||
* Qt: Save converter now supports importing GameShark Advance saves. | ** Qt: Add optional emulation-related information on reset (closes mgba.io/i/1780). | ||
* Qt: Save positions of multiplayer windows (closes mgba.io/i/2128). | ** Qt: Add QOpenGLWidget cross-thread codepath for macOS (fixes mgba.io/i/1754). | ||
* Qt: Add optional frame counter to OSD (closes mgba.io/i/1728). | ** Qt: Enable -b for Boot BIOS menu option (fixes mgba.io/i/2074). | ||
* Qt: Add optional emulation-related information on reset (closes mgba.io/i/1780). | ** Qt: Add tile range selection to tile viewer (closes mgba.io/i/2455). | ||
* Qt: Add QOpenGLWidget cross-thread codepath for macOS (fixes mgba.io/i/1754). | ** Qt: Show warning if XQ audio is toggled while loaded (fixes mgba.io/i/2295). | ||
* Qt: Enable -b for Boot BIOS menu option (fixes mgba.io/i/2074). | ** Qt: Add e-Card passing to the command line (closes mgba.io/i/2474). | ||
* Qt: Add tile range selection to tile viewer (closes mgba.io/i/2455). | ** Qt: Boot both a multiboot image and ROM with CLI args (closes mgba.io/i/1941). | ||
* Qt: Show warning if XQ audio is toggled while loaded (fixes mgba.io/i/2295). | ** Qt: Improve cheat parsing (fixes mgba.io/i/2297). | ||
* Qt: Add e-Card passing to the command line (closes mgba.io/i/2474). | ** Qt: Change lossless setting to use WavPack audio. | ||
* Qt: Boot both a multiboot image and ROM with CLI args (closes mgba.io/i/1941). | ** Qt: Use FFmpeg to convert additional camera formats, if available. | ||
* Qt: Improve cheat parsing (fixes mgba.io/i/2297). | ** Qt: Resume crashed game when loading a save state. | ||
* Qt: Change lossless setting to use WavPack audio. | ** Qt: Include cheats in bug report. | ||
* Qt: Use FFmpeg to convert additional camera formats, if available. | ** SDL: Support exposing an axis directly as the gyro value (closes mgba.io/i/2531). | ||
* Qt: Resume crashed game when loading a save state. | ** Windows: Attach to console if present. | ||
* Qt: Include cheats in bug report. | ** VFS: Early return NULL if attempting to map 0 bytes from a file. | ||
* SDL: Support exposing an axis directly as the gyro value (closes mgba.io/i/2531). | ** Vita: Add bilinear filtering option (closes mgba.io/i/344). | ||
* 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 mgba.io/i/344). | |||
'''v9.3''' | '''v9.3''' | ||
Emulation fixes: | *Emulation fixes: | ||
* GB I/O: Fix incrementing SGB controller when P14 is low (fixes #2202). | ** 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). | ** GB Video: Render SGB border when unmasking with ATTR/PAL_SET (fixes #2261). | ||
* GBA SIO: Fix SI value for unattached MULTI mode. | ** 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: Fix backdrop color if DISPCNT is first set to 0 (fixes #2260). | ||
* GBA Video: Don’t iterate affine backgrounds when disabled. | ** GBA Video: Don’t iterate affine backgrounds when disabled. | ||
* GBA Video: Delay enabling backgrounds in bitmap modes (fixes #1668). | ** GBA Video: Delay enabling backgrounds in bitmap modes (fixes #1668). | ||
*Other fixes: | |||
Other fixes: | ** ARM Decoder: Fix decoding of lsl r0 (fixes #2349). | ||
* ARM Decoder: Fix decoding of lsl r0 (fixes #2349). | ** FFmpeg: Don’t attempt to use YUV 4:2:0 for lossless videos (fixes #2084). | ||
* FFmpeg: Don’t attempt to use YUV 4:2:0 for lossless videos (fixes #2084). | ** GB Video: Fix memory leak when reseting SGB games. | ||
* 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 out of bounds ROM accesses on patched ROMs smaller than 32 MiB. | ** GBA: Fix maximum tile ID in caching for 256-color modes. | ||
* GBA: Fix maximum tile ID in caching for 256-color modes. | ** GBA Video: Fix cache updating with proxy and GL renderers. | ||
* GBA Video: Fix cache updating with proxy and GL renderers. | ** Libretro: Fix crash when using Game Boy codes (fixes #2281). | ||
* Libretro: Fix crash when using Game Boy codes (fixes #2281). | ** mGUI: Fix crash if autosave file can’t be opened (fixes #2268). | ||
* mGUI: Fix crash if autosave file can’t be opened (fixes #2268). | ** Qt: Remove potentially deadlocking optimization. | ||
* Qt: Remove potentially deadlocking optimization. | ** Qt: Fix corrupted savestate and fatal error text. | ||
* Qt: Fix corrupted savestate and fatal error text. | ** Qt: Fix sprite compositing when sprite tiles go out of bounds (fixes #2348). | ||
* 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). | |||
Misc: | ** SDL: Use SDL_JoystickRumble where available. | ||
* GBA I/O: Update KEYINPUT in internal I/O memory (fixes #2235). | ** Wii: Add adjustable gyroscope settings (closes #2245). | ||
* SDL: Use SDL_JoystickRumble where available. | |||
* Wii: Add adjustable gyroscope settings (closes #2245). | |||
Full list of changes can be found from the [https://mgba.io official website]. | Full list of changes can be found from the [https://mgba.io official website]. |
Revision as of 08:56, 28 Mayıs 2023
mGBA | |
---|---|
General | |
Author | mgba-emu |
Type | Handheld |
Version | 0.10.2 |
License | MPL-2.0 |
Last Updated | 2023/04/24 |
Links | |
Download | |
Website | |
Source | |
Support Author | |
mGBA is an emulator for running Game Boy Advance games. It aims to be faster and more accurate than many existing Game Boy Advance emulators, as well as adding features that other emulators lack. It also supports Game Boy and Game Boy Color games.
mGBA is available on many platforms including Windows, Linux, macOS, PSVita, Nintendo 3DS, Switch and Wii.
Features
- Highly accurate Game Boy Advance hardware support.
- Game Boy/Game Boy Color hardware support.
- Fast emulation. Known to run at full speed even on low end hardware, such as netbooks.
- Qt and SDL ports for a heavy-weight and a light-weight frontend.
- Local (same computer) link cable support.
- Save type detection, even for flash memory size.
- Support for cartridges with motion sensors and rumble (only usable with game controllers).
- Real-time clock support, even without configuration.
- Solar sensor support for Boktai games.
- Game Boy Camera and Game Boy Printer support.
- A built-in BIOS implementation, and ability to load external BIOS files.
- Scripting support using Lua.
- Turbo/fast-forward support by holding Tab.
- Rewind by holding Backquote.
- Frameskip, configurable up to 10.
- Screenshot support.
- Cheat code support.
- 9 savestate slots. Savestates are also viewable as screenshots.
- Video, GIF, WebP, and APNG recording.
- e-Reader support.
- Remappable controls for both keyboards and gamepads.
- Loading from ZIP and 7z files.
- IPS, UPS and BPS patch support.
- Game debugging via a command-line interface and GDB remote support, compatible with Ghidra and IDA Pro.
- Configurable emulation rewinding.
- Support for loading and exporting GameShark and Action Replay snapshots.
- Cores available for RetroArch/Libretro and OpenEmu.
- Community-provided translations for several languages via Weblate.
- Many, many smaller things.
Installation
Place the .nro to the /switch/ folder on the SD card.
Screenshots
Media
Play the best GBA games for Nintendo Switch (TritonusRaven)
Changelog
0.10.2 2023/04/24
- Features:
- Scripting: New `input` API for getting raw keyboard/mouse/controller state.
- Scripting: New `storage` API for saving data for a script, e.g. settings.
- New unlicensed GB mappers: NT (older types 1 and 2), Li Cheng, GGB-81.
- Debugger: Add range watchpoints.
- Emulation fixes:
- GB Serialize: Add missing Pocket Cam state to savestates.
- GB Video: Implement DMG-style sprite ordering.
- GBA Audio: Fix improperly deserializing GB audio registers (fixes mgba.io/i/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 mgba.io/i/2862).
- GBA SIO: Fix SIOCNT SI pin value after attaching player 2 (fixes mgba.io/i/2805).
- GBA SIO: Fix unconnected normal mode SIOCNT SI bit (fixes mgba.io/i/2810).
- GBA SIO: Normal mode transfers with no clock should not finish (fixes mgba.io/i/2811).
- GBA Timers: Cascading timers don't tick when disabled (fixes mgba.io/i/2812).
- GBA Video: Disable BG target 1 blending when OBJ blending (fixes mgba.io/i/2722).
- GBA Video: Fix interpolation issues with OpenGL renderer.
- Other fixes:
- Core: Allow sending thread requests to a crashed core (fixes mgba.io/i/2784).
- FFmpeg: Force lower sample rate for codecs not supporting high rates (fixes mgba.io/i/2869).
- Qt: Fix crash when attempting to use OpenGL 2.1 to 3.1 (fixes mgba.io/i/2794).
- Qt: Disable sync while running scripts from main thread (fixes mgba.io/i/2738).
- Qt: Fix savestate preview sizes with different scales (fixes mgba.io/i/2560).
- Qt: Properly cap number of attached players by platform (fixes mgba.io/i/2807).
- Qt: Disable attempted linking betwen incompatible platforms (fixes mgba.io/i/2702).
- Qt: Fix modifier key names in shortcut editor (fixes mgba.io/i/2817).
- Qt: Fix a handful of edge cases with graphics viewers (fixes mgba.io/i/2827).
- Qt: Fix full-buffer rewind.
- Qt: Fix crash if loading a shader fails.
- Qt: Fix black screen when starting with a game (fixes mgba.io/i/2781).
- Qt: Fix OSD on modern macOS (fixes mgba.io/i/2736).
- Qt: Fix checked state of mute menu option at load (fixes mgba.io/i/2701).
- 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 mgba.io/i/2876).
- Misc:
- Core: Handle relative paths for saves, screenshots, etc consistently (fixes mgba.io/i/2826).
- GB Serialize: Add missing savestate support for MBC6 and NT (newer).
- GBA: Improve detection of valid ELF ROMs.
- Qt: Include wayland QPA in AppImage (fixes mgba.io/i/2796).
- Qt: Stop eating boolean action key events (fixes mgba.io/i/2636).
- Qt: Automatically change video file extension as appropriate.
- Qt: Swap P1 and other player's save if P1 loaded it first (closes mgba.io/i/2750).
- Scripting: Add `callbacks:oneshot` for single-call callbacks.
0.10.1 2023/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 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 BIOS: Include timing in degenerate ArcTan2 cases (fixes mgba.io/i/2763).
- 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).
V0.10.0 2022/10/11
- 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 mgba.io/i/2378).
- GB: Fix HALT breaking M-cycle alignment (fixes mgba.io/i/250).
- GB Audio: Fix channel 1/2 reseting edge cases (fixes mgba.io/i/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 mgba.io/i/1334).
- GB MBC: Fix edge case with Pocket Cam register accesses (fixes mgba.io/i/2557).
- GB Memory: Add cursory cartridge open bus emulation (fixes mgba.io/i/2032).
- GB Serialize: Fix loading MBC1 states that affect bank 0 (fixes mgba.io/i/2402).
- GB SIO: Fix bidirectional transfer starting (fixes mgba.io/i/2290).
- GB Video: Draw SGB border pieces that overlap GB graphics (fixes mgba.io/i/1339).
- GBA: Improve timing when not booting from BIOS.
- GBA: Fix expected entry point for multiboot ELFs (fixes mgba.io/i/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 mgba.io/i/1059).
- GBA BIOS: Initial HLE timing estimation of UnLz77 functions (fixes mgba.io/i/2141).
- GBA DMA: Fix DMA source direction bits being cleared (fixes mgba.io/i/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 mgba.io/i/2307).
- GBA Video: Fix OpenGL rendering on M1 Macs.
- GBA Video: Ignore horizontally off-screen sprite timing (fixes mgba.io/i/2391).
- GBA Video: Fix Hblank timing (fixes mgba.io/i/2131, mgba.io/i/2310).
- GBA Video: Fix rare crash in modes 3-5.
- GBA Video: Fix sprites with mid-frame palette changes in GL (fixes mgba.io/i/2476).
- GBA Video: Fix OBJ tile wrapping with 2D char mapping (fixes mgba.io/i/2443).
- GBA Video: Fix horizontal lines in GL when charbase is changed (fixes mgba.io/i/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 mgba.io/i/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 mgba.io/i/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 mgba.io/i/2668).
- GB, GBA: Save writeback-pending masked saves on unload (fixes mgba.io/i/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 mgba.io/i/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.
- Misc:
- 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 mgba.io/i/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 mgba.io/i/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 mgba.io/i/2192).
- GBA Cheats: Implement "never" type codes (closes mgba.io/i/915).
- GBA DMA: Enhanced logging (closes mgba.io/i/2454).
- GBA Memory: Implement adjustable EWRAM waitstates (closes mgba.io/i/1276).
- GBA Savedata: Store RTC data in savegames (closes mgba.io/i/240).
- GBA Video: Implement layer placement for OpenGL renderer (fixes mgba.io/i/1962).
- GBA Video: Fix highlighting for sprites with mid-frame palette changes.
- mGUI: Add margin to right-aligned menu text (fixes mgba.io/i/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 mgba.io/i/799).
- Qt: Save converter now supports importing GameShark Advance saves.
- Qt: Save positions of multiplayer windows (closes mgba.io/i/2128).
- Qt: Add optional frame counter to OSD (closes mgba.io/i/1728).
- Qt: Add optional emulation-related information on reset (closes mgba.io/i/1780).
- Qt: Add QOpenGLWidget cross-thread codepath for macOS (fixes mgba.io/i/1754).
- Qt: Enable -b for Boot BIOS menu option (fixes mgba.io/i/2074).
- Qt: Add tile range selection to tile viewer (closes mgba.io/i/2455).
- Qt: Show warning if XQ audio is toggled while loaded (fixes mgba.io/i/2295).
- Qt: Add e-Card passing to the command line (closes mgba.io/i/2474).
- Qt: Boot both a multiboot image and ROM with CLI args (closes mgba.io/i/1941).
- Qt: Improve cheat parsing (fixes mgba.io/i/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 mgba.io/i/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 mgba.io/i/344).
v9.3
- 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).
Full list of changes can be found from the official website.
External links
- Official website - https://mgba.io/
- GitHub - https://github.com/mgba-emu/mgba
- ForTheUsers - https://apps.fortheusers.org/switch/mGBA