This original document was written by:

      Tony Hedstrom    t_hedstrom@yahoo.com

     http://www.angelfire.com/games2/codehut/

  This document is copyright 2001 Tony Hedstrom


  Final Fantasy 3j (NES) Save Game hacking guide

           Version 0.8   May 5, 2001


What was updated for version 0.8:

-Added to sections 2, 3, 7, and 8.  Basically, I just
added some more info to help make it easier to under-
stand, and I corrected 2 small errors in the addresses.


Contents:

1) What's this document about?

2) Differences between "Save Game" & "Save State"

3) How do I make/use a Save Game file?

4) Why didn't it work for me before? (Check sums)

5) Make a back-up copy!

6) Lets hack!

7) Money hack (LOTS of money!)

8) Advanced information


====================================================

1) What's this document about?


This document explains a way to hack the FF3j "Save
Game" file to get more money (lots more), more items,
different items, etc...

This method should work with any emulator.

This method is completely different than hacking the
"Save State" file.  "Save State" files are different
than "Save Game" files.  The easiest way to tell the
difference is that "Save State" files are much larger
than "Save Game" files.  Save Game files are always
8k in size, but Save State files are always larger
(usually about 23k, depending on the emulator).

Since this method will work with any emulator, it's
perfect for people who are using an emulator that
doesn't support Game Genie codes (yes, I made lots of
Game Genie codes for FF3j), or if you are using an
emulator that doesn't have any documents that explain
how to hack the Save State file.

=====================================================

2) What's the difference between "Save Game" and
   "Save State" files?


This document explains how to hack "Save Game" files,
not "Save State" files.  There is a big difference.

First of all (as I mentioned earlier), the files are
different sizes.  Save Game files are always 8k in 
size, and Save State files are usually about 23k.

In NESticle, the Save Game file (there is only one)
always ends in ".sav" (if your game ROM is FF3j.nes,
then the save game will be "FF3j.sav".

In NESticle, the Save State files (there can be more
than one) will end in ".sta" or ".st1" or ".st2" etc
depending on how many you have.

Different emulators may use different names for their
Save Game files, but the size of the Save Game file
should always be 8k.


You may be asking "why are there 2 different types of
save files?"  Well, simply put, the Save Game file is
the actual file that the NES game makes itself, and the
Save State file is the file that the emulator makes.
The Save State file (the one that the emulator makes)
has one big advantage over the Save Game file (the one
that the NES game makes), because it can save ANY game
at ANY time.  If you've ever played a real NES, you
know that many games can't be saved at all, and the
games that can be saved (mostly RPG's) can only be
saved at certain places in the game.  Real NES carts
that have the ability to save your game, do so with
the use of a small battery inside of the cartridge.

One advantage of Save Game files (the file that the
NES game makes), is that the file will always be the
same, no matter which emulator you use.  That's the
main reason why I wrote this document, because it 
applies to ANY emulator.  If I wrote this for a Save
State file instead, then it would only apply to one
specific emulator, because most emulators use a 
different method for making Save State files.


====================================================

3) How do I make/use a Save Game file?


Making a Save Game file is very easy.  While playing
the game, just press the start button (which will
bring up the subscreen), then move the pointer all
the way down to "Save".  Now press the "A" button.
Keep pressing the "A" button until it says that your
game was saved.

In this document, I only explain how to hack the game
that is saved in the first slot.

Here are a couple of things to know about saving your
game:

-If you are just starting the game, you can't save
 your game until you exit the cave.

-You can't save your game while you are in a town
 (just exit the town and then save the game).

-I don't think you can save the game while you are in
 a cave (just exit the cave and then save).


To use a save game file, just load the ROM, and when
the game first starts, just press the start button
and you will see the save game screen.  Pick the saved
game you want to play (use the one in the first slot
for this example) and press the "A" button.  On some
emulators, you can get to the save game screen by
using the emulator's "reset" button after the ROM has
been loaded.


====================================================

4) Why didn't it work for me when I tried it before?
   (Check sums).


If you have ever tried to hack a Save Game file 
before, you may have noticed that once you hack the
file, it won't work anymore. The game doesn't show the
saved game anymore, or it may say that the Save Game
file is corrupt and it can't be used.  This will
happen with most games on any emulator.

Usually, you can hack a "Save State" file without
any problems, but you need to know a few tricks to
be able to hack a "Save Game" file.

