Author Topic: Mapping *.FF7 (Or, "Data is ruined!")  (Read 6935 times)

Dromiceius

  • Guest
Mapping *.FF7 (Or, "Data is ruined!")
« on: 2005-09-13 09:39:19 »
I wanted to hack up a save file for my own sort of "hardcore mode" game where the character stats are all nerfed... but much to my annoyance, Jenova wasn't working properly. Can't edit stats, but everything else works fine.

I like my hex editor more, anyway, so it's no big deal.

There didn't seem to be a complete (or partial, for that matter) map of the ff7 savefile filetype anywhere on the internet, so I slapped together this roughshod rough draft full of holes, guesstimated addresses, and nonsensical shorthand.

At this point, I'm mostly curious about the header, and anything I marked as "???". I'm sure someone out there knows a lot more about this than I do, so anything about those first 80 bytes or so would be really helpful.

If somehow I AM the first to bother posting something like this, (there's nothing on gamefaqs or anywhere else I've looked) then here's tonight's work:

=====
Header

09: checksum?
0E: Party members. 3 bytes, 00=cloud, etc. ff=blank

--

Cloud's Data

5e: Level, stats (7 bytes)
65: ??? + break meter (8 bytes)
6d: End of name (16 bytes)
79: Equipment: Weapon, armor, accessory. FF=blank
7c: Fury/sadness
7f: Limit breaks learned. (binary)
80-87: ???
88: 8 bytes; hp/mp cur/max
90-93: ???
94: 4 bytes; "base" hp/mp
98: Exp (4 bytes)
9d: Materia (4*16 bytes)
dd: To next level (4 bytes)

