When I was around 4-5 years old I remember playing on a NES while over at friends’ of my parents. Growing up, the classic NES titles like Super Mario Bros., Duck Hunt, Super Mario Bros. 3, etc., and now that I’m “an adult” I have my very own NES. The only problem is that I recently discovered that I couldn’t play Duck Hunt! The game cartridge works perfectly fine and I even have an old analogue CRT TV that is compatible with the NES Zapper, but for some reason (as you will learn as I did) the gun didn’t work when I would fire up a Duck Hunt session.
The first thing I did was check Google to see if anyone else encountered this problem. Most of the results pertained to issues with getting the Zapper to work with LCD TVs, (not my problem, but to understand why it doesn’t work with LCDs, you can checkout out the Wikipedia article) so I disassembled the Zapper’s connector and connected a multimeter to monitor the voltage levels when the Zapper was connected to the NES.
The measurements revealed that when the trigger was pulled, the voltage on pin D4 (bottom left pin of the picture where I’m holding the connector) of the NES controller connector didn’t rise to 5V from 0V; instead, the voltage would stay at 5V and very slowly decay. I decided to take apart the Zapper to see if it was the problem (and because I wanted to see how it worked!).
If you have ever used a Zapper, you may have noticed (or maybe not) how well balanced the controller feels in your hand. As you can see in the picture, the Zapper has a metal weight in the handle that helps balance the controller. There is also a lens and metal collimator in the barrel of the Zapper. Well actually the whole barrel is really a collimator and the metal collimator probably acts as another weight to help balance the controller. Finally there is the trigger mechanism and the Zapper circuit. The Zapper circuit handles detection of trigger pulling and whether or not the user has “hit” the target in Duck Hunt.
I mapped out the circuit (very roughly…) and found that the circuit is really two circuits in one: 1) a trigger circuit with a 10uF de-bouncing capacitor, and 2) some kind of circuit that decodes input from a PD 43Pi photodiode, used to detect if a duck has been hit or not, using an IR3T07A chip (couldn’t find the datasheet!), and the output from this chip is inverted using a 2SC458 NPN transistor. This output is sent to the NES through the D3 pin.
Testing of the Zapper circuit determined that it was working. I checked the capacitors and resistors and they all seemed to be ok. I also checked to see if varying the intensity (brightness) of light on the photodiode varied the voltage output on pin D3 (the pin right above D4) and it did change as expected; the brighter the light, the larger the voltage. These results suggested that there must be a problem with the NES, so I put the Zapper back together and connected it to the player 1 port on the NES. Pulling the trigger showed that the voltage on D4 would jump from 0V to 5V to 0V as it should! So the problem was with the player 2 port on the NES. At this point, I also found a website with a nice circuit diagram and description of the Zapper gun.
When I opened up the NES, the problem was immediately obvious. As you can see in the picture, for some reason, one of the wires wasn’t connected to the player 2 port on the NES! As you might expect, after connecting this wire to the port and re-assembling the NES the Zapper gun worked!
Now I can relive my childhood nostalgia and contribute to virtual duck murder unabated!