Monday, 1 February 2016

Atari Jet Fighter. No computer AI in one player games

So at my meet a few weeks back Jet fighter decided to play up... When in one player mode, the black Jet wasn't chasing or shooting at the white (player 1) Jet. Looking at the schematics and reading the circuit information in the manual, I could see that the position data from the white Jet (player 1) is used to make the black Jet move and fire. This AI had stopped working. In two player the game played fine with no issues.

The schematic below is from the area which deals with the one player games and the AI of the black Jet. The 74175 at P5 takes position data from Jet 1, these are passed into the address lines of a Prom at R5 which is programmed to output certain values at the 74153 at R6. It's these values which determine the way the AI moves the black Jet. There are four combinations of movement the black Jet can take as shown below:

R6 Pin 7 | R6 pin 9
   1                 0       Jet turns left
   0                 1       Jet turns right
   1                 1       Jet flies straight
   0                 0       Jet slows and fires



Using my trusty logic probe I honed in on the prom at R5 being the potential issue, Initially I thought the 7420 at C5 was a problem but after removing it from circuit it tested OK. The prom appeared to be getting pulsing data on its input address lines but the output pins were behaving in a strange manner. At times the would read as having low outputs and at other time my probe was reading that the pins were dead, these were reading .4v using my multimeter.

I needed to check the prom data to try and confirm if it was still good. From my repair of Tempest a while back I had to make an adapter to read the same type of prom, my programmer cannot read them as a native device but will read them as a 2716 as long as the pins are adapted, so I got out my adapter and tried reading it to compare with the known dump of the R5 file.

82S123 prom to 2716 pinout to read the data off the prom

Well it read the prom but the data was just garbage and didn't look anything like what it should have been. Looking for a solution (especially as my programmer wont program these proms) I found an old webpage by  Mark from Retroclinic whick describes using a reprogrammable Gal logic IC to replicate a prom.

With some help from Phil Murry to make the code file, I knocked up another adapter, this time to convert the Gal16V8 pinout into the prom pinouts. The pinouts below show the pin order we would need to use to hopefully make a replacement for the suspected bad prom.

82S123N Prom 32x8 Dip 16

         +--()--+
 D0    | 1  16|  Vcc (5V)
 D1    | 2  15|  /CS (GND for R5)
 D2    | 3  14|  A4
 D3    | 4  13|  A3
 D4    | 5  12|  A2
 D5    | 6  11|  A1
 D6    | 7  10|  A0
GND | 8   9 |  D7
         +------+


GAL 16V8

          +---()---+
          | 01   20| Vcc (5V)
          | 02   19| D0
          | 03   18| D1
 A4    | 04   17| D2
 A3    | 05   16| D3
 A2    | 06   15| D4
 A1    | 07   14| D5
 A0    | 08   13| D6
          | 09   12| D7
GND | 10   11| /CS (GND for R5)
         +--------+



With the Jet Fighter R5 Prom code entered, this compiles to a .jed file which is loaded onto the Gal16V8 via my programmer. .PLD code shown below.

[quote]
Name JetFighter_R5;
Partno 32x8prom;
Date 31/01/16;
Revision 03;
Designer Mark Haysman original;
Company Leopardcats original;
Assembly None;
Location None;
Device g16v8a; /** changed gal type **/

/** Example of 82s123 simulation **/
/** Uses Jet Fighter Prom R5 Data **/

/** Inputs **/
Pin 8 = d0;
Pin 7 = d1;
Pin 6 = d2;
Pin 5 = d3;
Pin 4 = d4;
/** Pin 3 = tristate; **/

/** Outputs **/

Pin [12..19] = [Q7..0];

/** Declarations and Intermediate Variable Definitions **/

field byte = [Q7..0];
field address = [d4..0];

/** byte.oe = !tristate; **/

table address => byte {
0 => 30;
1 => 87;
2 => 38;
3 => a7;
4 => e5;
5 => 1c;
6 => f1;
7 => 0c;
8 => 71;
9 => 87;
a => 71;
b => a7;
c => c3;
d => 9c;
e => e1;
f => 8e;
10 => 8e;
11 => e1;
12 => 9c;
13 => e5;
14 => a7;
15 => 71;
16 => 87;
17 => 71;
18 => 0c;
19 => e1;
1a => 1c;
1b => e5;
1c => 2f;
1d => 38;
1e => 87;
1f => 30;
}
[/quote]

After programming the prom and plugging in the adapter the game now works as it should :)

I will source a prom and get it programmed, but this was a good exercise in using a current reprogrammable device to replace some old technology.

Sunday, 17 January 2016

Today I did this to my cab...

Today I spent some time working on my Enduro Racer cab, a couple of jobs needed completing. 1st up was to replace the rubber matting at the base of the cab.

The original stuff was dirty and worn.


I cut the new piece of matting using the original as a rough template and by placing the new matting on the cab and measuring and cutting.


New matting glued in place. Much better!



Next up I needed to look at handle bars and steering. Unlike my Hang-On cab the handle bars didn't centre themselves and were just floppy always leaning to one side. Looking in the Ops manual it really isn't clear how this part of the steering works, so I had to take it to bits...

