Taito B / F2 converts (& the C-Chip)¶
The Taito B System and F2 System are game-board platforms (68000 + Taito customs). Their conversion quirk: many games carry the C-Chip (TC0030CMD), a custom protection module. No "battery suicide" here — but without the right C-Chip (or its emulation), the game won't run.
| Field | Value |
|---|---|
| Platforms | Taito B System (1988), F2 System (1989) |
| Type | game-board ROM reprog + C-Chip handling |
| Difficulty | 🟡 (no-C-Chip game) → 🟠 (C-Chip-integrated game) |
| Suicide? | No (no battery key; the lock is the C-Chip) |
Architecture (common B / F2)¶
| Block | Chip | Role |
|---|---|---|
| CPU | 68000 | game logic |
| Sound CPU | Z80 | drives the sound |
| Sound | YM2610 (FM + ADPCM) | (some B: YM2203 + OKI) |
| Video | Taito customs (TC0100SCN tilemaps, TC0xxx sprites/palette) | 2D, JAMMA |
| Protection | C-Chip TC0030CMD (per game) | see below |
The F2 is a plug-in game-board system; the B System is architecturally close. Converting = reprogram the target game's ROMs and supply the right C-Chip when the game uses one.
The C-Chip (TC0030CMD) — the real topic¶
It's a multi-chip module (MCM) in a custom package (the only case where Taito did this instead of a standard MCU). It contains:
| Element | Role |
|---|---|
| UPD78C11 MCU | core common to all C-Chips |
| Internal MASK ROM | the common kernel (with internal checksum) |
| External EPROM | game-specific protection code/data |
| RAM | memory shared with the 68000 |
| Custom ASIC | additional logic |
What the C-Chip actually does¶
Depending on the game, it handles: input reading (stored in shared RAM for the 68000), protection, supplying 68000 subroutines (sound handling…), and game data (palettes, enemy-behaviour counters, restart positions). Integration varies enormously:
- Minimal use (e.g. Mega Blast): easy to bypass/convert.
- Heavy use (e.g. Operation Wolf, Rainbow Islands): the C-Chip is woven into the gameplay → you need the exact external EPROM of the game (or a faithful emulation).
Common kernel + per-game EPROM
The internal (MASK) kernel is identical across all C-Chips; only the external EPROM changes per game. So to convert to a C-Chip game, you mainly need the right external EPROM + a working C-Chip (the kernel being common).
Preservation: the CAPS0ff dumps¶
The C-Chip long blocked emulation. CAPS0ff dumped:
- Internal MASK ROM: by optical decap + manual transcription (validated by internal checksums) — since it's a MASK ROM.
- External EPROM (per game): by die extraction (fine, delicate work).
→ Result: MAME emulates the real code instead of simulating it → a big step for preservation, and a base for C-Chip conversions/substitutes.
Program EPROM, game by game (B / F2)¶
68000 program, EPROM: 64 KB → 27C512 · 128 KB → 27C010 · 256 KB → 27C020 ·
512 KB → 27C040. Reminder: C-Chip games (see above) also require the game's C-Chip
EPROM. (Source: MAME taito/taito_b.cpp, taito/taito_f2.cpp. Board views:
System B · System F2.)
System B
| Game | Program EPROM | Game | Program EPROM | |
|---|---|---|---|---|
| Rastan Saga 2 / Ashura | 4× 27C010 | Puzzle Bobble | 2× 27C020 | |
| Crime City | 4× 27C010 | Space Invaders DX | 2× 27C020 | |
| Master of Weapon | 4× 27C010 | Quiz Sekai wa Show | 2× 27C040 | |
| Silent Dragon | 4× 27C010 | Hit the Ice | 2× 27C010 + 2× 27C512 | |
| Ryu Jin | 4× 27C010 | Violence Fight | 2× 27C512 + 2× 27C010 |
System F2
| Game | Program EPROM | Game | Program EPROM | |
|---|---|---|---|---|
| Final Blow | 2× 27C010 | Growl / Runark | 4× 27C020 | |
| Don Doko Don | 4× 27C010 | Solitary Fighter | 2× 27C020 | |
| Thunder Fox | 4× 27C010 | Metal Black | 2× 27C020 + 2× 27C010 | |
| Liquid Kids | 4× 27C010 | PuLiRuLa | 2× 27C020 + 2× 27C010 | |
| Gun Frontier | 6× 27C010 | Dead Connection | 4× 27C020 | |
| Ninja Kids | 4× 27C010 | Drift Out | 2× 27C040 | |
| Football Champ | 4× 27C010 | Dino Rex | 2× 27C040 + 2× 27C080 | |
| Cameltry | 2× 27C010 | Koshien / Quiz Quest | 2× 27C010 + 1× 27C040 |
The C-Chip is still the real lock
Reburning the program is not enough for a C-Chip game (TC0030CMD): you need the target game's external C-Chip EPROM + a working MCU — see the C-Chip section.
Converting to another game (summary)¶
- Gather the target game's ROMs (68000 program, graphics, sound).
- Burn the EPROMs at the right sizes/positions (compatible donor board).
- Handle the C-Chip:
- game without a C-Chip → nothing special.
- game with a C-Chip → supply the game's C-Chip (with its external EPROM), or a substitute (kernel being common, only the external EPROM + a working module matter).
- Test: inputs, sprites/tilemaps, sound (YM2610), and C-Chip-driven behaviour (enemies, restart…).
Real F2 conversions are documented (e.g. Ah Eikou no Koshien → Gun Frontier) on Arcade-Projects.
Before / after¶
- Game without a C-Chip: reprogram ROMs → another game, simple.
- C-Chip game: conversion possible with the correct external EPROM; without it, protection/gameplay is broken.
Where to read more¶
- CAPS0ff — Looking inside Taito C-Chip (structure, dump) — http://caps0ff.blogspot.com/2017/10/looking-inside-taito-c-chip.html
- David Haywood (MAME) — Now You C Inside (C-Chip role, kernel/EPROM) — https://mamedev.emulab.it/haze/2018/03/20/now-you-c-inside/
- Practical conversions: Arcade-Projects — https://www.arcade-projects.com/
Sources & attribution¶
- CAPS0ff — C-Chip decap/dump (UPD78C11 + MASK + external EPROM + ASIC) — http://caps0ff.blogspot.com/2017/10/looking-inside-taito-c-chip.html
- David Haywood / MAME — C-Chip functions, common kernel vs per-game EPROM — https://mamedev.emulab.it/haze/2018/03/20/now-you-c-inside/
- Internal page: Taito Type X (other Taito platform)
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.