Commit graph

328 commits

Author SHA1 Message Date
Sour
7267e28e21 Debugger: GBA - Added option to configure whether unidentified code/data is disassembled as arm/thumb 2025-03-31 18:11:29 +09:00
Sour
1975ab958c Debugger: Fixed crashes when switching between games from different consoles (in AOT build)
Caused by what looks like slight differences between how AOT treats an empty array (vs JIT builds) when it marshals the array (AOT sends a null pointer, JIT sends a pointer to an empty array)
This was causing issues in both builds (AOT crashed immediately because of the null pointer, JIT read from out-of-bounds memory)
2025-03-28 18:03:30 +09:00
Sour
2d96724b28 Debugger: SNES - Added new "break on..." options
Invalid vram/oam/cgram access, controller read while auto-read is running
2025-03-27 21:30:38 +09:00
Sour
ad548465c6 Debugger: NES - Added new "break on..." options
Invalid VRAM access, Invalid OAM write, DMA controller read, Unstable opcodes
2025-03-27 21:16:02 +09:00
Sour
9e5d013c84 Debugger: Minor performance improvements for debugger initialization 2025-03-26 21:25:34 +09:00
Sour
f359b80eb5 Debugger: Assembler - Allow using #label syntax on NES/SNES/PCE
This used to be allowed in Mesen-S
2025-03-13 18:32:46 +09:00
Sour
f7ca5d06fb Debugger: Prevent rewind/step back from changing the value of frozen addresses 2025-02-11 20:48:52 +09:00
Sour
031cb7058c Debugger: Fixed issues with NES/SNES/PCE assemblers
-Labels defined within the assembler that were referred to before their definition did not work properly and ended up being assigned the wrong value (when the label's address wasn't a value between 0x100 and 0xFFFF) - this is fixed by running multiple passes until the resulting byte code stops changing.
-Fixed issues where e.g EOR $00, Y would be assembled as a 2-byte instruction, which is invalid.
2025-02-06 21:20:24 +09:00
Sour
43ff951e83 Debugger: Fixed crash in GetMemoryValues
When start is not 0 and end is beyond the max size, memset would write out of bounds.
Caused by the previous tile viewer fix
2025-01-21 18:35:49 +09:00
Sour
30ece8ec62 Debugger: Fixed broken tile viewer output with some size combinations
If the number of rows and columns did not result in an amount of bytes that was a power of 2, the viewer would incorrectly repeat some tiles, etc.
This was broken by performance fixes done a few months ago
2025-01-20 17:56:51 +09:00
Sour
18269da46b SNES: Add support for Sufami Turbo games 2025-01-03 09:18:59 +09:00
Sour
8d6830a70a SNES: Add support for ST018 coprocessor
Used by a single game: Hayazashi Nidan Morita Shougi 2
2024-12-29 23:41:52 +09:00
Sour
59f106b8cc SNES: Fixed NMI/IRQ timing issues
Passes all NMI/IRQ tests: demo_irqtest, demo_nmitest, irq, nmi, test_irq, test_irq4200, test_irq4209, test_irqb, test_nmi,
Also fixes timing issues with WAI
2024-12-24 17:43:09 +09:00
Sour
c447eaf997 Debugger: Improve call stack/profiler behavior when dealing with some types of stack manipulation 2024-12-17 18:52:17 +09:00
Sour
1e3422b69e Debugger: Profiler - Show [irq]/[nmi] markers on functions 2024-12-17 18:51:01 +09:00
Sour
8ad34343ba Debugger: Prevent UI freeze when viewer updates pile up and end up taking up 100% of the UI thread's time
Prevent queueing another update while the previous update is still running, which should prevent most issues.
Also slightly improves performance for the SNES tilemap viewer (which was causing the freeze when displaying an 8bpp 1024x1024 tilemap)
2024-12-10 18:59:13 +09:00
Sour
614e61a2d1 Debugger: Fixed issues with step over/out in some scenarios (bank swapping, recursive functions, etc.)
Only break when both the stack pointer and the return address match what the debugger was expecting, instead of just the return address
2024-12-07 17:46:28 +09:00
Sour
355ca16074 Debugger: Lua - Added getCdlData API 2024-12-01 15:27:46 +09:00
Sour
be41cdeaeb Debugger: Update CDL stats while running when "refresh while running" is enabled
+ Optimize CDL stats calculation
2024-12-01 14:51:56 +09:00
Sour
403fe083ed Debugger: Allow screensaver/sleep to turn on when paused while debug tools are opened 2024-11-30 13:49:23 +09:00
Sour
63f8081106 Debugger: Trace Logger - Revert change that caused hex values in log to not have the right size 2024-11-08 18:13:04 +09:00
Sour
f710ad8529 Debugger: Clear event viewer data when game is reset to avoid issues/crashes
Reset caused a crash on NES when ntsc borders were displayed because the current frame's data contained events from the pre-reset state
2024-10-31 21:13:07 +09:00
Sour
ecd012c2fe Debugger: Fixed issue that caused forbid breakpoints to prevent "run 1 frame/scanline/etc" from working properly in some scenarios 2024-10-30 22:02:40 +09:00
Sour
ef302de461 Debugger: Fixed forbid breakpoints not working properly with "break on" options 2024-10-15 09:29:42 +09:00
Sour
5b0173f43c Debugger: Tile viewer - Limit copied data to what is required to display the current view
This fixes performance issues on GBA, for example, when trying to display the "CPU Memory" memory type
2024-10-10 17:51:39 +09:00
Sour
8557a7adc8 Debugger: GBA - Fixed tile editor issues when editing tiles in vram if bit 15 of the address is set
Mask was invalid because vram is not a power of 2
2024-10-09 21:46:24 +09:00
Sour
d751502a58 NES: Added Rainbow support (mapper 682) 2024-10-08 21:37:44 +09:00
Sour
dee97bf9bc Debugger: Added forbid breakpoints 2024-09-23 21:05:55 +09:00
Sour
c5406773a0 Added WonderSwan support 2024-09-19 21:19:43 +09:00
Sour
e79e655d3b Debugger: Event Viewer - Added missing address/value for some event types (marked breakpoints, etc.) 2024-09-12 17:11:56 +09:00
Sour
9f69e88b6c Debugger: Added undo for memory viewer/debugger code edits 2024-08-26 20:15:30 +09:00
Sour
ff874bc86d Debugger: NES Header Editor - Fixed behavior/crash when opening header editor with softpatched roms or compressed files 2024-07-19 21:37:51 +09:00
Sour
d0c9deb477 Debugger: Lua - Improve error messages when io/os/lua access is turned off in the options 2024-07-19 18:34:42 +09:00
Sour
640a215cbb GB: Added support for MBC5 rumble feature 2024-07-13 20:50:57 +09:00
Sour
074034aa66 Debugger: Use cpu-specific cycle counts for profiler data
Fixed SNES co-processors (including the SPC) reporting their profiling data based on SNES master clocks, which wasn't accurate/reliable
2024-06-23 16:21:49 +09:00
Sour
d9f1d486a3 Debugger: SNES - Fixed palette display for mode 0 layers in tilemap viewer 2024-04-27 12:14:45 +09:00
Sour
a015fa83d1 Debugger: SNES - Fixed swapped values for psmemory/psindex 2024-04-07 08:58:38 +09:00
Sour
13acb3fe42 Added GBA support 2024-03-30 11:42:31 +09:00
Sour
aa9c459630 Debugger: Step Back - Allow stepping back 1 scanline/frame at a time + remove restriction that caused step back to only work for up to 30 frames 2024-01-26 23:39:31 +09:00
Sour
41186ec85a Debugger: Assembler - Allow using label name without +0 for the first byte of multi-byte labels 2024-01-09 22:10:45 +09:00
Sour
7a2e410883 Debugger: PCE - Fixed crashes with Lua tutorial script due to the way overscan/resolution is handled for the PCE 2024-01-05 14:28:44 +09:00
Sour
dcd9c2249e Debugger: PCE - Highlight arcade card accesses in memory viewer 2023-12-27 23:27:07 +09:00
Sour
9258d1453f Debugger: Lua - Add folder that contains the current script to the folders that scripts can require other Lua scripts from 2023-12-18 22:04:47 +09:00
Sour
469734dc02 Linux: Fixed compilation errors/warnings 2023-12-15 03:43:37 -05:00
Sour
5308983ebb Added SMS/GG/SG-1000 support 2023-12-14 22:23:27 +09:00
Sour
08424ceba8 NES: Make OAM decay more obvious by displaying a diagonal line of sprites 2023-12-03 14:12:03 +09:00
Sour
642106991a Debugger: Lua - Fixed writing to nesMemory not triggering side effects as intended 2023-10-06 21:02:39 +09:00
Sour
1678a5ffab Debugger: Lua - Fixed incorrect names of memType values for cpu memory (nes -> nesMemory, etc.) 2023-10-06 21:02:16 +09:00
Sour
eb17aab85d Debugger: Sprite viewer - Added option to change background color 2023-09-26 18:58:50 +09:00
Sour
9be40aa4a1 Debugger: Prevent breaking on some events while rewinding 2023-09-05 18:36:48 +09:00