Emulation fixes:

ARM: Fix timing on Thumb shift instructions
GB: Fix GBC game registers after skipping BIOS
GB MBC: Support 4MB MBC30 ROMs (fixes #1713)
GB Video: Fix BGPS value after skipping BIOS (fixes #1717)
GBA: Add missing RTC overrides for Legendz games
GBA BIOS: Reset renderer when RegisterRamReset called (fixes #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 #1702)
GBA Video: Fix disabling OBJWIN in GL renderer (fixes #1759)
GBA Video: Add missing parts of 256-color mode 0 mosaic (fixes #1701)
GBA Video: Fix double-size OBJ wrapping in GL renderer (fixes #1712)
GBA Video: Simplify sprite cycle counting (fixes #1279)
GBA Video: Fix sprite/backdrop blending regression

Other fixes:

3DS: Fix framelimiter on newer citro3d (fixes #1771)
ARM: Fix disassembling of several S-type instructions (fixes #1778)
ARM Debugger: Clear low bit on breakpoint addresses (fixes #1764)
CMake: Always use devkitPro toolchain when applicable (fixes #1755)
Core: Fix ELF loading regression (fixes #1669)
Core: Fix crash modifying hash table entry (fixes #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 #1723)
Qt: Fix OpenGL 2.1 support (fixes #1678)
Qt: Fix unmapping zipped ROM (fixes #1777)


3DS: Clean up legacy initialization (fixes #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 #1590)
Qt: Set icon for Discord Rich Presence
Qt: Show a warning when save file can’t be opened