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 :
- 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.
- Se procurer une pile 3,6 V ½ AA (Saft LS14250 ou équivalent), idéalement à pattes à souder (ne pas court-circuiter).
- Dessouder l'ancienne, souder la neuve rapidement (respecter la polarité).
- 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
- Récupérer le sketch
ArcadeHacker_CPS2.ino(dépôt GitHub, voir sources) et installer l'IDE Arduino. - 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.
- Téléverser le sketch sur l'Arduino (USB).
Préparation de la carte
- Ouvrir la B-board (tournevis Torx de sécurité T20).
- Identifier la révision (marquage PCB) : 93646B-3/4, -5, -6/7, ou 97691A-3/4.
- 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
- Séparer la A-board et la B-board.
- Allumer la B-board d'abord (alim externe), puis l'Arduino (USB).
- Sur l'écran LCD, naviguer (haut/bas/gauche/droite) et sélectionner le jeu correspondant au set de ROMs de la carte.
- Valider → le programmeur écrit les clés dans la sécurité.
- Éteindre l'Arduino d'abord, puis la B-board. Débrancher tous les fils.
Vérification
- 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ésuicide → conversions et désuicide → piles 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 MAME —
capcom/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 :
- Wikipédia — CP System II (architecture, régions, suicide, crack) — CC-BY-SA — https://en.wikipedia.org/wiki/CP_System_II
- ArcadeHacker (Eduardo Cruz) — Capcom CPS2 Security Programming Guide (batterie, désuicide, révisions, matériel) — http://arcadehacker.blogspot.com/2016/09/capcom-cps2-security-programming-guide.html
- ArcadeHacker — dépôt code désuicide — https://github.com/ArcadeHacker/ArcadeHacker_CPS2
- Hackaday — Desuiciding Capcom Arcade Boards (2016) — https://hackaday.com/2016/09/15/desuiciding-capcom-arcade-boards/
- RetroRGB — InfiniKey-CPS2 — https://retrorgb.com/infinikey-cps2-prevents-cps-2-arcade-boards-from-suiciding.html
- System16 — Capcom CPS-2 Hardware — © — à référencer — https://www.system16.com/hardware.php?id=690
- MAME — implémentation du déchiffrement (2007)
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.