Decrypting my own CPS2 ROM’s

 General  Comments Off on Decrypting my own CPS2 ROM’s
Apr 012012
 

Ive been messing around, on and off, with decrypting these a while now. Basically I wanted the ROM’s as standard as I could get. No mini menu and no other hidden changes. I also wanted to keep the board region the same and there are some blanks in the Phoenix sets created by Razoola.

Using MAME to save the DASM from a non decrypted set I then made a program to convert that DASM back into binary format.
Once I had this I then added some extra functionality to my program to compare 2 different regions of the same ROM set. Where the data matched on both ROM’s is the unencrypted data and when this happened I replaced the data in my first binary file with the unencrypted data from this comparison.

At this point I know have an unencrypted, unmolested ROM (almost).
There are a couple of points in the original ROM’s which match but are in fact encrypted. I will cover these later on.

As per instructions from Razoola himself at the CPS2Shock website. The ROM must now be patched so all read/writes to the region 0x400000 – 0x40000a are changed to 0xFFFFF0 – 0xFFFFFA. The self test routines must also be patched not to clear this region. Both are pretty easy to do using the MAME debugger to find the areas.

My first conversion was for the Japan version of 1944. When I got to this point and tested in an emulator, I received this message

If 1944 this area is different depending on the region so my simple program treated it as encrypted data resulting in it reading the region code from an incorrect address.
This area is located at address $C2. if the word is set to #$0000 this is the Japan region code. I think #$0002 is for USA but not sure what others are.
I don’t think this region setting affects game play but it does change the language used, especially in the test menus.
As I wanted to keep this as standard as possible I chose to keep the menu in Japanese.

One other thing is that the ROM tests in the test menu will fail. This is caused by invalidating the checksum when patching the ROM. I have also changed the checksum number accordingly to comply with the actual checksum calculated and now the tests pass. The checksum data is held at address $D0. The two address following this in 1944 are also checksum values for the other 2 ROM’s.

There were a couple more instances of my data being wrong and causing crashes but they were soon found by comparing against the genuine game.
Ive tested my ROM on the real hardware and it works just fine from start to finish

 Posted by at 11:51 am

Testing my Jumping to Rainbow Islands conversion

 General  Comments Off on Testing my Jumping to Rainbow Islands conversion
Mar 032012
 

Today I got around to testing my conversion on the real hardware.
It works as expected but it has highlighted a fault on my board that I didn’t realise I had. All the text is black and therefore does not show up on screen unless there is a colour behind it. This also means that there is no text displayed on the title screen.
Ive checked the palette RAM chips, these are OK. I’ve found most of the associated logic and am in the process of checking these out.
Ill post the details in a repair log should I get it finished.


 Posted by at 10:23 pm
Feb 272012
 

Myself and my mate StiGGy were wanting another SD2IEC device for a couple of reasons. The other one I have was made by SirMorris and is still going strong but didn’t want to bother him with making a couple more so I asked him if I could have his original schematics which he very kindly supplied.
The result is 4 shiny new boards straight from China. I originally ordered 2 but for some reason they always seem to double up my order but I’m not complaining.

Ive got most of the parts on order but Farnell don’t seem to have the SD slots available that aren’t on US stock order (and extra £15) so ill look else where for those.

 Posted by at 5:02 pm
Feb 192012
 

Well today I finally finished the conversion.
Ive been doing the title screen conversion over a few days as its a very boring task

As you can see, the palette isn’t correct when originally copying the image over so this has to be changed manually after its all complete.

Once complete though, its identical to the original

All the graphics have been changed to original RI ones and plays pretty much the same.
There are still a few differences:
1. Some of the DIP switches do nothing.
2. Every now and then the sprites when a monster is killed are messed up. Cant locate the code where its going wrong.
3. Secret rooms do not work.

I can honestly say all of the images were taken from my conversion in MAME and not from the actual Rainbow Islands ROMs.
I haven’t actually tested it on the real hardware yet so it may not work the same as it does in MAME though. Fingers crossed it does.

 Posted by at 2:14 pm

Jumping to Rainbow Islands conversion part 3

 General  Comments Off on Jumping to Rainbow Islands conversion part 3
Feb 162012
 

Today I finished off the main character sprite. After that I started work on restoring all the title screen text.
Getting the standard copyright info back was a simple task of replacing the “1989” text in the ROM file with the text from the real Rainbow Islands ROM.

Ignore the title screen image, I made a start on changing the graphics just to see what the colours would be like.
So the text is back but there is also a red Taito logo missing. After much searching it turned out that the logo is actually being drawn but its palette is set to black so is not shown. This explain why I saw it on my real board when fault finding a colour issue.

Following the same routine I used for changing the character palette I found the value at address $229E8 and changed it from 00 to 3E which after the bitshift routine, sets the palette to 000F (Red)

And with that done I think all that is left to do is finish off replacing the graphics tiles for the title screen. This may take a while and will probably end up adding a little something to it just to set it apart from a genuine board.

I am aware that on this bootleg the secret rooms do not work. This is because the C chip is not present on the board and there is little I can do about that. Overall its been a fun little project.

CONTINUE TO PART 4

 Posted by at 9:10 pm