CP System II




Le CP System II (Capcom Play System 2), plus communément appelé CPS2 ou CPS-2, est un système de jeux vidéo à cartouche pour borne d'arcade compatible JAMMA destiné aux salles d'arcade, créé par la société japonaise Capcom afin de succéder au CP System.




Sommaire






  • 1 Description


  • 2 Nationalité des jeux


  • 3 Spécifications techniques


    • 3.1 Processeur principal


    • 3.2 Audio


    • 3.3 Affichage




  • 4 Liste des jeux


  • 5 Système de protection et décryptage


    • 5.1 CPS Suicide


    • 5.2 Décryptage


    • 5.3 Forces et faiblesses




  • 6 Références


  • 7 Annexes


    • 7.1 Article connexe


    • 7.2 Lien externe







Description |


Le CP System II est sorti en 1993 et a eu une durée de vie assez longue : 11 ans d'exploitation. Le premier jeu édité pour ce support est Super Street Fighter II: The New Challengers, suivi de nombreux jeux à succès, principalement des shoot them up (GigaWing, Mars Matrix: Hyper Solid Shooting…) et des jeux de combat majoritairement développés par Capcom : Pocket Fighter, les sagas Darkstalkers, Street Fighter Alpha et cinq jeux utilisant la licence Marvel. La production software connait un arrêt en 2001 mais elle est prolongée de 3 ans par le tardif Hyper Street Fighter II: The Anniversary Edition sorti en 2004[1].


Les jeux CPS2 se présentent presque toujours sous la forme de deux cartouches : celles contenant le jeu (comme sur console) sont communément appelées B-Board et s'emboîtent sur une autre cartouche qui est une sorte de carte mère appelée A-Board ; cette dernière dispose d'un connecteur JAMMA permettant de relier le tout à une borne d'arcade. Ce système permet de changer de jeux au format CPS2 très facilement et diminue les risques de détériorations.
Cependant certains jeux se présentent également sous une autre forme, où carte de jeu et carte mère sont dans la même cartouche de couleur noire. Les cartouches CPS2 se distinguent par leur poids et leur taille relativement imposants pour un système d'arcade[2]. Certains jeux nécessitent un Kick harness afin de faire fonctionner tous les boutons.


Le son stéréo est disponible pour la totalité des jeux avec la puce Capcom Qsound sur toutes les cartes. Il est à noter, que les spécifications techniques du CPS2 par rapport au CPS, sont presque identiques. En fait, Capcom a fait évoluer son ancien système vers un hardware plus simple d'utilisation et légèrement plus performant. Les puces et processeurs sont, en effet, les mêmes, un Motorola M68000, un Zilog Z80 et une QSound[3].


Le jeu CPS2 le plus volumineux est Vampire Savior 2: The Lord of Vampire, qui contient 362 Mbits de données.


Le dernier jeu sur CPS2 aurait dû être le shoot'em up Progear sorti en 2001, mais pour fêter les 15 ans de Street Fighter, Capcom a sorti en 2004 sur CPS2 le jeu Hyper Street Fighter II: The Anniversary Edition.


Capcom avait pour habitude de récupérer d'anciennes cartouches de jeux CPS-2 pour en fabriquer de nouvelles. Souvent sur la cartouche, le sticker du jeu est collé sur le sticker d'un jeu contenu précédemment[4],[5].



Nationalité des jeux |



































































Compatibilité entre jeu et carte mère CPS2

Carte mère


Cartouche


USA / Europe
Bleue


Japon
Vert


Asie
Gris


Amérique du Sud
Orange


Brésil
Rose


Location
Jaune


USA / Europe
Bleu

X
X
-
-
-
X

Japon
Vert

X
X
-
-
-
X

Asie
Gris

-
-
X
-
-
-

Amérique du Sud
Orange

-
-
-
X
-
-

Brésil
Rose

-
-
-
-
X
-

Location
Jaune

X
X
-
-
-
X

Les A-Board (cartes-mères) et les B-Board (jeux) ont des couleurs différentes selon leurs zones d'origine.



  • Bleu : États-Unis, Canada et Europe

  • Vert : Japon

  • Gris : Asie

  • Orange : Amérique du Sud

  • Rose : Brésil

  • Jaune : « Region 0 » (destiné à la location)

  • Noir : « Region 0 » (A-Board et B-Board intégrées sur la même carte)


Une A-Board et une B-Board ne peuvent fonctionner ensemble uniquement si leurs couleurs sont compatibles. Par exemple, une B-Board grise ne peut pas tourner sur une A-Board bleue (voir le tableau ci-contre).


