driver
driver cps2.c
source cps2.c (cps2.c on mamedev.org)
games 1944: The Loop Master (Japan 000620)
1944: The Loop Master (USA 000620)
19XX: The War Against Destiny (Asia 951207)
19XX: The War Against Destiny (Brazil 951218)
19XX: The War Against Destiny (Hispanic 951218)
19XX: The War Against Destiny (Japan 951207)
19XX: The War Against Destiny (Japan 951225)
19XX: The War Against Destiny (USA 951207)
Alien vs. Predator (Asia 940520)
Alien vs. Predator (Euro 940520)
Alien vs. Predator (Hispanic 940520)
Alien vs. Predator (Japan 940520)
Alien vs. Predator (USA 940520)
Armored Warriors (Asia 940920)
Armored Warriors (Euro 941011)
Armored Warriors (Euro 941024)
Armored Warriors (USA 941024)
Battle Circuit (Asia 970319)
Battle Circuit (Euro 970319)
Battle Circuit (Japan 970319)
Capcom Sports Club (Asia 970722)
Capcom Sports Club (Euro 970722)
Capcom Sports Club (Hispanic 970722)
Capcom Sports Club (Japan 970722)
Cyberbots: Fullmetal Madness (Euro 950424)
Cyberbots: Fullmetal Madness (Japan 950420)
Cyberbots: Fullmetal Madness (USA 950424)
Darkstalkers: The Night Warriors (Asia 940705)
Darkstalkers: The Night Warriors (Euro 940705)
Darkstalkers: The Night Warriors (USA 940705)
Darkstalkers: The Night Warriors (USA 940818)
Dimahoo (Euro 000121)
Dimahoo (USA 000121)
Dungeons & Dragons: Shadow over Mystara (Asia 960619)
Dungeons & Dragons: Shadow over Mystara (Brazil 960223)
Dungeons & Dragons: Shadow over Mystara (Euro 960208)
Dungeons & Dragons: Shadow over Mystara (Euro 960209)
Dungeons & Dragons: Shadow over Mystara (Euro 960223)
Dungeons & Dragons: Shadow over Mystara (Euro 960619)
Dungeons & Dragons: Shadow over Mystara (Japan 960206)
Dungeons & Dragons: Shadow over Mystara (Japan 960619)
Dungeons & Dragons: Shadow over Mystara (USA 960209)
Dungeons & Dragons: Shadow over Mystara (USA 960619)
Dungeons & Dragons: Tower of Doom (Asia 940113)
Dungeons & Dragons: Tower of Doom (Euro 940113)
Dungeons & Dragons: Tower of Doom (Euro 940412)
Dungeons & Dragons: Tower of Doom (Hispanic 940125)
Dungeons & Dragons: Tower of Doom (Japan 940113)
Dungeons & Dragons: Tower of Doom (Japan 940125)
Dungeons & Dragons: Tower of Doom (Japan 940412)
Dungeons & Dragons: Tower of Doom (USA 940113)
Dungeons & Dragons: Tower of Doom (USA 940125)
Eco Fighters (Asia 931203)
Eco Fighters (USA 931203)
Eco Fighters (USA 940215)
Eco Fighters (World 931203)
Giga Wing (Asia 990222)
Giga Wing (Japan 990223)
Giga Wing (USA 990222)
Great Mahou Daisakusen (Japan 000121)
Hyper Street Fighter 2: The Anniversary Edition (Asia 040202)
Hyper Street Fighter 2: The Anniversary Edition (Japan 031222)
Janpai Puzzle Choukou (Japan 010820)
Jyangokushi: Haoh no Saihai (Japan 990527)
Mars Matrix: Hyper Solid Shooting (Japan 000412)
Mars Matrix: Hyper Solid Shooting (USA 000412)
Marvel Super Heroes (Asia 951024)
Marvel Super Heroes (Brazil 951117)
Marvel Super Heroes (Euro 951024)
Marvel Super Heroes (Hispanic 951117)
Marvel Super Heroes (Japan 951024)
Marvel Super Heroes (Japan 951117)
Marvel Super Heroes (USA 951024)
Marvel Super Heroes Vs. Street Fighter (Asia 970620)
Marvel Super Heroes Vs. Street Fighter (Asia 970625)
Marvel Super Heroes Vs. Street Fighter (Brazil 970625)
Marvel Super Heroes Vs. Street Fighter (Brazil 970827)
Marvel Super Heroes Vs. Street Fighter (Euro 970625)
Marvel Super Heroes Vs. Street Fighter (Hispanic 970625)
Marvel Super Heroes Vs. Street Fighter (Japan 970625)
Marvel Super Heroes Vs. Street Fighter (Japan 970702)
Marvel Super Heroes Vs. Street Fighter (Japan 970707)
Marvel Super Heroes Vs. Street Fighter (USA 970625)
Marvel Super Heroes Vs. Street Fighter (USA 970827)
Marvel Vs. Capcom: Clash of Super Heroes (Asia 980112)
Marvel Vs. Capcom: Clash of Super Heroes (Asia 980123)
Marvel Vs. Capcom: Clash of Super Heroes (Brazil 980123)
Marvel Vs. Capcom: Clash of Super Heroes (Euro 980112)
Marvel Vs. Capcom: Clash of Super Heroes (Hispanic 980123)
Marvel Vs. Capcom: Clash of Super Heroes (Japan 980112)
Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123)
Marvel Vs. Capcom: Clash of Super Heroes (USA 980123)
Mega Man - The Power Battle (CPS2, USA 951006, SAMPLE Version)
Mega Man 2: The Power Fighters (Asia 960708)
Mega Man 2: The Power Fighters (USA 960708)
Mighty! Pang (Euro 001010)
Mighty! Pang (Japan 001011)
Mighty! Pang (USA 001010)
Night Warriors: Darkstalkers' Revenge (Brazil 950403)
Night Warriors: Darkstalkers' Revenge (Euro 950316)
Night Warriors: Darkstalkers' Revenge (Hispanic 950403)
Night Warriors: Darkstalkers' Revenge (USA 950406)
Pocket Fighter (Japan 970904)
Powered Gear: Strategic Variant Armor Equipment (Japan 940916)
Powered Gear: Strategic Variant Armor Equipment (Japan 941024)
Progear (Asia 010117)
Progear (USA 010117)
Progear no Arashi (Japan 010117)
Puzz Loop 2 (Euro 010302)
Puzz Loop 2 (Japan 010205)
Quiz Nanairo Dreams: Nijiirochou no Kiseki (Japan 960826)
Ring of Destruction: Slammasters II (Euro 940902)
Rockman 2: The Power Fighters (Japan 960708)
Rockman: The Power Battle (CPS2, Japan 950922)
Street Fighter Alpha 2 (Euro 960229)
Street Fighter Alpha 2 (USA 960306)
Street Fighter Alpha 3 (Brazil 980629)
Street Fighter Alpha 3 (Euro 980904)
Street Fighter Alpha 3 (USA 980629)
Street Fighter Alpha 3 (USA 980904)
Street Fighter Alpha: Warriors' Dreams (Euro 950605)
Street Fighter Alpha: Warriors' Dreams (Euro 950627)
Street Fighter Alpha: Warriors' Dreams (Euro 950718)
Street Fighter Alpha: Warriors' Dreams (Euro 950727)
Street Fighter Alpha: Warriors' Dreams (USA 950627)
Street Fighter Zero (Asia 950627)
Street Fighter Zero (Brazil 950727)
Street Fighter Zero (Brazil 951109)
Street Fighter Zero (Hispanic 950627)
Street Fighter Zero (Japan 950605)
Street Fighter Zero (Japan 950627)
Street Fighter Zero (Japan 950727)
Street Fighter Zero 2 (Asia 960227)
Street Fighter Zero 2 (Brazil 960304)
Street Fighter Zero 2 (Brazil 960531)
Street Fighter Zero 2 (Hispanic 960304)
Street Fighter Zero 2 (Japan 960227)
Street Fighter Zero 2 (Oceania 960229)
Street Fighter Zero 2 Alpha (Asia 960826)
Street Fighter Zero 2 Alpha (Brazil 960813)
Street Fighter Zero 2 Alpha (Hispanic 960813)
Street Fighter Zero 2 Alpha (Japan 960805)
Street Fighter Zero 3 (Asia 980701)
Street Fighter Zero 3 (Asia 980904)
Street Fighter Zero 3 (Japan 980629)
Street Fighter Zero 3 (Japan 980727)
Street Fighter Zero 3 (Japan 980904)
Super Gem Fighter Mini Mix (USA 970904)
Super Gem Fighter: Mini Mix (Asia 970904)
Super Gem Fighter: Mini Mix (Hispanic 970904)
Super Muscle Bomber: The International Blowout (Japan 940808)
Super Muscle Bomber: The International Blowout (Japan 940831)
Super Puzzle Fighter II Turbo (Asia 960529)
Super Puzzle Fighter II Turbo (USA 960620)
Super Puzzle Fighter II X (Japan 960531)
Super Street Fighter II Turbo (Asia 940223)
Super Street Fighter II Turbo (USA 940223)
Super Street Fighter II Turbo (USA 940323)
Super Street Fighter II Turbo (World 940223)
Super Street Fighter II X: Grand Master Challenge (Japan 940223)
Super Street Fighter II: The New Challengers (Asia 930914)
Super Street Fighter II: The New Challengers (Asia 931005)
Super Street Fighter II: The New Challengers (Japan 930910)
Super Street Fighter II: The New Challengers (Japan 930911)
Super Street Fighter II: The New Challengers (Japan 931005)
Super Street Fighter II: The New Challengers (USA 930911)
Super Street Fighter II: The New Challengers (World 930911)
Super Street Fighter II: The Tournament Battle (Japan 930911)
Super Street Fighter II: The Tournament Battle (World 930911)
Super Street Fighter II: The Tournament Battle (World 931119)
Ultimate Ecology (Japan 931203)
Vampire Hunter 2: Darkstalkers Revenge (Japan 970913)
Vampire Hunter 2: Darkstalkers Revenge (Japan 970929)
Vampire Hunter: Darkstalkers' Revenge (Japan 950302)
Vampire Hunter: Darkstalkers' Revenge (Japan 950307)
Vampire Hunter: Darkstalkers' Revenge (Japan 950316)
Vampire Savior 2: The Lord of Vampire (Japan 970913)
Vampire Savior: The Lord of Vampire (Asia 970519)
Vampire Savior: The Lord of Vampire (Euro 970519)
Vampire Savior: The Lord of Vampire (Hispanic 970519)
Vampire Savior: The Lord of Vampire (Japan 970519)
Vampire Savior: The Lord of Vampire (USA 970519)
Vampire: The Night Warriors (Japan 940630)
Vampire: The Night Warriors (Japan 940705 alt)
Vampire: The Night Warriors (Japan 940705)
X-Men Vs. Street Fighter (Asia 960919)
X-Men Vs. Street Fighter (Asia 961023)
X-Men Vs. Street Fighter (Brazil 961023)
X-Men Vs. Street Fighter (Euro 960910)
X-Men Vs. Street Fighter (Euro 961004)
X-Men Vs. Street Fighter (Hispanic 961004)
X-Men Vs. Street Fighter (Japan 960909)
X-Men Vs. Street Fighter (Japan 960910)
X-Men Vs. Street Fighter (Japan 961004)
X-Men Vs. Street Fighter (USA 961004)
X-Men Vs. Street Fighter (USA 961023)
X-Men: Children of the Atom (Asia 941217)
X-Men: Children of the Atom (Euro 950105)
X-Men: Children of the Atom (Hispanic 950331)
X-Men: Children of the Atom (Japan 941208 rent version)
X-Men: Children of the Atom (Japan 941217)
X-Men: Children of the Atom (Japan 941219)
X-Men: Children of the Atom (Japan 941222)
X-Men: Children of the Atom (USA 950105)
information 0.36b3 [Paul Leaman]


