Converts CPS-2¶
Convertir une B-board CPS-2 vers un autre jeu = reprogrammer toutes les EPROM, remplacer les mask ROM par des EPROM, régler ~24 jumpers selon le jeu cible, utiliser le bon PAL (ou un PAL universel + un fil sur les révisions 3/4), et injecter les clés du jeu (sinon écran suicide). Voici la procédure réelle.
| Champ | Valeur |
|---|---|
| Plateforme | Capcom CPS-2 |
| Type | reprog EPROM de la B-board + jumpers + PAL + clés |
| Difficulté | 🟠 (EPROM, PAL, jumpers, gestion clés) |
| Suicide ? | Oui — clés de déchiffrement en SRAM à pile |
Avertissement
Une conversion se fait à partir de tes propres dumps. Le déchiffrement et les clés sont spécifiques au jeu : sans clé valide, la carte reste en écran suicide. Travaille méthodiquement, une erreur de jumper = jeu KO.
1. Comprendre le plan des ROMs de la B-board¶
La B-board a des sockets numérotés par fonction :
| Sockets | Contenu | EPROM à utiliser |
|---|---|---|
| ROM 1–2 | programme QSound (Z80) | 27C010 / 27C1001 (1 Mbit) |
| ROM 3–10 | programme principal (68000, chiffré) | 27C4096 (4 Mbit) — tous les jeux |
| ROM 11–12 | échantillons sonores (QSound) | 27C160 (16 Mbit) / 27C322 (32 Mbit) |
| ROM 13–20 | graphismes (mask ROM d'origine) | 27C400/800 (pinout mask) ou 27C160/322 |
Points clés :
- Le programme principal est toujours en 27C4096 (max 4 Mbit) — on ne peut pas le regrouper. Idem QSound program (max 1 Mbit).
- Le CPS-2 bank-switch entre 2 ROM : on peut fusionner deux banques en une seule EPROM plus grosse (voir méthode PAL G ci-dessous).
- Une B-board convertie se reconnaît à ses mask ROM graphiques remplacées par des EPROM (boîtiers à fenêtre / avec étiquette).
2. Deux stratégies¶
A. PAL universel « G » + EPROM 32 Mbit (le plus simple)¶
On fusionne les banques en EPROM 27C322 (32 Mbit) et on utilise un PAL « G » universel (brûlé sur un GAL16V8). Comme les mask ROM 32 Mbit ont le même brochage que les EPROM, plus de casse-tête de pinout.
Table taille de fichier → densité → EPROM à utiliser :
| Fichier | Densité | EPROM (pinout EPROM) | EPROM (pinout mask) |
|---|---|---|---|
| 128 Ko | 1 Mbit | 27C010 / 27C1001 | — |
| 256 Ko | 2 Mbit | 27C020 / 27C2001 | — |
| 512 Ko | 4 Mbit | 27C040 / 27C4096 | 27C400 |
| 1 Mo | 8 Mbit | 27C080 / 27C801 | 27C800 |
| 2 Mo | 16 Mbit | 27C160 | 27C160 (même pinout) |
| 4 Mo | 32 Mbit | 27C322 | 27C322 (même pinout) |
Programme principal = toujours 27C4096 (4 Mbit). QSound program = 27C010/27C1001 (1 Mbit). Pour les graphismes/son, choisir le modèle selon le pinout attendu par le socket (colonne EPROM vs mask ci-dessus).
Exemple — D&D: Tower of Doom :
- Sons ROM 11 (2 Mo) + ROM 12 (2 Mo) → fusion en 32 Mbit dans le socket 11 (socket 12 laissé vide).
- Graphismes : ROM 13 (2 Mo) + ROM 14 (1 Mo) sont bank-switchés ensemble → il faut d'abord doubler ROM 14 (ROM14+ROM14), puis fusionner ROM13 + le ROM14 doublé → une mask ROM 32 Mbit dans le socket 13. (13/14 vont ensemble, 15/16 ensemble, etc. — pas 14+15.)
Rev 3/4 + PAL G : le fil obligatoire
Avec un PAL G sur une B-board révision 3 ou 4, il faut ajouter un fil de jumper (sinon son cassé). C'est l'oubli classique.
B. PAL d'origine + EPROM aux tailles exactes¶
On garde le PAL d'origine du jeu cible (à brûler) et on met les EPROM aux tailles exactes. Il faut alors respecter le brochage mask ROM vs EPROM :
- 4/8 Mbit existent en pinout mask (27C400 / 27C800) ou pinout EPROM (27C040 / 27C080 / 27C801) — ne pas les confondre, le jumper de pinout doit correspondre.
3. Régler les jumpers (le point critique)¶
Il y a ~24 jumpers : ils indiquent à la carte, pour chaque socket, la taille et le brochage de la ROM attendue.
- Sockets 1–10 (programme + QSound) : les seuls jumpers possibles règlent le brochage JEDEC / non-JEDEC (type d'EPROM), pas la taille.
- Sockets graphiques/son : les jumpers encodent la densité et le pinout mask vs EPROM.
Table de logique des jumpers (transcrite)¶
Un jumper se note C (Closed/fermé, pont fait) ou O (Open/ouvert). Les jumpers sont groupés par socket ; ils changent deux choses : la fonction de broches d'adresse hautes (donc la taille) et le brochage (mask vs EPROM, JEDEC vs non-JEDEC).
| Groupe de jumpers | Sockets concernés | Ce qu'ils règlent |
|---|---|---|
| JP1–JP9 | 1–2 (programme QSound Z80) | type d'EPROM : 27C1000 (non-JEDEC) vs 27C1001/27C010 (JEDEC) |
| jumpers de pinout | 3–10 (programme principal) | uniquement JEDEC / non-JEDEC (taille figée = 4 Mbit, 27C4096) |
| jumpers de densité + pinout | 11–12 (sons) | densité (16/32 Mbit) + mask vs EPROM |
| jumpers de densité + pinout | 13–20 (graphismes) | densité (4/8/16/32 Mbit) + mask (27C400/800) vs EPROM (27C040/080/801) |
Cas concret sockets 1–2 (QSound) : la fonction des broches 2 et 26 est A16 ou GND. Pour une 27C1001 / 27C010 (JEDEC) : A16 → broche 2, GND → broche 26, ce qui donne le motif C-O-O-C sur JP1,2,3,4 et JP5,6,8,9. Pour une 27C1000 (non-JEDEC), inverser ce motif.
Règle de taille (broche d'adresse haute = dernière ligne active) :
| EPROM | Densité | Broche d'adresse haute |
|---|---|---|
| 27C010/1001 | 1 Mbit | A16 |
| 27C4096 | 4 Mbit | A18 |
| 27C160 | 16 Mbit | A19 |
| 27C322 | 32 Mbit | A20 |
→ Plus l'EPROM est grosse, plus il y a de lignes d'adresse à valider (jumper côté « adresse » et non « GND ») sur le socket correspondant.
Pièges de la table par jeu
-
Les réglages supposent des 27C1001 (1 Mbit) en sockets 1–2 → inverser pour des 27C1000.
-
Certaines tables en ligne sont fausses : l'ordre des jumpers est parfois inversé par rapport aux banques mask ROM. Recouper.
-
Ne pas confondre pinout mask (27C400/800) et EPROM (27C040/080/801) pour une même densité → le jumper de pinout doit correspondre à l'EPROM posée.
-
Avec la méthode PAL G + 27C322 (voir §2A), le pinout mask/EPROM n'est plus un souci (même brochage).
Valeurs exactes par jeu : voir la table complète des jumpers par jeu — transcrite en dur depuis la jumper_data_settings.xls (fichier de référence récupéré et archivé dans le dépôt, la source d'origine étant morte).
Exemple : Street Fighter Alpha → Super Street Fighter II¶
Conversion réelle typique. Il faut réunir : les EPROM correctes, la daughterboard (si le jeu cible en a une), le bon PAL en PAL3, puis régler les jumpers selon les tailles de ROM de SSF2, et enfin flasher/injecter les clés de SSF2 (voir §4). Sans la bonne combinaison EPROM + PAL3 + jumpers + clés, la carte reste en écran suicide ou affiche des défauts (voir §6).
4. Les clés / le suicide¶
Le programme principal est chiffré ; le custom CPS-2 le déchiffre avec la clé du jeu. Après conversion, il faut fournir la clé du jeu cible :
- Flasher les clés dans la SRAM de la B-board, ou
- installer un InfiniKey-CPS2 (remplace pile + clés, plus de suicide).
- Si la carte tournait avant sur une autre clé (pile/InfiniKey), court-circuiter EXC5 pour purger l'ancienne clé.
Voir aussi le désuicide/phoenix sur CPS-2.
5. Checklist de vérification¶
- EPROM dans le bon sens et au bon socket
- Bon PAL en PAL3 (ou PAL G)
- Fil de jumper posé si PAL G sur rev 3/4
- Jumpers réglés + continuité/ouverture vérifiée au multimètre
- Clés flashées / InfiniKey configuré pour le nouveau jeu
6. Dépannage par couleur d'écran¶
| Écran | Cause | Correctif |
|---|---|---|
| Couleur unie | écran suicide | flasher les clés / InfiniKey ; shorter EXC5 si ancien jeu sur pile/InfiniKey |
| Blanc | programme principal non lu | vérifier ROM programme, reseat B-board |
| Gris / bleu foncé | clés invalides | reflasher les bonnes clés du jeu |
| Jailbars / sprites manquants | contacts / ROM graphiques | reseat, revérifier ROM 13–20 |
| Son cassé | PAL G sans le fil rev 3/4 | poser le fil de jumper |
Matériel nécessaire¶
- Programmateur EPROM gérant jusqu'au 32 Mbit (TL866II+ limité au 16 Mbit natif → adaptateurs pour 27C322 ; sinon programmateur haut de gamme).
- GAL16V8 (pour brûler le PAL G ou le PAL du jeu).
- EPROM : 27C010/1001, 27C4096, 27C400/800, 27C160, 27C322.
- Fer à souder, tresse, cutter (pour couper/rétablir les jumpers).
Alternative : le multi¶
Pour « tout avoir » sans reprogrammer, le multi CPS-2 (Darksoft) remplace la B-board par un kit SD — voir la page multi pour l'installation.
Outil archivé chez nous
Source du ArcadeHacker_CPS2.tar.gz
(sketch Arduino de désuicide/re-key CPS-2) · README.
(Le guide PDF n'est pas archivé — son contenu est transcrit ci-dessus.)
Sources & attribution¶
- Arcade-Projects — The Definitive Guide to CPS2 Conversions (xodaraP) — https://www.arcade-projects.com/threads/the-definitive-guide-to-cps2-conversions.10778/
- Table jumpers jumper_data_settings.xls — http://petes-emulation.com/ftp/acm/docs/jumper_data_settings.xls
- Arcade Otaku Wiki — CPS2 — https://wiki.arcadeotaku.com/w/CPS2
- Page interne : CPS-2
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.