Les seules différences entre les jeux de couleurs différents se situent principalement au niveau de la langue utilisée dans les textes. Les jeux japonais de couleur verte sont intégralement en japonais. Par contre les jeux bleu et gris sont en anglais. Plus rarement, certains jeux se voient amputés de quelques éléments d'une version à l'autre, comme les voix digitalisées présentes dans la cartouche du jeu Progear de couleur verte, et qui n'existent pas dans la cartouche de couleur bleue.



Spécifications techniques |



Processeur principal |




  • Motorola 68000 cadencé à 16 MHz

  • Bus d'adressage : 24 bit

  • Bus de données : 16 bit



Audio |



  • Zilog Z80 cadencé à 8 MHz

  • Puce QSound cadencé à 4 MHz

  • Zilog Z80 cadencé à 8 MHz

  • Stéréo

  • 16 canaux PCM



Affichage |




  • Palette couleurs : 32 bit

  • Couleurs affichables simultanément : 3072

  • Nombre de couleurs par objet : 16 (4 bits par pixel)

  • Nombre d'objet : 900 (16 x 16 pixels)

  • Plan de scrolling : 3

  • Résolution : 384 x 224



Liste des jeux |











































































































































































































































































































































































Titre
Développeur
Éditeur
Orientation
Genre
Date

1944: The Loop Master

Eighting/Raizing

Capcom
H

Shoot them up
2000

19XX: The War Against Destiny

Capcom

Capcom
V

Shoot them up
1996

Alien vs. Predator

Capcom

Capcom
H

Beat them all
1994

Armored Warriors

Capcom

Capcom
H

Beat them all
1994

Battle Circuit

Capcom

Capcom
H

Beat them all
1997

Capcom Sports Club

Capcom

Capcom
H

Sport
1997

Cyberbots: Fullmetal Madness

Capcom

Capcom
H

Beat them all
1995

Darkstalkers: The Night Warriors

Capcom

Capcom
H

Combat
1994

Dimahoo

Eighting/Raizing

Capcom
V

Shoot them up
2000

Dungeons and Dragons: Shadow over Mystara

Capcom

Capcom
H

Beat them all / rôle
1996

Dungeons and Dragons: Tower of Doom

Capcom

Capcom
H

Beat them all / rôle
1993

Eco Fighters

Capcom

Capcom
H

Shoot them up
1994

Galum Pa! (prototype)


Capcom
H



GigaWing

Capcom / Takumi

Capcom
H

Shoot them up
1999

Hyper Street Fighter II: The Anniversary Edition

Capcom

Capcom
H

Combat
2004

Janpai Puzzle Chōkō

Mitchell

Capcom
H

Mah-jong
2001

Jyangokushi: Haoh no Saihai

Capcom

Capcom
H

Puzzle
1999

Mars Matrix: Hyper Solid Shooting

Takumi

Capcom
H

Shoot them up
2000

Marvel Super Heroes

Capcom

Capcom
H

Combat
1995

Marvel Super Heroes vs. Street Fighter

Capcom

Capcom
H

Combat
1997

Marvel vs. Capcom: Clash of Super Heroes

Capcom

Capcom
H

Combat
1998

Mega Man 2: The Power Fighters

Capcom

Capcom
H

Combat
1996

Mega Man: The Power Battle

Capcom

Capcom
H

Combat
1995

Mighty! Pang

Mitchell

Mitchell
H

Action-réflexion
2000

Night Warriors: Darkstalkers' Revenge

Capcom

Capcom
H

Combat
1995

Pnickies

Capcom / Compile

Capcom
H

Puzzle


Progear

Capcom / Cave

Capcom
H

Shoot them up
2001

Puzz Loop 2

Mitchell

Capcom
H

Réflexion
2000

Quiz Nanairo Dreams: Miracle of the Rainbow-Colored Town

Capcom

Capcom
H

Quiz
1996

Ring of Destruction: Slammasters II

Capcom

Capcom
H

Combat
1994

Street Fighter Alpha 2

Capcom

Capcom
H

Combat
1996

Street Fighter Alpha 3

Capcom

Capcom
H

Combat
1998

Street Fighter Alpha: Warriors' Dreams

Capcom

Capcom
H

Combat
1995

Street Fighter Zero 2 Alpha

Capcom

Capcom
H

Combat
1996

Super Gem Fighter: Mini Mix

Capcom

Capcom
H

Combat
1997

Super Puzzle Fighter II Turbo

Capcom

Capcom
H

Combat
1996

