Converts Taito B / F2 (& le C-Chip)¶
Les Taito B System et F2 System sont des plateformes à carte de jeu (68000 + customs Taito). Leur particularité pour la conversion : beaucoup de jeux embarquent le C-Chip (TC0030CMD), un module de protection custom. Pas de « suicide à pile » ici — mais sans le bon C-Chip (ou son émulation), le jeu ne tourne pas.
| Champ | Valeur |
|---|---|
| Plateformes | Taito B System (1988), F2 System (1989) |
| Type | reprog ROM de la carte de jeu + gestion du C-Chip |
| Difficulté | 🟡 (jeu sans C-Chip) → 🟠 (jeu à C-Chip intégré) |
| Suicide ? | Non (pas de clé à pile ; le verrou est le C-Chip) |
Architecture (commune B / F2)¶
| Bloc | Puce | Rôle |
|---|---|---|
| CPU | 68000 | logique de jeu |
| CPU son | Z80 | pilote le son |
| Son | YM2610 (FM + ADPCM) | (certains B : YM2203 + OKI) |
| Vidéo | customs Taito (TC0100SCN tilemaps, TC0xxx sprites/palette) | 2D, JAMMA |
| Protection | C-Chip TC0030CMD (selon jeu) | voir ci-dessous |
Le F2 est un système à carte de jeu enfichable ; le B System est proche architecturalement. Convertir = reprogrammer les ROM du jeu cible et fournir le bon C-Chip quand le jeu en utilise un.
Le C-Chip (TC0030CMD) — le vrai sujet¶
C'est un module multi-puces (MCM) dans un boîtier custom (le seul cas où Taito a fait ça au lieu d'un MCU standard). Il contient :
| Élément | Rôle |
|---|---|
| MCU UPD78C11 | cœur commun à tous les C-Chips |
| ROM MASK interne | le kernel commun (avec checksum interne) |
| EPROM externe | code/données de protection propres au jeu |
| RAM | mémoire partagée avec le 68000 |
| ASIC custom | logique additionnelle |
Ce que le C-Chip fait vraiment¶
Selon le jeu, il gère : lecture des entrées (rangées en RAM partagée pour le 68000), protection, fourniture de sous-routines 68000 (gestion son…), et des données de jeu (palettes, compteurs de comportement d'ennemis, positions de restart). L'intégration varie énormément :
- Usage minimal (ex. Mega Blast) : facile à contourner/convertir.
- Usage intensif (ex. Operation Wolf, Rainbow Islands) : le C-Chip est tissé dans le gameplay → il faut l'EPROM externe exacte du jeu (ou une émulation fidèle).
Kernel commun + EPROM par jeu
Le kernel interne (MASK) est identique sur tous les C-Chips ; seul l'EPROM externe change par jeu. Donc pour convertir vers un jeu à C-Chip, il faut surtout la bonne EPROM externe + un C-Chip fonctionnel (le kernel étant commun).
Préservation : les dumps CAPS0ff¶
Le C-Chip a longtemps bloqué l'émulation. CAPS0ff a dumpé :
- ROM MASK interne : par décap optique + saisie manuelle (validée par les checksums internes) — puisque c'est une MASK ROM.
- EPROM externe (par jeu) : par extraction de die (travail fin et délicat).
→ Résultat : MAME émule le vrai code au lieu de le simuler → grand pas pour la préservation, et base pour des conversions/substituts de C-Chip.
EPROM programme, jeu par jeu (B / F2)¶
Programme 68000, EPROM : 64 Ko → 27C512 · 128 Ko → 27C010 · 256 Ko → 27C020 ·
512 Ko → 27C040. Rappel : les jeux à C-Chip (voir plus haut) exigent en plus
l'EPROM du C-Chip du jeu. (Source : MAME taito/taito_b.cpp, taito/taito_f2.cpp. Vues
cartes : System B · System F2.)
System B
| Jeu | EPROM programme | Jeu | EPROM programme | |
|---|---|---|---|---|
| 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
| Jeu | EPROM programme | Jeu | EPROM programme | |
|---|---|---|---|---|
| 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 |
Le C-Chip reste le vrai verrou
Regraver le programme ne suffit pas pour un jeu à C-Chip (TC0030CMD) : il faut l'EPROM externe du C-Chip du jeu cible + le MCU fonctionnel — voir la section C-Chip.
Convertir vers un autre jeu (résumé)¶
- Réunir les ROM du jeu cible (programme 68000, graphismes, son).
- Brûler les EPROM aux bonnes tailles/positions (carte donneuse compatible).
- Gérer le C-Chip :
- jeu sans C-Chip → rien de spécial.
- jeu à C-Chip → fournir le C-Chip du jeu (avec son EPROM externe), ou un substitut (le kernel étant commun, seuls comptent l'EPROM externe + un module fonctionnel).
- Tester : entrées, sprites/tilemaps, son (YM2610), et les comportements gérés par le C-Chip (ennemis, restart…).
Des conversions F2 réelles sont documentées (ex. Ah Eikou no Koshien → Gun Frontier) sur Arcade-Projects.
Avant / après¶
- Jeu sans C-Chip : reprog ROM → autre jeu, simple.
- Jeu à C-Chip : conversion possible avec l'EPROM externe correcte ; sans elle, protection/gameplay cassés.
Où se documenter¶
- 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 (rôle du C-Chip, kernel/EPROM) — https://mamedev.emulab.it/haze/2018/03/20/now-you-c-inside/
- Conversions pratiques : Arcade-Projects — https://www.arcade-projects.com/
Sources & attribution¶
- CAPS0ff — décap/dump du C-Chip (UPD78C11 + MASK + EPROM externe + ASIC) — http://caps0ff.blogspot.com/2017/10/looking-inside-taito-c-chip.html
- David Haywood / MAME — fonctions du C-Chip, kernel commun vs EPROM par jeu — https://mamedev.emulab.it/haze/2018/03/20/now-you-c-inside/
- Page interne : Taito Type X (autre plateforme Taito)
Relecture & corrections
À quoi sert cet espace
Une valeur fausse, une procédure dépassée, une référence de puce qui ne colle pas à ta carte ? Signale-le ici, avec ce que tu as constaté (modèle, révision de carte, numéro de série, mesure). Chaque signalement est recoupé avec une source avant toute modification — une correction invérifiable est publiée en tant que « signalé par …, non recoupé » plutôt qu'appliquée en silence.
La lecture est ouverte à tous ; écrire demande une connexion Discord. Les signalements des relecteurs déclarés du wiki sont traités en priorité ; les autres sont lus aussi, mais passent par un humain avant toute modification.