In attempt to improve the accuracy of my PPU implementation, I have been studying the source code of Nintendulator (PPU.cpp). I noticed that VRAM reads and writes are delayed by 3 PPU cycles:
Is the delay related to the PPU rendering pipeline?
Code:
unsigned char IOVal;
unsigned char IOMode; // Start at 6 for writes, 5 for reads - counts down and eventually hits zero
...
IOMode -= 2;
unsigned char IOMode; // Start at 6 for writes, 5 for reads - counts down and eventually hits zero
...
IOMode -= 2;
Is the delay related to the PPU rendering pipeline?