Why doesn’t my NES Zapper work?

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.

Diagnosis

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.

 nes nes_zapper

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!).

 nes_connector4 nes_connector
nes_connector3 nes_connector2

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.

zapper_circuit

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.

inside_zapper zapper_circuit
zapper_circuit3 zapper_circuit2

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.

The Fix

nes_port2

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!

working_zapper

Advertisements

2 thoughts on “Why doesn’t my NES Zapper work?

  1. ryuszero

    Did your NES respond at all on a trigger pull? I’m having a similar issue with hits not being detected on a CRT TV which previously worked. When I pull the trigger the screen flashes but no hits are detected comma and this is with multiple zappers. Maybe I need to be checking for loose wires.

    Reply
    1. asreimer Post author

      Hey apologies for the late reply!

      My NES didn’t respond at all on a trigger pull. There was no flash on the screen. In my case, as best as I can remember, the detection wire was connected and responding, but the trigger wire was disconnected inside the NES (as you can see in the photos in my post).

      If multiple zappers produce the same result, this definitely suggests the issue is with the NES.

      Best of luck! I would be interested to hear what you find.

      Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s