Fight Night Round 3 Game Save Hex Editing –
07-07-2008,02:32 AM
I am trying to hex edit a game save for Fight Night Round 3 NTSC. I want to locate and modify the boxer's stats in career mode. I have located what to me has to be the values for the stats, but am having problems getting the game to see the game save as valid. I have been reading through one of the threads in the forums here (PS2 saves cracking), but am not having any luck in locating what I'm missing and would appreciate any help someone can provide on this.
What I Have:
- Fight Night Round 3 NTSC (SLUS_213.83)
- WinHex v12.2
- Total Commander v6.56 (used "Compare by Content" feature) to compare files in attached screen shots
- uLaunchELF v4.12 to create the game save backups on PC
I made a copy of the game saves using mcPaste and psuPaste in uLaunchELF, which I have also attached to this post as a *.zip file.
The zip file contains the following main folders:
- [FNR3-s01].... Game saved just before a fight in career mode before playing the training game.
- [FNR3-s02].... Game saved just before a fight in career mode after playing the training game (stats upgraded). The boxer's stats are indicated below after being slightly upgraded for CHN, BOD, HRT, and CUT.
- [FNR3-s02b].. Game saved just before a fight in career mode after playing the training game (stats upgraded; duplicate save). This is exactly the same as the save files in "FNR3-s02", but was done to help isolate the difference between files without any changes inside the game itself, meaning the stats and everything else is exactly the same as in the "FNR3-s02" save files.
- [FNR3-s03].... Game saved just before a fight in career mode after playing the training game (failed training game = no increase in CHN, BOD, HRT, and CUT stats). I used this save to help find the changed stats.
See attached screen shots (red values) below for how I determined what values where which stats:
- Attached Image: "BASLUS-21383-KEITH---FNR3-s02-vs-FNR3-s02b.gif" = Comparison between "FNR3-s02" and "FNR3-s02b" BASLUS-21383-KEITH file.
- Attached Image: "BASLUS-21383-KEITH---FNR3-s02-vs-FNR3-s03.gif" = Comparison between "FNR3-s02" and "FNR3-s03" BASLUS-21383-KEITH file. The black boxes around the values indicate where the boxer stats are located, including two extra offsets "2006" and "2008", which I'm not sure why their values changed.
- NOTE: The green line in the screen shots was just used to omit the redundant offsets that didn't change.
What I've been doing is using WinHex to edit the hex values of each Offset in the game save (used mcPaste version), then saving the changes. Hex editing is still very new to me, so please point out any mistakes I have made if you can see them. I realize every game is different in the method used when hex editing. What I've learned from this thread (PS2 saves cracking) is that games contain checksums to help valid the game save before it can load in the game. So I might just need help with figuring that part out perhaps. There are also references to games saves having built in protection like "XORing", but I'm not sure how that affects the changes I made manually. What I tried in my tests was overwrite the stat values indicated above with hex value 63, which in decimal is 99 (the max value for each stat), but the game says the save is corrupt. Also, how does the checksum bit-depth relate to all this? I believe these saves are using an unsigned 8 bit checksum, since my above values range from 0...255, where FF = 255, and are in little-endian format. Is this correct?
The main file I am focusing on is "BASLUS-21383-KEITH", which contains the stat values I indicated above. I read on the above referenced thread that the game save might need to be rebuilt using PS2 Save Builder, is that the case? Keep in mind that the thread I referenced was written before uLaunchELF had mcPaste (included in uLaunchELF v3.42 on 2006.02.15), and I'm not sure if that matters.