13 Replies Latest reply on Dec 24, 2017 8:23 AM by kennyl

    An NES Zapper for modern LCD TVs?

    android927

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

       

      -Andrew

       

      Sources:

      https://www.youtube.com/watch?v=c3tBk-LYyzo

      nes monitor - Why doesn't Duck Hunt work on plasma or LCD screens? - Arqade

       

      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.

        • Re: An NES Zapper for modern LCD TVs?
          ctw2014

          Hopefully I can explain why this would be impossible by adding something to the console or by modifying the zapper in anyway.

           

          There is no way to get around the delay.  The only way possible is to figure out how to get rid of the delay on the TV.

           

          To help explain this and make it easier to visualize in your mind we can pretend that the delay on the newer sets is a whole 5 seconds(I know the actual delay is under 1 second).

           

          When you see the duck, and click that clicker on the zapper, the nes game is is immediately looking for a response from the zapper.  It is as simple as that.  And in my pretend delay of 5 seconds it would have taken the 5 seconds for the black screen with white squares to show up so the zapper didn't get a hit to send a signal to the nes.  So now lets say you hooked up a microprocessor to the Zapper or made some other circuitry and hooked to the zapper so after clicking would wait that exact 5 seconds before the zapper would look for the white squares to be able to register a hit and send a signal to nes.  That still wouldn't work because like I said the game itself was looking for for that signal almost immediately there after.

           

          The only way to get around this is to modify the game itself with code.

          1 of 1 people found this helpful
            • Re: An NES Zapper for modern LCD TVs?
              jonhickman23

              Hello,

               

              I'm new here, but I don't quite understand why someone couldn't recalibrate the games code to make it work.  But besides that, am I the only one that wishes we could have a zapper for on rail games at home on newer tvs? I understand that refresh rates may vary, but couldn't a calibration setup be implemented into a newer game's code?  It would be really cool to play that Dead Space Wii game with a zapper rather than a wiimote with a cursor. 

              1 of 1 people found this helpful
                • Re: An NES Zapper for modern LCD TVs?
                  william_hoffer

                  "someone couldn't recalibrate the games code" Have you seen game code before? Have you seen codding before?

                   

                  First off,how do you access the code on the chip set of the game? Next, there is probably several thousand lines of code, so how do you find the lines of code that relate to the gun lag? Once those lines are re-coded, what to do if those new lines cause errors in other parts of the program that were dependent on the original codes? Finally how do you upload the new code to the game cartridge?

                   

                  When the game was originally coded it was in a computer then uploaded to a server who then wrote it to the chipset and usually they wrote protected the chips so no one, including there competitors, could do just what you suggested and make clones of the game to sell.

                    • Re: An NES Zapper for modern LCD TVs?
                      kidiccurus

                      Actually, modifying NES games is a fairly common hobby. Using a hex editor, it is possible to make changes to certain aspects of the games code, and with a separate programming called a tile editor it is then possible to alter graphics. A rom splitter is them used to split the modified rom into files to be burned to eproms which are soldered into place inside the cartridges in place of the original ROMs. Some disassemblers are also available. If you have a good enough knowledge of assembly it may be possible for you to modify the code.

                      Also write protection come from the physical nature of the ROMs used in NES carts. Because the programming is etched directly into the chip, they cannot be erased for reprogramming. This did nothing to prevent the game being copied. The ROMs had to be readable for the console to read the code it headed to run the game, and as a result the code could easily be copied with the correct equipment. In fact, cartridges containing hundreds of pirated NES games were commonly sold in countries like China, and many hobbyists still produce replica versions of rare games.

                      1 of 1 people found this helpful
                  • Re: An NES Zapper for modern LCD TVs?
                    cgibbons

                    I'm not clear on why modifying the zapper would not work. As long as the delay is constant, shouldn't you be able to simply introduce the same delay to the output of the trigger? You would need to make a custom cartridge with a calibration program to set the length of the delay, but that would not be that difficult.

                      • Re: An NES Zapper for modern LCD TVs?
                        kennyl

                        The problem is you're seeing it backwards.  By the time the screen draws the duck in X location, you should have ALREADY pulled the trigger.  Because there's so much delay in the display.  You can't modify the gun to get around this, it would have to be the games code so it isn't looking for an instant reaction but a delayed one.  This is why rhythm games like Guitar Hero built in delay calibration.  With the notes on screen set to 0 delay compared to the song, you can hardly play the game on an LCD but on a CRT you can play it fine.  It has to be on the software side.  It should be theoretically possible, but modifications to the NES hardware and Zapper gun it's self shouldn't be needed in my opinion.

                        1 of 1 people found this helpful
                    • Re: An NES Zapper for modern LCD TVs?
                      vd0gg1t

                      Hi, I'm confused as to why this is so difficult. The wii remote "reads" the infrared sensor bar. So as long as the "bar" is scaled to a 16:9 ratio, you would "paint" the bar with on/off signals instead of the CRT. same code different output device but essentially the same original code, right?

                      • Re: An NES Zapper for modern LCD TVs?
                        kennyl

                        On the original topic, making a Zapper work on modern LCDs is probably not that feasible.  As stated changing an NES games code, while theoretically possible, is not a simple task.  "rom hacks" and the like are proof that it can be done.  You can re-arrange a game's code, and you can build flash carts that can be used to play your custom roms on an actual NES console.  It's just not really cost effective.

                         

                        I will, though, let you in on my solution.  Small CRT TVs are getting less common, but they are still fairly easy to find and cheap since nobody in the general public wants them anymore.  I keep a 14" CRT in the top of my bedroom closet for playing Duck Hunt specifically.  It's also fun to play older game consoles on CRTs for nostalgia factor alone, it just has the proper look and feel.  Playing Super Mario Bros on an LCD never really feels right, heh.

                        1 of 1 people found this helpful
                        • Re: An NES Zapper for modern LCD TVs?
                          madlemaudit

                          Hi, sorry for bumping up this thread, but maybe I found a way to make lightguns work with modern screens.

                           

                          Considering it's a delay issue, maybe we can underclock the processor of the NES. Obviously, we don't want to slow the entire game, but just at the moment the gun is triggered.
                          I think this mod  can be achieve with a couple transistors and a quartz oscillator.

                           

                          But, I wonder if switching the clock this way a numerous times is good for the proc, or can be a source of issues. I'm about to order a bunch of quartz to do some tests, but if the only result I can get is a dead NES, better to know before !

                           

                          Thanks for reading.