# CP System

Le CPS (CP System) est un système de jeu vidéo pour borne d'arcade à la norme JAMMA et créé par la société japonaise Capcom en 1988 avec la sortie du jeu Forgotten Worlds. Le système est composé de 3 cartes, une carte mère contenant le système (A-board), une carte fille contenant les informations du jeu (B-board) et une carte fille comprenant les protections (C-board). Le CP System est basé sur l’architecture du X68000 de Sharp. Plusieurs jeux notables des années 1990 sortent sur CP System, tels Ghouls'n Ghosts, Strider, Final fight, 1941 ou Willow. Le système est plus particulièrement connu pour avoir accueilli le jeu de combat Street Fighter 2.

## Description

Le CP System est plus communément appelé CPS, mais également CPS1 ou CPS-1 depuis la création du CPS2 (et du CPS3). Créé sur la base du Sharp X68000, c'est un système 16 bits (Motorola 68000) sorti à une époque où l'arcade était en plein essor.
À l’exception de Forgotten Worlds, premier titre sur ce support, qui n'était constitué que de 2 PCB (motherboard et rom-board), chaque jeu sorti par la suite se compose de trois PCB : une motherboard, une rom-board, et une C-board qui gère une partie de l'affichage et constitue aussi pour certains jeux le système de protection et la possibilité d'étendre le nombre de boutons.
Le son est géré par un Zilog Z80, couplé à des puces Yamaha YM2151 et Oki 6295. Ce système est donc, à sa sortie, très en avance sur les bornes d'arcade de son époque. Mais la gloire fut de courte durée, car en 1990, la Neo-Geo MVS fit son apparition dans le monde de l'arcade.
Capcom tenta donc de suivre SNK et proposa en 1994 une version salon appelée CP System Changer (Capcom Power System Changer)$^,$, identique techniquement au CPS, dans le but de concurrencer directement le système Neo-Geo AES. Techniquement, c'est un système CPS1 standard ayant intégré un supergun, doté de deux joysticks de série et une connectique TV comme pour une simple console de jeux vidéo. Il n'y a eu que 10 jeux publiés sur ce format.
Parallèlement au CPS, Capcom travaille dès 1992 sur le CPS2, son remplaçant (qui sortira un an plus tard). Malgré tout, le système CPS1 perdurera jusqu'en 1995.
En décembre 1992, Capcom se décide à sortir une révision du CPS1, le CP System $^{[Dash]}$, plus communément appelé CPS QSound (CPS1 Q-Sound ou CPS-1 Q-Sound). Le système fut capable de recréer un son stéréo avec cette fameuse puce QSound. Cette révision du CPS, est plus proche du CPS2 (dans le design) que les antiques PCB$^,$. Il permettra à quelques titres de bénéficier du son stéréo et d'un nouveau système de sécurité.
Le CP System $^{[Dash]}$ est composé d'un assemblage de quatre PCBs qui sont contenues dans un boîtier en plastique gris. L'ensemble constitue une sorte de cartouche, d'une taille assez imposante. Pour lutter contre le piratage, une « batterie suicide » a été intégrée au système, elle fournit de la puissance et fait fonctionner de la RAM qui contient une configuration programmée manuellement (voir la section protection plus-bas. Si la tension de la pile tombe en dessous de + 2 V, la configuration volatile des registres matériels d'affichage du système disparait de la RAM. Le CPU essayant d'exécuter des routines d'affichage graphique contenant les dits registres matériels disparus, le jeu devient inutilisable, rendant nécessaire (à l'époque) l'envoi de la carte en réparation chez Capcom, aux propres frais du propriétaire du jeu. Contrairement au CPS2, le CPS QSound comporte un Z80 modèle « Kabuki » chiffré en tant que processeur audio. Le CPS1 et le CPS1 Dash (ou QSOUND) n'embarque aucun cryptage sur les roms 68000, le cryptage est propre au CPS2 sur les roms 68000.
Ce système restera un énorme succès pour Capcom, qui inscrit une fois de plus son nom dans l'histoire. On retiendra de ce matériel des jeux dantesques qui ont démontré que Capcom était passé maitre en matière d'action sur Arcade. Des bijoux tels que Strider, Cadillacs and Dinosaurs, The Punisher ou encore Final Fight verront le jour. Mais c'est également entre 1991 et 1992, avec les Street Fighter II, que le CPS1 va devenir l'un des systèmes d'arcade les plus répandus au monde.

## Protection

La majorité des circuits imprimés CPS1 n'ont pas de protection (batterie suicide) à l'exception des jeux QSound, ainsi que de Three Wonders, The King of Dragons, Knights of the Round, Captain Commando, Quiz and Dragons: Capcom Quiz Game, Capcom World 2: Adventure Quiz, Varth: Operation Thunderstorm (version japonaise uniquement).
Toutefois, même si ce système a été ré-utilisé dans le CPS2 et CPS3, il s'agit ici d'une protection assez rudimentaire. En effet, en modifiant les ROMs de programmes (qui ne sont pas chiffrés contrairement aux successeurs du CPS1), on peut facilement jouer avec le jeu original sans batterie. Pour cela, il suffit de programmer des EEPROMs avec le code des ROMs de programmes modifiés et faire une petite modification physique sur la carte du jeu, comme faire un pont avec un fil entre deux points précis de la carte.
Cette protection repose sur un aspect propre au matériel des machines d'arcade en général, à savoir que les ingénieurs qui les concevaient créaient les puces propriétaires, et leur ajoutaient un maximum d'aptitudes dites 'matérielles' pour reprendre le jargon utilisé à l'époque dans les magazines qui traitaient de ces machines. Ici sur le CPS-1, c'est la puce située sur ou en dessous de la C-board qui est le cœur de la dite protection. C'est le PPU ou autrement dit le 'Peripheral Processing Unit', qui possède son équivalent sur X68000 (la source du CPS-1), qui est doté de 2 ko de RAM interne, qui contient non pas une clé de décryptage, mais une configuration 'manuelle' stockée dans celle-ci des registres matériels de la plateforme CPS-1.
Si on compare avec un amiga, c'est comme si les fonctions d'affichage graphique de l'amiga étaient maintenues en vie dans l'amiga avec une pile, donc quand la pile meurt, vous perdez l'accès aux registres matériels, et l'affichage est impossible. C'est dans son fonctionnement une sorte de 'Copylock' matériel, qui lie le code du jeu à la PCB CPS-1 qui le stocke. Les adresses de registres matériels du CPS-1 changent très fréquemment sur les jeux, ceci bien-sûr afin de freiner le piratage.
L'affichage graphique ne se fait plus, mais le code du jeu lui fonctionne toujours, le 68000 de la carte est simplement halté par la demande de l'affichage d'un des trois plans (layers) qui tombe dans le vide puisque le 68000 tente d'exécuter une opération sur un registre qui « n'existe pas » ou plus.

### Conséquence sur les salles d'arcade

Tout ceci a bien sûr permis l'arrivée en masse de bootlegs (jeux pirates) dans les salles d'arcades, chose que n'ont jamais connu (durant leur période d'exploitation en salle) les systèmes CPS2 et CPS3.
Des années plus tard, Nicola Salmoria (développeur participant au projet de MAME) a contribué à aider les gens qui avaient achetés des jeux CPS1 protégés dont la batterie avait rendu l'âme et ce, en modifiant le code des ROMs de programmes et en donnant des indications techniques. Cela a permis à bien des possesseurs de jeux d'arcade CPS1 (principalement des fans d'arcades) de rejouer à leurs jeux sans être obligés de devoir changer la batterie avant qu'elle ne meure (environ 5 ans pour une pile de CPS1)$^,$.Fin 2014, une nouvelle méthode permettant de reprogrammer le processeur Z80 Kabuki (gérant le système de protection des jeux) et ce, sans aucune modification matérielle, est mise en place. Cette étude permet également une meilleure compréhension de la protection du système CPS-1. Début 2015, la protection du PPU CPS-B-XX (dernière révision: 21) est également analysée de façon à connaitre précisément et de manière détaillée les sécurités dont disposait le système (et toujours sans avoir besoin de modifier le matériel ou le code interne des ROMs) dans un but de préservation du matériel. Le 15 juin 2015, une méthode permettant de faire revivre les jeux CPS-1 (et CPS Qsound) morts est prête et fonctionnelle, elle ne modifie en rien les roms ce qui fait que le jeu reste donc 100% original et fonctionnel (et possède toujours la protection "batterie suicide"), si le jeu "meurt" à cause de la batterie il pourra donc ressusciter sans aucun problème (un simple changement de batterie s'imposera alors), cette méthode est appelée "CPS1 Desuicider". Les travaux d'Eduardo Cruz (ArcadeHacker) permettront, en 2019, à un certain nombre de développeurs de créer et/ou de vendre des solutions matériels permettant à tous de faire revivre un jeu, la plus connue se nomme "InfiniKey CPS1 De-Suicide Board" pour les jeux CPS-1 et "InfiniKey-Kabuki" pour les jeux CPS QSound (aussi appelé Dash ou CPS 1.5).

## Spécifications techniques
### Processeur

* Motorola 68000 cadencé à 10 MHz (12 MHz à partir de 1991 et la sortie de Street Fighter 2)

### Audio

* Processeur :
** Zilog Z80 cadencé à 3,579 545 MHz (6 MHz pour les versions QSound)
* Puces :
** Yamaha YM2151 cadencé à 3,579 545 MHz
** OKI MSM6295 cadencé à 1 MHz (échantillons à 7,575 757 kHz)
** ou QSound cadencé à 4 MHz

### Affichage

* définition d'écran : 384 x 224 pixels (59,629 4 Hz)
* Format des pixels : 12bit RGB + 4bit de luminosité
* Palettes : 128 palettes de 16 couleurs parmi 4096
* Plans : 3 (512x512, 1024x1024, 2048x2048 pixels)
* Tiles : 8x8, 16x16, 32x32 pixels (15 couleurs + transparence)
* Sprites : 256 par scanline (16x16 pixels, 15 couleurs + transparence)

### Mémoire vive (RAM)

* Processeur : 64 Ko
* Audio : 2 Ko
* Affichage : 192 Ko

### Mémoire morte (ROM)

* Principal : 8 Mo (64 Mb)
* Échantillons : 256 Ko

## Liste des jeux
### CP System

| Titre | Développeur | Éditeur | Genre | Année |
| 1941: Counter Attack | Capcom | Capcom | Shoot them up | 1990 |
| Capcom World 2: Adventure Quiz | Capcom | Capcom | Quiz | 1989 |
| Captain Commando | Capcom | Capcom | Beat them all | 1991 |
| Carrier Air Wing | Capcom | Capcom | Shoot them up | 1990 |
| Dynasty Wars | Capcom | Capcom | Beat them all | 1989 |
| Final Fight | Capcom | Capcom | Beat them all | 1989 |
| Forgotten Worlds | Capcom | Capcom | Shoot them up | 1988 |
| Gulun.Pa! (prototype) | | Capcom | Puzzle | 1993 |
| Ghouls 'n Ghosts | Capcom | Capcom | Plates-formes | 1988 |
| Ken Sei Mogura: Street Fighter II | Togo/Sigma | Capcom | Action | 1994 |
| Knights of the Round | Capcom | Capcom | Beat them all | 1991 |
| Magic Sword: Heroic Fantasy | Capcom | Capcom | Beat them all | 1990 |
| Mega Man: The Power Battle | Capcom | Capcom | Combat | 1995 |
| Mega Twins | Capcom | Capcom | Plate-forme-aventure | 1990 |
| Mercs | Capcom | Capcom | Run and gun | 1990 |
| Nemo | Capcom / TMS | Capcom | Beat them all | 1990 |
| Pang! 3 | Mitchell | Mitchell | Action-réflexion | 1995 |
| Pnickies | Capcom / Compile | Capcom | Puzzle | 1994 |
| Pokonyan Balloon | Capcom | Capcom | Shoot them up | 1994 |
| Quiz and Dragons: Capcom Quiz Game | Capcom | Capcom | Quiz | 1992 |
| Quiz: Tonosama no Yabō 2 - Zenkoku-ban | Capcom | Capcom | Quiz | 1995 |
| Street Fighter II: The World Warrior | Capcom | Capcom | Combat | 1991 |
| Street Fighter II': Champion Edition | Capcom | Capcom | Combat | 1992 |
| Street Fighter II': Hyper Fighting | Capcom | Capcom | Combat | 1992 |
| Strider | Capcom | Capcom | Action-plates-formes | 1989 |
| The King of Dragons | Capcom | Capcom | Beat them all | 1991 |
| Three Wonders | Capcom | Capcom | Plates-formes, shoot them up, puzzle | 1991 |
| U.N. Squadron | Capcom | Capcom | Shoot them up | 1989 |
| Varth: Operation Thunderstorm | Capcom | Capcom | Shoot them up | 1992 |
| Willow | Lucasfilm | Capcom | Plates-formes | 1989 |

### CP System $^{[Dash]}$

| Titre | Développeur | Éditeur | Genre | Année |
| Cadillacs and Dinosaurs | Capcom | Capcom | Beat them all | 1993 |
| Muscle Bomber Duo: Ultimate Team Battle | Capcom | Capcom | Catch | 1993 |
| Saturday Night Slam Masters (alias Muscle Bomber: The Body Explosion) | Capcom | Capcom | Catch | 1993 |
| The Punisher | Capcom | Capcom | Beat them all | 1993 |
| Warriors of Fate | Capcom | Capcom | Beat them all | 1992 |