Author
|
Topic: Checksum Protection Removal (Read 1 times)
|
Photon Man
Guest
|
|
« on: July 12, 2009, 05:57:42 pm » |
|
I'm trying to remove the "Check sum" protection procedures in the game Street Fighter II, for the Sega Genesis. I've heard this will take some ASM (Assembly code) skills to take this down by hand :banghead:. I know a little ASM, but I was wondering if there was some program that would make this procedure easier, or do it in one false swoop.
Thanks.
|
|
|
|
Ryusui
Guest
|
|
« Reply #1 on: July 12, 2009, 06:08:47 pm » |
|
It's "fell swoop", and it depends wholly on how the checksum works. If there's only the one checksum value, then the silver bullet you're looking for is simply recalculating the checksum. There might be tools to do that for you; I don't know.
|
|
|
|
Kagemusha
Guest
|
|
« Reply #2 on: July 12, 2009, 06:16:56 pm » |
|
There's an option in Fusion that'll ignore the checksum or something.
Edit: I see you already know that in the other thread you made.
|
|
|
|
Photon Man
Guest
|
|
« Reply #3 on: July 13, 2009, 08:20:44 am » |
|
I've just downloaded and tried several different programs that all claim they could recalculate the checksum. I've even used one program to tell me the proper checksum, then I hand edited the checksum myself (with a hex editor), to no avail! I believe the programs work, it is just there is more than one checksum, and they are only editing one of the two, (or three? I hope not...). For every time I change the checksum from 0x1ADD to something else, It brings up either a red or black screen.
|
|
|
|
BRPXQZME
Guest
|
|
« Reply #4 on: July 13, 2009, 09:05:23 am » |
|
We’re not much help to you if you don’t tell us which programs you used, though.... Modifying the checksum by hand if a program tells you the checksum is no good if that program checks the whole file, or does the wrong kind of checksum (e.g., CRC is not a checksum at all). FixCheckSum by Esrael should do the trick. The only times you’d actually need to do ASM work is when the checksum used in the code is not the checksum in the header, or if you want the ROM to run on an incorrect checksum regardless (which can be useful if you’re doing lots of edits and can’t be bothered to change it every time). Checksum is not checked by hardware, in fact, but by the game code itself. A checksum-checking routine in ASM looks something like the example here. It’s very simple code, in fact (performing a checksum is a pretty simple procedure), though you probably can’t tell if you don’t know assembly.
|
|
|
|
Photon Man
Guest
|
|
« Reply #5 on: July 13, 2009, 11:54:23 am » |
|
The problem is that I have tried FixCheckSum by Esrael. Checksum is not checked by hardware, in fact, but by the game code itself...
I would prefer to rip out the WrongChecksum code altogether. I can remove the crap myself, if it is as easy as commenting out this line: bne.w WrongChecksum Except, I've been having trouble finding a disassembler that can read it with the proper 68K ASM format. (Is it really this easy? I thought there would be more...)
|
|
« Last Edit: July 13, 2009, 12:13:18 pm by Photon Man »
|
|
|
|
BRPXQZME
Guest
|
|
« Reply #6 on: July 13, 2009, 01:10:50 pm » |
|
It’s not that easy, unfortunately. Unless there is debug information (and if it’s not your code to start with, there’s a very good chance there isn’t), disassemblers never spit out labels that just outright tell you what code does. That’d require them to be psychic.
I bet someone could help step-by-step you through this if you were a bit more specific about which Street Fighter II you were editing. There was no "Street Fighter II", for starters. There was Special Champion Edition, and there was Turbo....
|
|
|
|
KingMike
Guest
|
|
« Reply #7 on: July 13, 2009, 01:14:24 pm » |
|
There was Special Champion Edition, and there was Turbo....
Special Champion Edition and Super SFII.
|
|
|
|
BRPXQZME
Guest
|
|
« Reply #8 on: July 13, 2009, 01:33:38 pm » |
|
Er right. Super. SCE was Turbo (in a sense).
|
|
|
|
Photon Man
Guest
|
|
« Reply #9 on: July 13, 2009, 02:10:44 pm » |
|
Alright, Thanks! Starting new thread...
|
|
|
|
Tony H
Guest
|
|
« Reply #10 on: July 27, 2009, 09:30:12 pm » |
|
Photon Man, if you're still having problems with your checksum routine, this should take care of it...
This is for Street Fighter II: Special Champion Edition (U)...
Use a hex editor and go to this ROM address: $00812E and change the 7000 to 600A.
That should completely kill any checksum routine.
|
|
|
|
hippiejake
Guest
|
|
« Reply #11 on: July 28, 2009, 01:55:20 am » |
|
I would just find where the problem code starts and start NOP'ing out shit until it works. [But I don't really know what I'm doing. Seems reasonable, though]
|
|
|
|
|