Arcade Patches
Translations, restorations and arranged soundtracks for classic arcade games.
← All patches

CPS-2+ hardware

An extended CPS-2 system for MiSTer and HBMAME

CPS-2+ is an extended version of Capcom's CPS-2 arcade system. It gives a game more program memory, more graphics, more sound samples and a larger sound program.

We made CPS-2+ for the Arrange editions of Vampire Savior 2 and Vampire Hunter 2. These editions come from Capcom's 2005 PlayStation 2 collection. Their added fighters, art and voices do not fit in the original CPS-2 memory.

Stock CPS-2 games run on CPS-2+ without change. A game uses the extensions only when it asks for them.

Capacity

The table compares the memory that a game can use.

CPS-2CPS-2+
Main program4 MB, encrypted4 MB, encrypted, plus a 4 MB extension that is not encrypted
Graphics32 MB64 MB
QSound samples8 MB16 MB or 32 MB
Sound program (Z80)256 KB512 KB

The clocks, the palettes, the sprite format, the QSound program and the sound volume do not change.

Main program

The original 4 MB program area stays encrypted with the game's own key. The key decrypts only part of this area, often the first 1 MB.

The extension adds 4 MB at CPU addresses A00000 to DFFFFF. This area is not encrypted. The CPU can read data and run instructions there.

The extension is not encrypted on purpose. CPS-2+ does not add a new security key, and no game gets a new key.

Graphics

The graphics memory is 64 MB. The lower 32 MB is the original graphics. The upper 32 MB is new.

A sprite selects the upper half through its object entry. The game writes the entry through a second address, an alias of the object memory. A write through the usual address selects the lower half again.

A scroll-layer tile selects the upper half with bit 9 of its attribute word. Tiles from the two halves can mix in one layer.

Rendering does not change. Flips, priorities and palettes work as they do on CPS-2.

Sound

The QSound sample memory uses a 25-bit address. A game can have 8, 16 or 32 MB of samples. The two Arrange editions use 16 MB.

The Z80 sound program can be 512 KB. The program keeps its fixed 32 KB area. One more bit in the bank register selects 30 banks of 16 KB.

The sound DSP and its program do not change.

How a game asks for the extensions

On MiSTer, the game's MRA file sends a header to the core. The header tells the core the size of each memory area. A stock game sends the stock header, and the core works as a stock CPS-2.

In HBMAME, the set definition gives the same sizes. Stock sets do not change.

A reset clears the sprite selections and the sound bank. The loaded game stays in memory.

Where it runs

Our Arrange kits include the CPS+ core. You do not have to get it separately.

Games that use CPS-2+

Program extensionGraphicsSamplesSound program
Vampire Savior 2 Arrange4 MB64 MB (8 MB of new art in the upper half)16 MB256 KB
Night Warriors 2 Arrange / Vampire Hunter 2 Arrange4 MB64 MB (8 MB of new art in the upper half)16 MB512 KB

Each game image is about 92 MB, so it takes longer to load than a stock game.

For game authors

Source and licenses

The CPS+ core is a GPL-3.0 fork of Jotego's jtcores. The source for this build is at github.com/strygo/jtcores, revision 9886018d.

The HBMAME driver is one class, cps2plus_state. It adds to the standard CPS-2 driver and keeps the stock behavior.

Related projects