Got this Devil World PCB as non working. This game is running on a Konami Twin 16 hardware. It is a two layer board with the first one devoted to CPU/sound and the second one to GFX/video. The two faulty/replaced chips were on the video board and are highlighted in red.
Luckily the board was booting and got stuck on the RAM/ROM test screen with ROM #18 reported as bad (chip #1 on the board picture above).
That ROM is part of a 4 ROMs row which contains the GFXs. They are 40 pins Konami chips and looking in MAME I could see that they were 512kb MASK ROMs. I tried dumping it with my programmer but was unable as it found one dead pin. Compatible EPROMs for these are 27C400 so I burned one and replaced it.
The game was now booting but with a color problem on some tiles.
After a deep look at the video board I could find a Fujitsu 74LS153 located at 10H (chip #2 on the board picture above) with floating outputs (while inputs had healthy pulsing signals). I piggybacked it and got everything corrected. I desoldered the faulty one, put a socket and replaced it. Board is now working perfectly.
Actually board was a factory conversion from a Zero Wing board (hardware revision ‘TP-015’).When I powered it up, I got nothing of screen, neither the black and white wavy lines sign of the system being initialized like it happens in this Toaplan hardware :
Probing the 68000 main CPU releaved it properly received /RESET signal as well as clock was present.As usual I did my check on CPU/RAM/ROM data/address bus and all was fine.But I went to check the clock signal of the Z80 it was stuck high:
The clock is generated by a 28MHz oscillator then divided by a 74F163 and inverted by a 74LS04 before reaching pin 6 of Z80 with a frequency of 3.5 MHz:
On this kind of Toaplan hardware the Z80 commands not only the sound system but also the I/O, this would explain why the whole system didn’t get initalized since the 68000 could not find the Z80 running.Confident I went to remove the 28MHz oscillator :
Got this orginal Hellfire PCB (by Toaplan) for a repair:
After some initial problem due dirty sockets of program ROMs and oxidized JAMMA edge connector which caused missing boots, I was greeted by this scenario:
Sprites were wrong, garbled and stretched all over the screen.This part of graphics is generated by the custom ASIC ‘FCU’ :
I did a reflow of it but this didn’t lead to any improvement.Probing around I found a 6116 SRAM with some data lines stuck low:
Chip failed once tested out-of-circuit:
But still no big improvements.Testing TTLs with my logic comparator I found a 74ALS169 counter @3N with bad outputs:
Its output pin 15 was almost shorted to VCC (only 7.9 Ohm measured)
Once removed, the chip failed miserably :
Finally the sprites were correctly drawn but blocky :
I noticed that, if I pressed down the ROM 9 @4E, sprites were 100% restored:
Removing the EPROM revealed oxidation on socket pins:
Had this original Double Dragon II – The Revenge in my faulty boards pile so I deciced to take a look it hoping to fix it and complete the trilogy in my collection:
Once powered it up I was greeted by this static garbage screen:
A static screen is a clear sign of some trouble in the main code execution.So, for first, I went to dump the program ROMs and found a bad device which game me different checksum at each reading.Since my ROM set was an undumped japanese one, I was forced to convert my board into the US set which is available.This did not lead to any improvement so further investigation was needed.When I removed the EPROMs, I noticed that the socket @IC63 (the one of the bad EPROM) was oxidized:
I decided to replace it.When , before installing the new one, I was checking all the connections, I found an eaten trace underneath which should have tied pin 2 of the 74LS138 @IC64 (which generates the /CE signals for program ROMs) to pin 9 of a 74LS273 @IC71:
Once restored the connection board finally booted up but with severe sprites issues and corrupted/missing sound FXs:
Probing RAMs on video board I found some data lines stuck low on a TMM2015 @IC83 :
This was due two broken traces on solderside which I promptly patched:
This improved a little the issue giving back the missing lines to sprites but they were still wrong and garbled.Looking at MAME source, I could figured out that one of the two Z80 (the one @IC50) on top board is used as sprites CPU which takes data from a 27512 EPROM @IC37 and write/read them on a 6116 SRAM @IC24 :
Probing this static RAM (actually a Sanyo LC3517BSL compatible with 6116) revealed weak signals on its address bus:
Once removed the chip, it failed when tested out-of-circuit:
With a good RAM chip all the sprites were correctly restored :
So I moved to troubleshoot the sound FXs issue.Samples are played by an OKI MSM6295 @IC74 with takes data from two 28 pin 1Mbit MASK ROMs @IC39 and IC40:
Probing the two MASK ROMs revealed that data came out when requested so the problem had to be in the OKI MSM6295 chip which played them badly.I removed it :
and put back a good one:
This restored ADPCM samples.Board 100% fixed and board trilogy complete!
PCB Repair LogsComments Off on 1943: The Battle of Midway Mark II repair log
Jul092016
I received this 1943: The Battle of Midway Mark II in the past days for dumping and repair :
Game is an unofficial US version of the 1943 Kai, probably an hack where airplane sprites are from 1943 Kai but the background is from 1943.I obviously dumped it and it has been already emulated in latest MAME 0.175 release:
The board was in good shape despite its age, it booted up too but crashed or freezed after few seconds of attract mode or after started a new play:
In the beginning I tought about some problem in code execution so I replaced the WORK RAM as well as suspicious ICs involved in Z80 address/data bus but this didn’t lead to any improvement.Testing the board with a logic probe, a logic comparator and a scope gave me the feeling like it was some kind of disturb on the board which afftected timing causing freezes and crashes.In the below video you can see how the HP10529A logic comparator detected a glitch pulse in the exact moment when the game crashes :
Also probing the clock signal of Z80 with a scope revealed some interferences in the waveform.
From my experience often a capacitor with increased ESR can inject disturb in the whole board since it can no longer filter ripple current.So I went to test the electrolytic capacitors in circuit with my ESR meter, they were all OK except the one @CC18 (9.2 Ohm measured against a typical value of 2 Ohm for a 47uF 16V)
Among other things, this capacitor is vital for main Z80 /RESET signal generation since it’s part of the typical circuit made along with a voltage monitor like the PST518 IC adopted on this board:
Once removed it, I had confirm of his increased ESR, besides also capacitance was half of its declared value:
Replacing the capacitor with a good one fixed the game completely.