341 Commits
Author SHA1 Message Date
Sour 80b1ee330a Debugger: SNES - Fixed deadlock when resetting the game while paused, when the "break on power/reset" option is disabled 2025-07-07 00:19:34 +09:00
Sour c1fe01129d PCE: CPU accuracy improvements based on hardware captures
-Replaced dummy reads with idle cycles where needed
-Fixed order of operation for some instructions
-Fixed IRQ timing (was 10 cycles, should be 8)
-Tweaked VDC timings to match test roms after the IRQ timing changes
2025-06-30 22:00:58 +09:00
Sour 0ae5f26d0c Debugger: GBA - Realign disassembly to multiples of 4 bytes when disassembling unknown blocks in ARM mode 2025-06-17 21:20:22 +09:00
Sour fbf1882f8f Debugger: Fixed audio sometimes looping endlessly after execution pauses 2025-05-14 20:53:06 +09:00
Sour de8a0819d6 Debugger: SNES - Fixed stack overflow crash when hitting a SPC breakpoint 2025-05-06 12:29:55 +09:00
Sour 176f14ae33 GBA: Fixed missing sprites in Guranbo's character name screen
The game sets the sprites to obj mode 3 (by mistake?), which is an unused "stereoscopic" mode for sprites. Mode 3 seems to behave like mode 0 when the global "stereoscopic" flag is not set (previously "green swap"), so the sprites are meant to display normally in this scenario (instead of being hidden like they were before)
2025-04-26 18:20:47 +09:00
Sour 045a0e01b9 Debugger: Lua - Fixed emulator crash when callback triggers an error and is allowed to repeat a large number of times 2025-04-24 17:45:16 +09:00
Sour a17a97fb7b Debugger: Lua - Support small arrays in getState/setState
This is needed to e.g have access to the GBA CPU's registers, etc.
Also hid some internal GBA state from getState to improve performance
2025-04-15 22:43:52 +09:00
Sour f1117c1b06 Debugger: Lua - emu.getPixel shouldn't set alpha channel to 255 2025-04-12 23:50:07 +09:00
Sour 01f62b8c38 Windows: Write log window and debug log messages to stdout on windows, too 2025-04-11 17:11:56 +09:00
Sour bf7872a7ae Linux: Show log window and debug log content in terminal 2025-04-10 18:11:01 +09:00
Sour 48e8332258 Tests: Fixed minor issues when running tests 2025-04-04 17:48:17 +09:00
Sour 36bd1611c6 Debugger: Catch up APU for all consoles when breaking, to allow register viewer/etc. to display up-to-date values 2025-04-03 22:41:27 +09:00
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