TODO:

- Rasters are not correctly emulated in places where more than one split happens per frame. A known place where this problem happens is during Shuma-Gorath's Chaos Dimension super move in both MSH and MSHVSF. The screen should split into around 6 or more strips and then scroll the gfx inside those strips up and down alternatly (as one stip moves gfx up the next strip moves the gfx down).

- The network adapter used in Super Street Fighter II: The Tournament Battle is not currently emulated though the ports it uses are setup in the memory map.

- Giga Wing's attract mode seems to loose sync with music. The problem seems to happen due to gfx drawing slowing to much when screen colors fade out. This problem could be due to the 68k being clocked at 11.8mhz when the hardware has a 16mhz crystal on it. Various timing loops show 11.8 being the average speed of the cpu and this does run true when comparing emulation and real hardware when timing is not based on VSync (ssf2 and ssf2t for example). It is possible that what is slowing the cpu is read/write wait states when accessing RAM areas. This would mean that in places where lots of opcodes are being used in connetion with data registers only the code would end up running to slow.

- Giga Wing's sprites are 1 frame out when compared to background scrolling. See the explanation above for the most likley cause of this problem.

- Progear slows down more than it should when compared to real hardware. See the explanation above for the most likely cause of this problem.

- Any new region sets will need full encryption tables dumped to extract the proper keys or they will need to be brute forced. XORs are no longer supported nor wanted.

