Your Account
    Log into your account here:
       Forgot Password

    Not registered? Sign Up for free
    Registration allows you to keep track of all your content and comments, save bookmarks, and post in all our forums.

Save State Hacking Guide

by pippin418

 ---------------------------------
 --FFIX Save State Hacking Guide--
 ---------------------------------
     =========================
     | Written by: pippin418 |
     |  [email protected]  |
     |         v1.02         |
     |  Console: PlayStation |
     |       Game: FFIX      |
     |   Save State Hacking  |
     |         Guide         |
     =========================

Note:
You need a hex editor to do this.
For Windows:
Hex Workshop (or something similar)
For Linux:
bless or ghex2 work very well.
For Mac:
I'm pretty sure bless is for Mac too (Linux and Mac are both based off Unix so
it should work.)

Contents:
1 Save States
   1A Platforms
      1A.1 ePSXe
   1B Hex Editing/Basics
      1B.1 PSX/RPG reversal method
2 Hacking
   2A Save states
   2B Hacking List


1 Save States
          Saves states are basically a snapshot of the game you were playing,
along with all the data it contained. This is convenient for us since we
want to change that data.

   1A Platforms
          The only platforms we will be covering is ePSXe, which is compatible
on all operating systems. I'm using Ubuntu Linux 10.04 LTS with ghex2 as
my hex editor. The savestates for ePSXe are located in your main ePSXe folder
in the sstates folder.
Windows:
*ePSXe folder*\sstates\
Linux/Mac
*ePSXe folder*/sstates/
For FFIX Disc 2, my save state's name is SLUS_012.95.000

      1A.1 ePSXe
          ePSXe save states are a little tricky. They are compressed in GZ
format (gunzip), so if you're on Linux or Mac, just rename the savestate
so it has a .gz on the end and extract it. The file should be 4.0 Megabytes.
If you're on Windows, download 7zip ( http://www.7-zip.org/ ) and use the
Linux/Mac instructions. Now make a backup copy and get ready to begin.
    1B Hex Editing
          Hexadecimal or Hex, is a set of characters (0-9, A-F) that can be
used to show any character/value. Each hexadecimal place is made up of two
ASCII characters. For example, 0A 0B 1F 2A 2E
To edit your values, use a goto function in a hex editor (In the File or Edit
Menu, usually Ctrl+J or Ctrl+G) and goto your Offset/Line and type in the new
values. Then you should save.

      1B.1 PSX/RPG Reversal Method
          When hex editing in PSX save states (and most savestates) you have
to reverse the hex values in pairs, for example:
   01 09 A3 D4 B1
Would become:
   B1 D4 A3 09 01
Also, some decimal to hex converters (DEC to HEX) don't put 0's in front
of singular characters:
1A9B4
A good way to do this is to imagine you are underlining each pair. If you
can't underline two, you need to add a zero. The zero must be put on the first
pair.
01 A9 B4
And then you reverse it:
B4 A9 01
is your final value.
!!!!!!!!!!!!!!!!!!
I HAVE ALREADY REVERSED THE VALUES
Do not reverse any values I've put in this guide, I've already done this for
you. If you do, none of this will work for you.
!!!!!!!!!!!!!!!!!!

2 Hacking
          The hacking is easy enough, you should catch on pretty fast. You'll
need to open the extracted save state in your hex editor now. If you're
frightened by the output, fear not. Just stay with me for now.

   2A Save States
          Now we can begin. Scroll to 2B for my hacking list if you need help.
In 2B it explains the lines to go to and what's there. Really all you have
to do is change the values at the lines and save the file. After doing this,
you need to recompress it into a gz file and rename it.
Linux/Mac:
In a terminal, run:
gzip *sstate name*
windows:
Use 7zip's GUI to compress it to a GZ file.

Then rename the .gz file so there's no .gz
Now load the save state again. If it worked, you'll see your changes!

   2B Hacking List
          This is the list I use to hack my save states. It's near completion.
