-
Notifications
You must be signed in to change notification settings - Fork 852
Open
Labels
accuracyHardware accuracy improvementHardware accuracy improvementbugcomponent: cpuCPU emulation (cpu.js)CPU emulation (cpu.js)difficulty: mediumModerate change requiring understanding of one subsystemModerate change requiring understanding of one subsystempriority: mediumIncorrect behavior for specific games or edge casesIncorrect behavior for specific games or edge cases
Description
Summary
doIrq() missing dummy read PPU cycles
doNonMaskableInterrupt() correctly has 2 dummy PPU steps at the start (cycles 1-2 of the interrupt sequence), but doIrq() jumps straight to pushing the return address. The PPU is 6 dots short during IRQ handling.
doResetInterrupt() incomplete
Missing:
- 3 dummy push cycles (stack pointer decrement without writing)
- I flag set to 1
- 5 of the 7 PPU step cycles (only has the 2 for vector fetch)
These affect PPU-CPU synchronization during interrupts.
References
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
accuracyHardware accuracy improvementHardware accuracy improvementbugcomponent: cpuCPU emulation (cpu.js)CPU emulation (cpu.js)difficulty: mediumModerate change requiring understanding of one subsystemModerate change requiring understanding of one subsystempriority: mediumIncorrect behavior for specific games or edge casesIncorrect behavior for specific games or edge cases