- All games: All inputs have been mapped according to the "test mode" (even if some buttons don't physically exist on the machine). Joysticks and buttons can be fully tested. COINn sometimes don't show anything but are OK ingame. Unless I notify something below for some games, there is no extra button !

- mmancp2u: BUTTON3 doesn't physically exist on the machine and has no effect ingame.

- megaman2: BUTTON3 doesn't physically exist on the machine and has no effect ingame.

- mpang: BUTTON2 doesn't physically exist on the machine and can't be seen in the "test mode". However, if you map it where it should be, it has the same effect as BUTTON1.

- pzloop2: Whatever your settings are, the paddle can't be tested in the "test mode"! I can't tell at the moment if it's an emulation or an ingame bug :(

- dimahoo: BUTTON3 doesn't physically exist on the machine. However, it acts like a rapid fire (keep button pressed).

- progear: BUTTON3 acts like a rapid fire (keep button pressed). It has to be enabled in the game settings as it is OFF by default.


NOTES:

- Driver: Thanks to Raz, Crashtest and the CPS2 decryption team for their initial work on extracting decrypted code. Thanks to Andreas Naive and Nicola Salmoria for understanding the encryption mechanism.


Bugs:

- In the test menu for msh, mshvsf, xmvsf, xmcota, nwarr for sound and voice, the bar for volume disappers. Tafoid: There is odd behavior in only MSH, XMVSF, XMCOTA sets in my testing. The volume bar seems to flux on it's own up and down. In some cases, as you change the sound code to play, there is flickering of the bar. (ID 01488).


WIP:

- 0.126u3: Firewave fixed 'Abort' in all CPS2 parent sets.

- 0.124u3: Nicola Salmoria merged CPS1, CPS2 memory maps and some tweaks from schematics, though to get perfect memory maps dumps of the A-board PALs would be needed.

- 0.124u1: Changed palettesize to 3072 colors.

- 0.123u1: Changed the GAME definitions in the cps2 driver to reflect how many players and how many buttons there are for each game. Rewrote the INPUT_PORTS definitions to use PORT_INCLUDE, PORT_MODIFY and PORT_CUSTOM macros. Added a few notes about the inputs when I thought they were needed to avoid wrong bug reports. Started to clean the driver [Stephane Humbert].

- 0.122u8: Changed 68000 CPU1 clock speed to 16MHz.

- 9th September 2007: David Haywood - CPS2 Generation: For a long time two CPS2 sets, the CPS2 versions of MegaMan and RockMan, have been left without a decryption key and thus been non-functional. The CPS1 versions have been supported for many years, but finding the keys for the CPS2 versions was proving to be very difficult as the CPS2 and CPS1 sets were not identical underneath the encryption due to hardware differences between the platforms. It had been assumed that the two versions were simply too different, to the point of giving up with the usual line of key finding attacks Nicola has used to find the keys for the other sets. However, after studying the sets myself I realised that a large amount of the code probably WAS the same, just offset in the rom. Many code functions were surrounded by similar data, and were of the same size in both versions. By assuming that these functions were the same, and realigning the code we ended up with a much closer match between the CPS1 and CPS2 sets, allowing the standard attack Nicola devised to work. As a result, keys have now been found for the CPS2 versions of the game. This means every currently supported CPS2 set has been decrypted. The Megaman CPS2 set is actually a limited release 'SAMPLE' version, as the game was (to my knowledge) never fully released in the US. The main differences in the CPS2 versions are the use of Qsound hardware for the sound, and an Eeprom to save game settings (as opposed to dipswitches). As a bonus (thanks to Chris Hardy) 2 new Euro parent sets are now supported and decrypted too: Dimahoo (Euro) and Street Fighter Alpha 3 (Euro).

- 0.116u1: Nicola Salmoria updated CPS2 decryption bit order to match what is likely the original order.

- 0.114u2: Couriersud fixed crash if you attempt to view graphics page 4.

- 0.114: Aaron Giles fixed a MAME crash if you do a hardware reset.

- 0.113u2: Changed VSync to 59.633333 Hz.

- 0.112u2: Many more CPS2 keys added. Removed all XORs and support for them from MAME [Nicola Salmoria, Andreas Naive].

- 0.111u5: Nicola Salmoria removed XORs from almost all CPS2 games in place of proper emulation of the encryption.

- 23rd January 2007: Guru - Here's a few pics of the very first custom chip that I sent to a professional Japanese IC decapping company that we (Mamedev) are using to help us with some MAME-related things. Hopefully if this is successful, more will follow and also hopefully talented hardware devs like JROK will be able to make replacements for it to repair real PCBs. You may also be wondering why we're doing this instead of using some other people who frequent the 'boards' who have offered to do this kind of thing for free? The answer is fairly simple.... apart from the amount of time it takes to get this done, the level of communication is somewhat 'sporadic' and so far offers to supply other chips to them have been ignored. We requested pics of some CPS2 ICs that were said to have been decapped and so far nothing has surfaced (over a month has passed since then). Doing it this way gives us more control over what we achieve and ensures the work is done in a timely manner. Apart from that, the plan to get this IC decapped has been in the works for several months, so we might as well use the professional IC decapping company whenever possible because the amount of ICs we need to decap is possibly too much work for someone to do in their spare time for free.

- 0.111u3: Andreas Naive and Nicola Salmoria replaced CPS2 CHDs with preliminary decryption function.

- 8th January 2007: Razoola - Nicola Salmoria of MAME Dev seems to have worked out the rest of the CPS2 algo (though there is still some s-boxes to complete), to quote his blog... * Take the 16-bit address and a 96-bit key and run them through the first Feistel network, to produce a 16-bit subkey. * Take the 16-bit ciphertext, 16-bit subkey, and another 96-bit key and run them through the second Feistel network, to produce the 16-bit plaintext. Our congratulations go out to him, again to Andreas Naive and also Charles MacDonald who all played a role to get to this point today. Looking back at the way things have gone from the first XOR release some six years ago (after the discovery of the main weakness in the system), we know some people were quite unhappy at our unwillingness to have this algo known for emulation (Statement of 7th Janurary 2001). It was always our intention to hold back information to help achieve this until the system was commercially dead (our view was 3 years after the last game released). It is very satisfying to know we achieved this as believe it or not Janurary 2007 is just past that three year mark (Hyper Street Fighter II was released in December 22nd 2003). I will update the encryption page with the details once Nicola has fully documented the Algo within MAME.

- 0.110u4: CPS2 updates [David Haywood]: Added table for Jyangokushi (from Guru). Note that GFX/Sound roms aren't dumped on this one. Removed old 'handcrafted' XORs for games which we have CHDs for and replaced them with XORs generated from MAME using the CHD. This means anyone with the CHD can easily generate the XORs (using the code I've left in there) if they need to be able to run the games with a shorter startup time. Disabled the loading of the XORs by default for all sets with a CHD. Now only the CHD is loaded, unless the #define is changed at the top in which case only the XORs generated from the CHD are loaded.

