Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to 0.11-dev (bba2c13) #290

Merged
merged 498 commits into from
Feb 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
498 commits
Select commit Hold shift + click to select a range
622c249
Debugger: Reject traces with negative trace amounts (fixes #2900)
endrift Apr 26, 2023
ba6865b
mGUI: Enable auto-softpatching (closes #2899)
endrift Apr 26, 2023
6dbd977
Scripting: shim print()/warn() in Lua
ahigerd Apr 11, 2023
75910bc
Qt: Add QPA info to report view
endrift Apr 27, 2023
65a0b63
GB Audio: Fix channels 1/2 staying muted if restarted after long silence
endrift Apr 29, 2023
eb26b3c
GBA BIOS: Fix clobbering registers with word-sized CpuSet
endrift Apr 29, 2023
a7ffcee
Qt: Add shortcuts to increment fast forward speed (#2903)
sam-gupta-git Apr 29, 2023
c9585b8
Qt: Make rewind speed adjustable (#2902)
martinmurtiono Apr 29, 2023
44ab21a
Scripting: Allow callbacks to access weakrefs
endrift May 1, 2023
b8261a0
Scripting: Add lambdas with 0 arguments and 0 return values
endrift Apr 24, 2023
0b79184
Scripting: Add lambdas that bind an object method call
endrift Apr 24, 2023
2e5751e
OpenGL: Fix GLES2 overlay drawing
endrift Apr 24, 2023
9042058
OpenGL: Fix GL1 overlay drawing
endrift Apr 30, 2023
dc6639b
Video: Add backend call proxying for cross-thread interaction
endrift Apr 13, 2023
399ace7
Qt: Hook up proxy backend to DisplayGL
endrift Apr 21, 2023
18d0ad6
Qt: Just don't tear down proxy ring FIFO until the object is destroyed
endrift Apr 25, 2023
dda5634
Scripting: Add canvas API
endrift Apr 13, 2023
428a29d
Qt: Expose DisplayQt as a VideoBackend
endrift May 1, 2023
55dd3e2
Scripting: Add canvas internal scaling factor
endrift Apr 29, 2023
2b3855f
Res: Add a bouncing logo demo script
endrift Apr 25, 2023
201f0df
Merge branch 'feature/canvas'
endrift May 2, 2023
ac9ffdd
Qt: Add a saturateCast template
endrift May 2, 2023
608029e
Qt: Promote -Wnarrowing to an error
endrift May 2, 2023
74a72a5
Scripting: Add missing docs to canvas
endrift May 3, 2023
2b8bb4b
Qt: Mark QtMultimedia as optional
endrift May 3, 2023
d864387
Qt: A bit more Qt 6 porting progress
endrift May 3, 2023
00d1c0d
Qt: Fix saturateCast signed check
endrift May 3, 2023
0a36069
Util: Fix handling of SocketPoll of n > 1
endrift May 5, 2023
abf0848
mGUI: Make "bios" name check case-insensitive
endrift May 8, 2023
36e62c0
GB SIO: Disabling SIO should cancel pending transfers (fixes #2537)
endrift May 8, 2023
4f58f85
Res: Use a slightly larger image for the logo-bounce demo
endrift May 8, 2023
b1f991b
GB I/O: Read back proper SVBK value after writing 0 (fixes #2921)
endrift May 9, 2023
b21a615
Debugger: Break out debugger functionality into modules
endrift Dec 12, 2022
8efb3fb
Debugger: Make created debug items, e.g. breakpoints, owned by modules
endrift Dec 12, 2022
a00f293
Debugger: Allow attaching multiple debugger modules independently
endrift Dec 12, 2022
2571227
Debugger: Add debugger polling to avoid blocking
endrift May 10, 2023
213a534
GBA: Remove disused variable
endrift May 10, 2023
7d6a8a8
ARM Debugger: Fix unitialized stack variable
endrift May 10, 2023
bb66138
Util: Add THREAD_EXIT macro
endrift May 10, 2023
196f507
[UI bug] mGBA doesn't update savestate screenshots until you move the…
Utagai May 23, 2023
a7d63cd
Core: Reattaching the same debugger is a no-op
endrift May 11, 2023
4b7223c
Core: Only attempt to open symbol file if basedir exists
endrift May 27, 2023
b80797a
CMake: Add -Werror=incompatible-pointer-types
endrift May 29, 2023
d432ec3
CMake: Fix build on clang
endrift May 29, 2023
46c4412
3DS: Fix build
endrift May 29, 2023
b94cd7f
Core: Remove duplicated include
endrift May 29, 2023
a161dfe
Debugger: Fill in segment in debugger entry
endrift May 29, 2023
cbc8e4f
Debugger: Fix writing to specific segment in command-line debugger
endrift May 29, 2023
c1421af
Debugger: Support calling into multiple debuggers per watchpoint
endrift May 29, 2023
6561223
Scripting: Add debugger integration
endrift May 29, 2023
294470d
Core: Add getPeripheral function
endrift Jun 1, 2023
e7bbc60
All: Fix several warnings
endrift Jun 1, 2023
17a549b
Scripting: Fix build against Lua 5.2
endrift Jun 5, 2023
20ab4d2
Scripting: Expose rumble callback
endrift Jun 5, 2023
58da738
Qt: Reduce minimum size of GB palette color pickers
endrift Jun 13, 2023
82f7e52
Qt: Add exporting of SAV + RTC GBA saves from Save Converter to strip…
endrift Jun 18, 2023
a82c390
Scripting: Detach adapter peripherals when detaching adapter
endrift Jun 19, 2023
7be14fa
Scripting: Add rotation callback support
endrift Jun 19, 2023
600b11b
Scripting: Fix generated docs validity
endrift Jun 19, 2023
c358f22
Scripting: Update docs style
endrift Jun 19, 2023
1c41e1e
GBA Audio: Fix sample timing drifting when changing sample interval
endrift Jun 20, 2023
1af9831
Scripting: Add light sensor callback support
endrift Jun 20, 2023
76e5aa7
Res: Add demo light sensor script
endrift Jun 20, 2023
870c2f8
Qt: Fix potential scripting context conflict (fixes #2948)
endrift Jun 20, 2023
125db5b
GBA Audio: Fix initial channel 3 wave RAM (fixes #2947)
endrift Jun 26, 2023
4859e9b
GB: Add missing CGB0 BIOS to model detection
endrift Jun 26, 2023
4d94ab7
GB: Prevent incompatible BIOSes from being used on differing models
endrift Jun 26, 2023
200e846
Core: Begin modernizing game override API (fixes #2963)
endrift Jun 26, 2023
491879d
ARM: Remove obsolete force-alignment in `bx pc` (fixes #2964)
endrift Jun 26, 2023
c5a7b1a
GB Audio: Fix channel 1 restarting if sweep applies after stop (fixes…
endrift Jun 29, 2023
2a974a7
GB Audio: Update channels 1/2 irregularly if silent
endrift Jun 29, 2023
0ee3f3f
GB Audio: Force update channels 1/2 if updating from a register write
endrift Jun 29, 2023
9873073
Util: Add ctz32 function
endrift Jun 29, 2023
bd15285
GB Audio: More accurate LFSR implementation for noise channel
endrift Jun 30, 2023
747158d
Qt: Add exporting of SAV + RTC GB saves from Save Converter to strip …
endrift Jul 3, 2023
fd84ced
GBA SIO: Fix normal mode SI/SO semantics (fixes #2925)
endrift Jul 4, 2023
3f0d06e
GBA: Unhandled bkpt should be treated as an undefined exception
endrift Jul 4, 2023
44e074a
GBA BIOS: Add DACS compatibility to HLE BIOS (closes #2972)
endrift Jul 5, 2023
00e62f2
ARM: Fake bpkt instruction should take no cycles (fixes #2551)
endrift Jul 6, 2023
0e2ede0
GBA: Fix hasOverride initialization
endrift Jul 11, 2023
4e55bc7
FFmpeg: Fix isampleRate initialization
endrift Jul 11, 2023
c49050f
Qt: Let the getOpenFileName function class take an optional starting …
endrift Jul 16, 2023
51d5f4b
Qt: Distribute shaders as zipped archives on supported builds
endrift Jul 16, 2023
90b75e4
Qt: Const correctness
endrift Jul 16, 2023
436d6c5
Qt: Clean up multiplayer attaching/detaching
endrift Jul 17, 2023
52ef584
Updater: Fix overwriting directories with files
endrift Jul 17, 2023
c0507b8
Qt: Fix leak if loading a save file fails
endrift Jul 17, 2023
4b38883
Qt: Plumb through some path info into the CoreController
endrift Jul 17, 2023
1e68020
Qt: Handle multiple save game files for disparate games separately (f…
endrift Jul 18, 2023
c8cfaef
Updater: Fix overwriting files with directories
endrift Jul 18, 2023
369eab8
Util: Fix alpha blending calculation
endrift Jul 23, 2023
5f35899
Util: Start mPainter bringup with rectangle drawing
endrift Jul 24, 2023
02ba4f2
GBA GPIO: Fix tilt scale and orientation (fixes #2703)
endrift Jul 24, 2023
9742722
GUI: Add missing include
endrift Jul 24, 2023
4ca8ffe
Updater: Fix MSVC build
endrift Jul 25, 2023
ba49175
Util: Add mPainterDrawLine
endrift Jul 25, 2023
57ba653
Util: Add mPainterDrawCircle
endrift Jul 28, 2023
652b078
Qt: Update translation (Korean)
DDinghoya Feb 4, 2023
1ee7b70
Qt: Update translation (Spanish)
gallegonovato Feb 8, 2023
5fb0ae8
Qt: Update translation (Hungarian)
Guih48 Feb 11, 2023
b5c1330
Qt: Update translation (German)
lotharsm Mar 25, 2023
8c0b9f6
Qt: Added translation (Portuguese)
SantosSi Feb 19, 2023
92d7c1a
Qt: Update translation (Japanese)
raid273 Apr 27, 2023
6c55c26
Qt: Update translation (Polish)
LunaDook May 14, 2023
fd6a416
Qt: Update translation (Chinese (Simplified))
shinyoyo May 21, 2023
5b38c0f
Qt: Update translation (Portuguese (Brazil))
Felipefpl Jan 29, 2023
9a8ab70
Qt: Update translation (Portuguese (Brazil))
Jul 21, 2023
abd7ccb
Qt: Update translation (Portuguese (Brazil))
Felipefpl Jul 22, 2023
fe22934
Qt: Update translations
endrift Jul 28, 2023
0457b1b
Util: Shape drawing fixes, better tests
endrift Jul 29, 2023
8b4818c
OpenGL: Fix uninitialized context dimensions
endrift Jul 30, 2023
ec52154
Qt: Fix uninitialized members
endrift Jul 30, 2023
5534d23
Updater: Fix existing directory update logic
endrift Aug 1, 2023
09b7eea
Script: Add mScriptContextInvoke for context-specific invocation and …
endrift Aug 3, 2023
3d0c982
Scripting: Add handling of wrapper type specification in function sig…
endrift Aug 4, 2023
3574f1c
Scripting: Export mPainter class
endrift Aug 4, 2023
189fce0
Scripting: Fix typo
endrift Aug 5, 2023
b0977ce
Qt: Re-enable sync for multiplayer windows that aren't connected (fix…
endrift Aug 5, 2023
fc1bfb9
Qt: Remove maligned double-click-to-fullscreen shortcut (closes #2632)
endrift Aug 5, 2023
fdfa73a
Qt: Mark video encoding options as untranslatable
shenef May 22, 2023
1bb8d52
Qt: Fix gdb at startup (fixes #2986)
endrift Aug 6, 2023
0cd50ca
Qt: Fix crash entering commands into detached debugger (fixes #2987)
endrift Aug 7, 2023
6a31777
Qt: Fix mute settings not being loaded on setting screen (fixes #2990)
endrift Aug 9, 2023
f96ba8c
ARM: Fix warning
endrift Aug 10, 2023
a4d8c43
Scripting: Silence warnings
endrift Aug 10, 2023
19e44d5
Util: Fix warnings
endrift Aug 10, 2023
56d21fe
OpenGL: Fix warnings
endrift Aug 10, 2023
bbdcb8b
Scripting: Fix rounding warning
endrift Aug 10, 2023
f637b5b
Util: Fix warning when libpng is disabled
endrift Aug 10, 2023
f5a6906
Qt: Fix display-related Qt6 build errors
endrift Aug 19, 2023
6e65b70
Qt: Fix input-related Qt 6 build errors
endrift Aug 19, 2023
3ee12b1
Qt: Ensure action set is clean before (re)building
endrift Aug 19, 2023
17dbdcf
Qt: Change Action* semantics to std::shared_ptr<Action>
endrift Aug 19, 2023
613ce02
Qt: Force surface type to OpenGL in DisplayGL
endrift Aug 19, 2023
5c2a558
Qt: Fix remaining non-Multimedia Qt 6 build issues
endrift Aug 19, 2023
16fe12c
Qt: Remove shared_ptr copies in for loops
endrift Aug 19, 2023
0acc8c2
GBA Audio: Fix sample position issues when rate changes (fixes #3006)
endrift Aug 23, 2023
85c9872
GB I/O: Fix STAT writing IRQ trigger conditions (fixes #2501)
endrift Aug 23, 2023
f2186f6
Vita: Fix camera setting not appearing (fixes #3012)
endrift Aug 28, 2023
20931a8
GBA Core: Fix Flash 1M memory block descriptor
endrift Sep 2, 2023
6ed7341
Debugger: Fix trace
endrift Sep 7, 2023
bcb0073
GBA I/O: Improve legibility of long constants
endrift Sep 7, 2023
4c03970
GBA I/O: More legibility improvements
endrift Sep 7, 2023
8520ad8
GBA I/O: Prefix GBA registers with GBA_REG_
endrift Sep 7, 2023
4de9d5f
Core: Fix potential UAF when loading a ROM in a VDir
endrift Sep 15, 2023
f051b88
Qt: SaveConverter doesn't use the controller
endrift Sep 12, 2023
4b9072d
Qt: Move controller-based subview auto-closing
endrift Sep 12, 2023
b46278b
GBA: Make sure unloading a ROM frees the AGBPrint buffer
endrift Sep 16, 2023
022e009
GB Core: Fix exported size information
endrift Sep 11, 2023
b2dd761
GBA Core: Export reduced GBA ROM region size if the ROM is less than …
endrift Sep 12, 2023
7015a10
Debugger: Clean up layering violation
endrift Sep 7, 2023
c6316ed
GB, GBA: Move CLI debugger headers
endrift Sep 11, 2023
5d32e43
GBA Core: Add missing blocks
endrift Sep 16, 2023
9c673f5
ARM, SM83: Check for events both before and after single stepping
endrift Sep 7, 2023
d55a13c
Debugger: Initial memory access logger support
endrift Sep 6, 2023
131b983
Debugger: Move platform-specific flag lookup to mDebuggerPlatform
endrift Sep 7, 2023
8610147
Qt: Expand romFilters functionality
endrift Sep 12, 2023
c03b159
Qt: Add shadow ROM exporting
endrift Sep 12, 2023
805773a
Scripting: Fix console error log level
endrift Sep 16, 2023
0c675b1
Scripting: Simplify console implementation
endrift Sep 16, 2023
efb3008
Scripting: Code cleanup
endrift Sep 16, 2023
beda1d5
Scripting: Enhance error reporting
endrift Sep 16, 2023
7de02c9
Debugger: Correct PC value when read with 'p' instead of 'g' packet
DavidSpickett Sep 22, 2023
4215332
Revert "Qt: Ensure action set is clean before (re)building"
endrift Sep 25, 2023
1dd00d5
Scripting: Fix typo in docs
endrift Sep 27, 2023
476dcc1
Scripting: Attach canvas object in docgen
endrift Sep 27, 2023
0f0dccd
Scripting: Unpack breakpoint name struct
endrift Sep 28, 2023
d34ec95
Wii: Fix build
endrift Sep 28, 2023
46f59df
Core: Add missing defines to flags.h
endrift Sep 28, 2023
ef7edba
Debugger: Fix interrupt after continue from GDB stub
DavidSpickett Oct 4, 2023
6e2c388
Debugger: Fix off-by-one breaking StartNoAckMode
leo60228 Oct 8, 2023
ce374b1
Debugger: Advertise QStartNoAckMode support
leo60228 Oct 8, 2023
dca568a
CMake: Fix DEFAULT_LTO
endrift Oct 16, 2023
6ecc182
Qt: Attach debugger when attaching scripting controller (fixes #3046)
endrift Oct 16, 2023
9c9f31d
Qt: Fix non-debugger build (fixes #3049)
endrift Oct 25, 2023
437ad30
GBA Audio: Only read MP2k context addresses if valid
endrift Oct 30, 2023
6853080
FFmpeg: Fix deprecation warnings
endrift Nov 7, 2023
d75d26b
Scripting: Check for ENOTRECOVERABLE
alarixnia Nov 20, 2023
978e7c9
Tools: Add SDF-generation tool and 4x font SDF
endrift Nov 16, 2023
050c5da
Tools: Move updater and docgen source into tools/
endrift Nov 16, 2023
ce4024a
GBA Savedata: Fix crash when resizing flash save games for RTC data
endrift Nov 22, 2023
b728454
Debugger: Move CLIDebugerEditLine implementation into debugger/
endrift Nov 25, 2023
319bdbd
Feature: Move command-line debugger argument handling
endrift Nov 25, 2023
3e47da2
SDL: Fix minor leak if debugger isn't used
endrift Nov 25, 2023
18a35b3
Feature: Move command-line patch/cheats argument handling
endrift Nov 25, 2023
569bc92
Test: Use refactored argument handling
endrift Nov 25, 2023
63b1868
Test: Allow ROM tester to be debugged
endrift Nov 25, 2023
dc9a257
Add Goodboy Galaxy to overrides
DanTheMan827 Nov 28, 2023
a874450
CMake: Bump minimum macOS to 10.7 when building against SDL2
endrift Dec 11, 2023
c7240b0
Qt: Fix minimum macOS version setting
endrift Dec 11, 2023
2e5836e
Res: Add entitlements list for macOS
endrift Dec 11, 2023
83528e1
Qt: Do codesigning on macOS
endrift Dec 11, 2023
7b2fe75
Qt: Move install in CMake so install scripts get run first
endrift Dec 11, 2023
ec2f791
Qt: Do initial macOS resource staging in local app bundle
endrift Dec 11, 2023
2561439
Qt: Code signing cleanup
endrift Dec 12, 2023
3a5642f
GB: Fix applying a patch that changes the cartridge mapper (fixes #3077)
endrift Dec 12, 2023
bfc830e
mGUI: Persist fast forwarding after closing menu (fixes #2414)
endrift Dec 19, 2023
333483a
Qt: Fix generic icon on Wayland
Dec 19, 2023
fc95ee2
CInema: Add samesuite, mostly failing
endrift Dec 20, 2023
a171c54
CInema: Sprite priority has been fixed
endrift Dec 20, 2023
1f6337f
CInema: Fix xbaseline differences being ignored with no baseline
endrift Dec 20, 2023
c8f4d4a
GB Audio: Fix restarting envelope when writing to register (fixes #3067)
endrift Dec 20, 2023
36a9602
CInema: Update SameSuite results
endrift Dec 20, 2023
6ee880c
GB Audio: Improve "zombie mode" emulation in CGB mode (fixes #2029)
endrift Dec 20, 2023
5bd5a8d
GBA I/O: Fix HALTCNT access behavior (fixes #2309)
endrift Dec 21, 2023
ffacbcf
Qt: Make Gamepad be a shared_ptr
endrift Dec 21, 2023
45387aa
Qt: Fix Action leak
endrift Dec 21, 2023
d83b2f9
VFS: Use anonymousMemoryMap for large 7z allocations (fixes #3013)
endrift Dec 22, 2023
48253af
Qt: Fix shaders not applying when display is loaded (#3100)
luc-git Jan 7, 2024
3becd63
Res: Add gbc-lcd shader, imitates GBC LCD subpixel arrangement with a…
pineapplemachine Jan 7, 2024
2e3ad7e
CMake: Clean up with PROJECT_SOURCE_DIR
endrift Dec 25, 2023
e01fc0f
3DS: Remove fancy memory mapping
endrift Dec 25, 2023
feb7b5a
Config: Fix warning
endrift Dec 25, 2023
16c777c
Qt: Fix screen freezing on macOS after closing save state window (fix…
endrift Jan 8, 2024
70689e1
Res: Update nointro.dat
endrift Jan 8, 2024
4717d25
Res: Update patrons.txt
endrift Jan 8, 2024
72a620a
CHANGES: Update for 0.10.3
endrift Jan 8, 2024
2c5882d
All: Fix some warnings
endrift Jan 10, 2024
328bebb
GBA Video: Migrate window precalculation into a function
endrift Jan 10, 2024
c2e2b6d
Switch: Add bilinear filtering option (closes #3111)
endrift Jan 18, 2024
7157729
Swtich: Fix config item count
endrift Jan 19, 2024
12ed251
GB: Fix uninitialized save data when loading undersized temporary saves
endrift Jan 21, 2024
6e773ea
VFS: Modernize VDeviceList implementation
endrift Jan 21, 2024
4e87dc6
Vita: Add imc0 and xmc0 mount point support
endrift Jan 21, 2024
5479ab1
Vita: Use sceIoPwrite in VFileSce.sync
endrift Jan 21, 2024
845d69e
Qt: Fix input event threading regression (fixes #3116)
endrift Jan 22, 2024
11e16d1
GBA SIO: Fix MULTI mode SIOCNT bit 7 writes on secondary GBAs (fixes …
endrift Jan 22, 2024
e1ebaed
OpenGL: Mark interframe shader as dirty too (fixes #3099)
endrift Jan 27, 2024
e5b1497
Qt: Remember to set m_dims for the early return
endrift Jan 27, 2024
6243a57
GBA Debugger defaults to loopback address
Martosis Jan 20, 2024
3e86758
Qt GDB Window defaults to loopback address
Martosis Jan 20, 2024
398df56
core: Add support for specifying an arbitrary portable directory.
Jan 21, 2024
05bf592
SDL: Refactor out layer recentering, fix for GB
endrift Jan 29, 2024
1fc37e9
Core: Migrate thread context TLS to its own key
endrift Jan 30, 2024
4590dfc
Qt: Switch VideoProxy to using QMutexLocker
endrift Jan 30, 2024
7727b64
Qt: Pass logging context through to video proxy thread (fixes #3095)
endrift Jan 30, 2024
7b0e400
Util: Fix leak in SfoWrite
endrift Jan 30, 2024
c0a323d
VFS: Fix UB
endrift Jan 30, 2024
3133105
Qt: Pay down a bit of MemoryAccessLogView tech debt
endrift Jan 30, 2024
0815443
Qt: Use && in some places that coverity recommends
endrift Jan 30, 2024
7cacae1
Add a `--script` option to load scripts automatically on startup
Eijebong Jan 19, 2024
1723a35
Updater: Fix updating appimage across filesystems
endrift Jan 31, 2024
530b997
Qt: Fix uninitialized variable
endrift Jan 31, 2024
4cdcfe6
Qt: Fix potential null deref
endrift Jan 31, 2024
eff1785
Qt: Coverity complains about this but I have no idea if it matters
endrift Jan 31, 2024
7bd877d
Qt: Shut up coverity some, despite this probably not doing anything
endrift Jan 31, 2024
3b32da6
Qt: Attempt to fix MSVC build
endrift Jan 31, 2024
bba2c13
Qt: Shut coverity up a bit more
endrift Jan 31, 2024
968efb6
Update to 0.11-dev (bba2c13)
warmenhoven Feb 5, 2024
f9b3fff
Build fix after update
warmenhoven Feb 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
# Generic files
*.user*
*~
*.swp
*.pyc

# Build directories
/build
/build-*
/.vs

# Build files
*.a
*.dylib
*.dll
Expand All @@ -18,5 +21,9 @@ CMakeCache.txt
CMakeFiles
CMakeSettings.json
cmake_install.cmake
hle-bios.bin
version.c
*.d

# Runtime generated cruft
*.sav
*.ss0
91 changes: 91 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,12 +1,103 @@
0.11.0: (Future)
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
- Scripting: Debugger integration to allow for breakpoints and watchpoints
- New unlicensed GB mappers: NT (older types 1 and 2), Li Cheng, GGB-81
- Debugger: Add range watchpoints
Emulation fixes:
- GB I/O: Fix STAT writing IRQ trigger conditions (fixes mgba.io/i/2501)
- GB Serialize: Add missing Pocket Cam state to savestates
- GB Video: Implement DMG-style sprite ordering
- GBA: Unhandled bkpt should be treated as an undefined exception
- GBA GPIO: Fix tilt scale and orientation (fixes mgba.io/i/2703)
- GBA I/O: Fix HALTCNT access behavior (fixes mgba.io/i/2309)
- GBA SIO: Fix MULTI mode SIOCNT bit 7 writes on secondary GBAs (fixes mgba.io/i/3110)
- GBA Video: Disable BG target 1 blending when OBJ blending (fixes mgba.io/i/2722)
Other fixes:
- Core: Fix inconsistencies with setting game-specific overrides (fixes mgba.io/i/2963)
- Debugger: Fix writing to specific segment in command-line debugger
- GB: Fix uninitialized save data when loading undersized temporary saves
- Qt: Fix savestate preview sizes with different scales (fixes mgba.io/i/2560)
- Updater: Fix updating appimage across filesystems
Misc:
- Core: Handle relative paths for saves, screenshots, etc consistently (fixes mgba.io/i/2826)
- GB: Prevent incompatible BIOSes from being used on differing models
- GB Serialize: Add missing savestate support for MBC6 and NT (newer)
- GBA: Improve detection of valid ELF ROMs
- mGUI: Enable auto-softpatching (closes mgba.io/i/2899)
- mGUI: Persist fast forwarding after closing menu (fixes mgba.io/i/2414)
- Qt: Handle multiple save game files for disparate games separately (fixes mgba.io/i/2887)
- Qt: Remove maligned double-click-to-fullscreen shortcut (closes mgba.io/i/2632)
- Qt: Pass logging context through to video proxy thread (fixes mgba.io/i/3095)
- Scripting: Add `callbacks:oneshot` for single-call callbacks
- Switch: Add bilinear filtering option (closes mgba.io/i/3111)
- Vita: Add imc0 and xmc0 mount point support

0.10.3: (2024-01-07)
Emulation fixes:
- ARM: Remove obsolete force-alignment in `bx pc` (fixes mgba.io/i/2964)
- ARM: Fake bpkt instruction should take no cycles (fixes mgba.io/i/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 mgba.io/i/2965)
- GB Audio: Fix restarting envelope when writing to register (fixes mgba.io/i/3067)
- GB Audio: Improve "zombie mode" emulation in CGB mode (fixes mgba.io/i/2029)
- GB I/O: Read back proper SVBK value after writing 0 (fixes mgba.io/i/2921)
- GB SIO: Disabling SIO should cancel pending transfers (fixes mgba.io/i/2537)
- GBA Audio: Fix sample timing drifting when changing sample interval
- GBA Audio: Fix initial channel 3 wave RAM (fixes mgba.io/i/2947)
- GBA Audio: Fix sample position issues when rate changes (fixes mgba.io/i/3006)
- GBA GPIO: Fix tilt scale and orientation (fixes mgba.io/i/2703)
- GBA BIOS: Fix clobbering registers with word-sized CpuSet
- GBA SIO: Fix normal mode SI/SO semantics (fixes mgba.io/i/2925)
Other fixes:
- GB: Fix applying a patch that changes the cartridge mapper (fixes mgba.io/i/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 mgba.io/i/2183)
- Qt: Re-enable sync for multiplayer windows that aren't connected (fixes mgba.io/i/2974)
- Qt: Fix mute settings not being loaded on setting screen (fixes mgba.io/i/2990)
- Qt: Fix screen freezing on macOS after closing save state window (fixes mgba.io/i/2885)
- Vita: Fix camera setting not appearing (fixes mgba.io/i/3012)
Misc:
- mGUI: Persist fast forwarding after closing menu (fixes mgba.io/i/2414)
- Qt: Add exporting of SAV + RTC saves from Save Converter to strip RTC data
- VFS: Use anonymousMemoryMap for large 7z allocations (fixes mgba.io/i/3013)

0.10.2: (2023-04-23)
Emulation fixes:
- 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: 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: 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)
- 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 mgba.io/i/2876)
Misc:
- 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)

0.10.1: (2023-01-10)
Emulation fixes:
Expand Down
62 changes: 54 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 3.3)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/src/platform/cmake/")

if(POLICY CMP0025)
Expand Down Expand Up @@ -34,8 +34,12 @@ if(NOT MSVC)
# mingw32 likes to complain about using the "wrong" format strings despite them actually working
set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-format")
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} -Werror=implicit-function-declaration -Werror=implicit-int")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} -Werror=implicit-function-declaration -Werror=implicit-int -fwrapv")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
# TODO: Remove this once mScript KV pairs support const correctness
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=incompatible-pointer-types")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS} -Woverloaded-virtual")
else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS /wd4003 /wd4244 /wd4146 /wd4267 /Zc:preprocessor-")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS /wd4003 /wd4244 /wd4146 /wd4267 /Zc:preprocessor-")
Expand All @@ -55,6 +59,7 @@ if(NOT LIBMGBA_ONLY)
set(USE_SQLITE3 ON CACHE BOOL "Whether or not to enable SQLite3 support")
set(USE_ELF ON CACHE BOOL "Whether or not to enable ELF support")
set(USE_LUA ON CACHE BOOL "Whether or not to enable Lua scripting support")
set(USE_JSON_C ON CACHE BOOL "Whether or not to enable JSON-C support")
set(M_CORE_GBA ON CACHE BOOL "Build Game Boy Advance core")
set(M_CORE_GB ON CACHE BOOL "Build Game Boy core")
set(USE_LZMA ON CACHE BOOL "Whether or not to enable 7-Zip support")
Expand All @@ -80,6 +85,7 @@ if(NOT LIBMGBA_ONLY)
set(BUILD_GLES2 ON CACHE BOOL "Build with OpenGL|ES 2")
set(BUILD_GLES3 ON CACHE BOOL "Build with OpenGL|ES 3")
set(BUILD_DOCGEN OFF CACHE BOOL "Build the scripting API documentation generator")
set(BUILD_MAINTAINER_TOOLS OFF CACHE BOOL "Build tools only useful for maintainers")
set(USE_EPOXY ON CACHE STRING "Build with libepoxy")
set(DISABLE_DEPS OFF CACHE BOOL "Build without dependencies")
set(DISTBUILD OFF CACHE BOOL "Build distribution packages")
Expand All @@ -88,6 +94,7 @@ if(NOT LIBMGBA_ONLY)
mark_as_advanced(WIN32_UNIX_PATHS)
endif()
mark_as_advanced(BUILD_DOCGEN)
mark_as_advanced(BUILD_MAINTAINER_TOOLS)
else()
set(DISABLE_FRONTENDS ON)
set(DISABLE_DEPS ON)
Expand Down Expand Up @@ -175,7 +182,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/core/version.c.in ${CMAKE_CURRENT
source_group("Generated sources" FILES ${CMAKE_CURRENT_BINARY_DIR}/version.c)

# Advanced settings
if(NOT (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_COMPILER_VERSION VERSION_LESS "4.5"))
if(NOT (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "4.5"))
set(DEFAULT_LTO ON)
else()
set(DEFAULT_LTO OFF)
Expand Down Expand Up @@ -337,6 +344,8 @@ find_function(popcount32)
find_function(futimens)
find_function(futimes)

find_function(realpath)

if(ANDROID AND ANDROID_NDK_MAJOR GREATER 13)
find_function(localtime_r)
set(HAVE_STRTOF_L ON)
Expand Down Expand Up @@ -419,6 +428,13 @@ if(BUILD_GL)
elseif(UNIX AND NOT APPLE AND TARGET OpenGL::GL)
set(OPENGL_LIBRARY OpenGL::GL)
endif()
if(OpenGL_GLX_FOUND)
list(APPEND FEATURES GLX)
endif()
if(OpenGL_EGL_FOUND)
list(APPEND FEATURES EGL)
list(APPEND OPENGL_LIBRARY ${OPENGL_egl_LIBRARY})
endif()
endif()
if(BUILD_GL)
list(APPEND FEATURE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/opengl/gl.c)
Expand Down Expand Up @@ -477,6 +493,7 @@ endif()
if(DISABLE_DEPS)
set(USE_GDB_STUB OFF)
set(USE_DISCORD_RPC OFF)
set(USE_JSON_C OFF)
set(USE_SQLITE3 OFF)
set(USE_PNG OFF)
set(USE_ZLIB OFF)
Expand Down Expand Up @@ -522,14 +539,12 @@ if(USE_EDITLINE)
set(DEBUGGER_LIB ${LIBEDIT_LIBRARIES})
endif()
set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS},libedit2")
list(APPEND FEATURE_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/feature/editline/cli-el-backend.c")
else()
set(DEBUGGER_LIB "")
endif()

if(USE_GDB_STUB)
list(APPEND FEATURES GDB_STUB)
list(APPEND FEATURE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/debugger/gdb-stub.c)
endif()
source_group("Debugger" FILES ${DEBUGGER_SRC})

Expand Down Expand Up @@ -765,11 +780,36 @@ endif()

if(ENABLE_SCRIPTING)
list(APPEND ENABLES SCRIPTING)
find_feature(USE_JSON_C "json-c")
if(NOT USE_LUA VERSION_LESS 5.1)
find_feature(USE_LUA "Lua" ${USE_LUA})
else()
find_feature(USE_LUA "Lua")
endif()
if(USE_JSON_C)
list(APPEND FEATURES JSON_C)
if(TARGET json-c::json-c)
list(APPEND DEPENDENCY_LIB json-c::json-c)
get_target_property(JSON_C_SONAME json-c::json-c IMPORTED_SONAME_NONE)
string(SUBSTRING "${JSON_C_SONAME}" 13 -1 JSON_C_SOVER)

# This is only needed on 0.15, but the target unhelpfully does not contain version info
get_target_property(JSON_C_INCLUDE_DIR json-c::json-c INTERFACE_INCLUDE_DIRECTORIES)
if(NOT JSON_C_INCLUDE_DIR MATCHES json-c$)
include_directories(AFTER "${JSON_C_INCLUDE_DIR}/json-c")
endif()
else()
if(${json-c_VERSION} VERSION_LESS 0.13.0)
set(JSON_C_SOVER 3)
elseif(${json-c_VERSION} VERSION_LESS 0.15.0)
set(JSON_C_SOVER 4)
endif()
list(APPEND DEPENDENCY_LIB ${json-c_LIBRARIES})
include_directories(AFTER ${json-c_INCLUDE_DIRS})
link_directories(${json-c_LIBDIRS})
endif()
set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS},libjson-c${JSON_C_SOVER}")
endif()
if(USE_LUA)
list(APPEND FEATURE_DEFINES USE_LUA)
include_directories(AFTER ${LUA_INCLUDE_DIR})
Expand Down Expand Up @@ -989,7 +1029,7 @@ if(BUILD_UPDATER)
add_executable(updater-stub WIN32 ${CORE_VFS_SRC} ${VFS_SRC} ${OS_SRC} ${UTIL_BASE_SRC} ${THIRD_PARTY_SRC}
${CMAKE_CURRENT_SOURCE_DIR}/src/core/config.c
${CMAKE_CURRENT_SOURCE_DIR}/src/feature/updater.c
${CMAKE_CURRENT_SOURCE_DIR}/src/feature/updater-main.c)
${CMAKE_CURRENT_SOURCE_DIR}/src/tools/updater-main.c)
target_link_libraries(updater-stub ${ZLIB_LIBRARY} ${ZLIB_LIBRARY} ${ZIP_LIBRARIES} ${OS_LIB} ${PLATFORM_LIBRARY})
set_target_properties(updater-stub PROPERTIES COMPILE_DEFINITIONS "${OS_DEFINES};${FUNCTION_DEFINES};${FEATURE_DEFINES};BUILD_STATIC")
if(MSVC)
Expand All @@ -1001,10 +1041,15 @@ if(BUILD_UPDATER)
endif()

if(ENABLE_SCRIPTING AND BUILD_DOCGEN)
add_executable(docgen ${CMAKE_CURRENT_SOURCE_DIR}/src/script/docgen.c)
add_executable(docgen ${CMAKE_CURRENT_SOURCE_DIR}/src/tools/docgen.c)
target_link_libraries(docgen ${OS_LIB} ${PLATFORM_LIBRARY} ${BINARY_NAME})
endif()

if(BUILD_MAINTAINER_TOOLS)
add_executable(font-sdf-tool ${CMAKE_CURRENT_SOURCE_DIR}/src/tools/font-sdf.c ${CMAKE_CURRENT_SOURCE_DIR}/src/util/gui/font-metrics.c)
target_link_libraries(font-sdf-tool ${OS_LIB} ${PLATFORM_LIBRARY} ${BINARY_NAME})
endif()

if(BUILD_SDL)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/platform/sdl ${CMAKE_CURRENT_BINARY_DIR}/sdl)
endif()
Expand Down Expand Up @@ -1289,6 +1334,7 @@ if(NOT QUIET AND NOT LIBMGBA_ONLY)
else()
message(STATUS " Lua: ${USE_LUA}")
endif()
message(STATUS " storage API: ${USE_JSON_C}")
endif()
message(STATUS "Frontends:")
message(STATUS " Qt: ${BUILD_QT}")
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,9 @@ Compiling requires using CMake 3.1 or newer. GCC, Clang, and Visual Studio 2019

#### Docker building

The recommended way to build for most platforms is to use Docker. Several Docker images are provided that contain the requisite toolchain and dependencies for building mGBA across several platforms.
The recommended way to build for most platforms is to use Docker. Several Docker images are provided that contain the requisite toolchain and dependencies for building mGBA across several platforms.

Note: If you are on an older Windows system before Windows 10, you may need to configure your Docker to use VirtualBox shared folders to correctly map your current `mgba` checkout directory to the Docker image's working directory. (See issue [#1985](https://mgba.io/i/1985) for details.)
Note: If you are on an older Windows system before Windows 10, you may need to configure your Docker to use VirtualBox shared folders to correctly map your current `mgba` checkout directory to the Docker image's working directory. (See issue [#1985](https://mgba.io/i/1985) for details.)

To use a Docker image to build mGBA, simply run the following command while in the root of an mGBA checkout:

Expand Down Expand Up @@ -234,6 +234,7 @@ mGBA has no hard dependencies, however, the following optional dependencies are
- SQLite3: for game databases.
- libelf: for ELF loading.
- Lua: for scripting.
- json-c: for the scripting `storage` API.

SQLite3, libpng, and zlib are included with the emulator, so they do not need to be externally compiled first.

Expand All @@ -254,7 +255,7 @@ Footnotes
Copyright
---------

mGBA is Copyright © 2013 – 2022 Jeffrey Pfau. It is distributed under the [Mozilla Public License version 2.0](https://www.mozilla.org/MPL/2.0/). A copy of the license is available in the distributed LICENSE file.
mGBA is Copyright © 2013 – 2023 Jeffrey Pfau. It is distributed under the [Mozilla Public License version 2.0](https://www.mozilla.org/MPL/2.0/). A copy of the license is available in the distributed LICENSE file.

mGBA contains the following third-party libraries:

Expand Down
Binary file added cinema/gb/acid/cgb-acid2/baseline_0000.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added cinema/gb/acid/cgb-acid2/test.gbc
Binary file not shown.
6 changes: 6 additions & 0 deletions cinema/gb/acid/config.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[testinfo]
skip=15
frames=1

[ports.cinema]
sgb.borders=0
Binary file added cinema/gb/acid/dmg-acid2/baseline_0000.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added cinema/gb/acid/dmg-acid2/test.gb
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file modified cinema/gb/mooneye-gb/misc/boot_div-cgb0/xbaseline_0000.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
44 changes: 44 additions & 0 deletions cinema/gb/samesuite/apu/channel_1/align/test.sym
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
; File generated by rgblink
00:00ff reboot
00:0100 Start
00:0150 LCDOff
00:0157 LCDOff.LCDOffLoop
00:0163 LCDOff.ret
00:0165 LCDOn
00:016e LoadFont
00:0176 LoadFont.loop
00:017c LoadFont.loop2
00:0185 LoadFont.loop3
00:0192 LoadFont.loop4
00:01a1 HexDigits
00:03a1 Palette
00:03b1 LoadObjPalettes
00:03b5 LoadBGPalettes
00:03b7 LoadPalettes
00:03bc LoadPalettes.loop
00:03c2 CommonInit
00:03d0 CommonInit.clearLogoTilemap
00:03e9 ModemSleep
00:0401 ModemCh1Freqs
00:0411 ModemCh2Freqs
00:0421 ModemCh3Freqs
00:0431 ModemSendByte
00:0485 ModemStart
00:04bf ModemStop
00:04c3 ModemSendBuffer
00:04cb _Start
00:04e7 _Start.loop_u16400
00:0502 _Start.failed
00:0509 _Start.sendSerial
00:0521 _Start.loop_u16401
00:052a PrintResults
00:0533 PrintResults.yLoop
00:0557 PrintResults.xLoop
00:0569 PrintResults.correct
00:057d PrintResults.correct2
00:059e SerialSendByte
00:05a4 SerialSendByte.loop
00:05ab CorrectResults
00:05db RunTest
00:0b92 StoreResult
01:4000 NopSlide
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions cinema/gb/samesuite/apu/channel_1/align_cpu/config.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[testinfo]
fail=1
Binary file not shown.
Loading
Loading