Jan 032016

Contra / Gryzor shares almost the same hardware specs with Combat School / Boot Camp, Fast Lane, Flak Attack / MX5000, Haunted Castle / Akumaj├┤ Dracula and Trick Trap / Labyrinth Runner.

But among these titles, it is the only game that offers a stereo output thru a 4-pin connector on the board (labeled CN2).

First, you have to select stereo by plugging a connector on CN4 (and put switch 4 of DIPSW3 to off).


The thing is that all the boards I’ve seen still delivers mono sound when you plug this connector (originally brought by Konami and present on the board) on the stereo plug. Why ? Because it doesn’t have the good wiring…

As shown on the picture above, this connector originally comes with pin #1 wired to #2 and pin #3 wired to #4. In that way and plugged on the stereo connector (CN4), it mixes channel 1 and channel 2 from the YM3012 DAC to the LA4445 amp which results a mono output.

To separate the channels, you have to simply modify the connector by wiring pin #1 to #3 and pin #2 to #4.
Now plug it on CN4 and enjoy stereo sound out of CN2. ­čÖé

There are other Konami games that use the same connector to choose mono or stereo. I’m not sure about the wiring for every game. To my knowledge they are:

– Jackal / Top Gunner
Devil World / Dark Adventure
– Gradius II / Vulcan Venture

– Ajax

Lightning Fighters / Trigon (stereo works without modification of the connector)
– Parodius
(stereo works without modification of the connector)
Surprise Attack (that game seems to have a mono sound design, despite the stereo connector present on the board)

ps. If anybody knows if the original wiring on these boards allows to deliver stereo sound or any other board that is using this connector, I would be glad to know and add it here.

ABI ICT-24 Digital IC Tester tech info

 Technical Info  Comments Off on ABI ICT-24 Digital IC Tester tech info
Jan 012016

I recently found one of these devices and being a lover of test equipment I decided to see what it was all about.

There is very little information about these online. The only official mention I can find about them is on ABI’s website and it just makes a passing reference to it stating it was the first IC tester device they made.
All other information comes from Equites who has had one of these for a number of years now. He has dumped the ROM’s from his unit and they are available in the downloads section.

So, I got my unit and powered it up to make sure it worked. Once I had confirmed that I opened it up.

I could see straight away that I have a different firmware version, mine being 6-0-12 and the version Equites has was 5-9-12. I’m still not sure what the difference between the two is.
So I dumped these EPROM’s (available in the downloads section too) and created a schematic for the unit.
The device is a Z80 based system with a couple of EPROM’s, a RAM chip, a keyboard/display interface chip and three PPI chips to control IO reading/writing.

Once I had drawn it out I derived the following memory map
$0000-$3fff – ROM1
$4000-$7fff – ROM2
$8000-$87ff – RAM

8255 (IC1)
$c000 – PORTA
$c001 – PORTB
$c002 – PORTC
$c003 – Control

8255 (IC2)
$c004 – PORTA
$c005 – PORTB
$c006 – PORTC
$c007 – Control

8255 (IC3)
$c008 – PORTA
$c009 – PORTB
$c00a – PORTC
$c00b – Control

8279 (IC8)
$c00c – Data
$c00d – Control

IC1 – Controls the /OE lines to all the IO buffers
IC2 – Controls the inputs the the IO buffers
IC3 – Controls the reading from the ZIF sockets

The ROM’s, RAM, 8279 and 8522 chips enable lines are controlled via 74LS139 decoder chip.

The version number of the firmware can be displayed by keying in “005” on the keypad.
On my version it displays “6-0-12” which matches the labels on the EPROM’s.
Interestingly the “6-0” is stored as data in the ROM while the “-12” is hardcoded as instructions starting at $11cd.
The first 2 digits, in my case “6-0” represent the software version.
The remaining digits are the options installed. Mine as options 1 and 2 installed.
Option 1 is for memory devices
Option 2 is for interface devices

The unit does a power on self test which displays a fault code between 0 and 6. These may be explained in the manual which I don’t currently have so I took apart the disassembled code to see what they meant.

Fault 0:
One of the IO’s is tied to GND.
The software tristates all the IO pins via IC1 (8522) and reads them back via IC3 (8522). They are held at logic HIGH via a pull up resistor network. If any pins are low this will result in FAULT 0.

Fault 1:
One of the IO’s on PORTA is tied to VCC.
The software sets all of the IO pins on PORTA to logic LOW and reads the states back. If any pins are found to be logic HIGH on PORTA then this will result in FAULT 1.

Fault 2:
One of the IO’s on PORTB is tied to VCC.
The software sets all of the IO pins on PORTB to logic LOW and reads the states back. If any pins are found to be logic HIGH on PORTB then this will result in FAULT 2.

Fault 3:
One of the IO’s on PORTC is tied to VCC.
The software sets all of the IO pins on PORTC to logic LOW and reads the states back. If any pins are found to be logic HIGH on PORTC then this will result in FAULT 3.
NOTE: The 2 uppermost bits on PORTC are not used for reading back IO lines.