- 0.110u3: David Haywood added raw decryption table to choko. Enabled the use of the large CHD-based tables by default.

- 0.110u2: David Haywood added support for using CHDs to decrypt CPS2 games. This code is disabled for the moment, but will be enabled in the future. Only a handful of games have complete tables so far. These tables are huge (~4GB) and uncompressable until the encryption algorithm is understood.

- 19th September 2006: Charles MacDonald - With the success of the Choko dump from a while ago, I'm working to get the CPS-2 dumping tools and instructions updated. Changes were made from the last version, mostly bugfixes and speed-ups to decrease the amount of time it takes to dump a full table set. There's also a minor modification that needs to be done to the PCB, to ensure stability, though now that it's known which features are absolutely needed, I might redesign it. Admittedly not many people have been interested in getting more of the games dumped, probably because all the popular ones we wasted tons of quarters on are already emulated!

- 0.105u3: Aaron Giles uncommented/added missing undumped ROMs/XORs in the CPS2 games.

- 0.105u1: David Haywood updated CPS driver to more accurately draw tilemaps, based on evidence from a board with mixed ROMs.

- 14th February 2006: Guru - A CPS2 USB adapter arrived, thanks to Charles MacDonald. The adapter plugs into the 64-pin CN7 on the B board. The chips on the bench are the original ROMs and PALs. ROM3 is changed and ROM10 is added. Plus 1 PAL on the A board is changed and 2 PALs on the B board are changed. Unfortunately, none of the PALs were socketed and this particular B board didn't have a CN7 connector! So I had to desolder a CN7 connector from another dead CPS2 board and solder it to this board and desolder and socket the 3 PALs as well! Luckily she still works! It's not that exciting to look at though.

- 15th January 2006: Razoola - Nicola Salmoria has reported on his blog some progress in understanding the CPS2 algo. He has managed to shrink the current 8gig table of SFZ down to 4gig. This is the first breakthrough in understanding the encryption used. For more information visit his blog.

- 11th January 2006: Charles MacDonald - I've tried to package and clean up all the CPS-2 related development stuff I have that was used for table dumping. This can be used for writing CPS-2 software, running tests on the system, and dumping table data so we can hopefully figure out the encryption at some point. I will definitely include more sample programs, documentation, and hardware information in future updates to the package, but I wanted to get this off my to-do list.

