Skip to content

Capcom CP System II (CPS-2)

Capcom's arcade system (1993), successor to the CPS-1. A two-board architecture (A-board + B-board) and, above all: program encryption whose keys live in battery-backed SRAM — hence the famous "suicide" when the battery dies, and the whole de-suicide ecosystem.

Identification

Field Value
Manufacturer Capcom
Year 1993 (last game: Hyper Street Fighter II, 2003)
System / family CPS-2
Connector type JAMMA (A-board) + extra button harness (kick harness)
Players 2 (mostly fighting games)
Screen orientation Horizontal
Resolution / sync 384×224, 15 kHz
Power +5 V, +12 V, -5 V

Architecture — two boards

The A-board / B-board relationship is that of a console + cartridge:

  • A-board (base, common to all games): JAMMA connector, CPU, common hardware, sound. Both players' buttons 4/5/6 go through the 34-pin kick harness (Hirose DF1B) on the A-board edge:
conn-cps2-kick-34
CPS-2 kick harness pinout — see also JAMMA wiring · kick harness.
  • B-board (the game): game ROMs + decryption-key SRAM, kept alive by a battery. This is what you swap to change game.
Block Component
Main CPU Motorola 68000 @ 16 MHzencrypted program, decrypted by the CPS2 ("DL-1525") custom with a battery-backed SRAM key
Sound CPU Z80 @ 8 MHz
Sound QSound (Lucent DL-1425 DSP, positional stereo sound)
Graphics CPS2 customs (evolution of the CPS-1) — 384×224, more sprites/colours

Regions & B-board colours

The region is coded by the case colour of the B-board + the version text colour. An A-board and a B-board must have compatible colours (blue and green are interchangeable). (Source: Wikipedia.)

Region Case colour Version-text colour
Japan Green White
USA Blue Red
Europe / World Blue Blue
Asia Grey Yellow
Hispanic Orange Green
Brazil Orange Magenta
Oceania Blue Orange

The "suicide" & de-suicide

The most important point of a CPS-2. The program is encrypted; the decryption keys are in volatile memory on the B-board, kept alive by a 3.6 V ½ AA lithium battery (type Saft LS14250, on an axial holder). A capacitor near the battery keeps the keys alive for a few minutes when powered off.

  • When the battery dies (then the capacitor drains), the keys are lost → the game no longer boots: that's the "suicide".

Crack timeline

Date Event
Jan 2001 CPS-2 Shock obtains decrypted data via a hardware hack (XOR tables for emulation)
Jan 2007 Andreas Naive & Nicola Salmoria break the encryption (2 four-round Feistel ciphers, 64-bit keys) → integrated into MAME
Apr 2016 Eduardo Cruz, Artemio Urbina, Ian Court: clean de-suicide, no hardware modification

Replacing the battery (board still alive)

