Skip to content

Toaplan converts (V1 / V2)

Toaplan hardware (the shmup kings of the late 80s/early 90s) puts two locks in the way of conversion: a sound MCU with internal ROM (the HD647180, long undumped) and the custom GP9001 VDP (V2). No battery suicide — but customs that are hard to replace and an MCU you have to own.

Toaplan V1 (1988-1991)

Block Chip
CPU 68000
Sound CPU Z80 (or HD647180 on some)
Sound YM3812 / YM2151 (+ OKI depending on game)
Video Toaplan customs (BCU/FCU tilemaps + sprites)

Games: Truxton (Tatsujin), Twin Cobra, Hellfire, Zero Wing, Fire Shark, Out Zone, Vimana, Rally Bike… Several use the HD647180 (see below).

Toaplan V2 (1991-1994)

Block Chip
CPU MC68000P10
Sound CPU/MCU HD647180X0FS6 (Z180 + 16 KB internal ROM), or Z80 (Z84C0006), or NEC V25
Video GP9001 (custom VDP) — sometimes 2× GP9001

Games: Batsugun, Dogyuun (2× GP9001), Truxton II (Tatsujin Oh), Knuckle Bash, FixEight, V-Five / Grind Stormer, Ghox, Teki Paki, Whoopee!… The GP9001 was also used by Raizing/8ing (Battle Garegga, Batrider, Battle Bakraid).

Lock #1: the HD647180 sound MCU

The HD647180 is a Z180 with a 16 KB internal mask ROM — so code that can't be read from outside. For a long time this blocked emulation and conversion of the games that use it.

CAPS0ff (and the community) dumped these MCUs (decap). Result: MAME emulates the real code, and on real hardware you know which MCU you need (or a programmed substitute). Without the right HD647180, a game that uses it won't run.

Lock #2: the GP9001 VDP

The GP9001 is a custom video chip: if it dies, there's no original spare. Hence a decap/reverse effort (Arcade-Projects) to:

  • improve MAME emulation,
  • enable FPGA simulation (MiSTer),
  • reproduce the custom for board owners.

Dogyuun / Batsugun = 2× GP9001

Some games use two GP9001s in tandem → a patch/conversion does not apply identically to the others (graphics glitches otherwise).

Converting (summary)

  1. Gather the target game's ROMs (68000, graphics, sound).
  2. Burn the EPROMs onto a compatible donor board (same generation).
  3. Handle the sound MCU: supply the game's HD647180 (or its programmed dump), or a Z80/V25 game if applicable.
  4. Check the GP9001 (V2) — irreplaceable if it's dead.
  5. Test sprites/tilemaps and sound.

Program EPROM, game by game

68000 program, EPROM: 64 KB → 27C512 · 128 KB → 27C010 · 512 KB → 27C040. V1 = often 2× 27C010 (even/odd program). V2 = often a single 27C040 (merged program). (Source: MAME toaplan/toaplan1.cpp + per-game V2 drivers. Board view: Toaplan PCB.)

V1

Game Program EPROM
Truxton / Tatsujin 27C010
Hellfire 27C010
Zero Wing 27C256 + 2× 27C010
Demon's World / Horror Story 27C010
Out Zone 27C010
Vimana 27C010

V2 (GP9001 VDP)

Game Program EPROM
Teki Paki 27C512
Ghox 27C010
Truxton II / Tatsujin Ō 27C040
Dogyuun 27C040
Knuckle Bash 27C040
Batsugun 27C040
Snow Bros. 2 27C040
Fix Eight 27C040

Mind the locks

On V1/V2, the HD647180 sound MCU (internal ROM) and the GP9001 VDP can block a conversion — see the lock sections above. The program EPROM is only one part.

Settings (DIP)

Toaplan V1/V2 are configured with physical DIP switches — usually two banks of 8 (SW1 / SW2):

Bank Typical functions
SW1 coinage, test/service, sound in demo, flip screen
SW2 difficulty, lives, bonus/extend, sometimes region

Some games set the region via DIP (SW2), others via a soldered jumper. After a conversion, apply the target game's DIP table (see general convention).

Before / after

  • Z80-sound game: simpler conversion (no internal ROM).
  • HD647180 game: conversion possible with the correct (dumped) MCU.

Where to read more

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.