Super Street Fighter II Turbo

Capcom

Capcom
H

Combat
1994

Super Street Fighter II: The New Challengers

Capcom

Capcom
H

Combat
1993

Super Street Fighter II: The Tournament Battle

Capcom

Capcom
H

Combat
1993

Vampire Hunter 2: Darkstalkers' Revenge

Capcom

Capcom
H

Combat
1997

Vampire Savior 2: The Lord of Vampire

Capcom

Capcom
H

Combat
1997

Vampire Savior: The Lord of Vampire

Capcom

Capcom
H

Combat
1997

X-Men vs. Street Fighter

Capcom

Capcom
H

Combat
1996

X-Men: Children of the Atom

Capcom

Capcom
H

Combat
1994


Système de protection et décryptage |



CPS Suicide |


Les cartouches CPS2 sont équipées d'une pile électrique au lithium servant à alimenter de la mémoire RAM (mémoire volatile) contenant un code de décryptage. Une fois la pile hors service, le code est perdu et le jeu n'est plus utilisable, c'est ce qu'on appelle le CPS suicide. Pour éviter cela, les possesseurs de ce système d'arcade doivent donc remplacer régulièrement les piles au lithium contenues dans leurs cartouches CPS2 en suivant une procédure spécifique[6].


Le 29 avril 2003, Razoola découvre un moyen de faire revivre les cartes d'arcade CPS2 grâce à l'un de ses programmes. Les roms de programmes de chaque jeu vont être modifiés et plus aucune pile ne sera nécessaire pour faire fonctionner le jeu. Les jeux qui ont subi cette modification sont appelés jeux « phoenixés » ; ainsi, les roms modifiés sont appelés « Phoenix ». Il est d'ailleurs à noter qu'au lancement des jeux « phoenixés », l'apparition au boot du logo « Phoenix Edition » permet au puriste des jeux d'arcade non modifiés de faire la distinction entre un jeu 100 % original et un jeu original Phoenixé (99 % original).


En 2016, ArcadeHacker (Eduardo Cruz) travaille et trouve une méthode permettant de percer les mystères de la sécurité du CPS2 de Capcom[7],[8]. Tout comme avec la protection Kabuki sur le CPS1, le projet d'ArcadeHacker[9] visait à comprendre le fonctionnement interne des fonctions de sécurité du système CPS2. L'objectif était d'aider la communauté arcade à préserver les jeux dans le temps sans en altérer le matériel, c'est-à-dire que contrairement au remplacement de ROMs, aux ROMs dites « phoenixées » ou autres hacks de matériels en tout genre, cela permet de garder un matériel parfaitement conforme à l'original mais dont la durée de vie peut être augmentée.



Décryptage |


Le système de protection anti-copie par chiffrage a tenu bon pendant sept années avant d'être détourné en 2000 par Razoola (un finlandais) et CrashTest (un français), ce qui a permis son émulation. Cependant, cette protection n'était pas comprise mais seulement contournée, ce qui demandait l'utilisation de fichiers Xor (ou exclusif). Les fichiers Xor permettaient l'auto-décryptage du système mais n'étaient pas un vrai décryptage. Cela permettait toutefois d'y jouer en émulation.


Fin 2006, une réelle avancée a été faite grâce à Andreas Naive qui est le premier à avoir trouvé l'algorithme de chiffrement du CPS2, Nicola Salmoria (le créateur de MAME) a quant à lui codé le pilote (cps2crypt.cpp) pour l'émulateur MAME.


Dans leur recherche, Nicola et Andreas ont découvert que la protection du CPS2 était basée sur deux Réseau de Feistel et que les clés nécessaires au déchiffrement de chaque jeu étaient de 64 bits. La protection a donc enfin été cassée.


Il est important de préciser que tout ce travail découle d'une chaîne de compétence[10] :



  • Razoola & CrashTest pour avoir trouvé une faille et l'avoir exploitée. Sans eux, le système d'arcade serait peut-être toujours inviolable ;

  • Charles Mac Donald, qui grâce à ses connaissances en électronique notamment, a permis d'extraire les tables de chiffrement complètes concernant le CPS2 (soit 4 Go de données incompressibles par jeux et qui prenaient la forme de CHD. À noter qu'au départ il s'agissait de table de 8 Go mais Nicola Salmoria trouva un moyen de les réduire de moitiés) à l'aide de son programme rendu public, CPSTool (bien sûr, il faut aussi un câble PC vers CPS2 fait maison) ;

  • Andreas Naive et Nicola Salmoria pour avoir réalisé le premier décryptage réel du CPS2.



