What's new

kuze

Champion
Joined
Jul 22, 2015
Messages
2,228
Reaction score
1,910
Location
DFW
So I was browsing around the other day and found that the author of Fightcade had posted some information on how to re-encrypt CPS2 ROMs, which is quite useful for ROM hacks.

He has a Youtube video from a conference here, as well as a PDF posted as "r2con_PauOliva_Hacking_StreetFighter_CPS2_Encryption_FINAL.pdf".

Page 38 has the details on how to encrypt CPS2 roms. While r2hash didn't work for me (for some reason it makes the ROMs larger?), I was able to build a modified MAME binary for properly re-encrypting CPS2 roms using his info.

Here's how it works:
1) Adjust MAME source code to encrypt instead of decrypt.
2) Apply modified instructions (decrypted) to a given encrypted CPS2 rom.
3) Load up in modified MAME build (pass -window -debug), go to "Debug" -> "New Memory Window" -> select decrypted_opcodes in dropdown, navigate to your modified region and there's your encrypted code.
4) Apply the encrypted instructions over your decrypted ones in the ROM, load up with normal MAME and test.

Here's a couple of my ROM hacks (one is brand new and by request!) that work with the encrypted ROMs on the CPS2 multi.

Note that ONLY xdeltas are provided, no ROMS! You must have the original ROMs and use "xdelta UI" to apply the changes against your existing files.

For completeness, the zips have xdeltas for both encrypted and decrypted ROM sets on both CPS2 multi and ROM board formats.
  • Dimahoo / Great Mahou Daisakusen - All Characters Unlock
  • Progear / Progear no Arashi - Second Loop Hack
Note: Dead links have been replaced with attachments. :thumbup:

Hope you guys enjoy! I may slowly work on converting my other CPS2 hacks (e.g. Marvel VS character unlocks) for encrypted sets and will keep this thread updated if/when I do.

The decrypted Avalaunch sets are great and work just fine IMO, but with the CPS2 multi now supporting encrypted sets and it being easy to apply hacks against the original ROMs - why not? In the case of Dimahoo there is only one modified instruction, so it's the best of both worlds in terms of playing the game how the developers intended and also being able to select the hidden characters easily.
 

Attachments

  • dimahoo_allchars_patch_xdeltas-all_formats.zip
    6.5 KB · Views: 373
  • progear-loophack-all_formats_xdeltas.zip
    7 KB · Views: 325
Last edited:
That's really cool. Thanks for sharing these. For the Progear romhack, can you start in the first or second loop, or does it always go directly to the 2nd loop?
 
Is there a 2P VS random stage hack for SSF2X that has a working 1P mode? I would love to put that on my original 2X board that's running on battery.

The hacks I've tried mess up 1P mode.
 
That's really cool. Thanks for sharing these. For the Progear romhack, can you start in the first or second loop, or does it always go directly to the 2nd loop?
Np! The Progear hack always goes to second loop.

Is there a 2P VS random stage hack for SSF2X that has a working 1P mode? I would love to put that on my original 2X board that's running on battery.

The hacks I've tried mess up 1P mode.
Not sure, @mountainmanjed would be the guy to ask about that.
 
Hi @kuze. Since you know your way around the ROM(s) structure etc to produce your hacks, I was wondering if you've ever stumbled upon any documentation / sdk / tools that would help developing games for the CPS2 (maybe even CPS1). There a lot of stuff for the Neo Geo, but pretty much zero for the CPS 1/2/3.. Or maybe I didn't look hard enough?

Also pinging @l_oliveira if he knows anything :) Only other thread I could find was the one Smokemonster opened back in 2016: https://www.arcade-projects.com/forums/index.php?threads/cps2-state-of-the-scene.1591/
 
Last edited:
Hi @kuze. Since you know your way around the ROM(s) structure etc to produce your hacks, I was wondering if you've ever stumbled upon any documentation / sdk / tools that would help developing games for the CPS2 (maybe even CPS1). There a lot of stuff for the Neo Geo, but pretty much zero for the CPS 1/2/3.. Or maybe I didn't look hard enough?

Also pinging @l_oliveira if he knows anything :) Only other thread I could find was the one Smokemonster opened back in 2016: https://www.arcade-projects.com/forums/index.php?threads/cps2-state-of-the-scene.1591/
The biggest tool for making ROM hacks is the MAME debugger. There are some guides on creating MAME cheats online like the "Holy Cheat" guide at http://cheat.retrogames.com/guides.htm that can help you familiarize yourself with its use.

Aside from the MAME debugger, I use a hex editor (HxD) and EASy68K for assembly.

CPS1, CPS2 and Neo Geo all run off of the 68000 architecture which is well documented:

http://wpage.unina.it/rcanonic/didattica/ce1/docs/68000.pdf

