MarathonMan
Emulator Developer
- Thread Starter
- #541
The RDP renders into the RDRAM. The VIF never writes to the RDRAM, it reads pixels from the RDRAM, processes them and outputs one color component per VI cycle. The VIF part of the job is represented in my function rdp_update(), which reads pixels from the emulated RDRAM, processes them and writes them into an off-screen DirectDraw surface, which represents the VI coordinate space, or, if you will, TV image coordinate space. There's thus no conceptual difference between the real hardware and my plugin, your claim is unsubstantiated. rdp_update() function implements various filters that the VI applies correctly, but it might not update certain VI registers properly, mainly because the Zilmar's plugin spec doesn't support the required level of synchronization between the RDP and CPU.
I never said the VIF writes into RDRAM:
instead of copying the frame to RDRAM and allowing the VIF to display the image
The DMAs aren't emulated, so that's a bit of an oversimplification.
I didn't know it was writing to an offscreen surface, though.