Data East (DECO Cassette, DECO 8/16/32)¶
Data East (DECO): from the curious DECO Cassette (1980, games on audio cassette + dongle) to the 8/16-bit bases of the great classics — Bad Dudes, Robocop, Joe & Mac (Caveman Ninja), Fighter's History. Marked by protection ASICs (141/104/146) on many games.
Identification¶
| Field | Value |
|---|---|
| Manufacturer | Data East (DECO) |
| Years | 1980 (Cassette) → mid-90s |
| CPU | 6502/6809 (8-bit) then 68000 (16-bit) |
| Protection | Data East ASIC (141 / 104 / 146…) on many games |
The main families¶
| Hardware | Games | MAME driver |
|---|---|---|
| DECO Cassette (1980) | games on cassette + dongle (see converts) | dataeast/decocass.cpp |
| DECO 8-bit | Bad Dudes, Robocop, Heavy Barrel, Sly Spy, Midnight Resistance | dataeast/dec8.cpp |
| DECO 16 / MLC | Dark Seal, Caveman Ninja (Joe & Mac), Rohga, Fighter's History, Boogie Wings | dataeast/deco16ic, deco32.cpp |
| DECO 32 | Captain America, Dragongun, Tattoo Assassins, Night Slashers | dataeast/deco32.cpp |
The DECO Cassette is a curiosity: the game loads from an audio cassette via a security dongle — detailed on the converts side: → Data East converts (DECO Cassette).
EPROM repair: 68000/ARM JAMMA boards in 27C512/010/020/040 → game-by-game EPROM table.
The ASIC protection (141/104/146)¶
Many Data East games carry a custom ASIC (141, 104, 146…) mixing I/O, colour blending and protection (the program talks to it, sometimes with address scrambling). Reverse-engineered by the community for MAME.
Notable games¶
Burnin' Rubber (Cassette), Bad Dudes vs. DragonNinja (1988), Robocop (1988), Heavy Barrel, Midnight Resistance, Caveman Ninja / Joe & Mac (1991), Fighter's History (1993), Captain America and the Avengers, Night Slashers, Windjammers…
Common faults¶
| Symptom | Likely cause | Lead |
|---|---|---|
| Game crashes | protection ASIC / dongle (Cassette) | Check the ASIC/dongle; MAME handles them |
| Cassette not read (DECO Cassette) | drive / dead cassette | Repair/image; rare part |
| Corrupt sprites/planes | customs / RAM | RAM test, contacts |
| No sound | sound Z80/6502 / YM / OKI | Sound-stage diagnosis |
| No image | Power, CPU, harness | Base diagnosis |
Modernisation & mods¶
The common ground for every JAMMA board
Video, power, control panel and upscalers depend on the cabinet rather than the board: everything is centralised in Modernising a cabinet. To run the board outside a cabinet (at home, on a display): supergun.
- Optical storage 🟡: the drive is the number-one wear part. Modern routes: an ODE, netboot, or replacement by flash storage depending on the platform → PCB preservation hub.
- Scan rate 📺: ~15.62 kHz / 57.4 Hz — standard resolution, a classic 15 kHz chassis is fine → tri-sync and upscalers.
(Computed from the MAME sources —
dataeast/dec0.cpp— pixel clock ÷ htotal.) - FPGA / emulation: see the Emulation & FPGA section below.
Repair (technician)¶
- Data East ASIC (141 / 104 / 146…): mixes I/O and protection; a "dead" board can be a dead ASIC, unobtainable new → donor (the ASICs are dumped in MAME).
- CPU: 6502/6809 (8-bit) then 68000 — standard bus/clock/reset diagnosis.
- Capacitors: recap the sound stage + PSU filtering.
- Oxidised EPROM sockets: re-tin / turned-pin socket.
→ Methods: PCB fault-finding · Recap · EPROM · Traces & vias
Expected clocks — measurement table ✅¶
Values extracted from the MAME sources for this platform. On a scope or frequency counter, a clock that is missing or off-value points straight at the crystal, the divider or the chip at fault — the fastest starting point on a dead board.
| Component | Expected clock | Role |
|---|---|---|
| M68000 | 10 MHz | main CPU |
| MSM5205 | 384 kHz | ADPCM |
| YM2203 | 1.25 MHz | FM (sound) |
| YM3812 | 2.5 MHz | FM (sound) |
| Z80 | 3 MHz · 5 MHz | sound CPU (usually) |
How to read this table
Several values for one component = several board variants in this family (or several instances of the chip clocked differently). These frequencies are those of the clock signal at the component's input, not of its original crystal — on many boards the clock is divided down from a single master crystal.
Archived original schematics ✅¶
Manufacturer schematics for games in this family, archived locally. They give the clock tree, the address decoding and the breakdown of the video/sound/power stages — enough to trace a missing signal back to its source.
- Solar Warrior — full schematic (PDF)
Scope
A schematic applies to the game and revision named: within a family the general breakdown carries over, but component references and custom chip pinouts do not transpose. Source: the Arcade Game Manuals collection (Internet Archive), manufacturer documents kept for preservation.
Manufacturer service bulletins ✅¶
Fixes the manufacturer issued to its network: they document a factory-acknowledged fault, its symptom and the modification to apply.
- Karate Champ service bulletin — PDF
→ Full catalogue: service manuals & wiring diagrams
Original manuals for games on this platform ✅¶
Manufacturer manuals for games running on this board. Beyond the instructions, they very often carry the full DIP settings, the connector pinout, the test procedure, the parts list and the expected voltages.
- Robocop — original manual (PDF)
→ Full catalogue: service manuals, wiring & game manuals
DIP settings ✅¶
13 games on this platform, settings extracted from the MAME sources (INPUT_PORTS_START blocks). The Position column gives the switch's physical reference on the board (SW2:!3,!4 = bank SW2, levers 3 and 4) — which is what lets you set it up without the paper manual. Games are sorted by MAME set name.
DIP settings — MAME set baddudes
| Setting | Position | Options (default in bold) |
|---|---|---|
| Demo Sounds | SW1:6 | Off · On |
| Flip Screen | SW1:7 | Off · On |
| Lives | SW2:1,2 | 1 · 3 · 5 · Infinite (Cheat) |
| Difficulty | SW2:3,4 | Easy · Normal · Hard · Hardest |
| Allow Continue | SW2:5 | Yes · No |
DIP settings — MAME set bandit
| Setting | Position | Options (default in bold) |
|---|---|---|
| UNK 0 | — | On · Off |
| UNK 1 | — | On · Off |
| UNK 2 | — | On · Off |
| UNK 3 | — | On · Off |
| UNK 4 | — | On · Off |
| UNK 5 | — | On · Off |
| UNK 6 | — | On · Off |
| UNK 7 | — | On · Off |
| Analog controls? | — | On · Off |
| L/R control related (keep off) | — | On · Off |
| DSUNK 2 | — | On · Off |
| Road select (debug) | — | On · Off |
| Flip Screen | — | On · Off |
| DSUNK 5 | — | On · Off |
| DSUNK 6 | — | On · Off |
| Enable enemies | — | On · Off |
| DSUNK 8 | — | On · Off |
| DSUNK 9 | — | On · Off |
| DSUNK A | — | On · Off |
| DSUNK B | — | On · Off |
| DSUNK C | — | On · Off |
| DSUNK D | — | On · Off |
| DSUNK E | — | On · Off |
| DSUNK F | — | On · Off |
DIP settings — MAME set birdtry
| Setting | Position | Options (default in bold) |
|---|---|---|
| Demo Sounds | SW1:6 | Off · On |
| Flip Screen | SW1:7 | Off · On |
| Difficulty (Extend) | SW2:1,2 | Easy · Normal · Hard · Hardest |
| Difficulty (Course) | SW2:3,4 | Easy · Normal · Hard · Hardest |
| Allow Continue | SW2:5 | Off · On |
| Timer | SW2:6 | Normal · Fast |
| Control Panel Type | SW2:7,8 | Type A - Cocktail · Type B - Cocktail 2 · Unused · Type C - Upright |
DIP settings — MAME set bouldash
| Setting | Position | Options (default in bold) |
|---|---|---|
| Coin A | SW1:1,2,3 | 3C 1C · 2C 1C · 1C 1C · 1C 2C · 1C 3C · 1C 4C · 1C 5C · 1C 6C |
| Coin B | SW1:4,5,6 | 3C 1C · 2C 1C · 1C 1C · 1C 2C · 1C 3C · 1C 4C · 1C 5C · 1C 6C |
| Flip Screen | SW1:7 | Off · On |
| Cabinet | SW1:8 | Upright · Cocktail |
| Lives | SW2:1,2 | 2 · 3 · 4 · 5 |
| Difficulty | SW2:3,4 | Easy · Normal · Hard · Hardest |
| Game Change Mode | SW2:6 | Part 1 · Part 2 |
| Allow Continue | SW2:7 | No · Yes |
| Demo Sounds | SW2:8 | Off · On |
DIP settings — MAME set drgninja
| Setting | Position | Options (default in bold) |
|---|---|---|
| Lives | SW2:1,2 | 2 · 3 · 4 · Infinite (Cheat) |
DIP settings — MAME set ffantasy
| Setting | Position | Options (default in bold) |
|---|---|---|
| Enemy Power Decrease on Continue | SW2:7 | 2 Dots · None |
DIP settings — MAME set ffantasybl
| Setting | Position | Options (default in bold) |
|---|---|---|
| Enemy Power Decrease on Continue | SW2:7 | 2 Dots · None |
DIP settings — MAME set hbarrel
| Setting | Position | Options (default in bold) |
|---|---|---|
| Coin A | SW1:1,2 | 2C 1C · 1C 1C · 1C 2C · 1C 3C |
| Coin B | SW1:3,4 | 2C 1C · 1C 1C · 1C 2C · 1C 3C |
| Demo Sounds | SW1:6 | Off · On |
| Flip Screen | SW1:7 | Off · On |
| Lives | SW2:1,2 | 1 · 3 · 5 · Infinite (Cheat) |
| Difficulty | SW2:3,4 | Easy · Normal · Hard · Hardest |
| Bonus Life | SW2:5,6 | 30k 80k 160k · 50k 120k 190k · 100k 200k 300k · 150k 300k 450k |
| Allow Continue | SW2:7 | No · Yes |
DIP settings — MAME set hippodrm
| Setting | Position | Options (default in bold) |
|---|---|---|
| Demo Sounds | SW1:6 | Off · On |
| Flip Screen | SW1:7 | Off · On |
| Lives | SW2:1,2 | 1 · 2 · 3 · 5 |
| Difficulty | SW2:3,4 | Easy · Normal · Hard · Hardest |
| Player & Enemy Energy | SW2:5,6 | Very Low · Low · Medium · High |
| Enemy Power Decrease on Continue | SW2:7 | 2 Dots · 3 Dots |
DIP settings — MAME set midres
| Setting | Position | Options (default in bold) |
|---|---|---|
| Demo Sounds | SW1:6 | Off · On |
| Flip Screen | SW1:7 | Off · On |
| Lives | SW2:1,2 | 1 · 3 · 5 · Infinite (Cheat) |
| Difficulty | SW2:3,4 | Easy · Normal · Hard · Hardest |
| Allow Continue | SW2:7 | No · Yes |
DIP settings — MAME set midresb
| Setting | Position | Options (default in bold) |
|---|---|---|
| Demo Sounds | SW1:6 | Off · On |
| Flip Screen | SW1:7 | Off · On |
| Lives | SW2:1,2 | 1 · 3 · 5 · Infinite (Cheat) |
| Difficulty | SW2:3,4 | Easy · Normal · Hard · Hardest |
| Allow Continue | SW2:7 | No · Yes |
DIP settings — MAME set robocop
| Setting | Position | Options (default in bold) |
|---|---|---|
| Demo Sounds | SW1:6 | Off · On |
| Flip Screen | SW1:7 | Off · On |
| Cabinet | SW1:8 | Upright · Cocktail |
| Player Energy | SW2:1,2 | Low · Medium · High · Very High |
| Difficulty | SW2:3,4 | Easy · Normal · Hard · Hardest |
| Allow Continue | SW2:5 | No · Yes |
| Bonus Stage Energy | SW2:6 | Low · High |
| Brink Time | SW2:7 | Normal · Less |
DIP settings — MAME set slyspy
| Setting | Position | Options (default in bold) |
|---|---|---|
| Demo Sounds | SW1:6 | Off · On |
| Flip Screen | SW1:7 | Off · On |
| Cabinet | SW1:8 | Upright · Cocktail |
| Energy | SW2:1,2 | Low - 8 bars · Medium - 10 bars · High - 12 bars · Very High - 14 bars |
| Difficulty | SW2:3,4 | Easy · Normal · Hard · Hardest |
| Allow Continue | SW2:5 | No · Yes |
Check against your own board
These settings apply to the game and revision described by MAME. One title may have several DIP sets depending on region or revision, and some systems use soft-dips (settings in memory, via the test menu) rather than physical switches. In case of a discrepancy, the board's silkscreen and the test menu are authoritative.
See also: DIP reference · game manuals
Emulation & FPGA¶
- Emulation: MAME (
dataeast/decocass.cpp,dec8.cpp,deco32.cpp…) — reverse-engineered ASICs. - FPGA / MiSTer: cores available for some titles (e.g. Windjammers, DECO 8-bit).
Lineage¶
Contemporary with Capcom/Konami/Irem. The DECO Cassette (1980) foreshadows "software" distribution long before GD-ROM/NAND.
Photos / assets¶
(To add: DECO Cassette drive + dongle, DECO 16/32 board, 146 ASIC.)
Sources & attribution¶
- MAME —
dataeast/decocass.cpp,dec8.cpp,deco32.cpp(6502/6809/68000, ASIC 141/104/146, games) — https://github.com/mamedev/mame - Internal page: Data East converts (DECO Cassette)
- Wikipedia — Data East — CC-BY-SA — https://en.wikipedia.org/wiki/Data_East
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.