Here's what I learnt. The main steering shaft has a brass collar connected to it, this part in turn is connected to a spring mechanism that should centre the bars. The problem with mine was that the screws that hold the brass collar in place had snapped so this part was just flapping around loose and not  returning the bars to the centre position.


The highlighted areas above show where the screw heads had snapped off, luckily for me I knew someone who could fix problem. The old screws were drilled out and then a new thread tapped into the metalwork. After a few hours of reassembling all the parts (It's tricky and there's very little space to get everything back together) the steering centres itself and makes the game play a lot better.


Friday, 1 January 2016

Today I did this to my cab...

New year new jobs to do... I've had plenty of little niggly bits that have started stacking up with my cabs, today I crossed a few off the list.

Out resident CNC master Virtvic kindly repro'd some of the fire buttons for my Jet Fighter as one of my buttons was missing and I had temporally replaced it with some thing that just about worked.

Replacement bodged button.


Vic's CNC skills made these bad boys!



Fitted to the Sticks. Very nice, thanks Vic!



I also wired a Credit switch to one of my Enduro Racer coin mech's and put in a custom 'reject' label. This is my preferred way of adding credit buttons when no decent free play option is available.



Finally for today I made a small switch panel for my JAMMA cab I'm working on, Service and Test are wired to the inside of the front door that is hinged and open up, I used some plastic trunking and painted it black, a few hole later and a bit of soldering into the loom and we have a nice little feature that was lacking from my cab.


New year layout update

Welcome to 2016. New layout for the website. As you were...

Saturday, 10 October 2015

Atari Jet Fighter PCB repair. Calling Virtvic to the cockpit

So Vic from Ten Pence Arcade Picked up a Jet fighter a while back, the Transformer in the cab was shorted so he decided to DC mod it with the help of a fellow forum member. After completing the conversion to DC Vic made a simple adapter to power the board and output its video signal. With not much luck in getting the game to show I offered to help Vic out and attempt to get the board working...

Once powered on with a 5V & 12V DC supply after converting from AC volatages we were presented with a black display on the monitor, after checking the clock signals around the board there looked like there was plenty of activity across the board.

I did a quick visual inspection and noticed that the 74165 at H4 had been inserted backwards in a socket. This was replaced ans inserted the correct way round.

No change to display.

Whilst probing around the board we found some bad outputs from a 7414 (Hex Inverter) at J9. This IC deals with input directly from the control sticks. I can't remember the exact issues but I'm guessing the inverting of signals wasn't correct on a few of the outputs.

Next I looked at the locations where the video signals were mixed together. A 7427 at C5 mixes the H Blank & V Blank signals along with 'PWR Reset' signal, this signal was low, it turns out this issue was an effect of making the DC conversion. The Power reset is triggered from a transistor which is on the AC side of the board and as we removed AC it was never triggering, well it triggered once when the board was powered up. I ended up tieing this signal to a 12MHz signal from the board (No notable side effects yet :) ), this falsly switched the reset signal and the video display now appeared. Well some of it did. We had a gray background and the scores showing but no Jets.

Part of the power reset circuit that we were now bypassing contained a 7474 at R3. This was confirmed as being faulty and replaced. Technically it is now being bypassed.

With the reset now taken it was time to find out why the Jets were missing.

This fault took me a few hours to track down.. The long & short of it turned out to be a faulty 7413 at D9. This is part of the circuit that detects when either of the player start buttons are pressed. Pin 8, the output section for the 2 player start button was stuck high, this placed a 74175 flip-flop further down the circuit in the wrong state. The 'START' signal for the game usually pulses and resets the game scores along with the Horizontal & Vertical position counters for the Jets, with it being stuck permanently on the location counters for the Jets were constantly being reset, happening so often that the video never showed on the display. When removed from circuit and checked in my IC tester it was confirmed as faulty.


Once socketed and replaced we have Jets on the screen during Attract mode.

Finally we could now see both Jets flying but one of them (Jet 2 -  White) had constant inverted video.

Black Jet looks OK, but White Jet's video is inverted

Pin 6 of the 7432 at K8 was stuck low, forcing the game to think that Jet 2 was constantly being blown up. This is usually a 1 second pulse which should occur when a plane is hit from a missile.



Socketing and Replacing the IC fixed this problem.

I hooked up the sound outputs to a speaker and we're certain getting game sounds. So we now have a game that looks to be working with audio & Video. Vic will fully test it when he puts in in his cab, I wouldn't be surprised if we has some small issues to deal with like Jet rotation or score counting problems which I've previously dealt with.

Short video below showing the board running in it's semi-complete state.


Tuesday, 6 October 2015

New Marquee Light

Strange find in my new Enduro Racer cab... So the marquee doesn't light up, lets take the monitor surround off and see what's going on,..This is not quite what I expected to see..





Sunday, 4 October 2015

Quick Atari Jet Fighter Repair

So I moved my games around today making space for a new cab and upon turning Jet Fighter back on the score for the white Jet was missing form the display.


A quick browse at the schematics led me to the section below:


/Score1 is the Video signal for the black Jet score and it was pulsing away on my logic probe. /Score2 was for the white Jet and that output (Pin 3 of C3) was stuck high. I checked the input signals and they all looked good so I piggybacked C3 with a new 74LS00 and the score came back. 

I removed the bad chip, fitted a socket and popped the new 74LS00 in and everything is working again.