- 5th January 2006: Razoola - While playing around coding on a dead CPS-2 board I have today I found that the encryption algo is still fully in place even after the CPS-2 board has suicided. That said, on examining values the number do not match those of the expected game. This almost certainly confirms that their is only _one_ algo over all CPS-2 games with the only difference being key data (like Kabuki on CPS-1). I passed some test code onto Charles MacDonald so that he can check the values he gets there (on his dead SFA3 board). Those should match what I see here and to be honest it looks just a formality. When you consider the watchdog on a suicide board is 0xFFFF,0xFFFF,0xFFFF (example opcode, CMPI.L #$FFFFFFFF,$FFFF0000) everything starts to make sence. There was a big debate over this going back to when we first broke past the protection. The worry voiced by some DEVs was that all boards would be needed again to get the algo for each game. This new discovery certainly confirms that once the algo is known for one game all the others can be brute forced using the XOR tables. As for figuring out the algo itsself whats needed now is a complete dump of tables (8gig) of the algo executing in this default state. Using this the algo should be easier to understand because any key data used for math should be 0xFFFF. I have quickly dumped a complete table for a couple of addresses and while it still looks a mess there are certinally more patterns compared to a normal game. Update: I've got word back from Charles and after some work (over irc) he has managed to get the same data I was seeing. This basically confirms what I mentioned above. There were some initial problems with his transfer system (which is far superior to mine) giving different results. It turned out that at some point during the process the protected RAM was being reprogrammed!!! The exact way this is happening is not yet known but it opens up some large posibilities if the cause can be found and understood. This situation did not happen when he was dumping games that were non suicide. It currently looks like there is no way to get a full 8gig table because the protected region in a suicide state seems to be only 0x10000 bytes where a complete table covers 0x20000 bytes. Hopefully we can get around this.

- 4th January 2006: Razoola - I have written a small tool that can be programmed onto EPROM and used to test if a CPS2 board has suicided.

- 19th November 2005: Charles MacDonald - Thanks to a generous donation from Razoola and the CPS2Shock team, I've been given B-boards for the following games: sfzj, csclubj and sfz3. I have dumped complete table sets from the first two and am doing tests on the latter. It has no battery, so I can see how the hardware works when the battery-backed SRAM is erased. With a much larger data set (32 GB) spanning four games, hopefully some patterns will be discovered. I'm still interested in dumping a regional variant for one of the currently dumped games to see what kinds of similarities might exist between the two. Most likely I will revise and release the tools and specifications for my CPS-2 development setup in the future. Then other people could dump table sets from their games and contribute to this project. There are so many CPS-2 games out there that I couldn't possibly do it all myself, nor would I want to.

- 12th October 2005: Charles MacDonald - Getting a bunch of PCBs to work with in the next few weeks: three CPS-2 'B' boards (more on those next update), Shanghai for HD63484 tests, and a Quartet 2 board. I'll continue my CPS-2 research once the other games arrive. One of them has no battery so I can skip the annoying encryption and run tests directly, which will be a huge convenience. I think right now all the useful data that can be extracted from xmcota and pzloop2j has been obtained.

- 30th September 2005: Charles MacDonald - I've been doing some research on the CPS-2 hardware in the last few months, starting as soon as the System 32 work was put on hold. I'll give a basic overview of the encryption, however I should point out I'm just elaborating on the findings that Razoola originally made, which are at CPS-2 Shock. As you can imagine the results of his prior experiments have been absolutely essential to this project. The CPS-2 hardware uses a custom 68000 CPU running at 16MHz, though the effective speed is lower due to video DMA. Out of the 16MB address range, the lower 4MB is allocated for ROMs storing program code and data. The first 1MB of this area is where decryption is enabled, though the exact boundary under the 4MB point may change from game to game. In addition to the address range check, there is a timer that expires after a certain amount of time has passed. When this happens, decryption is turned off and the 68K will execute code exactly as it is read from memory. A sequence of one or more specific instructions, changing on a per-game basis, will reset the timer and enable encryption again. The timer can be restarted after any duration from when it has expired. The decryption logic uses bits A16 through A1 of the 68K address bus, meaning the encryption wraps every 128K. For each encrypted word at a given address there is exactly one unique output; in contrast to the FD1094 there are no disabled opcodes or 'blanked' data that resolve to the same decrypted value. Data read from the supervisor or user code space is decrypted (e.g. opcodes and operands) and data from the supervisor or user data space is not. The size of a complete set of decrypted data for one game quite large, totalling 8GB - it takes forever to dump. There are no duplicate tables within a game's table set or between sets for different games, though I've only examined tables dumped from the two 'B' boards I have. I've discussed analysis of the table data with a few other people and so far the encryption seems to be pretty tough to solve. As a result, I think progress will depend on additional help. If you have skill in this type of thing (strong mathematics background and familiarity with encryption) and would like to lend a hand, then please get in contact with me. Working with the CPS-2 hardware has been challenging due to the large amount of custom parts involved. I designed a communications board with a USB adapter, DTACK generator, and interface to the CPS-2 video and peripheral bus to run software on it, as well as several adapters to replace the 16V8 GALs with more capable 22V10 GALs that have their own shared I/O bus. Small update for some common questions: The two games I've dumped are xmcota and pzloop2j, which are both already emulated in MAME. The ETA for a complete table dump (65,536 files) is 9 hours, and it's fully automated. Sometimes the system locks up randomly and has to be reset which slows things down, this occured quite a lot for pzloop2j and not at all for xmcota. They have different types of B boards, perhaps that has something to do with it. Many people are suggesting to look at Street Fighter Zero and it's variants, as well as Rockman which had a less common CPS-2 release but is very similar to the CPS-1 version. The only thing that would be really useful is to find two games that are encrypted with the same or similar keys, so unless Rockman has an identical key as another game it's not that useful. I would be interested in getting data out of another variant of xmcota.

- 0.94u2: Aaron Giles fixed CPS2 QSound routing.

- 27th October 2004: Razoola - There seems to be someone making quick hacks of XOR files we have released in the past to get games running which don't currently have XORs. While this sounds a good thing it's actually no different than using the region switch option in kawaks for example. The big problem is that these new XOR's contain incorrect information in relation to what the real encryption would return for many addresses when compared to real hardware. It also makes it less likely for these games to be donated in the future so good XOR's can be created as people will think they already have good XOR's. The reality is these new hacked XOR's are prone to all the bugs that come with using region switching in CPS2 games. It's for these reasons that I want it known I have nothing to do with these hacks and I would advise against them being used officially in any emulator as they cannot guarantee an accurate game.

- 0.71u2: Shiriru fixed CPS2 raster effect.

- 19th January 2003: Shiriru's updates to the CPS-2 driver fixing raster effects.

- 8th December 2002: Barry Rodewald submitted a bug fix for resetting the Z80 in the CPS-2 driver, and smf improved the fix.

- 19th November 2002: Shiriru's updates containing fixed sprite masking in the CPS-2 driver and fixed sprite delay in Battle Bakraid were also forwarded.

- 13th September 2002: Barry Rodewald submitted a fix for the CPS-2 driver to reset the Z80 properly after exiting service mode.

- 6th September 2002: Barry Rodewald submitted an improvement to the CPS-2 driver raster effects' emulation, improving many cases, however it still causes flicker from time to time.

- 11th August 2002: Two of Shiriru's old updates were forwarded, which fix background colors and BG/sprite sync in the Cave driver and sprite masking in the CPS-2 driver.

- 12th May 2002: Barry Rodewald submitted an update to the CPS-2 driver supporting raster effects, but it unfortunately causes the background / sprite sync to be broken.

- 25th August 2001: Aaron Giles fixed a decryption problem which caused CPS-2 not to work.

- 0.54: Major changes to the CPU interface. As a result of this, some games are temporarily broken, most notably CPS2 [Aaron Giles].

- 0.37b16: Removed vidhrdwcps2.c. Shiriru fixed sprite priorities in CPS2 games. Fixed user1 roms addresses.

- 16th June 2001: Shiriru fixed sprite priority and added sprite transparency in the CPS-2 games.

- 1st June 2001: Nicola Salmoria fixed CPS-2 games from crashing when resetting them.

- 0.37b14: Changed 68000 CPU1 clock speed to 11.8MHz and VSync to 59.633331 Hz.

- 0.37b13: Changed 68000 CPU1 clock speed to 12MHz.

- 16th February 2001: Nicola Salmoria fixed the input ports for third and fourth player in the CPS-2 games.

- 10th January 2001: Paul Leaman added the necessary modifications to the CPS-1 driver to allow CPS-2 emulation, and he added support for Street Fighter Zero.

- 27th January 2001: Paul Leaman added Vampire: The Night Warriors to the CPS-2 driver, and like Vampire Savior, it will not work before some important 68k core changes are made.

- 26th January 2001: Paul Leaman added Vampire Savior to the CPS-2 driver, but it needs some 68k core changes to get it working properly.

- 0.36b3: Added cps2.c driver and vidhrdwcps2.c.

PCB information
batcir Battle Circuit (Euro 970319)
[Jul/14/99]
 
 Battle Circuit (Japan)
 CPS2 B-Board Green
 QSound Version 1.16B / CPS2 / APRIL 1996
 
 -
dimahoo Dimahoo (Euro 000121)
[Apr/20/2001]
 
 Great Mahou Daisakusen (JPN Ver.)
 (c)2000 Capcom / Raizing
 CP-SYTEM II
 Board No.	93646B-7
 Ver.		000121
 
 GMD_01.BIN  	[3f9bc985]	  131,072
 GMD_02.BIN  	[3fd39dde]	  131,072
 
 GMDJ_03.BIN 	[cd6979e3]	  524,288
 GMDJ_04.BIN 	[37485567]	  524,288
 GMDJ_05.BIN 	[da269ffb]	  524,288
 GMDJ_06.BIN 	[55b483c9]	  524,288
 
 GMD-11M.BIN 	[06a65542]	4,194,304
 GMD-12M.BIN 	[50bc7a31]	4,194,304
 
 GMD-13M.BIN 	[80dd19f0]	4,194,304
 GMD-15M.BIN 	[dfd93a78]	4,194,304
 GMD-17M.BIN 	[16356520]	4,194,304
 GMD-19M.BIN 	[dfc33031]	4,194,304
 
 
 Dumped 20/Apr/2001
 
 -
ddtod Dungeons & Dragons: Tower of Doom (Euro 940412)
[Jan/24/98]
 
 Dungeons & Dragons¨ Tower of Doom
 ©1993 SSI All rights reserved
 ©1993 TSR, Inc. All rights reserved
 ©1993 Capcom Co., Ltd. All rights reserved
 
 DAD-01.BIN  --  27C010
 DAD-11M.BIN  --  27C160
 DAD-12M.BIN  --  27C160
 DAD-13M.BIN  --  27C160
 DAD-14M.BIN  --  27C160
 DAD-15M.BIN  --  27C160
 DAD-16M.BIN  --  27C160
 DAD-17M.BIN  --  27C160
 DAD-18M.BIN  --  27C160
 DAD-19M.BIN  --  27C160
 DAD-20M.BIN  --  27C160
 DADU-03B.BIN  --  27C4096
 DADU-04B.BIN  --  27C4096
 DADU-05B.BIN  --  27C4096
 DADU-06.BIN  --  27C4096
 DADU-07.BIN  --  27C4096
gigawing Giga Wing (USA 990222)
[Apr/13/2001]
 
 Giga Wing (JPN Ver.)
 (c)1999 Capcom / Takumi
 CP-SYTEM II
 Board No.	93646B-7
 Ver.		990223
 
 GGW_01.BIN  	[4c6351d5]	  131,072
 
 GGWJ_03A.BIN	[fdd23b91]	  524,288
 GGWJ_04A.BIN	[8c6e093c]	  524,288
 GGWJ_05A.BIN	[43811454]	  524,288
 
 GGW-11M.BIN 	[e172acf5]	4,194,304
 GGW-12M.BIN 	[4bee4e8f]	4,194,304
 
 GGW-13M.BIN 	[105530a4]	4,194,304
 GGW-15M.BIN 	[9e774ab9]	4,194,304
 GGW-17M.BIN 	[466e0ba4]	4,194,304
 GGW-19M.BIN 	[840c8dea]	4,194,304
 
 
 Dumped 13/Apr/2001
jyangoku Jyangokushi: Haoh no Saihai (Japan 990527)
[Jul/14/2002]
 
 JYANGOKUSHI -HAOH NO SAIHAI-(JAPAN 990527)
 (c)1999 Capcom
 
 maj.01    131072  1fe8c213
 majj.03   524288  4614a3b2
 maj.1          ?  Coming Soon
 maj.3          ?  Coming Soon
 maj.s5   4194304  DF2AC481
 
 Dumped 
 03/23/2002
 07/14/2002
 
 -
mmatrix Mars Matrix: Hyper Solid Shooting (USA 000412)
[Apr/13/2001]
 
 Mars Matrix (JPN Ver.)
 (c)1999 Capcom / Takumi
 CP-SYTEM II
 Board No.	93646B-7
 Ver.		000412
 
 MMX_01.BIN  	[c57e8171]	  131,072
 
 MMXJ_03.BIN 	[1d5de213]	  524,288
 MMXJ_04.BIN 	[d943a339]	  524,288
 MMXJ_05.BIN 	[0c8b4abb]	  524,288
 
 MMX-11M.BIN 	[4180b39f]	4,194,304
 MMX-12M.BIN 	[95e22a59]	4,194,304
 
 MMX-13M.BIN 	[04748718]	4,194,304
 MMX-14M.BIN 	[d52bf491]	4,194,304
 MMX-15M.BIN 	[38074f44]	4,194,304
 MMX-16M.BIN 	[23f70780]	4,194,304
 MMX-17M.BIN 	[e4635e35]	4,194,304
 MMX-18M.BIN 	[2562c9d5]	4,194,304
 MMX-19M.BIN 	[4400a3f2]	4,194,304
 MMX-20M.BIN 	[583a9687]	4,194,304
 
 
 Dumped 13/Apr/2001
msh Marvel Super Heroes (Euro 951024)
[Jun/12/98]
 
 Marvel Super Heroes
  by Capcom   CPS2
 
 6/11/1998
 
 -
mshvsf Marvel Super Heroes Vs. Street Fighter (Euro 970625)
[Nov/23/1999]
 
 ------------------------------------------
  Marvel S Heroes Vs. Street Fighter (USA)
 ------------------------------------------
  Filename: mshvsfu.zip   Revision: 970625
 
  mshvsf.01      131072  68252324  z80
  mshvsf.02      131072  b34e773d  z80
  mshvsf_u.c03   524288  ae60a66a  Code
  mshvsf_u.c04   524288  91f67d8a  Code
  mshvsf_u.c05   524288  1a5de0cb  Code
  mshvsf_u.c06   524288  959f3030  Code
  mshvsf_u.c07   524288  7f915bdb  Code
  mshvsf_u.c08   524288  c2813884  Code
  mshvsf_u.c09   524288  3ba08818  Code
  mshvsf_u.c10   524288  cf0dba98  Code 
  mshvsf.s11    4194304  86219770  Samples
  mshvsf.s12    4194304  f2fd7f68  Samples
  mshvsf.g13    4194304  29b05fd9  Gfx
  mshvsf.g14    4194304  b3b1972d  Gfx
  mshvsf.g15    4194304  faddccf1  Gfx
  mshvsf.g16    4194304  08aadb5d  Gfx
  mshvsf.g17    4194304  97aaf4c7  Gfx
  mshvsf.g18    4194304  c1228b35  Gfx
  mshvsf.g19    4194304  cb70e915  Gfx
  mshvsf.g20    4194304  366cc6c2  Gfx
 
 -
 
 [Jan/11/2000]
 
 Marvel vs Street Fighter Japan
 Dumped ...
 
 -
mpang Mighty! Pang (Euro 001010)
[Oct/28/2001]
 
 MIGHTY PANG (JAPAN 001011)
 (c)2000 Mitchell/Capcom
 
 mpn.01    131072  90C7ADB6
 mpnj.03a  524288  BF597B1C
 mpnj.04a  524288  F4A3AB0F
 
 10/27/2001
 
 -
nwarr Night Warriors: Darkstalkers' Revenge (Euro 950316)
[Mar/27/2001]
 
 ------------------------------------------
            Night Warriors (USA)
            Capcom CPS-2
 ------------------------------------------
                          Revision: 950406
 
  vph.01         131072  5045dcac  z80
  vph.02         131072  86b60e59  z80
  vphu.03f       524288  85d6a359  Code
  vphu.04c       524288  cb7fce77  Code
  vphu.05e       524288  e08f2bba  Code
  vphu.06c       524288  08c04cdb  Code
  vphu.07b       524288  b5a5ab19  Code
  vphu.08b       524288  51bb20fb  Code
  vphu.09b       524288  41a64205  Code
  vphu.10b       524288  2b1d43ae  Code
  vph.11        2097152  e1837d33  Samples
  vph.12        2097152  fbd3cd90  Samples
  vph.13        4194304  c51baf99  Gfx
  vph.14        4194304  7a0e1add  Gfx
  vph.15        4194304  3ce83c77  Gfx
  vph.16        4194304  2f41ca75  Gfx
  vph.17        4194304  4f2408e0  Gfx
  vph.18        4194304  64498eed  Gfx
  vph.19        4194304  9ff60250  Gfx
  vph.20        4194304  17f2433f  Gfx
 
 -
progear Progear (USA 010117)
[Dec/03/2001]
 
 PROGEAR No ARASHI (JAPAN 010117)
 (c)2001 Cave/Capcom
 
 pga.01    131072  BDBFA992
 pgaj.03   524288  06DBBA54
 pgaj.04   524288  A1F1F1BC
 pga.1          ?         ?(SIMM.  Can't dump)
 pga.3          ?         ?(SIMM.  Can't dump)
 pga.5          ?         ?(SIMM.  Can't dump)
 pga.6          ?         ?(SIMM.  Can't dump)
 
 Dumped 11/25/2001
 
 -
pzloop2 Puzz Loop 2 (Euro 010302)
[Jul/14/2002]
 
 PUZZ LOOP 2 (JAPAN 20010205)
 (c)2001 Mitchell/Capcom
 
 
 pl2.01    131072  35697569
 pl2j.03a  524288  0A751BD0
 pl2j.04a  524288  C3F72AFE
 pl2j.05a  524288  6EA9DBFC
 pl2j.06a  524288  0F14848D
 pl2.1          ?  Coming soon
 pl2.3          ?  Coming soon
 pl2.s5   4194304  43C5FF97
 
 
 Dumped 
 08/25/2001
 07/14/2002
 
 -
sfa Street Fighter Alpha: Warriors' Dreams (Euro 950727)
[Nov/21/2000]
 
 Street Fighter Zero (Old 1 Ver.)
 (c)1995 Capcom
 CP-SYTEM II
 Board No.	93646B-7
 Ver.		950627
 
 
 SFZ_01.BIN  	[545a0e37]	  131,072
 SFZ_02.BIN  	[45f46a08]	  131,072
 
 SFZJ_03B.BIN	[844220c2]	  524,288
 SFZJ_04A.BIN	[5f99e9a5]	  524,288
 SFZJ_05A.BIN	[0810544d]	  524,288
 SFZJ_06.BIN 	[806e8f38]	  524,288
 
 SFZ-11M.BIN 	[c4b093cd]	2,097,152
 SFZ-12M.BIN 	[8bdbc4b4]	2,097,152
 
 SFZ-14M.BIN 	[90fefdb3]	2,097,152
 SFZ-16M.BIN 	[5354c948]	2,097,152
 SFZ-18M.BIN 	[41a1e790]	2,097,152
 SFZ-20M.BIN 	[a549df98]	2,097,152
 
 Dumped 11/21/2000
 
 -
sgemf Super Gem Fighter Mini Mix (USA 970904)
[Mar/27/2001]
 
 ------------------------------------------
      Super Gem Fighter Mini Mix (USA)
 ------------------------------------------
  Filename: sgemf.zip     Revision: 970904
 
  pcf.01         131072  254e5f33  z80
  pcf.02         131072  6902f4f9  z80
  pcfu.03        524288  ac2e8566  Code
  pcf.04         524288  f4314c96  Code
  pcf.05         524288  215655f6  Code
  pcf.06         524288  ea6f13ea  Code
  pcf.07         524288  5ac6d5ea  Code
  pcf.11        4194304  a5dea005  Samples
  pcf.12        4194304  4ce235fe  Samples
  pcf.13        4194304  22d72ab9  Gfx
  pcf.14        1048576  0383897c  Gfx
  pcf.15        4194304  16a4813c  Gfx
  pcf.16        1048576  76f91084  Gfx
  pcf.17        4194304  1097e035  Gfx
  pcf.18        1048576  756c3754  Gfx
  pcf.19        4194304  d362d874  Gfx
  pcf.20        1048576  9ec9277d  Gfx
 
 -
ssf2 Super Street Fighter II: The New Challengers (World 930911)
[Jan/17/2000]
 
 SSF.Q1 Soldered on daughterboard
 SSF.Q2 Soldered on daughterboard
 SSF.Q3 Soldered on daughterboard
 SSF.Q4 Soldered on daughterboard
 SSF.Q5 Soldered on daughterboard
 SSF.Q6 Soldered on daughterboard
 SSF.Q7 Soldered on daughterboard
 SSF.Q8 Soldered on daughterboard
 Ref number daughterboard 93646E-2
 
 get these files from the existing dumps.
 
 -
 
 [Nov/9/2006]
 
 Street Fighter II' Turbo hack  
 Ultimo aggiornamento 9/11/2006  
 Anno   
 Produttore   
 N.revisione   
 
 CPU
 Main cpu 68000
 Sound cpu Z80
 Sound ics: ym2151 + ym3012, OKI6295
 Osc: 16,12 and 3,58 Mhz
   
 ROMs
 sf2th-4 to sf2th-7 main program
 sf2th-8 to sf2th-12 graphics
 Sound rom files aren't present because they are identical of SF2 set (sf2_9.bin prg, sf2_18 and sf2_19 ADPCM data)
 The rest of gfx roms are x12 16bit mask roms (identified by pinouts as 27c400 equivalent) and aren't present yet because they are soldered on board,but i suppose that they are identical to existing set.
 Eproms are 27c040,27c010,27c512 and 27c1024 16bit (sf27h-9 to sf2th-12)
   
 Note
 This romset comes from a bootleg/hacked SF2 pcb.I cannot know differences because pcb is faulty.
   
 Funzionamento Non Funzionante  
 In vendita No  
 
 Dumped 08/11/2006 
 
 -
vhunt2 Vampire Hunter 2: Darkstalkers Revenge (Japan 970929)
[Mar/31/2001]
 
 ------------------------------------------
          Vampire Hunter 2 (Jap)
          Capcom CPS-2
 ------------------------------------------
  Filename: vhunt2.zip    Revision: 970913
 
  vh2.01        131072  67b9f779  z80
  vh2.02        131072  aaf15fcb  z80
  vh2j.03       524288  1a5feb13  Code
  vh2j.04       524288  434611a5  Code
  vh2j.05       524288  de34f624  Code
  vh2j.06       524288  6a3b9897  Code
  vh2j.07       524288  b021c029  Code
  vh2j.08       524288  ac873dff  Code
  vh2j.09       524288  eaefce9c  Code
  vh2j.10       524288  11730952  Code
  vh2.11       4194304  38922efd  Samples
  vh2.12       4194304  6e2430af  Samples
  vh2.13       4194304  3b02ddaa  Gfx
  vh2.14       4194304  cd09bd63  Gfx
  vh2.15       4194304  4e40de66  Gfx
  vh2.16       4194304  e0182c15  Gfx
  vh2.17       4194304  b31d00c9  Gfx
  vh2.18       4194304  778dc4f6  Gfx
  vh2.19       4194304  149be3ab  Gfx
  vh2.20       4194304  605d9d1d  Gfx
 
 -
xmvsf X-Men Vs. Street Fighter (Euro 961004)
[Mar/23/2002]
 
 X-Men Vs. Street Fighter (JAPAN 960909)
 (c)1996 Capcom
 
 xvsj.03c  524288  180656a1
 xvsj.04c  524288  5832811c
 xvsj.05   524288  030e0e1e
 xvsj.06   524288  5d04a8ff
 
 Dumped 03/23/2002
2004-2008 MAWS all copyrights belong to their respective owners