The reason that you can't make random changes to a
Save Game file is because of something called a 
"Check Sum".  

The game needs a way to make sure that the Save Game
file is exactly the same as when it first made the 
file.  If it isn't the same, then the game assumes 
that the file has been damaged and it won't use it.

Fortunately for us, the "Check Sum" method is fairly
easy to work around, as long as you know how.

The Check Sum is simply the total of all the hex 
numbers in the Save Game file.  For example (this is a
very simplified version), if your file contained these
numbers: 00 00 04 02 00, then the Check Sum would be 
06 (add all of the numbers together 4+2=6).

If you tried hacking that file and changed one of the
numbers from 02 to 03 (00 00 04 03 00), then the Check
Sum would no longer be 06 (it would be 07) and the
emulator would know that the Check Sum should be 06, 
but since it's 07, it would think the file was bad and
it would not use it.

So how do we get around this "Check Sum" thing?
  
Well, that's actually pretty easy.  Luckily, the
Check Sum tells the emulator what the total is, but it
doesn't tell it what's actually in the file, so as 
long as we keep the total the same, we won't have any
problems.

Using the example from above, lets look at some of 
the possibilities we can get while keeping the Check
Sum the same (06):

-00 00 04 02 00 = 06
-00 00 02 04 00 = 06
-00 00 06 00 00 = 06
-06 00 00 00 00 = 06
-01 00 00 00 05 = 06
-00 03 00 00 03 = 06

As you can see, all of these will have a Check Sum of
06, so the emulator won't know that anything has been
changed.  Any of those files would fool the emulator
into thinking the file hadn't been changed.

Now that you understand how Check Sums work, lets
move on to the hacking part...


====================================================

5) Make a back-up copy!


Before we move on to the actual hacking of the Save
Game file, make sure that you MAKE A BACK-UP COPY of
the original save Game file!!!  If you make any 
mistakes while hacking the file, the emulator will
know about it and it will erase the Save Game file.
But if you have a back-up copy, you have nothing to
worry about.  So always make sure you have a copy of
the original Save Game file just in case.

====================================================

6) Lets hack!


Did you make a back-up copy of your Save Game file?
Good, then lets get to work.

Here is a list of what you'll need:

1) The Save Game file that you want to hack

2) A hex editor (I use Hex Workshop ver. 2.54)
   You can get a free trial version of Hex Workshop
   here: www.bpsoft.com


You'll also need to know how to use the hex editor.

====================================================

7) Money hack (LOTS of money!)


