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/
沒有留言:
張貼留言