Commit graph

367 commits

Author SHA1 Message Date
Sour
0dbe874fa4 Debugger: Sprite Viewer - SNES - Fixed crash when EnableOamPriority flag was set
startIndex could be set to 128+, depending on the oam address, which caused memory corruption
2025-03-21 23:31:07 +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
cde15d2b38 Debugger: SNES - Fixed open bus mask for register 4210 peek 2025-03-07 15:44:44 +09:00
Sour
0d91684cba SGB: Added missing packet byte buffer for SGB commands
Based on binarycounter's tests and documentation: https://github.com/binarycounter/SGB_Packet_Buffer_Tests
2025-03-02 13:33:12 +09:00
Sour
e9a0e7aaa5 SGB: Improved logic to select row/bank to write pixels to
Uses hblank/vblank (when mode changes) to move to the next row/reset to the top of the screen
2025-03-02 13:23:07 +09:00
Sour
53f17745d7 SGB: Prevent freeze/lock up when resetting a MBC3 game that has a RTC clock 2025-03-02 11:25:21 +09:00
Sour
09cd8b7cec Debugger: GSU - Fixed trace log not logging the correct instructions in some scenarios 2025-02-15 20:09:02 +09:00
Sour
991136e58a Audio Player: Fixed shuffle/repeat buttons not working 2025-02-13 22:07:10 +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
f15f90d06c SNES: SPC7110 - Fixed incorrect memory mappings after loading save states
Also fixes a bug in the decompression init code that could cause the emulator to crash when an invalid decompression mode was read from rom
2025-01-22 17:41:42 +09:00
Sour
bc2383ab16 SNES: Removed old debug information 2025-01-05 11:08:12 +09:00
Sour
b37f2e38a6 SNES: Added missing "else" in condition
This caused the SPC writes to trigger the PPU's "unimplemented register write" debug message (in debug builds only), but doesn't have any impact on accuracy/etc.
2025-01-05 10:41:53 +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
21f1f62424 SNES: Added sinc audio interpolation option 2024-12-27 23:02:02 +09:00
Sour
d6537ed0a5 Debugger: SNES - Fixed crash when resetting game while SPC debugger is opened 2024-12-27 11:49:16 +09:00
Sour
e0dd12bcdb SNES: SPC - Tweak previous timing fix for Kishin Douji
The previous fix on its own fixed Kishin, but broke Kawasaki Superbike
2024-12-26 11:10:37 +09:00
Sour
44337e507e SNES: Fixed regression in Kawasaki Carribean Challenge (palette corruption)
Caused by CGRAM writes on scanline 0 being blocked, even though they apparently should work correctly
2024-12-25 23:03:36 +09:00
Sour
0ab6e92dc2 SNES: Set internal palette address to 0 when outputting bg color (when no layers have visible pixels)
This fixes regressions in PGA Tour Golf and Mini Yonku Shining Scorpion. These games attempt to write to CGRAM during rendering, but at a time where the background color is being rendered, so the writes overwrite address 0 in CGRAM. Without this fix, the last non-transparent pixel's color address was being used, causing it to corrupt the wrong color in CGRAM (which caused the glitches)
2024-12-25 15:10:22 +09:00
Sour
30d28c83a5 SNES: Performance improvements
This makes performance equal or slightly better to what it was before all of the recent accuracy improvements
2024-12-24 22:56:57 +09:00
Sour
a9d3cb5755 SNES: Implement correct/better behavior when reading/writing to CGRAM during rendering
This allows 93143's "dmacolor" demo to work correctly: https://forums.nesdev.org/viewtopic.php?p=164248#p164248
Also prevents reading from VRAM during rendering
2024-12-24 18:09:47 +09:00
Sour
542d73029a SNES: Fixed freeze in intro/menus in Battle Grand Prix
The alignment done at the end of DMA appears to ignore master clocks spent in DRAM refresh (which is why a separate counter is needed). Unsure if this has been verified on hardware, but this is also what ares does to fix this issue.
2024-12-24 17:47:19 +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
831e177d87 SNES: Fixed HDMA timing issues
Passes the test_hdma, test_hdmasync, test_hdmatiming tests
2024-12-24 15:08:55 +09:00
Sour
29df2fb4d0 Debugger: SNES - Fixed minor issues with CPU internal registers' peek implementation 2024-12-24 15:04:53 +09:00
Sour
c0d61b46f4 SNES: Delay the SPC's access to the new values written by the CPU
This allows Kishin Douji Zenki to boot without locking up on a black screen
2024-12-24 15:04:40 +09:00
Sour
e4d317635f SNES: Improved gamepad auto-read behavior
Based on new tests: blip-autojoy-test, blip-autojoy-test-automatic, enable-autojoy-late-test-2
2024-12-20 18:51:03 +09:00
Sour
88210b3fcf SNES/PCE/SMS: Added missing "allow invalid input" option (and prevent invalid inputs by default) 2024-12-20 14:48:15 +09:00
Sour
d1aa957a80 SNES: Allow gamepad auto-read to be disabled while it's running
Matches new hardware tests: clear-autojoy-1st-vb-sl / clear-autojoy-during-autojoy
2024-12-17 17:21:41 +09:00
Sour
6b77200364 SNES: Improved gamepad auto-read emulation based on research/test rom 2024-12-14 14:39:42 +09:00
Sour
ff1580def4 SNES: Fixed input issues with Pocky & Rocky
Caused by the game enabling controller auto-read in the middle of the auto-read "portion" of the frame
2024-12-13 19:36:48 +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
4ae738f028 SNES: Fixed emulator crash caused by large DMA transfer (across multiple frames) 2024-11-17 19:34:14 +09:00
Sour
3873078053 Debugger: SNES - Fixed crash when resetting console with debugger active 2024-11-07 18:46:20 +09:00
Sour
98dc779ee8 SNES: Fixed ExHiROM memory map (save ram should only be available at 80-BF:6000-7FFF) 2024-10-26 16:26:21 +09:00
Sour
0b1fe08bba SNES: Fixed PPU $213F reads to always reset the h/v counter low/high toggles 2024-10-15 20:18:56 +09:00
Sour
d751502a58 NES: Added Rainbow support (mapper 682) 2024-10-08 21:37:44 +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
8ad5423be5 GBA: RTC support 2024-07-18 21:50:24 +09:00
Sour
14123a1884 Debugger: Sprite Viewer - Added option to dim offscreen sprites in the left-hand grid
+ Added "Visible" column to sprite list
+ Fixed some layout issues in > 100% dpi modes
2024-07-14 14:33:10 +09:00
Sour
9f57622df1 Debugger: SNES - Fixed debugger issues for SDD1 games
All instructions were interpreted as BRK because of the default peek implementation returning 0 for all addresses mapped by the SDD1, and memory mappings in general did not work properly in the debugger
2024-07-08 18:21:42 +09:00
Sour
caaf8ed8e8 GB: Added basic support for gbx files 2024-07-06 17:54:34 +09:00
Sour
ee09a7bde2 UI: Revert addition of snes mouse option
This doesn't appear to be particularly useful and doesn't appear to be related to the original issue that was reported regarding mouse movement
2024-06-25 18:31:49 +09:00
Sour
6d020e09e8 UI: Input - Added option to enable old SNES mouse movement 2024-06-24 11:31:08 +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
abe6f0f860 PCE: Fixed sound mixing issue causing pops in ADPCM and CD audio 2024-06-07 20:25:43 +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
8cbaf3a6dc Debugger: SNES - Fixed out-of-bounds memory accesses in NEC DSP debugger 2024-04-27 10:51:02 +09:00
Sour
13acb3fe42 Added GBA support 2024-03-30 11:42:31 +09:00