Give me back my light gun!

Introduction

With the end of the CRT screen era, the good ol’ light guns no longer work.

CRT and LCD/Led/Oled/xxx screens are so technically different that there is no way to make a LCD screen reacts like a CRT and make it ‘compatible’ with light guns.

Like a fan of these shooting games, I think it’s a shame, I really miss them.

Next generations of video game systems tried to revive them with solutions like the Wiimote, the PSMove, etc..  but accuracy is not there, and so they suck.

While some personal projects attempted to fix this issue, they are dead, on hold or hard to find.

So I resurrect this project, started in 2010 (yes 10 years later!) with, I hope, if not a solution at least enough information for someone else to succeed.

Because, yes, this ‘project’ is another move on the hardware side, far from my sphere of knowledge. So I doubt I’ll be able to produce a final product...but I’ll try, for sure!

Please note that, for now, I’ll focus on the Megadrive light guns.

Because I know the system, it will help me focus on the light gun and not the protocol or controller (so yes, I don’t know a thing about the Zapper for now).

I’ll be more than happy to add more details on others systems but not for now.

How does it worked ?

If you don’t know yet of work/worked a light gun before LCD, you should read the Wikipedia page about it, especially this part which is exactly how a light gun worked with CRT screen :

https://en.wikipedia.org/wiki/Light_gun#Cathode_ray_timing

For more details, Nemesis explained it well also on this Spritesmind post

https://gendev.spritesmind.net/forum/viewtopic.php?p=12522#p12522

Technical details

So a CRT screen doesn’t ‘blit’ the picture to the screen, it draw it point by point, line by line

It’s so fast that our eyes see nothing but the full picture.

Hopefully, it’s note the case for the light gun light sensor.

When the electron beam / the point currently drawn on the screen is right on the light gun field of view, it gives this status back to the system it is connected to.

The system knows exactly where it’s currently drawing a point and so converts it to a pixel coordinate.

It is the most important part of the process : the light gun DOESN’T know where it is aiming at on the screen. It’s the main system which knows it.

Knowing that, you may understand how speed is important.

If the light gun triggers to late, main system will think you’re aiming more on the right or is worst case more on the bottom

The same problem arises if the main system has the information too late, it is already drawing somewhere else on the screen.

Solutions

Goals

Based on how I understand a lightgun works, I’m looking for ways to resolve these 3 problems

An optional point I’d like to add : OSD for calibration, debug or cheating

Coordinate of aiming point

<todo : fixed coordinate vs percent coordinate>

IR

<TODO : wiimote>

Samco

https://www.hackster.io/samco/samco-arduino-powered-ir-light-gun-mouse-05d110

6DOF

<todo>

CV

Light gun and method for determining shot position

http://www.freepatentsonline.com/9039537.html

Finding distance of rectangle with known aspect ratio in OpenCV

https://stackoverflow.com/questions/35090058/finding-distance-of-rectangle-with-known-aspect-ratio-in-opencv

Transfer data

Bluetooth

<todo : rate, connexion issue, available ICs>

Wifi

<todo : rate, connexion issue, available ICs>

IR

<todo : rate, connexion issue, available ICs>

RF

<todo : rate, connexion issue, available ICs>

Wire

<todo : rate, connexion issue, protocol>

Coordinate to Video data

CSync, VSync, HSync and others…

<todo: composite signal vs rgb/scart>

<todo: Horizontal porch>

<todo: Vertical porch/VBI>

<todo: PAL/NSTC/…>

<todo: LM1881>

<todo: LMH1980>

http://www.ti.com/lit/an/snla097a/snla097a.pdf

<todo: ADVxxxx>

<todo:MAX7456>

<todo: X coordinate>

<todo: Y coordinate>

Megadrive case

<todo: passthrough cart, problem with 32x>

<todo: external connector>

OSD

https://danialchitnis.com/fpga/index.html

https://nootropicdesign.com/video-experimenter/

MAX7456

https://www.tinyosshop.com/arduino-osd-shield

https://fr.hobbytronics.co.uk/max7456-on-screen-display

https://www.hobbytronics.co.uk/max7456-osd-breakout

Annexe 1 - Megadrive light guns

Awesome Eke’s Light Gun document explains how the 2 main light gun works.

https://gendev.spritesmind.net/mirrors/eke/gen_lightgun.pdf

Justifier

Cleaning & Restoring: Konami Justifier

https://www.youtube.com/watch?v=3nXHzAuo8Yk

Details

http://www.emu-land.net/forum/index.php?topic=13239.0

What photodiode or phototransistor  does the Konami Justifier use?

https://www.reddit.com/r/AskElectronics/comments/7ngygv/what_photodiode_or_phototransistor_did_the_konami/?utm_source=amp&utm_medium=&utm_content=post_body

https://imgur.com/a/8hWw3

Blue to Pink

http://www.emu-land.net/forum/index.php/topic,57847.0.html

http://www.markwylie.ca/2015/02/sega-konami-justifier-hack-convert.html?m=1

Menacer

The RED hater

Menacer Patent

https://segaretro.org/Menacer#Patents

Phaser to Megadrive Menacer

http://www.benryves.com/journal/tags/Light_guns

GameGun

SMS light phaser

While it’s not really a Megadrive light gun and no megadrive game was made to support it, the SMS light phaser could clearly be used on Megadrive to play SMS games.

I also made some Megadrive demo using it and I could tell you it’s a shame Sega didn’t ask to support it to Konami : its accuracy is almost perfect!

Annexe 2 - Others systems light guns

Nintendo - NES

Zapper

Nintendo - SNES

Bazooka

Sega - Saturn

Sega Stunner

A To SNES Bazooka

https://circuit-board.de/forum/index.php/Thread/4075-Sega-Saturn-Lightgun-Mod-f%C3%BCr-SNES/?s=dcf33393a2f7a8537d0b0dc9279301bdda49eb66

Sony - PS1

G Con

https://leandre.hexeo.be/2015/11/18/namco-npc-103-teardown/

Arcade

(focus on traditional light gun, not IR Light gun like http://solid-orange.com/1611)

Annexe 3 - Alternatives

CRT

Obsiously the best alternative is to keep a CRT screen, if your gaming room is big enough.

For now, you could find some for few bucks if not free.

But for how long ? They’ll soon become rare or no longer working.

In some years, I bet it will be interesting to fix them but for now...

Emulations

Using MAME or any other emulators, you can emulate the light gun through a mouse drive.

Several “mouse gun” exist, most of them are listed on

http://light-gun.blogspot.com/p/list-of-light-guns.html

The most known are the EMS Top Gun and Aim Track.

http://www.arcadeguns.com/index.php?main_page=product_info&products_id=278

Sinden Lightgun

The Sinden Lightgun is an alternative everyone is waiting for.

Why ? Because it doesn’t use the IR method but the Rectangular positioning method.

So, in theory, it could work with any system.

https://www.sindenlightgun.com/

https://hackaday.com/2018/06/28/a-lightgun-for-lcds-thanks-to-maths/

Lightgunverter

This one is interesting because it handles the problem of transferring coordinate another way :

It lets the original gun do it.

It computes the coordinate and lights on a led glued to the light gun at the right moment, emulating the electron beam.

Too bad it makes use of a wiimote / IR so accuracy isn’t there...but I like the idea!

http://www.lightgunverter.com/

Positional gun

https://en.wikipedia.org/wiki/Light_gun#Positional_guns