Troubleshooting Dig Dug (Rev B)

So, recently, I acquired a Dig Dug (Rev B) in nearly mint condition, and a Galaga in slightly less-than-mint condition.  Both games worked great, and have been an excellent addition to my little home arcade (with an Ikari III JAMMA cab running Gradius II most of the time, and a Keyboardmania 2ndMIX).  That all changed when I went on vacation: suddenly, the Dig Dug decided it wouldn't work for more than 15 minutes at a time.

I checked the obvious problems.  Checked voltages on the power supply, checked the Atari power brick's filter cap ("Big Blue") using the Bob Parker/BLUE ESR Meter, and checked all the other electrolytic caps.  Finding nothing suspicious, I started looking for things a bit more out of the ordinary.  I even compared voltages before and after the crash on the +12, +5, and +10.6 (unregulated) outputs, and saw no differences.  Even the -29V generated for the EAROM was fine--some levels were a bit high, but not enough for me to be really suspicious.  If I had my scope (it's been on semi-permanent loan to the local hackerspace), I'd happily check to see if there's excessive ripple voltage on any of the DC lines--sadly my DMM isn't a true RMS meter--so putting it in AC mode doesn't remove any DC offset--it just reads bogus values.

I noticed when the game crashed, the output on the monitor went blank.  It wasn't playing blind, even--it was completely dead.  Indeed, using a DMM, I confirmed the !CSYNC line was a solid 5.00V -- so, nothing's syncing anything to the monitor.  Strange.  I tried pulling all three Z80s and seeing a fair amout of oxidation, cleaned the pins, and was able to reproduce the issue, even with the Z80s removed.  Started sniffing around the Y1 crystal -- 18.432MHz.  Indeed, getting CLOSE to this crystal could cause the game to glitch--no sync generated to the monitor.  Turns out this game uses the Namco 07xx custom IC, which is a sync generator.  A CPLD replacement is available, or some new old stock are also available... if it comes to that.  Galaga happens to use the same custom IC, so that could also be used to test.  Still, despite the sync generators getting quite hot, they seem to be a symptom rather than a problem--the sync generator also drives the watchdog reset, which also gets tripped.  I also happened to note that the !RESET signal sits at a place that may be in an exclusion zone for some chips--somewhere between 2-3V (higher when not working--but either way, looks to be okay).  The rest of the clock circuit seems to be a 74S04 hex inverter, the crystal, a 100pF mica capacitor and a 74LS107 dual J-K flip flop being used as a clock divider, as it seems.  The board's 18MHz test point can isolate things down to the 74S04, cap, and crystal, and indeed, that point's DC average voltage does seem to be higher when failed (2.3v vs. 1.07v working).  The presence of the multimeter alone seems to be enough to occasionally disturb the frequency of the crystal oscillator.

So, some things are definitely much easier with an actual scope or true RMS multimeter.  It seems strange that this issue comes about after the game's been on longer, but without pulling a scope in to look at the issue, I may be replacing all three parts in question (although the mica cap probably won't fail--a crystal or 74S04 seems far more likely.  It may still be worth double-checking for AC ripple on the DC voltages, and possibly replacing the "big blue" cap again (or any possibly-affected axial caps on the regulator/amplifier board).

UPDATE 8/2/2013

Ordered a new crystal and inverter, installed it, and so far, everything's been running stable.  Also, an unusual buzzing noise whenever the game was on seems to have gone away, making me believe the problem is indeed resolved.

About this Entry

This page contains a single entry by Doug Kelly published on July 28, 2013 11:30 PM.

Making Code Reviews Practical was the previous entry in this blog.

Skype Security Vulnerability Exploited in the Wild is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.


Powered by Movable Type 5.2.3