

Features:GBA: Support printing debug strings from inside a gameGBA: Better cheat type autodetectionGB: Tile viewerSprite viewerDebugging consoleImproved memory viewerGB: LR35902/GB-Z80 disassemblerConfiguration of gamepad hatsQt: Spanish translation (by Kevin López)Add option for whether rewinding restores save gamesQt: German translation (by Lothar Serra Mari)Savestates now contain any RTC override dataCommand line ability to override configuration valuesAdd option to allow preloading the entire ROM before runningGB: Video/audio channel enabling/disablingAdd option to lock video to integer scalingVideo log recording for testing and bug reportingLibrary viewDebugger: Segment/bank supportGB: Symbol table supportGB MBC: Add MBC1 multicart supportImplement keypad interruptsLR35902: WatchpointsMemory searchDebugger: Execution tracingBugfixes:LR35902: Fix core never exiting with certain event patternsGB Timer: Improve DIV reset behaviorGBA Memory: Improve initial skipped BIOS stateGBA BIOS: Implement BitUnPackARM7: Fix MLA/*MULL/*MLAL timingGBA: Fix multiboot ROM loadingLibretro: Fix saving in GB games (fixes #486)LR35902: Fix pc overflowing current region off-by-oneGB MBC: Fix ROM bank overflows getting set to bank 0Qt: Fix timing issues on high refresh rate monitorsGBA Savedata: Fix savedata unmasking (fixes #441)Util: Fix overflow when loading invalid UPS patchesTools: Fix recurring multiple times over the same libraryGBA I/O: Handle audio registers specially when deserializingUtil: Fix highest-fd socket not being returned by SocketAcceptQt: Fix linking after some windows have been closedGBA Video: Fix wrong palette on 256-color sprites in OBJWINWindows: Fix VDir.rewindSDL: Fix game crash checkSDL: Fix race condition with audio thread when startingGB: Fix flickering when screen is strobed quicklyFFmpeg: Fix overflow and general issues with audio encodingQt: Fix crash when changing audio settings after a game is closedGBA BIOS: Fix ArcTan sign in HLE BIOSGBA BIOS: Fix ArcTan2 sign in HLE BIOS (fixes #689)GBA Video: Don’t update background scanline params in mode 0 (fixes #377)Qt: Ensure CLI backend is attached when submitting commands (fixes #662)Core: Fix crash with rewind if savestates shrinkTest: Fix crash when loading invalid fileGBA Hardware: Fix crash if a savestate lies about game hardwareTest: Fix crash when fuzzing fails to load a fileGBA: Fix multiboot loading resulting in too small WRAMTest: Don’t rely on core for frames elapsedTest: Fix crash when loading invalid fileGBA Hardware: Fix crash if a savestate lies about game hardwareTest: Fix crash when fuzzing fails to load a fileQt: Disable “New multiplayer window” when MAX_GBAS is reached (fixes #107)LR35902: Fix decoding LD r, $imm and 0-valued immediates (fixes #735)GB: Fix STAT blockingGB MBC: Fix swapping carts not detect new MBCGB Timer: Fix DIV batching if TAC changesGB Video: Reset renderer when loading stateGBA BIOS: Fix INT_MIN/-1 crashGBA Savedata: Update and fix Sharkport importing (fixes #658)OpenGL: Fix some shaders causing offset graphicsQt: Fix game unpausing after frame advancing and refocusingGB Timer: Fix sub-M-cycle DIV reset timing and edge triggeringCore: Fix interrupting a thread while on the thread (fixes #692)Core: Fix directory sets crashing on close if base isn’t properly detachedMisc:SDL: Remove scancode key inputGBA Video: Clean up unused timersTest: Add a basic test suiteGBA Video: Allow multiple handles into the same tile cacheVFS: Call msync when syncing mapped dataGBA Video, GB Video: Colors are now fully scaledVFS: Allow truncating memory chunk VFilesDebugger: Modularize CLI debuggerCore: Clean up some thread state checksDebugger: Make building with debugging aspects optionalGBA Memory: Support for Mo Jie Qi Bing by Vast Fame (taizou)GBA Memory: Support reading/writing POSTFLGUtil: Add size counting to TableQt: Move last directory setting from qt.ini to config.ini3DS, PSP2, Wii: Last directory loaded is savedGB Audio: Simplify envelope codeGB Audio: Improve initial envelope samplesDebugger: Add functions for read- or write-only watchpointsGBA DMA: Refactor DMA out of memory.cGBA DMA: Move DMAs to using absolute timingAll: Add C++ header guardsGBA I/O: Clear JOYSTAT RECV flag when reading JOY_RECV registersGBA I/O: Set JOYSTAT TRANS flag when writing JOY_TRANS registersQt: Improved HiDPI supportQt: Expose configuration directoryFeature: Move game database from flatfile to SQLite3GB Audio: Start implementing “zombie” audio (fixes #389)VFS: Fix some minor VFile issues with FILEsCore: Add generic checksum functionFeature: Support ImageMagick 7All: Move time.h include to common.hCMake: Add ability to just print version stringQt: Merge “Save” and “OK” buttons in shader optionsSDL: Automatically map controllers when plugged inQt: Automatically load controller profile when plugged inOpenGL: Add xBR-lv2 shaderGBA, GB: ROM is now unloaded if a patch is appliedUtil: Add 8-bit PNG write supportQt: Rename “Resample video” option to “Bilinear filtering”GBA Video: Optimize when BLD* registers are written frequentlyCore: Cores can now have multiple sets of callbacksGBA: Ignore invalid opcodes used by the Wii U VC emulatorQt: Remove audio threadQt: Remove audio buffer sizing in AudioProcessorQtQt: Re-enable QtMultimedia on WindowsFFmpeg: Return false if a file fails to openFFmpeg: Force MP4 files to YUV420PQt: Make “Mute” able to be bound to a keyCore: Restore sleep callbackQt: Add .gb/.gbc files to the extension list in Info.plistFeature: Make -l option explicitCore: Ability to enumerate and modify video and audio channelsDebugger: Make attaching a backend idempotentVFS: Optimize expanding in-memory filesVFS: Add VFileFIFO for operating on circle buffersCore: Move rewind diffing to its own threadUtil: Tune patch-fast extent sizesQt: Relax hard dependency on OpenGLGB Video: Improved video timingsCore: List memory segments in the coreCore: Move savestate creation time to extdataDebugger: Add mDebuggerRunFrame convenience functionGBA Memory: Remove unused prefetch cruftGB: Trust ROM header for number of SRAM banks (fixes #726)Core: Config values can now be hexadecimalGB: Reset with initial state of DIV registerGB MBC: New MBC7 implementationQt: Better highlight active key in control bindingCore: Improved threading interrupted detection


























