Aller au contenu

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

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.