This is a post i made previously on another thread, but i'm now posting it as its own discussion to hopefully get some response from Ben or anyone else who can figure out how to do this build.
Dear Ben (or anyone else with the technical skill to solve this problem),
For a while now I've been looking for a way to modify an NES Zapper to work on modern televisions. After a lot of research, i think i have figured out exactly why it doesn't work. Unfortunately, however, i am just a computer science student with only very basic experience in working with electronics, so i do not know how to even begin implementing a solution. I was hoping you would be able to help.
As you probably know, the Zapper works by having the entire screen go black save for the targets, at which point a photo diode senses whether or not it is pointing into the light. However, this is actually accomplished by a multistage process which i will outline below:
1) The NES redraws the screen completely black for one frame. The Zapper checks to make sure no light is detected before proceeding, preventing any accidental readings from other light sources (this is why pointing it at a light bulb doesn't work).
2) The NES redraws the screen with only target #1 illuminated for one frame. The Zapper checks for light, and the Nintendo determines if the player has hit target #1.
3) The NES redraws the screen with only target #2 illuminated for one frame. The Zapper checks for light, and the Nintendo determines if the player has hit target #2.
4) This process repeats for all targets on screen.
The obvious issue with modern televisions is that they tend to upscale the image, resulting in a slight delay that messes up the precise timing required for this sequence to work. Another potential issue i have read about is the nature of the photo diode itself. I have heard that Nintendo opted to use cheap photo diodes that only detect the infrared light coming from the CRT, thus preventing it from working on modern televisions, however i can not verify this.
I was hoping that you would be able to come up with a creative solution to this problem that even someone as inexperienced as me would be able to follow (maybe even make an episode out of it ).
EDIT: Someone on youtube has been working on a solution to this problem, but it has been a year since they last updated so i have no idea if they ever finished it. If you have any doubt that this is possible, here is a video where he shows his working prototype: https://www.youtube.com/watch?v=8D624JADDOw
EDIT 2: A possible solution i have considered would be to connect to the expansion port on the bottom of the nintendo using an ENIO board to allow the gun to directly interface with the 2A03, but i have no idea how i would implement this or how it would actually work. It would probably need to tell the game to flash the targets on screen, then wait until the gun can determine whether or not it is pointing at a target before advancing to the next bit of code.
EDIT 3: I have recently tested an NES zapper on an old projection tv. This proves that the issue is caused by input lag and not the lcd screen itself, because it shows that the zapper CAN indeed work on a non-CRT television.