Aller au contenu

Capcom CP System II (CPS-2)

Système d'arcade de Capcom (1993), successeur du CPS-1. Architecture en deux cartes (A-board + B-board) et surtout : un chiffrement du programme dont les clés vivent dans une SRAM sauvegardée par pile — d'où le célèbre « suicide » quand la pile meurt, et tout l'écosystème du désuicide.

Identification

Champ Valeur
Fabricant Capcom
Année 1993 (dernier jeu : Hyper Street Fighter II, 2003)
Système / famille CPS-2
Type de connecteur JAMMA (A-board) + harnais boutons supplémentaires (kick harness)
Nombre de joueurs 2 (jeux de combat surtout)
Orientation écran Horizontal
Résolution / sync 384×224, 15 kHz
Alimentation +5 V, +12 V, -5 V

Architecture — deux cartes

Le rapport A-board / B-board est celui d'une console + cartouche :

  • A-board (base, commune à tous les jeux) : connecteur JAMMA, CPU, hardware commun, son. Les boutons 4/5/6 des deux joueurs passent par le kick harness 34 broches (Hirose DF1B) sur le bord de la A-board :
conn-cps2-kick-34
Brochage du kick harness CPS-2 — voir aussi Câblage JAMMA · kick harness.
  • B-board (le jeu) : ROMs du jeu + SRAM des clés de déchiffrement, sauvegardée par pile. C'est elle qu'on échange pour changer de jeu.
Bloc Composant
CPU principal Motorola 68000 @ 16 MHz — programme chiffré, déchiffré par le custom CPS2 (« DL-1525 ») avec une clé en SRAM à pile
CPU son Z80 @ 8 MHz
Son QSound (DSP Lucent DL-1425, son stéréo positionnel)
Graphismes customs CPS2 (évolution du CPS-1) — 384×224, plus de sprites/couleurs

Régions & couleurs de B-board

La région est codée par la couleur du boîtier de la B-board + la couleur du texte de version. Une A-board et une B-board doivent avoir des couleurs compatibles (bleu et vert sont interchangeables). (Source : Wikipédia.)

Région Couleur boîtier Couleur du texte de version
Japon Vert Blanc
USA Bleu Rouge
Europe / World Bleu Bleu
Asie Gris Jaune
Hispanique Orange Vert
Brésil Orange Magenta
Océanie Bleu Orange

Le « suicide » & le désuicide

Le point le plus important d'une CPS-2. Le programme est chiffré ; les clés de déchiffrement sont en mémoire volatile sur la B-board, maintenue par une pile lithium 3,6 V ½ AA (type Saft LS14250, sur support axial). Un condensateur proche de la pile garde les clés vivantes quelques minutes hors tension.

  • Quand la pile meurt (puis le condensateur se vide), les clés sont perdues → le jeu ne boote plus : c'est le « suicide ».

Chronologie du crack

