Oct 052014
 

Been doing a few bits with muddymusic’s Jumping PCB.
I wanted to see how the C-Chip substitute ROM was wired into the circuit so ive made a small schematic and reversed the address decoder PAL.

Jumping Schematics
click the pic for full size.

Here are the equations for the address decoder too. Ive renamed to the pins to something more suitable for human consumption.
/* Inputs */

Pin 1 = A23;
Pin 2 = A22;
Pin 3 = A21;
Pin 4 = A20;
Pin 5 = A19;
Pin 6 = A18;
Pin 7 = A17;
Pin 8 = A16;
Pin 9 = A15;
Pin 10 = A14;
Pin 11 = A13;
Pin 13 = FC0;
Pin 14 = FC1;
Pin 23 = FC2;

/* Outputs */

Pin 15 = CA12; /* A12 of C-Chip replacement ROM */
Pin 16 = CA13; /* A13 of C-Chip replacement ROM */
Pin 17 = CA14; /* A14 of C-Chip replacement ROM */
Pin 18 = CA15; /* A15 of C-Chip replacement ROM */
Pin 19 = LROM; /* Chip enable for other ROM’s */
Pin 20 = A; /* Pin 1 of 74LS138. Input A */
Pin 21 = B; /* Pin 2 of 74LS138. Input B */
Pin 22 = C; /* Pin 3 of 74LS138. Input C */

/* Equations */

!CA12 = !A23 & !A22 & !A21 & !A20 & !A19 & !A13 #
!A23 & !A22 & !A21 & A20 & !A19 & !A18 & !A17 & !A16 & A15 & A14 & !A13 #
!A23 & A22 & !A21 & !A20 & !A19 & !A18 & !A17 #
!A23 & A22 & !A21 & !A20 & !A19 & !A18 & A17 & A16 #
A23 & A22 & !A21 & !A20 & !A19 & !A18 & !A17 & !A16 & !A13 #
!A23 & !A22 & !A21 & !A20 & A19 & !A18 & !A17 & !A13 #
A23 & A22 & !A21 & A20 & !A19 & !A18 & !A17 & !A16 & !A15 & !A14 & !A13;

!CA13 = !A23 & !A22 & !A21 & !A20 & !A19 & !A14 #
!A23 & A22 & !A21 & !A20 & !A19 & !A18 & A17 #
A23 & A22 & !A21 & !A20 & !A19 & !A18 & !A17 & !A16 & !A14 #
!A23 & !A22 & !A21 & !A20 & A19 & !A18 & !A17 & !A14;

!CA14 = !A23 & !A22 & !A21 & !A20 & !A19 & !A15 #
A23 & A22 & !A21 & !A20 & !A19 & !A18 & !A17 & !A16 & !A15 #
!A23 & !A22 & !A21 & !A20 & A19 & !A18 & !A17 & !A15;

!CA15 = !A23 & !A22 & !A21 & !A20 & !A16;

!LROM = !A23 & !A22 & !A21 & !A20 & !A17;

!A = !A23 & !A22 & !A21 & !A20 & !A19 & !A18 #
!A23 & !A22 & !A21 & A20 & !A19 & !A18 & !A17 & !A16 & A15 & A14 #
!A23 & !A22 & A21 & !A20 & !A19 & !A18 & !A17 & !A16 & !A15 & !A14 & !A13 #
A23 & A22 & !A21 & !A20 & !A19 & !A18 & !A17 & !A16 #
A23 & A22 & !A21 & A20 & !A19 & !A18 & !A17 & !A16 & !A15 & !A14 & !A13;

!B = !A23 & !A22 & !A21 & !A20 & !A19 #
A23 & A22 & !A21 & !A20 & !A19 & !A18 & !A17 & !A16 #
!A23 & A22 & !A21 & !A20 & !A19 & A18 & !A17 & !A16 #
A23 & A22 & !A21 & A20 & !A19 & !A18 & !A17 & !A16 & !A15 & !A14 & !A13;

!C = !A23 & !A22 & !A21 & !A20 & !A19 #
!A23 & !A22 & !A21 & A20 & !A19 & !A18 & !A17 & !A16 & A15 & A14 #
!A23 & !A22 & !A21 & !A20 & A19 & !A18 & !A17;

The A, B and C outputs from the PAL feed into a 74LS138. In order to select the C-Chip substitute A and B must be HIGH and C must be LOW. From the equations (or just looking at the MAME source code) we can work out that the C-Chip ROM lies at address 0x80000.

So, not a great deal of info but its pretty interesting all the same.

Rainbow Islands repair log #1

 PCB Repair Logs, Repair Logs  Comments Off on Rainbow Islands repair log #1
Mar 052011
 

Got hold of a very poorly Rainbow Islands Extra board.
This board had some repair work done previously. There are a few burned out tracks and some dodgy looking wire links.

On power up it just showed a black screen, time to break out the Fluke 9010a.
The Fluke showed I had active interrupt lines. The 68000 CPU has 3 interrupts, IPL0, IPL1 and IPL2. IPL1 and 2 are tied to +5v (they are active low therefore unused here). IPL2 was stuck low.
I traced the line to a nearby 74ALS74 chip and then back to a 74LS273 (IC32). Regardless what the inputs were doing, the outputs were all stuck low. I replaced this and tested, still a blank screen. I check the 74ALS74 again and although all the inputs were now present and correct, its output to IPL2 was still stuck low. I piggybacked a new IC onto it and the game came to life. Replaced the IC.

Now the game booted up I could see that the colours of the character sprites were wrong, mainly black.

This caused me a lot of headache as the colours came good when I put the logic probe on different pins of different IC’s. I determined which IC was partially responsible for sprite colours by interrupting lines on various logic chips. I found that if I toggled pin 9 of IC35 (74LS157) the colours came good more regular. I removed this chip and tested it in my logic tester, it passed but if I put it on a loop it would intermittently fail. Replaced this and the colours were now back to normal.

There is also a problem when the sprites are facing left where it shows a broken character but still facing right. The pictures below shows the broken up boss sprite and broken rainbows when fired to the left.

This ended up being a short on pin 15 @ IC38 (74LS153). This pin was shorted very slightly to an exposed track running next to it. Removing this short fixed the graphics completely and the game is now 100%.
Very pleased.