Skip to content

Data East MLC

Data East's last hardware (1995-1996), and the only one in this wiki whose motherboards are interchangeable between games. An encrypted ARM, two boards, and a plastic box the size of a book.

Identification

Field Value
Manufacturer Data East
Years 1995-1996
Form factor plastic box ≈ 8″ × 6″ × 2″ with a JAMMA connector
Architecture two boards: RAM + sound + I/O · CPU + ROMs
CPU encrypted ARM — Data East custom 156
CPU clock 7 MHz (42 MHz crystal ÷ 6) — confirmed on a real board
Sound YMZ280B @ 14 MHz (42 ÷ 3) + YAC513
Save 93C45 EEPROM (128 bytes, equivalent to a 93C46)
PCB format JAMMA

One crystal, two divisions

The 42 MHz feeds everything: ÷6 for the ARM, ÷3 for the YMZ280B. A general clock failure therefore has one cause, and the two values are tied — if one is wrong and the other is not, it is the divider.

Expected clocks — measurement table ✅

Component Expected clock Role
ARM (156) 7 MHz Main CPU — confirmed on a board
YMZ280B 14 MHz sound

⚠️ Interchangeable motherboards — unique here

This is what sets the MLC apart from everything else in this wiki.

Changing game means changing the CPU board

The motherboards are identical across all MLC games. To move from one title to another you simply plug in the other game board and press test to reset the EEPROM defaults.

On every other platform in this wiki — CPS-2, System 16, PGM — conversion needs jumpers, keys, paired ROMs. Not here.

In repair that changes everything: a suspect motherboard is tested by plugging in another game, and a suspect game board by trying it on another motherboard. Diagnosis by substitution becomes possible again.

The ARM is encrypted

The 156 custom is an ARM with encrypted code. That is no obstacle in repair — the game runs — but it is what took work on the preservation side.

Notable games

Avengers in Galactic Storm (1995) · Dunk Dream '95 / Hoops (1995-1996) · Stadium Hero 96 (1996) · Skull Fang (1996) · Ganbare! Gonta!!.

Common faults

Symptom Probable cause Next step
Will not boot CPU board or motherboard Swap them: this platform allows it
Settings lost 93C45 EEPROM Pressing test restores the defaults
No sound YMZ280B or its 14 MHz clock On the RAM/sound/I/O board, not the CPU board
Nothing starts, no clocks 42 MHz crystal Both clocks derive from it
Corrupt graphics RAM on the lower board Separate the two boards before probing

Repair (technician)

  • Use the interchangeability. This is the only platform in this wiki where substitution across different games works.
  • Separate the two boards: sound and RAM on one, CPU and ROMs on the other. A fault localises quickly.
  • Surface-mount on both sides: the boards are compact and SMD throughout — the right tooling is required.

→ Methods: PCB diagnosis · Recap

Procedure — a dead board, step by step ✅

What this adds

The general method lives in PCB diagnosis. This is its application to this platform: the same order, but with the values actually expected here, so you do not have to go back and forth.

Tools: multimeter, oscilloscope (or frequency counter), current-limited bench supply, desoldering braid. → Tooling

If the board is still in a cabinet

A CRT holds its charge with the machine unplugged. → CRT safety

1. Inspection, power off. Corrosion, cut tracks, oxidised EPROM legs, leaking SMD capacitors, dubious earlier repairs.

2. The connector, before anything else. A large share of "dead boards" are a contact problem, not a fault. Clean the contacts with isopropyl alcohol and reseat — not with an abrasive eraser on a gold edge, which takes the plating off and brings the problem back worse. It costs two minutes and settles the question.

3. Power, measured on the board. Aim for +5.0 V measured as close as possible to where power reaches the board — not at the PSU output: the drop is in the loom, and that is exactly what makes a board boot on the bench and not in the cabinet. Where you probe depends on this board's connector — JAMMA edge, JVS loom or a proprietary harness — plenty of makers kept one long after JAMMA arrived — see Identification above. → Wiring Check −5 V and +12 V too if the sound stage uses them. Suspected short: bring it up current-limited and find the hot spot.

4. /RESET. It must release after power-up. Held low = the CPU never starts. A 1–2 Hz loop is not the reset circuit, it is the watchdog: the CPU is crashing at boot, so look at the bus, not at the reset.

5. Clocks — the values expected on this platform.

  • ARM (156) → 7 MHz (CPU principal — confirmé sur carte)
  • YMZ280B → 14 MHz (sound)

6. Bus. Activity on the main CPU's address lines tells you whether it is running or frozen. Frozen with good clocks and good reset → work RAM, bus buffers, ROMs.

7. It boots but the picture or the sound is wrong — that is another job: see Common faults on this page, then signal tracing.

Modernisation & mods

  • No suicide: the EEPROM resets by pressing test.
  • Conversions: by swapping the game board — see the box.
  • ⚠️ Do not host ROMs — method only.

Emulation & FPGA

MAME covers the platform (dataeast/deco_mlc.cpp, driver by Bryan McPhail).

Photos / assets

(To take: the whole plastic box with its JAMMA connector, the two boards separated, and the 156 custom.)

Sources & attribution

Text (synthesised here; sources listed for attribution):

  • MAME — src/mame/dataeast/deco_mlc.cpp (BSD-3-Clause / GPL, driver by Bryan McPhail): the system described as a plastic box roughly 8″ × 6″ × 2″ with a JAMMA connector, made of two boards (RAM, sound and I/O on one; CPU and ROMs on the other), both surface-mount on both sides; an encrypted ARM (custom 156) at 42 MHz ÷ 6 = 7 MHz, a value “confirmed on real board”; YMZ280B at 42 ÷ 3 = 14 MHz and YAC513; a 93C45 EEPROM (128 bytes, equivalent to a 93C46); and above all the finding that all main boards are identical between MLC games and can be changed just by plugging in another game and pressing test to reset the EEPROM defaults — https://github.com/mamedev/mame/blob/master/src/mame/dataeast/deco_mlc.cpp

Review & corrections

How this space is used

Spotted a wrong value, an outdated procedure, a chip reference that does not match your board? Say so here, with what you observed (model, board revision, serial number, measurement). Every report is cross-checked against a source before anything changes — an unverifiable correction is published as “reported by …, not cross-checked” rather than silently applied.

Reading is open to everyone; posting requires signing in with Discord. Reports from the wiki's declared reviewers are handled first; anyone else's are read too, but go through a human before anything is changed.