Date Événement
Janv. 2001 CPS-2 Shock obtient des données déchiffrées par hack matériel (tables XOR pour l'émulation)
Janv. 2007 Andreas Naive & Nicola Salmoria cassent le chiffrement (2 chiffres de Feistel à 4 rondes, clés 64 bits) → intégré à MAME
Avril 2016 Eduardo Cruz, Artemio Urbina, Ian Court : désuicide propre, sans modification matérielle

Remplacer la pile (board encore vivante)

Opération relativement sûre si les clés sont encore là : le condensateur maintient la mémoire quelques minutes le temps de souder une pile neuve.

  1. Se procurer une pile 3,6 V ½ AA (Saft LS14250 ou équivalent), idéalement à pattes à souder (ne pas court-circuiter).
  2. Dessouder l'ancienne, souder la neuve rapidement (respecter la polarité).
  3. Vérifier que le jeu boote toujours.

Ne pas traîner

Si le condensateur se vide avant que la pile neuve soit en place → suicide. Par sécurité, certains alimentent la board pendant l'échange ou piggyback une pile de secours en parallèle avant de retirer l'ancienne.

Désuicide — reprogrammer la sécurité (board morte)

Méthode ArcadeHacker (Eduardo Cruz, 2016) : on réécrit les clés de déchiffrement dans la mémoire volatile via un programmeur Arduino. La board refonctionne sans modification matérielle ; une pile neuve conserve ensuite les clés. Plus besoin de phoenix ROMs si on veut rester d'origine.

Matériel : Arduino Uno + LCD Keypad Shield, barrette 7 broches, câbles Dupont (F-F et M-M), pinces de test ou connecteur JST NH 6 broches, alim 5 V ≥ 1,5 A, fer à souder.

Révisions supportées & connecteur :

Révision B-board Connecteur
93646B-3, 93646B-4 CN2
93646B-5, 93646B-6, 93646B-7 CN9
97691A-3, 97691A-4 (board unique noire) CN9

Ordre d'alimentation (critique)

Allumer la game board d'ABORD, puis l'Arduino. À l'extinction, couper l'Arduino d'abord, puis la board. Masse commune obligatoire, ~5 V stable. Les cartes CN2 ont des incohérences de brochage dans la doc → vérifier les broches avant de brancher.

Procédure pas-à-pas (d'après ArcadeHacker)

Préparation

  1. Récupérer le sketch ArcadeHacker_CPS2.ino (dépôt GitHub, voir sources) et installer l'IDE Arduino.
  2. Assembler le programmeur : souder une barrette 7 broches sur le socle haut-droit du LCD Keypad Shield, monter le shield sur l'Uno, relier des câbles Dupont aux broches 2, 3, 11, 12 et GND.
  3. Téléverser le sketch sur l'Arduino (USB).

Préparation de la carte

  1. Ouvrir la B-board (tournevis Torx de sécurité T20).
  2. Identifier la révision (marquage PCB) : 93646B-3/4, -5, -6/7, ou 97691A-3/4.
  3. Si la pile est HS, poser une pile neuve 3,6 V ½ AA (sur support de préférence).

Câblage — 93646B-3 / 93646B-4 (connecteur CN2)

Arduino → CN2 Signal
broche 2 A32 DATA
broche 3 A30 SETUP1
broche 11 A31 CLOCK
broche 12 A29 SETUP2
GND C32 Masse

Alim : +5 V → CN7 A25 ; GND → CN7 A23 et B23 (alim externe, laissée OFF).

Câblage — 93646B-5/6/7 & 97691A (connecteur CN9)
Arduino → CN9 Signal
broche 2 broche 2 DATA
broche 3 broche 3 SETUP1
broche 11 broche 4 CLOCK
broche 12 broche 5 SETUP2
GND broche 6 Masse

Alim : rev -5 via CN7 (comme -3/-4) ; rev -6/-7 via les broches d'alim de CN9.

Programmation

  1. Séparer la A-board et la B-board.
  2. Allumer la B-board d'abord (alim externe), puis l'Arduino (USB).
  3. Sur l'écran LCD, naviguer (haut/bas/gauche/droite) et sélectionner le jeu correspondant au set de ROMs de la carte.
  4. Valider → le programmeur écrit les clés dans la sécurité.
  5. Éteindre l'Arduino d'abord, puis la B-board. Débrancher tous les fils.

Vérification

  1. Réassembler A + B, tester. Si échec : revérifier le câblage et refaire un keyload (prendre son temps).

Alternatives

  • Phoenix ROMs : programme déchiffré qui tourne sans pile ni clés → reflasher les ROMs programme de la B-board. Simple pour la préservation, mais la board n'est plus « d'origine ».
  • InfiniKey-CPS2 : module qui maintient les clés (remplacement de pile longue durée / sans suicide).

Pannes fréquentes

Symptôme Cause probable Piste
Board morte / ne boote plus Pile HS → clés perdues (suicide) Phoenix ROMs, ou re-programmation des clés (désuicide)
Pas d'image A-board (alim, custom) Vérifier alim, contacts JAMMA
Pas de son / son mono Z80 / QSound / câblage stéréo Diagnostic étage son
Graphismes corrompus ROMs / contacts B-board Reseat, nettoyage connecteurs

Recap

Une carte logique CPS-2 a peu de condensateurs électrolytiques (surtout l'étage son) — rien à voir avec un CRT ou une Mega Drive Model 2. Le point faible reste la pile (voir suicide), pas les condos. En cas de son dégradé / condo qui fuit : recap ciblé de l'étage audio. Kits : Console5 (arcade PCB).

Conversions

  • Changer de jeu = échanger la B-board. L'A-board reste ; la B-board porte le jeu (ROMs + clés).
  • Compatibilité couleurs / région : A-board et B-board doivent avoir des couleurs compatibles (bleu et vert interchangeables ; voir le tableau des régions plus haut).
  • Conversion au niveau ROM (reflasher une B-board vers un autre jeu) : plus avancé, dépend de la configuration ROM ; souvent lié aux phoenix / multigame. (procédure à détailler depuis une source vérifiée.)
  • Les phoenix ROMs affranchissent de la pile → préservation facilitée.
  • ⚠️ Ne pas héberger de ROMs — on décrit la méthode, pas le contenu protégé.

Guide converts CPS-2 (B-board, région, phoenix) · Multi CPS-2 Darksoft

(Page conversion dédiée à créer : conversions/cps2/…)

Émulation & FPGA

  • MAME : émulation complète depuis la publication des tables XOR déchiffrées (Naive & Salmoria, 2007).
  • FPGA / MiSTer : le core jtcps2 (Jotego) reconstruit le CPS-1.5/CPS-2 en logique matérielle, avec gestion des clés de déchiffrement — l'un des cores arcade les plus complets de MiSTer.

Modernisation & mods

Le socle commun à toutes les cartes JAMMA

Vidéo, alimentation, panneau de contrôle et upscalers ne dépendent pas de la carte mais du meuble : tout est centralisé dans Moderniser une borne. Pour faire tourner la carte hors d'une borne (chez soi, sur un écran) : supergun.

  • Anti-suicide — le mod prioritaire 🟠 : cette plateforme se suicide (clé/programme maintenus par pile). Remplacer la pile sans couper l'alimentation ne fait que repousser l'échéance ; la voie durable est le désuicideconversions et désuicidepiles de sauvegarde.
  • Stockage 🟡 : jeu en EPROM/mask ROM sur la carte. Changer ou restaurer un jeu = reprogrammer les EPROM (et, pour une mask ROM, passer par un adaptateur de brochage) → méthode EPROM.
  • Préservation du support : remplacement du stockage d'origine, multicarts, ODE et solutions modernes par famille → hub préservation PCB.
  • Fréquence de balayage 📺 : ~15,62 kHz / 59,6 Hz — résolution standard, un châssis 15 kHz classique convient — c'est le cas le plus courant en JAMMA → tri-sync et upscalers. (Calculé depuis les sources MAMEcapcom/cps1.h (8 MHz / 512) — horloge pixel ÷ htotal.)
  • FPGA / émulation : voir la section Émulation & FPGA ci-dessous.

Réparation EPROM

Programme 68000 sur la B-board en 27C4096 / 27C160 (16 bits) ou 27C040. Table par jeu + jumpers B-board : Converts CPS-2 · jumpers par jeu. ⚠ Suicide (pile) → voir désuicide.

Méthodes : Diagnostic PCB · Recap · EPROM · Piles de sauvegarde (suicide) · Pistes & vias

Photos / assets

(À ajouter : A-board, B-board colorée, emplacement pile, connecteurs.)

Sources & attribution

Textes :

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.