Commit graph

2024 commits

Author SHA1 Message Date
Sour
2e8ca044ec GB: Fixed HDMA not running on scanline 143
This fixes graphical issues in Warau Inu no Bouken (because some tiles were not being transferred to VRAM)
2025-03-23 13:33:45 +09:00
Sour
8c04e1ad6c GB: HDMA shouldn't run if CPU is halted
Fixes MagenTests/hblank_vram_dma test rom
2025-03-23 13:32:00 +09:00
Sour
b844642866 Debugger: GB - Fixed tilemap viewer displaying incorrect tiles when the tile index is above 127
Seems to only happen in release builds in MSVC (unsure if other compilers were affected)
+ Also added missing member in GbCpuState in the UI
2025-03-23 13:16:31 +09:00
Sour
d3afd0dbf2 Debugger: PCE - Tilemap viewer - Fixed scroll overlay Y position 2025-03-22 08:44:49 +09:00
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
929d4dcc20 GB: Fixed APU emulation issues
-Super Mario Land 2 - Pops in menu are fixed by immediately updating APU output after a write
-Perfect Dark - Low voice volume is fixed by having the correct output when the channels are disabled (but DAC is still enabled)
-Daiku no Gen - Low voice volume is fixed by keeping square channel output to digital 0 (= analog 1) until its first tick after being enabled (the game does not let the channel tick at all while the voice sample is playing)
2025-03-21 23:03:01 +09:00
Sour
85070a6dc2 NES: Mapper 142 - Added missing variable to save state 2025-03-20 17:24:45 +09:00
Sour
62e6fb750b NES: Mapper 107 - Fixed PRG mappings 2025-03-19 22:30:44 +09:00
Sour
99311f9af2 NES: Mapper 142 - Misc fixes, including IRQ behavior that was breaking SMB2j on reset 2025-03-19 22:30:27 +09:00
Sour
4921d09468 NES: Mapper 139 - Fixed mirroring issue 2025-03-19 22:29:49 +09:00
Sour
4e63730c73 FDS: Implemented 4030.3 bit (mirroring flag) 2025-03-15 18:18:12 +09:00
Sour
e8c99284d1 FDS: Audio - Fixed behavior of the 4089.7 bit.
When set, the wave unit continues to run, but the output is held at its previous value
2025-03-15 16:06:35 +09:00
Sour
51f5afb7a3 GBA: Fixed window rendering glitch when X position was changed during hblank
Super Mario Advance 4 (SMB3) window animation when entering a stage had a glitchy scanline when the window's end position was moved from x=255 to x=239 during hblank, because ProcessWindow was not getting called when the window X position register was changed
2025-03-14 23:55:16 +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
24dfab45de NES: Added support for mapper 487 (Maxivision 30-in-1) 2025-03-12 20:18:06 +09:00
Sour
d0a3db20d8 PCE: Fixed ADPCM audio decoding issues
-Output is a 12-bit value and should wrap
-"Magnitude"/"step size" should be reset to 0 when playback starts

