Skip to content

Cave (68000 hardware)

Cave's first in-house hardware (1995-2003), 68000-based, before the move to IGS PGM then the CV1000. This is where the founding danmaku were born: DonPachi, DoDonPachi, ESP Ra.De., Guwange. Customs 013 (sprites) / 038 (tilemap), YMZ280B sound.

PCB Cave (DonPachi)

PCB Cave (DonPachi) — photo by Robert Ivy (Robivy64), CC BY-SA 3.0 (Wikimedia Commons).

Identification

Field Value
Manufacturer Cave (founded by ex-Toaplan staff)
Years 1995 → 2003
CPU Motorola 68000 @ ~16 MHz
Save 93C46 EEPROM (settings/scores)
Settings soft-dips / EEPROM

Architecture

Block Chip Role
CPU Motorola 68000 (@ 16 MHz) logic + bullet patterns
Sound Yamaha YMZ280B (or OKI6295) PCM samples
Video Cave customs 038 (tilemap) + 013 (sprites) zoomable sprites, high object count
Save 93C46 EEPROM settings, high scores

The 038/013 customs render the sprite/bullet swarms typical of bullet hell. ESP Ra.De. (rev2) uses sprite scaling. Emulated in MAME (cave/cave.cpp).

Variable sprite layouts

Note: the sprite ROM layouts differ between DoDonPachi and the other Cave 68000 games — a key criterion for any conversion/repro. → Cave 68000 converts.

EPROM repair: 68000 program almost always in 27C040game-by-game EPROM table.

Notable games

DonPachi (1995), DoDonPachi (1997), ESP Ra.De. (1998), Dangun Feveron, Uo Poko, Guwange (1999), Gaia Crusaders, Koihime, Progear (that one on CPS-2)…

Common faults

Symptom Likely cause Lead
Lost settings/scores 93C46 EEPROM Reprogram/replace
Corrupt sprites/planes 013/038 customs / RAM RAM test, contacts; rare customs
No sound YMZ280B / OKI Sound-stage diagnosis
"Abnormal" slowdown (often deliberate — danmaku) Compare to a reference
No image Power, 68000, 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.

  • Storage 🟡: the game lives in EPROM/mask ROM on the board. Changing or restoring a game means reprogramming the EPROMs (and, for a mask ROM, using a pinout adapter) → EPROM method.
  • Media preservation: replacing the original storage, multicarts, ODEs and modern options by family → PCB preservation hub.
  • Scan rate 📺: 15.625 kHz / ~57.6 Hz — standard resolution, a classic 15 kHz chassis is fine → tri-sync and upscalers. (Computed from the MAME sources — atlus/cave.cpp (fréquence ligne écrite en clair :15625/271.5) — pixel clock ÷ htotal.)
  • FPGA / emulation: see the Emulation & FPGA section below.

Repair (technician)

  • 93C46 EEPROM: holds region/settings; a boot error may need an EEPROM reset rather than a hardware repair.
  • 013 (sprites) / 038 (tilemap) customs: unobtainable new → corrupt bullet swarms = test video RAM + buffers first, the custom last (donor only).
  • Capacitors: recap the sound stage (YMZ280B/OKI + amp) and PSU filtering.
  • Oxidised EPROM sockets: re-tin / turned-pin socket before blaming a dead ROM.

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 16 MHz main CPU
YM2151 4 MHz FM (sound)
YM2203 4 MHz FM (sound)
YMZ280B 16.9344 MHz PCM (sound)
Z80 4 MHz · 8 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.

DIP settings ✅

3 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 gaia
Setting Position Options (default in bold)
Flip Screen SW1:1 Off · On
Demo Sounds SW1:2 Off · On
Language SW1:3 English · Japanese
Coinage SW1:4,5,6 4C 1C · 3C 1C · 2C 1C · 2 Coins/1 Credit (1 to continue) · 1C 1C · 2C 3C · 1C 2C · 1C 3C
Free Play SW1:7 Off · On
Allow Continue SW1:8 Off · On
Lives SW2:1,2 1 · 2 · 3 · 4
Bonus Life SW2:3 Off · 150k/300k · 150k/350k · 150k/350k · 150k/400k · 150k/400k · 150k/400k · 200k/500k · 200k/500k
Damage SW2:4,5 +0 · +1 · +2 · +3
Difficulty SW2:6,7,8 Very Easy · Easy · Medium · Medium Hard · Hard 1 · Hard 2 · Very Hard · Hardest
DIP settings — MAME set ppsatan
Setting Position Options (default in bold)
Coinage SW1:1,2 1 Coin/1 1P-Game (2 Coins/1 2P-Game) · 2 Coins/1 1P-Game (3 Coins/1 2P-Game) · 2 Coins/1 1P-Game (4 Coins/1 2P-Game) · 2 Coins/1 1P-Game (4 Coins/1 2P-Game) (duplicate)
Difficulty SW1:5,6 Easy · Normal · Hard · Hard (duplicate)
Demo Sounds SW1:7 Off · On
DIP settings — MAME set theroes
Setting Position Options (default in bold)
Language SW1:3 English · Chinese
Bonus Life SW2:3 Off · 150k/300k · 150k/350k · 150k/400k · 200k/500k
Difficulty SW2:7,8 Very Easy · Medium · Medium Hard · Hardest

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 (cave/cave.cpp).
  • FPGA / MiSTer: no confirmed dedicated core → MAME.

Lineage

After Toaplan (the founders); Cave then moved to IGS PGM (Dai-Ou-Jou/Ketsui/Espgaluda, 2002-2003) then the CV1000 (SH-3, DaiFukkatsu…).

Photos / assets

(To add: Cave 68000 board, 013/038 customs, 93C46 EEPROM.)

Sources & attribution

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.