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.
Procédure — carte muette, dans l'ordre ✅¶
Ce que cette procédure ajoute
La méthode générale est sur Diagnostic PCB. Celle-ci en est l'application à cette plateforme : le même ordre, mais avec les valeurs réellement attendues ici, pour éviter l'aller-retour.
Outillage : multimètre, oscilloscope (ou fréquencemètre), alimentation de labo limitée en courant, tresse à dessouder. → Outillage
Si la carte est encore dans une borne
Un CRT reste chargé machine débranchée. → Sécurité CRT
1. Inspection, hors tension. Corrosion, pistes coupées, pattes d'EPROM oxydées, condensateurs CMS qui fuient, réparations antérieures douteuses.
2. Le connecteur, avant tout le reste. Une bonne part des « cartes mortes » est un problème de contact, pas une panne. Nettoyer les contacts à l'alcool isopropylique et ré-enficher — pas à la gomme abrasive sur un bord doré, elle enlève la dorure et le problème revient en pire. Ça coûte deux minutes et ça tranche.
3. Alimentation, mesurée sur la carte. Viser +5,0 V mesurés au plus près de l'arrivée d'alimentation de la carte — pas à la sortie de l'alim : la chute est dans le faisceau, et c'est précisément ce qui fait qu'une carte démarre sur l'établi et pas dans la borne. Le point de mesure dépend du connecteur de cette carte — bord JAMMA, faisceau JVS ou câblage propriétaire — beaucoup de constructeurs en ont gardé un bien après l'arrivée du JAMMA — voir Identification plus haut. → Câblage Vérifier aussi le −5 V et le +12 V si l'étage son les utilise. Court-circuit suspecté : monter en courant limité et chercher le point chaud.
4. /RESET. Doit se libérer après l'allumage. Maintenue basse = le CPU ne démarre jamais. Une boucle à 1–2 Hz n'est pas le circuit de reset, c'est le watchdog : le CPU plante au boot — regarder le bus, pas le reset.
5. Horloges. Pas de table de mesure pour cette plateforme — les sources MAME n'en donnent pas d'extraction exploitable. Les fréquences éventuellement citées sous Architecture sur cette page servent de repère ; sinon, comparer à une carte qui marche plutôt qu'à un chiffre : une valeur inventée fait condamner des pièces saines. → Diagnostic PCB
6. Bus. L'activité sur les lignes d'adresse du CPU principal dit s'il tourne ou s'il est figé. Figé avec horloges bonnes et reset bon → RAM de travail, buffers de bus, ROMs.
7. Elle démarre mais l'image ou le son est faux — c'est un autre travail : voir Pannes fréquentes sur cette page, puis le signal tracing.
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.