Guspaz wrote:You shouldn't need two zappers, or even a CRT: the zapper can be polled each scanline, the NES knows what scanline it's drawing when the zapper sees the light, and there shouldn't be any real delay between the NES drawing a scanline and the scanline appearing on a CRT.
Put the zapper at the top of the screen, pull the zapper trigger, NES changes the background colour from black to white, NES times how long it takes for the zapper to detect the light. There, you've got your latency to within a few scanlines.
EDIT: Admittedly I'm ignorant of the NES architecture. There are multiple ways to do this on the Gameboy, including at the minimum reading the scanline register, setting an hblank interrupt, or setting an LYC interrupt, so I'm assuming that there are similar ways to do this on the NES.
EDIT2: Looks like the NES doesn't have any of those things, but MMC3 has a scanline counter that can be used for that, and most flashcarts should be able to provide that.
Both methods could be implemented. However, the intent is to convey the difference between a control monitor and the tested monitor, as a regular CRT will have a few milliseconds, varying further by how far down the screen and to the side the Zapper is pointed, so having the two-Zappers method would be important to me as well.
I want to do this mostly because I have an HD CRT (KV-32HS510) and when fed with an XRGB3 in line doubling mode, or 480p straight out of one of my FPGA-equipped consoles, the latency is
very low but I'm having trouble proving it with a 240fps camera. Sometimes it looks like it's on time, sometimes it looks delayed by a frame. So, I want to put together something reliable and empirically reproducible, and Zappers aren't too expensive.