As for CPS1/CPS2/CPS3 SDKs/tools, there would have been in-house stuff at Capcom but I'm not aware of any open source tools or libraries specifically made to target those platforms.

If you want to make a new CPS2 game from scratch the MAME source code will likely be the best resource as it has a wealth of technical documentation:

https://github.com/mamedev/mame/blob/master/src/mame/drivers/cps2.cpp
 
Last edited:
Is there a 2P VS random stage hack for SSF2X that has a working 1P mode? I would love to put that on my original 2X board that's running on battery.

The hacks I've tried mess up 1P mode.
Not sure, @mountainmanjed would be the guy to ask about that.
I'm trying to do this exact thing.

I converted a suicided XVSF board into a decrypted SSF2XJ with the files from here: http://ikotsu.blogspot.com/2014/01/ssf2x-conversion-capcom-1994.html. This was successful and is running now without a battery.

Now I'd love to run @mountainmanjed 's RandomStage V2 hack on real hardware (It runs on my DSMulti, but I want it on a dedicated board for hosting the game at locals).

I found Poliva's Mame cheats XML file here: https://github.com/poliva/ssf2xj/blob/master/ssf2xj.xml
On lines 216 and 244 the random stage stuff is referenced.

Admittedly, I am not smart enough to know what to do here. I'm guessing, open up a hex editor and search for a specific string and replace it with what's referenced? No idea.

Help?
 
Last edited:
I managed to finagle my way through a hex editor. Got Free Play and Random Stages working ON REAL HARDWARE.

Try for yourself below. I've only included Roms 3 and 4 as they're the only ones modified.
 

Attachments

  • SSF2XJ FreePlay + RandomStage.zip
    367.1 KB · Views: 355
Woah, that's cool. I assume it still has an issue in 1p mode though? I wonder if there's a way to enable a sort of event mode as well, so both players get to repick characters each match.
 
Woah, that's cool. I assume it still has an issue in 1p mode though? I wonder if there's a way to enable a sort of event mode as well, so both players get to repick characters each match.
I picked ryu and didn't have or see any issues? I'm thinking they fixed it.

I tried to keep the hack of holding down the start button to go back to the character select screen, but just before every fight it reset back to the initial warning screen. ¯\_(ツ)_/¯
 
1p mode would randomly crash when you lost and didn't continue. (it would go to a black screen after the continue countdown and get stuck there). It would also just not let p2 continue sometimes if they didn't press start before the timer ran out. This was on jed's old random version though.

was trying to think of hacks that would make running tournaments easier. Like, just forcing a game over after each match so it goes back to the title screen without needing a kill off.
 
1p mode would randomly crash when you lost and didn't continue. (it would go to a black screen after the continue countdown and get stuck there).
Just tried this and no crashes. Yay!

was trying to think of hacks that would make running tournaments easier. Like, just forcing a game over after each match so it goes back to the title screen without needing a kill off.
I always hit the test button to do this. I'm making a consolized CPS2 A board and @undamneds decoder (terminal version) has a connection for the test button. This way you can push all 6 face buttons plus Select/Back and Start and this would kick you into the test menu. Love this feature!
 
Just tried this and no crashes. Yay!
If there's an easy way for me to test these changes on a darksoft kit, let me know, I'll put it through the ringer with my crew next time we get together. It definitely would happen to us after 2p couldn't join the game anymore.


I always hit the test button to do this. I'm making a consolized CPS2 A board and @undamneds decoder (terminal version) has a connection for the test button. This way you can push all 6 face buttons plus Select/Back and Start and this would kick you into the test menu. Love this feature!
That's cool for a supergun setup, but we usually run our tournaments on VS. cities and Blasts. One of the cabinets, they actually rigged an outside test button for a quick reset, but the others it would be more difficult to do, and on my personal blast, it's a pain to open up the CP each time. Lazy, I know, haha but it would be a welcome feature to have a version with quick resets after a match.
 
The version I had of Random stages crashed in 1P mode after the third match IIRC. It black screens and has to be reset by going to the test menu and returning back to game.

I can try this one as well.

EDIT: Nevermind, it's for a decrypted game. Mine is still running on battery.
 
Last edited:
The version I had of Random stages crashed in 1P mode after the third match IIRC. It black screens and has to be reset by going to the test menu and returning back to game.

I can try this one as well.

EDIT: Nevermind, it's for a decrypted game. Mine is still running on battery.
I'm traveling now but when I get back, I'll try and play a single player game all the way through to the end.
 
I haven't been following this but if you can get me the ready-to-use files and describe them to me, I'll include them.
 
Someone has them ready to go for the roll up pack?
If not I will have a look tomorrow on my PC to convert them
 
Back
Top