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) — 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 27C040 → game-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¶
-
Photo PCB Cave (DonPachi) — Robert Ivy (Robivy64), CC BY-SA 3.0, Wikimedia Commons — https://commons.wikimedia.org/wiki/File:Donpachipcb.jpg
-
MAME —
cave/cave.cpp(68000, YMZ280B, 013/038 customs, 93C46 EEPROM, games) — https://github.com/mamedev/mame - Internal page: Cave 68000 converts
- Wikipedia — Cave (company) / DoDonPachi — CC-BY-SA — https://en.wikipedia.org/wiki/Cave_(company)
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.