Commit graph

3354 commits

Author SHA1 Message Date
Sour
ea657c1898 UI: Call EmuApi.Release() before the main window closes
This seems to fix deadlocks (join on VideoRenderer thread never finished) in some scenarios when closing the emulator using the "Exit" shortcut (only seen on Linux)
2025-01-05 10:46:47 +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
abb86d4f0e Audio: Fixed buffer overflow crashes when slowing down emulation below ~5%
+ Mute audio when playback is so slow that the sound breaks
2025-01-05 00:02:58 +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
43afe7956b UI: Change Avalonia build to nightly containing the AOT deadlock fix (instead of the PR build) 2024-12-29 11:50:47 +09:00
Sour
21f1f62424 SNES: Added sinc audio interpolation option 2024-12-27 23:02:02 +09:00
Sour
636e645436 Debugger: Fixed code comments not supporting non-ASCII text
Entering CJK characters or accented characters in a comment resulted in ? characters in the disassembly, etc.
2024-12-27 14:21:08 +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
1063146082 GG: Fixed freeze at boot in BIOS code (when a bios is provided) 2024-12-26 16:48:11 +09:00
Sour
eed94fdbe7 UI: Fixed error message/broken layout when clearing the text/value in a NumericUpDown control 2024-12-26 16:09:21 +09:00
Sour
8dda623a1f UI: Focus game selection screen on startup
+Try to avoid menu getting stuck with focus
+Improve keyboard/gamepad navigation for it
+Make selected game a bit easier to see
2024-12-26 16:09:17 +09:00
Sour
7f0831a542 GBA/SMS/WS: Fixed broken lag counter
Also make counter reset to 0 when game is reset on all consoles
2024-12-26 12:01:19 +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
0dfc8ac834 UI: Update to Avalonia build that fixes freezes in AOT builds on Windows 2024-12-25 19:02:23 +09:00
Sour
6820db3793 Fixed compilation errors in clang (in VS) 2024-12-25 18:58:57 +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
32ab5cfa7e GBA: Fixed open bus issues
This fixes a freeze in Zelda Minish Cap (in the final dungeon) and fixes a test in the mGBA test suite (Misc -> DMA prefetch -> Read)
2024-12-20 14:25:10 +09:00
Sour
71ecb09ffe UI: Added Firmwares tab in emulation settings to view/manage firmware files 2024-12-19 20:06:28 +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
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
84995227fc Debugger: PCE - Added DDA output value to register viewer, fixed incorrect addresses 2024-12-16 21:54:02 +09:00
Sour
f7c1bebdbc PCE: Fixed PSG channels in DDA mode not immediately updating output when a new output value was written 2024-12-16 20:41:20 +09:00
Sour
86cac326d7 Debugger: Tile editor - Improved behavior when editing tiles from a tilemap in games that bankswitch vram in the middle of the screen
-Also allows cropping the edit window when the size doesn't fit (e.g using 4x4 near the bottom of the screen can result in a 4x2 edit window, etc.)
-Fixed a display issue when the number of edited columns & rows didn't match
2024-12-14 23:19:02 +09:00
Sour
e2ea8438f2 Debugger: Added edit 8x8 tile option in tilemap/tile viewers 2024-12-14 22:38:12 +09:00
Sour
6b77200364 SNES: Improved gamepad auto-read emulation based on research/test rom 2024-12-14 14:39:42 +09:00
Sour
0352c7d675 Debugger: Always show modal popups in the taskbar
It's possible to click minimize on them, which isn't very user friendly (appears as a tiny title bar at the bottom left in Windows, not sure about Linux/macOS)
2024-12-13 23:35:47 +09:00
Sour
ed1b5c51ca Debugger: Keep focus on main window when opening script windows alongside a rom via the command line 2024-12-13 23:13:37 +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
84919bccdc Rewind: Fixed partial desync of input data when rewind stops
This could potentially cause desyncs on subsequent rewinds, but most obviously it caused rewinding during movie playback to break movie playback entirely (because some inputs were handled by the rewind, while others were handled by the movie, causing the _deviceIndex value to be out of sync with its expected value)
2024-12-13 19:00:32 +09:00
Sour
0ff6e6a1ea Debugger: Added basic support for SDCC symbol files (.cdb), including source mappings 2024-12-12 22:28:33 +09:00
Sour
b30bb12000 WS: EEPROM - Fixed "read done" flag never being reset 2024-12-12 21:04:26 +09:00
Sour
460ea81ca3 Debugger: WS - Fixed "freeze" memory not working 2024-12-12 20:57:55 +09:00
Sour
604f1a6fc9 PCE: Fixed SuperGrafx layering problem
When VDC1 had both BG and sprites disabled, it blocked the VDC2's background (resulting in a black screen). VDC1's output should count as transparent in this scenario
2024-12-11 18:32:55 +09:00
Sour
75b667d2cc NES: Fixed behavior for SHX, SHY, SHA, TAS 2024-12-11 18:27:06 +09:00
Sour
d32763e7f8 NES: Fixed regression in "remove sprite limit" feature that caused some sprites to be missing
Caused by recent accuracy improvements to sprite evaluation
2024-12-10 19:11:02 +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
8d49d0ea54 Debugger: Label list - Toggle breakpoint on ram labels should create RWX breakpoints 2024-12-08 17:22:51 +09:00
Sour
d94646590d Debugger: Source View - Fix selected file/scroll position being incorrect after manually loading a symbol file when the source view tab was already visible 2024-12-08 16:48:01 +09:00