Hi everyone, I'm writing an nes emulator and just finished the cpu. I was looking at general structures for updating the screen; so far I have seen:
1. render 3 pixels every cpu cycle; supposed to be very accurate but also slow
2. render a scanline at a time; maintains some accuracy but and speeds up the display
3. render the entire frame before the start of a VBlank; very fast but won't handle any games that use ppu trickery
And then here was an idea I had: execute ppu instructions on a per-cpu-cycle basis, except instead of actually writing to the display just log what memory value and to what address the command was writing to. Then, render the entire frame right before the VBlank. Would this be any faster than 1 (above) or not?
Am I wrong about any of these descriptions, are there any other common methods, and what do you think the best method is?
1. render 3 pixels every cpu cycle; supposed to be very accurate but also slow
2. render a scanline at a time; maintains some accuracy but and speeds up the display
3. render the entire frame before the start of a VBlank; very fast but won't handle any games that use ppu trickery
And then here was an idea I had: execute ppu instructions on a per-cpu-cycle basis, except instead of actually writing to the display just log what memory value and to what address the command was writing to. Then, render the entire frame right before the VBlank. Would this be any faster than 1 (above) or not?
Am I wrong about any of these descriptions, are there any other common methods, and what do you think the best method is?