A relatively safe operation if the keys are still there: the capacitor holds the memory for a few minutes while you solder a fresh battery.

  1. Get a 3.6 V ½ AA battery (Saft LS14250 or equivalent), ideally with solder tabs (don't short it).
  2. Desolder the old one, quickly solder the new one (mind the polarity).
  3. Check the game still boots.

Don't dawdle

If the capacitor drains before the new battery is in place → suicide. To be safe, some power the board during the swap or piggyback a backup battery in parallel before removing the old one.

De-suicide — reprogram the security (dead board)

The ArcadeHacker method (Eduardo Cruz, 2016): you rewrite the decryption keys into the volatile memory via an Arduino programmer. The board works again with no hardware modification; a fresh battery then keeps the keys. No need for phoenix ROMs if you want to stay original.

Hardware: Arduino Uno + LCD Keypad Shield, a 7-pin header, Dupont cables (F-F and M-M), test clips or a 6-pin JST NH connector, 5 V ≥ 1.5 A power, soldering iron.

Supported revisions & connector:

B-board revision Connector
93646B-3, 93646B-4 CN2
93646B-5, 93646B-6, 93646B-7 CN9
97691A-3, 97691A-4 (single black board) CN9

Power-on order (critical)

Power the game board FIRST, then the Arduino. On shutdown, cut the Arduino first, then the board. A common ground is mandatory, ~5 V stable. CN2 boards have pinout inconsistencies in the docs → check the pins before connecting.

Step-by-step procedure (after ArcadeHacker)

Preparation

  1. Get the ArcadeHacker_CPS2.ino sketch (GitHub repo, see sources) and install the Arduino IDE.
  2. Assemble the programmer: solder a 7-pin header onto the top-right pad of the LCD Keypad Shield, mount the shield on the Uno, connect Dupont cables to pins 2, 3, 11, 12 and GND.
  3. Upload the sketch to the Arduino (USB).

Board preparation

  1. Open the B-board (security Torx T20 screwdriver).
  2. Identify the revision (PCB marking): 93646B-3/4, -5, -6/7, or 97691A-3/4.
  3. If the battery is flat, fit a fresh 3.6 V ½ AA battery (on a holder preferably).

Wiring — 93646B-3 / 93646B-4 (CN2 connector)

Arduino → CN2 Signal
pin 2 A32 DATA
pin 3 A30 SETUP1
pin 11 A31 CLOCK
pin 12 A29 SETUP2
GND C32 Ground

Power: +5 V → CN7 A25; GND → CN7 A23 and B23 (external supply, left OFF).

Wiring — 93646B-5/6/7 & 97691A (CN9 connector)
Arduino → CN9 Signal
pin 2 pin 2 DATA
pin 3 pin 3 SETUP1
pin 11 pin 4 CLOCK
pin 12 pin 5 SETUP2
GND pin 6 Ground

Power: rev -5 via CN7 (like -3/-4); rev -6/-7 via the CN9 power pins.

Programming

  1. Separate the A-board and the B-board.
  2. Power the B-board first (external supply), then the Arduino (USB).
  3. On the LCD screen, navigate (up/down/left/right) and select the game matching the board's ROM set.
  4. Confirm → the programmer writes the keys into the security.
  5. Turn off the Arduino first, then the B-board. Disconnect all wires.

Verification

  1. Reassemble A + B, test. If it fails: recheck the wiring and redo a keyload (take your time).

Alternatives

  • Phoenix ROMs: a decrypted program that runs without a battery or keys → reflash the B-board's program ROMs. Simple for preservation, but the board is no longer "original".
  • InfiniKey-CPS2: a module that holds the keys (long-life battery replacement / suicide-free).

Common faults

Symptom Likely cause Lead
Dead board / won't boot Flat battery → keys lost (suicide) Phoenix ROMs, or key reprogramming (de-suicide)
No image A-board (power, custom) Check power, JAMMA contacts
No sound / mono sound Z80 / QSound / stereo wiring Sound-stage diagnosis
Corrupted graphics ROMs / B-board contacts Reseat, connector cleaning

Recap

A CPS-2 logic board has few electrolytic capacitors (mostly the sound stage) — nothing like a CRT or a Mega Drive Model 2. The weak point remains the battery (see suicide), not the caps. In case of degraded sound / a leaking cap: targeted recap of the audio stage. Kits: Console5 (arcade PCB).

Conversions

  • Changing game = swap the B-board. The A-board stays; the B-board carries the game (ROMs + keys).
  • Colour / region compatibility: A-board and B-board must have compatible colours (blue and green interchangeable; see the region table above).
  • ROM-level conversion (reflashing a B-board to another game): more advanced, depends on the ROM configuration; often tied to phoenix / multigame. (procedure to detail from a verified source.)
  • Phoenix ROMs free you from the battery → easier preservation.
  • ⚠️ Do not host ROMs — we describe the method, not the protected content.

CPS-2 converts guide (B-board, region, phoenix) · CPS-2 Darksoft multi

(Dedicated conversion page to create: conversions/cps2/…)

Emulation & FPGA

  • MAME: full emulation since the decrypted XOR tables were published (Naive & Salmoria, 2007).
  • FPGA / MiSTer: the jtcps2 core (Jotego) rebuilds CPS-1.5/CPS-2 in hardware logic, handling the decryption keys — one of MiSTer's most complete arcade cores.

EPROM repair

68000 program on the B-board in 27C4096 / 27C160 (16-bit) or 27C040. Per-game table + B-board jumpers: CPS-2 converts · per-game jumpers. ⚠ Suicide (battery) → see de-suicide.

Methods: PCB fault-finding · Recap · EPROM · Backup batteries (suicide) · Traces & vias

Modernisation & mods

The common ground for every JAMMA board

Video, power, control panel and upscalers depend on the cabinet rather than the board: everything is centralised in Modernising a cabinet. To run the board outside a cabinet (at home, on a display): supergun.

  • Anti-suicide — the priority mod 🟠: this platform suicides (key/program held by a battery). Replacing the battery without cutting power only postpones the problem; the durable route is de-suicidingconversions and de-suicidingsave batteries.
  • Storage 🟡: the game lives in EPROM/mask ROM on the board. Changing or restoring a game means reprogramming the EPROMs (and, for a mask ROM, using a pinout adapter) → EPROM method.
  • Media preservation: replacing the original storage, multicarts, ODEs and modern options by family → PCB preservation hub.
  • Scan rate 📺: ~15.62 kHz / 59.6 Hz — standard resolution, a classic 15 kHz chassis is fine — the most common JAMMA case → tri-sync and upscalers. (Computed from the MAME sources — capcom/cps1.h (8 MHz / 512) — pixel clock ÷ htotal.)
  • FPGA / emulation: see the Emulation & FPGA section below.

Photos / assets

(To add: A-board, coloured B-board, battery location, connectors.)

Sources & attribution

Text:

Review & corrections

How this space is used

Spotted a wrong value, an outdated procedure, a chip reference that does not match your board? Say so here, with what you observed (model, board revision, serial number, measurement). Every report is cross-checked against a source before anything changes — an unverifiable correction is published as “reported by …, not cross-checked” rather than silently applied.

Reading is open to everyone; posting requires signing in with Discord. Reports from the wiki's declared reviewers are handled first; anyone else's are read too, but go through a human before anything is changed.