Forces et faiblesses |


Comme indiqué précédemment, le CPS2 a été créé après le CPS1. Le jeu Mega Man: The Power Battle a été créé sur les deux supports (la version CPS2 est rarissime). D'autre part, Capcom a créé une "console" basée directement sur le CPS1, le CPS Changer. Capcom a également converti le jeu Street Fighter Alpha sur ce système. Ces 2 jeux ont eu une importance cruciale sur le décryptage.


Tout d'abord, l'encodage lui-même :



  • Pour éviter toute attaque cryptographique sur du texte connu (comme les noms des persos de street fighter), seul le code à exécuter était chiffré: tout le reste (texte, graphismes, musique) était en clair.

  • Pour empêcher qu'on puisse faire des attaques en continu, il y avait un 'watchdog': si une instruction spécifique n'était pas régulièrement exécutée par le processeur, celui-ci se remet à zéro au bout de quelques secondes. Ce code étant chiffré, il était a priori impossible à deviner.


Les erreurs de Capcom :



  • Quand la version de SFA pour CPS Changer a été dumpée, Capcom a rendu disponible 2 versions, cryptée (cps2) et non cryptée (cps changer) d'un même jeu - hormis le 'insert coin' remplacé par 'push start' et le son de qualité supérieure. C'est en observant la rom de SFAch que Razoola s'est lancé dans le projet. Les projets précédents de cassage du cps2 n'avaient pas cette information.


  • Mega Man: The Power Battle a donc été programmé pour le CPS1 et le CPS2, à une époque où le CPS2 existait déjà. Capcom a donc commis l'erreur de laisser - en clair - le code de watchdog. C'est donc en observant le code de Mega Man: The Power Battle que Razoola a remarqué cette instruction inutile, présente régulièrement dans le code. Il lui est donc venu l'idée d'essayer une multitude de variantes, pour empêcher le processeur du CPS2 de se mettre à zéro. Cette opération de bruteforcing à donc été nécessaire à chaque jeu, avant de pouvoir les analyser (plus de 3 secondes).


Ces instructions de watchdogs sont disponibles dans https://github.com/mamedev/mame/blob/master/src/mame/drivers/cps2.cpp



si beaucoup sont du style


cmpi.l  #$<date de naissance>,D1

certaines sont bien différentes, ce qui a nécessité un cassage plus long (anecdote : Mars Matrix a pris longtemps à cause de ça, vu que l'instruction n'avait jamais été utilisée auparavant - CT)


D'autre part, même une fois que Charles MacDonald avait son dumpeur USB (capturant toutes les combinaisons de cryptage/décryptage en quelques heures) et qu'Andreas Naive avait identifié l'algorithme, il fallait quand même avoir physiquement accès à la cartouche (y compris, chaque révision, etc. impossible sachant que certaines étaient rares, comme Eco Fighter Jap) pour pouvoir en extraire les clefs de 'decryptage' - il n'y avait en effet pas d'attaque.
Heureusement, David Haze Haywood a eu la bonne idée d'essayer de trouver des bouts de codes communs entre chaque jeu - par exemple les bibliothèques graphiques utilisées chez Capcom. Heureusement, ces morceaux de codes se sont retrouvés (sous forme cryptées) présent à l'identique dans chaque jeu, ce qui a permis de forcer les clefs de tous les jeux restants, sans pour autant devoir trouver chaque cartouche.



Références |




  1. (it) Le Informations diverses (dates, liste de jeux, PCB…) à propos du CPS2 sur Progetto EMMA


  2. (en) Description technique du CPS2 sur CPS2Shock


  3. (en) Description détaillée du système CPS2 et ses PCB (détails, composants électroniques dans le driver de MAME)


  4. (fr) Sticker CPS II


  5. (fr) CPS2 New decouvert


  6. (en) Le CPS suicide sur CPS2Shock


  7. (en) Projet initial sur le CPS-2 par ArcadeHacker


  8. (en) Guide explicatif de la méthode dite de désuicide des jeux CPS-2


  9. (en) Code source du projet d'ArcadeHacker


  10. (en) Historique et conférences sur les systèmes arcades de Capcom et notamment le CPS-2



Annexes |



Article connexe |


  • Liste des jeux Capcom


Lien externe |



  • (en) Le CP System II sur System16



  • Portail du jeu vidéo Portail du jeu vidéo



Popular posts from this blog

Histoire des bourses de valeurs

Why is there Russian traffic in my log files?

Rename multiple files to decrement number in file name?