Note that things can go wrong and screw up your savestate, so please save
normally on the memcard just in case.

########################################################
Hex Editor Lines/Offsets:
There's only one "Line", that's directly below this line. The rest are offsets,
or places on the line. A goto function will still take you there.
0008BB0 - Key Items - I haven't figured these out yet
0008B956 - Battle Party
0008B97E - Inventory
0008B446 - Zidane Stats
0008B47F - Zidane Equipment
0008B6BF - Freya Equipment (stats are above)
0008B50F - Vivi Equipment (stats are above)
0008B74F - Cinna / Quina Equipment (stats are above)
0008B62F - Steiner Equipment (stats are above)
0008B7DF - Marcus / Eiko Equipment (stats are above)
0008B596 - Dagger / Garnet Equipment (stats are above)
0008B86F - Blank / Amarant Equipment (stats are above)
0008B8FF - Beatrix Equipment (stats are above)
0007B11A - Chocobo Points
0007B162 - Chocobo Color (Level)
0007B135 - Chocobo Beak Level - 99 (or 63 in hex) is the max
########################################################
Battle Party Values:
8C B2 - Zidane
1C B3 - Vivi
AC B3 - Garnet
3C B4 - Steiner
CC B4 - Freya
5C B5 - Cinna / Quina
EC B5 - Marcus / Eiko
7C B6 - Blank / Amarant
0C B7 - Beatrix

Offset 0008B596 should look similar to this:

8C B2 08 80 1C B3 08 80 AC B3 08 80 3C B4 08 80

"08 80" is a separator. "8C B2" means Zidane. So if you only wanted Zidane,
Steiner and Beatrix in your party, you'd put:

8C B2  08 80     3C B4   08 80     0C B7   08 80
Zidane Separator Steiner Separator Beatrix Separator
########################################################
Chocobo Color (Level):
00, 06+ - Seems to have no effect
01 - Yellow, Normal
02 - Light Blue, Shallow Water
03 - Red, Mountain
04 - Dark Blue, Deep water
05 - Gold, flying
To use this hack, savestate in Chocobo's forest, and then change Offset
0007B162 to whatever you want (01, 02, 03, etc) using the chart above. Save,
and reload the savestate. Leave Chocobo's forest and the color (and the skill)
will update.
########################################################
Inventory:
Offset 0008B97E contains your inventory.
It looks like:

1E 05 1A 09 00 03 01 05

At the beginning you see 1E 05. 1E means Excalibur II, and 05 means you have 5
of them. the entire inventory goes in pairs like that. I don't have a
full list but if you download PEC (PSX Emulation Cheater), install it
(Windows only, but works fine in WINE on Linux/Mac) and look up Final Fantasy
IX (USA) in it, go to Other Codes and Item Modifier Codes. Double click Slot
1 and a list will pop up. The values are next to the name of the item. ALL of
those will work on your inventory.
########################################################
Equipment:
Same as Inventory, but:
It goes in this order:
Weapon
Headgear
Wristgear
Armor
Accessory

So:

1E 84 62 A1 CC

1E           84        62           A1        CC
Excalibur II Thief Hat Thief Gloves Gaia Gear Rosetta Ring

*Values taken from PEC (in Inventory section)*
Also, you can put any piece of equipment anywhere using this (so you can learn
abilites from 5 weapons/equipment all at once), even having guys wear
girls clothes or vice versa. You can also give anyone ANY weapon/equipment
(like Zidane with a Racket or Dagger with a Dagger... or Sword).
########################################################
Footnotes:
A great Dec to Hex converter: http://www.parkenet.com/apl/HexDecConverter.html
That's all I use. You can even download it and use it offline.

Also, I'm pretty sure this is the only guide out there.

Sources:
PSX Emulation Cheater, helped a lot.
GameFAQs Boards, had one thread that helped me finish the entire work.
Wikipedia, for reminding me that hex goes from A-F not A-E.
Prior knowledge, helps to know what I'm doing.

Thanks for GameFAQs for reviewing and releasing this!