2022年2月28日 星期一

Nintendulator v0.985 Beta (2022-02-27)

 FC / NES模擬器 Nintendulator 發布新版,更新如下 :

Update APU:
* Length counter values now match silicon, adjusted by 1 in code
* NoiseFreq, PCMFreq, and FrameCycles now match silicon, counting APU
  cycles
* Square0, Square1, Noise, DPCM, and Frame now respect APU clock phase
* DPCM Addr+Ctr Reload/Increment events are now delayed correctly
* APU Clock Phase is now incremented after CPU I/O, not before

Update CPU:
* Move DMA logic into its own function
* Rename MemGet -> MemGetCPU, create "MemGetDMA" to eliminate recursion
  in DMA logic
* Fix DMA timing to correctly emulate PCM DMA interrupting Sprite DMA
* Add macros "MemGetData" and "MemGetMiss" which point at MemGetCPU
* Implement SYA/SHY and SXA/SHX instructions

Update PPU:
* Delay setting sprite 0 hit in $2002 by 1 pixel to satisfy
  timing tests

Update savestate format:
* Version 1004
* Cycles for Square0/Square1/Noise/DPCM/Frame are now in APU cycles
* DPCM now tracks Resetting and Incrementing flags
* Frame Counter now tracks Quarter/Half/IRQ/Zero flags
* APU now stores the bottom 8 bits of its internal clock for tracking
  phase

The following test ROMs now pass:
* instr_test_v5 / 07-abs_xy
* pal_apu_tests / 06-len-timing-mode1
* ppu_sprite_hit / 09-timing
* ppu_sprite_hit / 10-timing_order
* sprdma_and_dmc_dma + sprdma_and_dmc_dma_512

http://www.qmtpro.com/~nes/nintendulator/

沒有留言:

張貼留言