All of the hacks that I describe, only change the game
that is saved in the first slot.  If you want to hack
the game saved in the second or third slots, then you
will have to figure out what the addresses are for
them (which isn't very hard to do).

Remember to make a back-up copy of the Save Game file
before you make any changes.

This method works best if you have less than $65,500.
It will still work if you have more than $65,500, but
there is a very slight chance that you will end up with
less money than you started with.


Ok, lets get some more money!...

This method will give you anywhere from $66,000 up to
$16,000,000 (that's 16 million!).  The amount you get
depends on how much you start with.

In this example, I start with $642, and I end up with
$8,520,192 (that's 8.5 million!).

First, open up the Save Game file with the hex editor.
Remember, the size of the Save Game file should 
always be 8k.  If the file is larger than that, then
you may have the wrong file.

Once you have the file open, write down the values at
these two addresses:

- 41C
- 41E

In this example, here are the values at those two
addresses:

- 41C = 82
- 41E = 00

Your values will be different, depending on how much
money you have.

Now what we want to do is to switch the two numbers
around.  This is what our example looks like after
we switch the numbers around:

- 41C = 00
- 41E = 82

To change the numbers with the hex editor, just use 
your mouse and click on the number you want to change,
then type in the new number.

This is what the file actually looks like (in our
example) before we make any changes:

82 02 00

Here is what it looks like after we change it:

00 02 82

Don't mess with the number in the middle.

The hex editor will show any numbers that have been
changed in red, while all of the other numbers will
be blue or black.  So the two numbers you changed
should be red now (which is normal).


Now just save the file and go play the game and see
how much money you have.


What we have just done, was to change the amount of
money we have in the file without changing the Check
Sum.  Those of you that understand how hex counting
works, should understand what we just did.  In easy
terms, what we did was to exchange the number for the
low amount of money, for the number of the high
amount of money.  It's a little hard to explain, but
as long as you get lots of money, that's all that
matters.


====================================================

8) Advanced information


This section is meant for advanced users.  You should
have a basic knowledge of hex counting and know how
to use a hex editor.

Remember that this information only applies to the
game saved in the first slot.


Below is a list of some of the addresses of different
things in the save game file.  After the list, I will
explain how to adjust the file so that the check sum
will be correct (if you make any changes).  


All of the data for the game saved in slot one is
located from $0400 to $07FF.

-041A = check sum digit
-041B = amount of Capacity
-041C = money (low byte)
-041D = money (middle byte)
-041E = money (high byte)
-04C0 to 04DF = items you have in inventory (*see below)
-04E0 to 04FF = quantity of items in inventory (*)
-0500 to ??? = stats for first player
-0540 to ??? = stats for second player
-0580 to ??? = stats for third player
-05C0 to ??? = stats for forth player
-0600 to ??? = what first player is equipped with
-0640 to ??? = what second player is equipped with
-0680 to ??? = what third player is equipped with
-06C0 to ??? = what forth player is equipped with


 *NOTE: If you want to add items to your inventory
(by putting numbers in the 04C0 to 04DF range), don't
forget to also put the quantity for each item you
added in the corresponding address in the 04E0 to 04FF
range.  If you add an item at this address: 04C2, then
you must also add the quantity for that item at this
address: 04E2.  If you add an item at this address:
04C3, then you must also add the quantity for that item
at this address: 04E3, and so on.  If you don't add
a value for the quantity, then the item won't show up.
The value for the quantity can be any number between
1 and 99 (or 1 to 63 in hex) depending on how many you
want of that item.


Now I will explain how you can adjust the check sum
so that you can make as many changes as you want to
the save game file.

As I explained earlier, if you try to change any of
values in the file, chances are you will upset the
check sum and the file won't work.  You can make as
many changes to the file as you want, just as long as
you make sure the check sum is correct.  Here's how:

Lets say you only want to make a small change to the
save game file... you only want to add 5 to your
amount of capacity you have.  So you go to this
address 041B and add 5 to whatever number is there.

Now if you've been paying attention, you should know
that since you added 5, the check sum will now be
incorrect.  You will need to subtract 5 from another
address to return the check sum to the proper amount.
There is an address that is there for just that 
purpose.  That address is: 041A.  So after you add
a certain amount to an address, you need to subtract
the exact same amount from 041A.  That way, the check
sum will still be correct.


You may be asking "what if I want to make lots of
changes to the file?".  Well, there is an easy way to
make lots of changes to the file without having to
keep track of the exact amount of change.  Here's how:

Go ahead and make as many changes to the save game
file as you want (between 0400 and 07FF).  Once you
have made all of the changes you want (more money,
more capacity, more items, etc), use your mouse and
highlite all of the bytes from 0400 to 07FF.  There
should be exactly 400 bytes highlited.  Now, click
on "Tools" (I'm using Hex Workshop) and then click
on "Generate Checksum".  Click on "Generate" and then
read the value at "Checksum-8".  If it says "FF",
then your all set.  If it says something other than
"FF", then you need to adjust the value at this
address: 041A  until the value at Checksum-8 does
equal FF.

In other words, the check sum of all the bytes from
0400 to 07FF must be FF.  If it isn't FF, then you
must change the value at this address: 041A  until
the check sum is FF.  If the check sum isn't FF, the
file won't work.


====================================================

Have fun hacking.  By changing the numbers at these
addresses: 04C0 to 04DF, you can get ANY item in the
game!  That's how I was able to make some of the
Game Genie codes for this game.  Just don't forget to
include the quantity for each item you add (see the
*NOTE above).

Hopefully, I will add a list of all the items in the
game in a future update, so for now, you'll have to 
find the items you want by trial and error.

One last note... Although I haven't tried it yet, I
would guess that you can apply some of this info to
other Final Fantasy NES games as well (FF1, FF2j).


If you have any questions, you can email me at:

    Tony Hedstrom   t_hedstrom@yahoo.com

You can find other "How to" documents and thousands of
original Game Genie codes at my home page:

   http://www.angelfire.com/games2/codehut/



=====
Tony Hedstrom
Visit the Code Hut at:
http://www.angelfire.com/games2/codehut/