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/