- 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
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 une 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].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
CartoucheUSA / Europe
BleueJapon
VertAsie
GrisAmérique du Sud
OrangeLocation
JauneUSA / Europe
BleuX X - - X Japon
VertX X - - X Asie
Gris- - X - - Amérique du Sud
Orange- - - X - Location
JauneX 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
- Jaune : « Region 0 » (destiné à la location)
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
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
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).
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'était pas un vrai décryptage. Cela permettait toutefois d'y jouer en émulation.
Fin 2006, une réelle avancé 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 (cps2crpt.c) 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 jeux é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 :
- 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) à 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 Megaman: 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, le cryptage 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 crypté: 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 crypté, 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.
- Megaman: 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 Megaman: 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 CPS22 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 http://mamedev.org/source/src/mame/machine/cps2crpt.c.html
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 (anectode: 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 - comme 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.
Anecdotes
- Le premier dump de CPS2 décrypté prenait 17h. Il se faisait par le port joystick de la machine, avec un protocole fait main.
- Une méthode pour dumper le contenu de la mémoire en affichant des couleurs à l'écran et récuperant automatiquement les couleurs via une Webcam a été envisagée.
- Pour tenter d'obtenir des informations, CPS2shock a aussi analysé les versions X68000 (SSF2) et PC (XMEN COTA) de jeux CPS2 ; ces versions étaient très fidèles aux originaux, il était donc possible que certaines informations y soient restées.
- Si la même méthode avait été appliquée pour dumper toutes les combinaisons cryptage/décryptage, ceci aurait pris 400 ans.
- Hanaho, la société qui fabrique le hotrod, avait tenté d'avoir l'exclusivité sur l'émulation CPS2 (en engageant CPS2shock + dave, l'auteur de finalburn). Ce projet a été abandonné.
Notes et références
- (en) Le Informations diverses (dates, liste de jeux, PCB…) à propos du CPS2 sur MAWS
- (en)Description technique du CPS2 sur CPS2Shock
- (en)Description détaillée du système CPS2 et ses PCB (détails, composants électroniques dans le driver de MAME)
- (fr)Sticker CPS II
- (fr)CPS2 New decouvert
- (en)Le CPS suicide sur CPS2Shock
Annexes
Article connexe
Lien externe
- (en) Le CP System II sur System16
Wikimedia Foundation. 2010.