Zapper modifications

A project log for Zappotron Super-Sequencer

NES Zapper Controlled drum sequencer

Russell KramerRussell Kramer 03/19/2017 at 01:211 Comment
With older light guns like those used by Atari 2600 and Sega MasterSystem you could cheat at any game by simply aiming at a bright light. The game console flashes a white rectangle over a target then thinks the light gun was pointed at the target because it picked up light. Nintendo didn't want it to be that easy to see the last level of Duck Hunt, so they designed the zapper to not be fooled by this trick. It only responds to flashes lasting about a millisecond so it will not be fooled by a static light source.

I opened up the light gun and took a look at the internal circuit board. Almost all the light detection work is done by an IR3T07A chip. I couldn't find a datasheets for this chip so I started poking around and trying to find a way to get the zapper to respond to static light sources instead of just flashes.

I eventually discovered I could get the results I wanted by removing the 10nF capacitor from the PCB. Strangely the light gun still doesn't respond to being pointed at a lightbulb, but it does respond to the CRT. I think the 10nF capacitor sets the acceptable light flash duration. Removing it leaves a couple pF between the PCB traces, which makes the invisible 60Hz flicker of a CRT acceptable, but not a static light source.

The transistor in the bottom left of these pictures is a BC458 (not to be confused with the common BC548).

There was a random delay from 10-60 microseconds between the zapper seeing the raster beam and the signal rising on the detection wire; then again for the falling edge. This was a big problem for getting the horizontal position of the light gun. It was so bad the gun could appear to be on the opposite side of the screen because the detection pulse didn't activate until the next scanline started.

The Zapper uses the BC458 to boost the detection signal before it goes into the long wire. BC458 is one of the worst transistors the 80s had to offer and it's only gotten worse with age. A google search for it brings up mostly forum threads starting with "My X doesn't work" and ending with "Replacing the BC458 fixed it". I swapped it with a 2N3904 and it cleared up the problem completely. 2N3904 had a different pinout so there are bent leads to make it fit.

Later on I ran into a problem caused by the zapper's field of view being too large. Any of the drum sequence steps within the zapper's field of view will be moved when the control button is pressed. On a smaller TV the steps were smaller than the zapper's field of view so it wasn't possible to move one individually. Its neighbors would end up being moved as well. I solved this by narrowing the field of view with tape over the lense.

I also shortened the zapper's cable from 8 ft to 2 ft since it was unnecessarily long for my application and wanted to use the wire in other parts of the project.

The zapper cost $2 Canadian dollars at a second hand store.


Alexander R Pruss wrote 05/05/2020 at 17:38 point

Do you happen to have any data on what the field of view before the modifications was? It would be a helpful bit of data to know for NES emulation purposes.

  Are you sure? yes | no