(E1: Barret's data; repeats.)

-------

Items, materia, etc. (Really dodgy stuff, here, but this isn't my main concern yet.)

505: Items. 2 bytes:
  Item ID; FF=Blank
  Item quantity (FF=blank)

789: Materia. 4 bytes:
  Materia ID; FF=Blank
  3-bytes for AP acquired

BED: Key-items. 8 (?) bytes, binary.

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Re: Mapping *.FF7 (Or, "Data is ruined!")
« Reply #1 on: 2005-09-13 12:48:35 »
Based on gears.
Quote from: Dromiceius
09: checksum?
Yep, that's checksum :P
Quote
65: ??? + break meter (8 bytes)
Power, Guard, Magic... sources used + current limit break + break meter
Quote
7f: Limit breaks learned. (binary)
80-87: ???
Limit breaks + Number of kills + How many times each (first level) limit has been used
Quote
90-93: ???
Dunno

Anyway, good job discovering this on your own. To avoid "Data is ruined!" you need to write the new checksum. Check this

You can look for gears.pdf and try to discover, what the unknown fields are for...

dziugo

Dromiceius

  • Guest
Mapping *.FF7 (Or, "Data is ruined!")
« Reply #2 on: 2005-09-13 21:28:58 »
Awesome! Thanks a lot.

Solis

  • *
  • Posts: 16
    • View Profile
Mapping *.FF7 (Or, "Data is ruined!")
« Reply #3 on: 2005-09-15 01:32:18 »
I just found this which may/may not be useful to you:

http://www.thecomputershow.com/computershow/cheats/finalfantasy7hexcheats.htm

Cyberman

  • *
  • Posts: 1572
    • View Profile
Mapping *.FF7 (Or, "Data is ruined!")
« Reply #4 on: 2005-09-15 02:10:32 »
You might wish to searching in this forum actually as the data in the save file is fairly well known already.  If not I can always provide you the structure I used in my PS1 Jenova plugin.  I think PSXmemtool will migrate between PC and PS1 save formats for the data.  You just therefore need the plugin.  Due to an OS failure I almost lost all of this :(

Cyb

Dromiceius

  • Guest
Mapping *.FF7 (Or, "Data is ruined!")
« Reply #5 on: 2005-09-15 05:31:49 »
Quote from: Solis
I just found this which may/may not be useful to you:

http://www.thecomputershow.com/computershow/cheats/finalfantasy7hexcheats.htm

Ah! I've been meaning to get my hands on an item/materia listing like this. Thanks.

Cyberman: Broken links aplenty. I managed to get psxmemtool from the wayback machine, but the required runtimes are annoyingly absent... I vaguely recall using that program, however, and don't think it would have been much help.

At this point, I'm mostly looking for things that are already in Gears... which I just found 5 minutes ago, tucked away somewhere on the wiki.
Quote from: Sticky topic
It is incomplete, if you have something to add, let me know.
Gears is available at http://the-afterm.ath.cx/gears/

No it isn't!  :lol:
It would probably be a good idea to fix that.

Anyway, I'm going to try to fill in some of these Unknowns. Wish me luck.

MaTiAz

  • *
  • Posts: 31
    • View Profile
Mapping *.FF7 (Or, "Data is ruined!")
« Reply #6 on: 2005-09-15 19:26:56 »
You should also check this: http://forums.qhimm.com/viewtopic.php?t=4211

There's a program that calculates the checksums for the savegames :)

Cyberman

  • *
  • Posts: 1572
    • View Profile
Mapping *.FF7 (Or, "Data is ruined!")
« Reply #7 on: 2005-09-15 20:54:24 »
Quote from: Dromiceius
away somewhere on the wiki.
Quote from: Sticky topic
It is incomplete, if you have something to add, let me know.
Gears is available at http://the-afterm.ath.cx/gears/

No it isn't!  :lol:

Gears is toast from a failure on Halkun's disk I think
Quote from: Dromiceius

It would probably be a good idea to fix that.

Anyway, I'm going to try to fill in some of these Unknowns. Wish me luck.


Quote from: Dromiceius
Cyberman: Broken links aplenty. I managed to get psxmemtool from the wayback machine, but the required runtimes are annoyingly absent... I vaguely recall using that program, however, and don't think it would have been much help.

hehehe you don't have the version I have.. which is the last one Simon made. I built a DLL that allowed it to generically handle plugins. You could ASK for the latest ;)

Seems PSXmemtool 1.18b won't recognize the plugin's I wrote. What a pain :p Oh well I'll have to look for my version of his tool, It's somewhere in all my backup data (sigh).

Well I'll put what I can on Geocities when I can. Hmmm (mumble).

Cyb

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Mapping *.FF7 (Or, "Data is ruined!")
« Reply #8 on: 2005-09-16 01:32:45 »
Try this address.

http://www.qhimm.com/gears.pdf

Sorry I've been absent as of late, but I graduate college in April. senior years suck!

Dromiceius

  • Guest
Mapping *.FF7 (Or, "Data is ruined!")
« Reply #9 on: 2005-09-16 04:50:30 »
Quote from: MaTiAz
You should also check this: http://forums.qhimm.com/viewtopic.php?t=4211

There's a program that calculates the checksums for the savegames

Indeed. dzuigo already linked that. Quite a guy, isn't he?
Quote from: Cyberman
Seems PSXmemtool 1.18b won't recognize the plugin's I wrote. What a pain :p Oh well I'll have to look for my version of his tool, It's somewhere in all my backup data (sigh).

Well I'll put what I can on Geocities when I can. Hmmm (mumble).

If you do, I'll try to grab it before the link goes down. :lol:
Quote from: halkun
Try this address.

http://www.qhimm.com/gears.pdf

Sorry I've been absent as of late, but I graduate college in April. senior years suck!

Right, I've been looking through the section on the save files. Nothing of any significance to say yet, but I think I might be on to something. Only time will tell. ;)

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Mapping *.FF7 (Or, "Data is ruined!")
« Reply #10 on: 2005-09-17 00:25:19 »
Keep in mind, The savemap is a bit incorrect, I may be a few bytes off on some of the varibles in either direction. Remeber that I don't count the headers that are different between the PC and PSX saves. The savemap starts where the PSX and PC data are the same.

-halkun

Dromiceius

  • Guest
Mapping *.FF7 (Or, "Data is ruined!")
« Reply #11 on: 2005-09-17 05:16:24 »
Quote from: halkun
Keep in mind, The savemap is a bit incorrect, I may be a few bytes off on some of the varibles in either direction. Remeber that I don't count the headers that are different between the PC and PSX saves. The savemap starts where the PSX and PC data are the same.

-halkun

So I've noticed. I actually figured that out a few hours ago. I still couldn't get those world map coordinates to work, though.

I couldn't get my party out of the middle of the ocean, so I used 0x0b9e, the "current location" bytes, which worked pretty well. Anyway, I know 01 is the world map, 41 is the debug room, and a handful of others, but has a complete listing been created, that you know of?