Amstrad Magnum Phaser

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

The Magnum Light Phaser was released later on in the Amstrads' life, and retailed for £24.99 in the UK.

It came supplied with a cassette and a disk, both containing six games.

464 version plugs into FLOPPY DISC socket, whereas 6128 plugs into the EXPANSION socket.

The main reason to buy this gun was for the excellent Amstrad conversion of Operation Wolf. Playing this with a light gun on your Arnold was the arcade experience people relished but rarely got back in the 80's.

The other supplied games were fun for a while, but by far the high point was Operation Wolf.

Using the gun

You should position yourself 1.2m from the monitor. Make sure there are no reflections on your monitor from other sources otherwise the gun will detect this and give false results. A dark room is best.

Technical

The gun senses light intensity. When it detects light it will generate an edge on the LPEN input of the CRTC. This causes the CRTC to remember the current address.

Most games will blank the screen to black and put white rectangles on the targets on the screen. This is done to make sure the gun detects these regions and not other bright pixels on the screen. This can be quite distracting while playing the game.

The accuracy is 1 CRTC character (R9 lines in height - normally 8) and 2 bytes horizontally. This is due to the way the CRTC outputs are mapped to memory addresses.

Connects to expansion port 50pin edge connector. It uses only 4 pins: VCC, GND, LPEN, D7. It doesn't decode any address lines or /IORQ lines.

 Trigger Button  ---> Request via output to Port FBFEh, then check CRTC input
 Light Sensor    ---> CRTC Light Pen Input

When the Trigger button is not pressed, D7 is connected to LPEN. As D7 is always evolving, it generates edges to the LPEN input of the CRTC. So the CRTC is constantly refreshing its registers R16 and R17.

When the Trigger button is pressed, LPEN is connected to the photo-diode of the lightgun. That means that an edge is produced only once per frame in this case.

Retreving the status of the Trigger button is done by changing the D7 value, trying to generate an edge on LPEN, and then checking if the CRTC has refreshed its R16/R17 registers.

To read the Trigger button (to be done during vblank):

 Port[BCxxh]=11h  ;select CRTC register 11h
 old=Port[BFxxh]  ;-get old value
 Port[FBFEh]=7Fh  ;\force an edge on the lpen input
 Port[FBFEh]=80h  ;/(depending on whether button is pressed or not)
 new=Port[BFxxh]  ;-get new value
 if old=new then  ; The Trigger button is pressed
 ... 
 else             ; The Trigger button is not pressed
 ...

Now, thanks to Jose Leandro, the hardware specialist of the spectrum, with his famous page :

http://trastero.speccy.org/cosas/JL/JL.htm

We can know more about this hardware.

How to build a Trojan Phazer light gun from an Amstrad Magnum

In English :

http://zonadepruebas.org/deepfb/ordenadores/amstrad/trojan_en.htm

In Spanish :

http://zonadepruebas.org/deepfb/ordenadores/amstrad/trojan.htm

Supported Games

Mastertronic released some more games with Magnum Light Phaser support, but they were mostly budget-type Spectrum ports.

All five releases were also available on the Megaplay 2 compilation.

Disc

Pictures

Manuals

Download

Links