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.
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 'em 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].
Cartouche | Carte mère | ||||||
---|---|---|---|---|---|---|---|
USA, Europe |
Japon | Asie | Amérique du Sud | Brésil | Location | ||
USA, Europe | — | — | — | ||||
Japon | — | — | — | ||||
Asie | — | — | — | — | — | ||
Amérique d.S | — | — | — | — | — | ||
Brésil | — | — | — | — | — | ||
Location | — | — | — |
Les A-Board (cartes-mères) et les B-Board (jeux) ont des couleurs différentes selon leurs zones d'origine.
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.
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 , 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. Les publications d'Eduardo Cruz permettront, en 2019, à un certain nombre de développeurs de créer et/ou de vendre des solutions matériels pour restaurer les jeux CPS-2 morts (à l'aide de kit Darksoft CPS-2 ou de diverses solutions personnalisées), bien qu'il s'agisse d'une opération relativement complexe. Sur la base de cette même recherche de nouvelles mesures préventives, empêchant un jeu CPS-2 de rendre l'âme, ont commencé à apparaître. La plus connue se nomme "Infinikey-CPS2", il s'agit d'une simple carte qui se fixe à une B-Board CPS-2 et qui écrit une clé de déchiffrement au démarrage. Cela contourne la clé sauvegardée par batterie et protège les cartes pour toujours contre la perte de données due à une batterie faible ou morte.
Le système de protection anti-copie par chiffrement 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éseaux 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] :
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 :
Les erreurs de Capcom :
Ces instructions de watchdogs sont disponibles dans https://github.com/mamedev/mame/blob/master/src/mame/capcom/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.