Author Topic: FFX PS2 Save Editing (Checksum)  (Read 3919 times)

spacemanspork

  • Guest
FFX PS2 Save Editing (Checksum)
« on: 2003-02-03 21:43:50 »
I wonder if anyone who's familiar with Square's checksumming methods
(which I'm not, at all) has done any work with FFX save files
and would be willing to share what they've found?

mapping the file is straightforward enough
but figuring how the checksum is calculated daunts me significantly.
is the answer that I have to get into the game files?

Cyberman

  • *
  • Posts: 1572
    • View Profile
FFX PS2 Save Editing (Checksum)
« Reply #1 on: 2003-02-04 19:31:42 »
I really hate it when people use the word checksum with a CRC (Cyclic Redundancy Check) calculation!  :)

Anyhow finding the checksum calculation used can be difficult.  My suggestion is the following method.

[list=a]
Save the game once
Note the time given and WRITE IT DOWN
Wait a few seconds then save the game a second time.
Note the time given and WRITE IT DOWN
[/list:o]
It's best to do this at the VERY begining of the game and you have a minimal number of items or objects.  Why is making two saves a short time apart important?  It gives you something to compare.
[list=1]
You know the time will be different.
You know that will be the ONLY difference between the save states.
[/list:o]
The only things that could possibly change are the CRC and time in game. SO .. I hope you are following me on this. The save state will have the same Icon data just have different TITLE information and time and CRC. I don't think they will bother calculating the CRC of the mandatory ICON and sae text.  So look around and see what there is to see.

CRC's are fundamentally different than Checksums. A checksum is calculated by adding up a series of bytes words or what have. a CRC is calculated by shifting and computing a check code from that. It's designed to detect a bit change much more readily than a checksum. The probability of 2 checksums being the same is high on a specific set of data. For a CRC this is not the case.

Square seems to always have used the same CRC calculation since FF7 so you can grab that from ficeudilas information that is about. The chances are your entire CRC should be different so this is GOOD. The reason is you can find the TIME information and the CRC information in one shot this way :)

Cyb - I should make a reader for those cards now that I think about it.. time to smurf the web

Cyberman

  • *
  • Posts: 1572
    • View Profile
Re: FFX PS2 Save Editing (Checksum)
« Reply #2 on: 2003-02-04 20:49:08 »
Quote from: spacemanspork
I wonder if anyone who's familiar with Square's checksumming methods
(which I'm not, at all) has done any work with FFX save files
and would be willing to share what they've found?

mapping the file is straightforward enough
but figuring how the checksum is calculated daunts me significantly.
is the answer that I have to get into the game files?


Suddenly I have a question you aren't per chance using the game shark game saver (USB toy) for this are you?

Cyb

spacemanspork

  • Guest
FFX PS2 Save Editing (Checksum)
« Reply #3 on: 2003-02-04 22:13:40 »
thanks for the information regarding checksum vs. CRC,
I apologize for using the word incorrectly.
 
also I should've been a lot more specific about what I've done.
my progress (I should've realized that this wasn't a given) is this:
I've created two identical-but-for-time saves
(actually three sets of two, to be sure)
and isolated the time locations and the other differences.

also, I'm assuming that FFX uses CRC-16, CRC-CCITT, or CRC-32 to protect the file.
(I've found conflicting information about this, so if you can clarify, I'd appreciate it.)

I've isolated the 4 byte segment that occurs
near the beginning and at the end of the file
which I'm assuming to be the checksum.

obviously, the issue is to figure out the window over which
the CRC is calculated.   also, because of the length of the
variances, I'm wondering if there are multiple CRC calculations

so that's where I am;
I'm picking through the file, I'm using the source code
of Jenova and Griever as a reference for methodology
and I haven't yet exhausted that avenue
but I thought I'd ask for help before I was entirely out of ideas.

oh, I see that's your thread (1813) for FF7 PSX checksums.
so that's a similar question, somewhat.

and yes, I am using an xport, which is identical to the sharkport.