This fixes sound effects in NEXZR that were broken by the previous (incorrect) fix and also broken because _magnitude was not being reset to 0 when each sample started playing
2025-03-12 16:46:32 +09:00
Sour
6334ef2a6a Debugger: GBC - Fixed crashes when memory viewer was opened and addresses FF76/FF77 were visible
This was causing the APU to run inside the UI thread, causing memory corruption/crashes
2025-03-11 17:50:19 +09:00
Sour
7ae5d7c83a WS: APU - Fixed inverted sample order for wave table 2025-03-10 17:57:43 +09:00
Sour
1d947180a9 WS: APU - LSFR value doesn't update unless all 3 enable flags (channel+noise+lfsr) are enabled 2025-03-10 17:56:32 +09:00
Sour
c90b8a9ef6 WS: APU - Disabled channels should output 0
+ Ch2 outputs PCM if PCM is enabled, even when channel is disabled
2025-03-10 17:55:22 +09:00
Sour
db4cc01967 NES: FDS - Fixed emulation issues with modulation
Fixes incorrect audio in Yuu Maze and 19 Neunzehn
2025-03-09 23:30:44 +09:00
Sour
470cf9d7ee NES: VRC6 - Fixed missing audio register mirrors 2025-03-09 08:51:26 +09:00
Sour
cde15d2b38 Debugger: SNES - Fixed open bus mask for register 4210 peek 2025-03-07 15:44:44 +09:00
Sour
77fc5301eb WS: Suppress trace IRQ for 1 instruction after it gets enabled 2025-03-03 18:25:50 +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
211b42e91c WS: Improved IRQ handling after IRQ flag is set or SS segment is modified 2025-03-01 22:17:45 +09:00
Sour
5823761791 SMS: Implemented fairly accurate sprite eval+fetch timings, for all modes
+ Fixed VRAM read to wait until next available CPU access slot
+ Fixed NMI triggering on the wrong scanline on SMS
+ Fixed NMI issues on ColecoVision
+ Fixed random ram option not working properly on SG-1000
+ Added "Mem access" tab to tilemap viewer to see fetch patterns
2025-03-01 00:09:36 +09:00
Sour
fadf7c4d44 GBA: Fixed problem with wave channel in Kidou Senshi Gundam - Seed Destiny
Wave channel was playing the wrong audio on the title screen, because some writes were being blocked.
It looks like the restriction on wave "ram" access that exists on GB don't exist on GBA
Additionally, it seems like the wave data is supposed to be stored in a large shift register (not emulated yet), rather than an array of bytes
2025-02-26 17:41:33 +09:00
Sour
8dc389df49 NES: Runahead - Fixed issues switching disks or inserting coins with FDS/VS System 2025-02-20 18:43:56 +09:00
Sour
0b593d4c78 NES: FDS - Fixed IPS save data not being applied when loading the rom 2025-02-20 17:38:21 +09:00
Sour
d72658de7a NES: FDS - Fixed issues with Kosodate Gokko (unlicensed disk copying program)
+ Added option to save directly to the original rom file instead of creating .ips files (for FDS & cartridges with flashable prg/chr rom)
2025-02-19 21:27:15 +09:00
Sour
1da719bb80 NES: MMC5 - Added support for 128kb ram 2025-02-18 09:30:20 +09:00
Sour
57f136f432 GBA: Fixed APU sampling timing problem which reduced audio quality 2025-02-17 13:52:44 +09:00
Sour
352adae9f8 NES: FDS - Implement CRC checks/writes for .qd files 2025-02-15 22:38:32 +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
b1c54193d2 Fixed compilation warnings 2025-02-12 16:57:59 +09:00
Sour
762e5ea617 Debugger: NES header editor - Fixed incorrect values for VS system roms 2025-02-11 21:46:30 +09:00
Sour
d0b1a9d6f5 NES: Fixed crash when changing region while playing VS Dualsystem games 2025-02-11 20:49:15 +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
30fd76d9e0 NES: Added support for .qd format FDS roms 2025-02-07 21:06:17 +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
797ef1f57a PCE: Improved timing for SATB/VRAM DMA
Fixes freeze in TV Sports Football's "New Season" screen and is very close to new test rom's timings/results
2025-02-01 19:43:59 +09:00
Sour
4ce300877d PCE: Fixed memory mappings for save ram
Save ram is not mirrored across the entire 8kb, can only be accessed in the first 2kb
This fixes Death Bringer corrupting save ram when trying to start a new game
2025-02-01 18:01:15 +09:00
Sour
081c3bca7a GBA: Fixed save type detection issues
Some games contained the string "FLASH_" but it wasn't actually the "FLASH_Vxxx" marker for the 64kb flash chips
2025-01-24 21:56:52 +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
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