We all know the Nintendo Zapper. The toy gun we used to connect to our NES and shoot away at our television set, trying to hit ducks.

As a technology freak, I’ve always been curious on how one of those works, how does the gun, or the NES know what you’re pointing at?
When thinking about this, I found multiple solutions to this question:
1. Digital Camera
Proposition: If you look at the front of the Zapper, it shows a little lens. Might it be possible it contains a little camera that takes a flimpse of what you’re pointing at, compares it to the rendered screen and detects what it is you’re pointing at?
Answer: Goodness no. The zapper was invented in 1985 when Polaroid was the hot new thing. There is no way they could have a digital camera that compact and precise to detect to do this.
Also, regarding computer power of that age (Microsoft was just founded in that year to give you an idea). Pointing your camera would create a 3D image for the internal camera. It would have to shape/skew/rotate that image in order to get the pixels right. Simply not done in that age.
2. Motion detection
Proposition:: We all know the Nintendo Wii. The controller has a motion detector wich basically means, if you move it, it knows how hard, in wich direction and how you moved it.
Answer: Same thing, it simply wasn’t possible back then. Nintendo invented the Wii just a few years ago. Not 20 years ago
… I gave up after 2 …
So what is it then?
Well, I’ve done some research. And I’ve found a few links: HowStuffWorks and Del Squacho.
Basically, all it does is: When you press ‘fire’ on your zapper. The Nintendo turns the entire screen Black. And only the ducks you’re hunting White.
This means that when the zapper ‘sees’ light (white = light). It knows you must have hit something!
So this:

Turns into this:

The black box generated
The only question remaining is: if it only detects if the screen is white or not. Then could you cheat if you point it at a (second) screen that only emits white?
I haven’t got a NES, could somebody test that for me