Author Topic: [WIP] FF9 Save editor. Memory card and save offset stuff.  (Read 26870 times)

gjoerulv

  • No life
  • *
  • Posts: 1144
  • Karma: 34
  • me
    • View Profile
    • My Youtube
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #25 on: 2011-05-07 13:27:35 »
Great! Good to see some interest. I figured it was a Crc16Ccitt. I'll try your method as I see most of my assumptions were right. 0x8404 huh?

EDIT:
Looks like it wooorks. So far I only tested it editing the header (psx file number; part of those 5118 bytes). To be honest I kinda figured it out a while ago. As you look at the data a crc16 type is obvious.

If anyone is interested in developing a save editor, let me know. As of now my project is developed in C#, but I do picture a multi platform application. unless microsoft buys all rights to C++ within a short space of time, I'll most likely aim for a cross-platform editor.
« Last Edit: 2011-05-08 02:33:24 by gjoerulv »

sithlord48

  • No life
  • *
  • Posts: 1504
  • Karma: 33
  • Dark Lord of the Savegame
    • View Profile
    • Blackchocobo
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #26 on: 2011-05-08 13:31:47 »
If anyone is interested in developing a save editor, let me know. As of now my project is developed in C#, but I do picture a multi platform application. unless microsoft buys all rights to C++ within a short space of time, I'll most likely aim for a cross-platform editor.

if you want it to run crossplatform and use C++ i would suggest using Qt for your toolkit its under the lgpl so its free.. also you can easily make a save editor using it. (see Black Chocobo/Hyne) they are both done in C++ using Qt. If you intrested Let me know it shouldn't be to hard to help you get started using it.

myst6re

  • Freak
  • *
  • Posts: 515
  • Karma: 57
  • Light King of the Savegame - Field Master
    • View Profile
    • WikiSquare
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #27 on: 2011-05-08 14:32:17 »
If anyone is interested in developing a save editor, let me know. As of now my project is developed in C#, but I do picture a multi platform application. unless microsoft buys all rights to C++ within a short space of time, I'll most likely aim for a cross-platform editor.

Qt is really convenient, it can easily make beautiful things. Everyone agrees that Black Chocobo or Hyne have a great interface :mrgreen:.

Bosola

  • Fire hazard!
  • No life
  • *
  • Posts: 1770
  • Karma: 15
    • View Profile
    • My YouTube Channel
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #28 on: 2011-05-08 14:46:33 »
Agreed. I've really been enjoying working with Qt recently.

gjoerulv

  • No life
  • *
  • Posts: 1144
  • Karma: 34
  • me
    • View Profile
    • My Youtube
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #29 on: 2011-05-08 14:58:40 »
I don't care much how the interface looks, as long as it is user friendly. I was going to use bloodshed, but I'm curious on qt so I'll try it.

For further discussion please go here: http://forums.qhimm.com/index.php?topic=11494.0

NxK

  • Crazy poster
  • *
  • Posts: 122
  • Karma: 7
  • In AI I Trust
    • View Profile
    • YT
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #30 on: 2011-07-10 20:50:17 »
Hey, I was wondering if there is an explanation on how to deal with the "Status bits".

Zande

  • Cool newbie
  • *
  • Posts: 55
  • Karma: 0
  • 友情は武器よりも強し
    • View Profile
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #31 on: 2011-07-10 23:40:12 »
The status bit stores the state of the seven negative status effects that doesn't disappear after a battle. The first bit is Petrification, second is Venom, third Virus, fourth Silence, fifth Darkness, sixth Trouble, seventh Zombie. I don't know whenever the last bit is used for something, but I don't think so.

NxK

  • Crazy poster
  • *
  • Posts: 122
  • Karma: 7
  • In AI I Trust
    • View Profile
    • YT
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #32 on: 2011-07-11 20:37:55 »
So, does this mean Petrification=1, Venom=2, ..., Trouble=32, Zombie=64? I thought so, however, trying these numbers does not genearte the results I expected. Does anyone know which numbers correspond to the respective status effects?

Zande

  • Cool newbie
  • *
  • Posts: 55
  • Karma: 0
  • 友情は武器よりも強し
    • View Profile
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #33 on: 2011-07-11 22:14:33 »
Yes that's correct, so OR'ing (or adding I guess) them together to set more conditions, like 127 would result in all seven conditions been set.


Also just for the record, at offset 0x3E of each character slot there's four 16 bit values which holds a bonus stats pool that are used in the algorithm for calculating character's stats. I haven't looked very carefully how the pools works, but at least they acculumate any +stats from gear every time a character levels up. They are stored like this:

0x003E: Speed Pool
0x0040: Strength Pool
0x0042: Magic Pool
0x0044: Spirit Pool

NxK

  • Crazy poster
  • *
  • Posts: 122
  • Karma: 7
  • In AI I Trust
    • View Profile
    • YT
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #34 on: 2011-07-12 00:43:57 »
Unfortunately, it seems not so. For example, Zombie=192 and all status effects=255. I have not tried anything else but it seems rather counterintuitive.

gjoerulv

  • No life
  • *
  • Posts: 1144
  • Karma: 34
  • me
    • View Profile
    • My Youtube
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #35 on: 2011-08-22 09:10:01 »
I haven't checked, but how about this:

Code: [Select]
1000 0000 (Status flag, whatever this means)
   OR
0100 0000 (Zombie flag)
   =
1100 0000 (192)

Then Petrification + Venom should be 131.

Code: [Select]
1000 0000 (Status flag, again, whatever that means)
   OR
0000 0001 (Petrification flag)
   OR
0000 0010 (Venom flag)
   =
1000 0011 (131)

All status = 255, no status = 0;
I may as well be wrong though...

...
Also just for the record, at offset 0x3E of each character slot there's four 16 bit values which holds a bonus stats pool that are used in the algorithm for calculating character's stats. I haven't looked very carefully how the pools works, but at least they acculumate any +stats from gear every time a character levels up. They are stored like this:

0x003E: Speed Pool
0x0040: Strength Pool
0x0042: Magic Pool
0x0044: Spirit Pool

Thanks again Zande. I'll get to test this sometime.

Bosola

  • Fire hazard!
  • No life
  • *
  • Posts: 1770
  • Karma: 15
    • View Profile
    • My YouTube Channel
Re: [WIP] FF9 Save editor. Memory card and save offset stuff.
« Reply #36 on: 2011-08-22 12:59:42 »
Unfortunately, it seems not so. For example, Zombie=192 and all status effects=255. I have not tried anything else but it seems rather counterintuitive.


I suspect you have a bit aggregator, as GJoerulv suggests.


You're probably looking at a byte where each bit represents one of eight statuses.


You'll have to continue to experiment to find out which bit signifies which status, though. You probably can't just poke the figure and expect an entity's statuses to visibly change - each statuses' visual effects are probably only polled after an attack / spell. Instead, you'll have to inflict the status effect via spells and the like, then watch the byte for signs of change.


You may have multiple bytes used to refer to statuses at different times, too.