mGBA 0.7 beta 1

Sep 24, 2018 Ė written by endrift

While itís been long enough since mGBA 0.6.0 came out that the release of mGBA 0.7.0 has seemed like it may never happen, Iím glad to say weíre finally reaching the end of mGBA 0.6ís time. Due to significant life changes, not the least of which is getting a new job with a long, tiring commute, Iíve not has as much time to do serious feature work. However, there have been plenty of changes, fixes, improvements under the hood. Though mGBA 0.7.0 is almost ready Iíd like to see a signficant wave of testing and bugfixes before I deem it stable. As such, mGBA 0.7 beta 1 is now available, and hopefully the release of mGBA 0.7.0 will be out within a week or two.

This time around the biggest areas of change are not new features, but rather significant improvements in existing areas. Please focus on these while testing and report any and all bugs on GitHub or email bugs@mgba.io.

Game Boy audio has been revamped. It may not sound correct in many cases and narrowing down which cases are reliably broken will help fix them.
New Game Boy peripherals are supported, including the Camera, Printer, and Super Game Boy. Additionally, several new mappers have partial support.
Debugging tools are improved, including a map viewer, conditional breakpoints, and symbol loading.
There are now translations for Italian and French that are not well reviewed and partially incomplete.
Switch support is brand new and very young. Itís very likely to be full of bugs.
The following changes were made between 0.6.3 and 0.7 beta 1:

Features:

ELF support
Game Boy Camera support
Qt: Set default Game Boy colors
Game Boy Printer support
Super Game Boy support
Customizable autofire speed
Ability to set default Game Boy model
Map viewer
Automatic cheat loading and saving
GameShark and Action Replay button support
AGBPrint support
Debugger: Conditional breakpoints and watchpoints
Ability to select GB/GBC/SGB BIOS on console ports
Optional automatic state saving/loading
Access to ur0 and uma0 partitions on the Vita
Partial support for MBC6, MMM01, TAMA and HuC-1 GB mappers
GBA: ARMIPS/A22i-style and ELF symbol table support
Initial Switch port



Bugfixes:

GB Audio: Make audio unsigned with bias (fixes #749)
GB Serialize: Fix audio state loading
GB Video: Fix dot clock timing being slightly wrong
Qt: Fix GL display when loading a game from CLI (fixes #843)
ARM: Fix MSR when T bit is set
GB Serialize: Fix game title check
GB: Revamp IRQ handling based on new information
GBA Video: Donít mask out high bits of BLDY (fixes #899)
GB Video: Fix loading states while in mode 3
GBA DMA: Fix invalid DMA reads (fixes #142)
GBA Video: Add delay when enabling BGs (fixes #744, #752)
GB Timer: Minor accuracy improvements
GB Audio: Clock frame events on DIV
GBA Timer: Fix timers sometimes being late (fixes #1012)
GBA Hardware: Fix RTC overriding light sensor (fixes #1069)
GBA Savedata: Fix savedata modified time updating when read-only
GB Video: Fix enabling window when LY > WY (fixes #409)
GBA Video: Start timing mid-scanline when skipping BIOS
Core: Fix audio sync breaking when interrupted
Qt: Improve FPS timer stability
GBA Serialize: Fix loading channel 3 volume (fixes #1107)
GBA SIO: Fix unconnected SIOCNT for multi mode (fixes #1105)
GBA BIOS: Fix BitUnPack final byte
GB I/O: DMA register is R/W
GB Video: Fix SCX timing
GBA Video: Improve sprite cycle counting (fixes #1126)
GB, GBA Savedata: Fix savestate loading overwriting saves on reset
GBA Video: Make layer disabling work consistently
GB: Fix IRQ disabling on the same T-cycle as an assert
Core: Fix ordering events when scheduling during events
GBA: Reset WAITCNT properly
GBA Serialize: Fix loading states in Hblank
PSP2: Fix more issues causing poor audio
GBA Memory: Fix Vast Fame support (taizou) (fixes #1170)
GB, GBA Savedata: Fix unmasking savedata crash
GBA DMA: Fix temporal sorting of DMAs of different priorities
FFmpeg: Fix encoding audio/video queue issues
GB Serialize: Fix IRQ pending/EI pending confusion
GB MBC: Improve multicart detection heuristic (fixes #117)
GB Audio: Fix channel 3 reset value
GB Audio: Fix channel 4 initial LFSR
GB, GBA Video: Donít call finishFrame twice in thread proxy
GB Audio: Fix channel 1, 2 and 4 reset timing
Util: Fix wrapping edge cases in RingFIFO
Misc:

GBA Timer: Use global cycles for timers
GBA: Extend oddly-sized ROMs to full address space (fixes #722)
All: Make FIXED_ROM_BUFFER an option instead of 3DS-only
Qt: Redo GameController into multiple classes
Test: Restructure test suite into multiple executables
Python: Integrate tests from cinema test suite
Util: Donít build crc32 if the function already exists
GBA: Implement display start DMAs
Qt: Prevent window from being created off-screen
Qt: Add option to disable FPS display
GBA: Improve multiboot image detection
GB MBC: Remove erroneous bank 0 wrapping
GBA Cheats: Allow multiple ROM patches in the same slot
GB: Skip BIOS option now works
Libretro: Add frameskip option
GBA Memory: 64 MiB GBA Video cartridge support
PSP2: Use system enter key by default
3DS: Remove deprecated CSND interface
Qt: Options to mess around with layer placement
GBA Savedata: Remove ability to disable realistic timing
Qt: Add load alternate save option
GB Audio: Improved audio quality
GB, GBA Audio: Increase max audio volume
GB: Fix VRAM/palette locking (fixes #1109)
GB Video: Darken colors in GBA mode
FFmpeg: Support libswresample (fixes #1120, Bug 123)
FFmpeg: Support lossless h.264 encoding
Feature: Added loading savestates from command line
Qt: Allow pausing game at load (fixes #1129)
Wii: Move audio handling to callbacks (fixes #803)
Qt: Clean up FPS target UI (fixes #436)
Core: Remove broken option for whether rewinding restores save games
FFmpeg: Support lossless VP9 encoding
mGUI: Add fast forward toggle

https://mgba.io