Fault 4:
Fault with the program RAM.

Fault 5:
Fault with display RAM.
RAM should be 0x0. If it is not then FAULT 5 with be displayed.

Fault 6:
Fault with display RAM.
RAM should be filled with alternating 0x55 0xAA. If these values are not correct then FAULT 6 is displayed.

Equites supplied me with some additional pictures and a manual for these units and apparently there is a rebranded RS version too.
That’s about it. I have commented a lot of the code and learnt a great deal about how it works.
Its a very robust unit and no doubt it will get some use despite having other methods available to test. Its much more appropriate to have in a garage workshop.

If anyone can offer any further information about this (or feels the need to emulate it) then please get in touch.
Thanks to Equites for his information and scans.

 Posted by at 1:14 pm
Nov 222015

This is the first in hopefully a series of posts regarding the Rainbow Islands hardware.
I have no time frame in mind for releasing these posts and I will do them when I have any particular section covered.

First up is the reset/watchdog circuit.


Here we have the circuit that I have drawn out.
On power up the MB3771 power supply monitor chip will keep the CPU in a reset condition by asserting a low signal to pin 4 of IC2 (74LS08 AND gate).
At the same time the master reset pin of the 74393 4-bit binary counter is held high thanks to the inverting buffer at IC3.
Note, jumper JP1 can be used to disable the watchdog although I couldn’t find a resistor tying it high which would mean if the trace was cut on JP1 the MR pin would be floating. Maybe I just cant see it.

Once the MB3771 is happy it asserts a high signal from pin 8 which will allow the 68000 CPU to run and the watchdog timer to begin.
The watchdog clock is taken from the VBLANK signal and directly clocks the first binary counter at pin 1 which in turn clocks the secondary binary counter via output pin 6.
If the master reset pin in not activated within a certain time then the counters will count up and initiate a reset.

The watchdog reset signal is achieved by writing any value to an address between $3c0000 – $3dffff.
The memory map for the watchdog is determined by the PAL20L8 device B22-07 @ IC7.
Output pin 21 is the pin concerned with this function. Here are the equations for it.

!WD = 1ACK & !A23 & !A22 & A21 & A20 & A19 & A18 & !A17 & !AS
# 1ACK & !A23 & !A22 & A21 & A20 & A19 & !A18 & A16 & !AS
# 1ACK & !A23 & !A22 & A21 & A20 & A19 & A17 & !A16 & !AS

This output goes to a 74LS138 decoder/demultiplexer. Output pin 13 is the watchdog reset output.

That’s pretty much it. Simple and nothing much out of the ordinary.

 Posted by at 1:19 pm
Jul 172015

Im currently working on a Time Pilot PCB and tested out Shoestrings diagnostic ROM.
This board is the Atari version which wasnt supported at the time but has now been updated.
I also ran into a problem where nothing appeared on the screen. Working together we eventually found the issue.
The original game code makes a write of 01 to address $c308. Using the Fluke 9010 I found that this write actually initialises the screen output.
MAME doesnt have any support for this so when testing the ROM in MAME it works fine. The test ROM has been updated with this now too and should work fine.

This highlights the need to test things on REAL hardware.
Thanks to Shoestring for making the diagnostic ROM and for putting up with all my questions.

 Posted by at 5:04 pm

Taito F3 PALs confusion

 General, Technical Info  Comments Off on Taito F3 PALs confusion
Mar 142015

Back in January there was a discussion going on over on the Jamma+ forums regarding the D77-14 and D77-15 PAL dumps.
After a lot of help from various people and testing by myself here is the conclusion I have come to regarding this issue.

D77-14 is used when the main CPU ROM’s are 27c2001 (0x40000).
D77-15 is used when the main CPU ROM’s are 27c4001 (0x80000).

On a 27c2001 EPROM, pin 31 is the programming pin. It is active low so once the chip is programmed we want to keep this held high when in use. That’s exactly what the D77-14 PAL is doing. Pin 19 of this PAL is fixed HIGH and is connected to pin 31 of the 27c2001 EPROM.

On a 27c4001 EPROM, pin 31 not the programming pin but it is the upper most address bit and that’s why with a D77-15 pin 19 is able to toggle which allows for double sized EPROM’s to be used.

This is where the confusion comes in.
On many converted boards out there in the wild (and there is a lot of them) we have found there to be D77-14 stamped PAL chips with the same code as what we have found in D77-15 PAL chips and vice versa. Assuming the PAL chips themselves are the original ones from Taito (and I have no reason to see why they wouldn’t be) then my theory is, as they are all PALCE16V8 chips, which are reprogrammable, they have simply been reprogrammed by the bootlegger/converter to use whatever version they needed. This would keep it looking that little bit more authentic and also cuts down on the cost of buying a GAL16V8.

If you check in the MAME source too, every game that has program ROM’s of size 0x40000 uses the D77-14 PAL and every game that has program ROM’s of size 0x80000 uses a D77-15 PAL.

Hopefully that will clear up a bit of the confusion surrounding this.