Final Fantasy II/IVj State Hacking v.1.0 by Griffin Knodle, a.k.a. Jair, 7/8/98 E-mail: gknodle@trinity.edu http://www.resnet.trinity.edu/users/gknodle/ ------------------------ Contents ------------------------ Introduction Gold Character stats Changing party members Editing the item list Editing the spell lists Terms of use Disclaimer ------------------------ Introduction ------------------------ This document explains several things you can do to change your ZSNES state files (ZST's) for Final Fantasy II/IVj. (I took a look at SNES9x's state files, but I couldn't figure them out.) This document is intended to do two things: let you make an invincible party if you so desire, or (preferably) let you make other changes to simply make the game new and interesting. By the way, if you don't know what ZSNES and SNES9x are, go to http://www.zophar.net and discover emulation. To make changes in your ZST, you'll need some way of hex-editing the file. Hex editors display the hex values for each character in a file, unlike ordinary text editors which only display text characters. Anyhow, I use Hex Workshop, demo copies of which are available from BreakPoint Software at http://www.bpsoft.com. Remember: all values in this document will be in hexadecimal (base 16). ------------------------ Gold ------------------------ Hacking your gold is nice and easy. Go to address 22b3 in your ZST. Those 3 bytes contain your gold total. NOTE: the bytes are actually arranged in reverse order. ------------------------ Character stats ------------------------ The data for your characters runs from 1c13-1d52. Each character in your party has 0x40 bytes, so your first party member is 1c13-1c52, your second is 1c53-1c92, and so on. Interestingly, there's another 0x140 bytes after the fifth member that seems to hold information from FORMER party members... don't know what use it could be.... Anyhow, here's all the values I know, using addresses for your first party member. Address What it is 1c13-1c14 The ID bytes for the character. (See next section.) 1c15 Level. 1c16 Status byte (tracks Piggy, Poison, etc.). 1c17-1c19 ??? (may be more status bytes) 1c1a-1c1b HP. (Remember that the bytes are reversed.) 1c1c-1c1d Max HP. 1c1e-1c1f MP. 1c20-1c21 Max MP. 1c22-1c26 Attributes (Strength, etc.). 1c27-1c2b Attributes plus equipment bonuses? 1c2e-1c30 Attack (hits, hit %, damage). * 1c35-1c37 Magic defense. * 1c3b-1c3d Defense. * 1c43-1c49 Equipment (head, body, arms, RHand, quantity, LHand, quantity). 1c4a-1c4c Experience. ** 1c50-1c52 For level up. ** * Many of these are based on your attributes and equipment, so changing these values might not work. ** Be careful changing these. There's a weird calculation that seems to involve these two and your level, and if you change these, you're liable to wind up needing a few million points for level up. ------------------------ Changing party members ------------------------ You can change your party and put whoever you want in it. (I'm playing through the whole game with Palom and Porom. Palom learned Quake all the way back in Cave Magnes, hee hee....) It's kind of tricky, because there's two ID bytes per party member (see above). The first byte controls name, battle commands, and handedness. 00 No character 01 Cecil [Dark Knight] 02 Kain 03 Rydia [child] 04 Tellah 05 Edward/Gilbert 06 Rosa 07 Yang 08 Palom 09 Porom 0a Tellah * 0b Cecil [Paladin] 0e Cid 11 Rydia [adult] 12 Edge 13 FuSoYa 15 Golbez ** 16 Anna ** * There's a different value for each time a character joins your party -- it doesn't seem to matter which one you use. ** Golbez and Anna can't do anything but Fight and Item. Sorry. If you use values between 16 and 3f, you'll get garbled names and strange battle commands, many of which will crash the game. WAIT! That's not all. If you use values from 00-3f, it'll say that you're "D" instead of "LHand", "RHand", or "R/L Both" -- and you won't be able to equip weapons. This whole set repeats three more times: 00-3f D 40-7f Left-handed 80-bf Right-handed c0-ff Both-handed Don't worry, there's an example later. Now for the second byte. It controls class, appearance, and spell lists. 00 Dark Knight 01 Dragoon 02 Child Caller 03 Sage 04 Bard 05 White Wizard [Rosa] 06 Karate/Monk 07 Black Wizard 08 White Wizard [Porom] 09 Paladin 0a Chief/Engineer 0b Adult Caller 0c Ninja 0d Lunarian 0e (pig silhouette) 0f (midget silhouette, looks like Golbez in battle, has random magic that I don't think you can use in battle) 10-1f Same as 00-0f, but appearances are scrambled -- don't know if there are other differences. This whole 0x20 byte sequence repeats from 20-3f, 40-5f, and so on. In the run of play, your characters' second bytes will come from all over -- Dark Cecil is 00, Paladin Cecil is 29, Rosa is a5 ... I don't know why, and it doesn't seem to matter. EXAMPLE: Say you've started a new game and you want to get rid of Kain and change Cecil into Edge. Getting rid of Kain is easy. Just change byte 1c53 from 42 (left-handed Kain) to 00 (no character). Now look at 1c13 and 1c14 (Cecil's ID bytes). If you change the first byte from 81 (RHand, Cecil) to d2 (R/L Both, Edge), you'll have a both-handed Dark Knight named Edge who can use Steal, Throw, and Ninja -- but he won't have any spells. If you change the second byte from 00 (Dark Knight) to 0c (Ninja), you'll have a Ninja named Cecil who knows Flame, but can't do anything except Fight and Item (and Dark Wave, in FFIVj). Make both changes and you've got Edge! SEVERAL IMPORTANT WARNINGS: -- When you change the first byte, you also change the experience calculation. If you do the above example, Edge will need a LOT of experience to reach Level 11. I don't understand the calculation yet. It may help to put Edge up to Level 25 (his ordinary starting level) and fiddle with the values for Experience and For-Level-Up. -- The changed character will still have all of their previous stats, including HP, MP, and equipment. You'll have to change these separately. -- If you have two characters from the same class, they will share any spell lists they have -- which means you'll learn spells twice. -- IMPORTANT! There are several points in the game where one character fights solo as part of the story. (Tellah fights Edward, Edward fights the WaterHag, Cecil fights Kain, Paladin Cecil fights Dark Knight Cecil, etc.) If you took that one character out of your party, the game will crash. Put him/her back in before the battle. -- EVEN MORE IMPORTANT! I hit a serious snag in the Dwarf Castle. When you're fighting Golbez and Rydia's supposed to appear, she didn't appear and the game crashed. I think it's because I'd removed Cid a while earlier, but I tried putting him back in and it didn't help. I finally got around it by giving Cecil "Chain Reaction" and killing Golbez instantly (see below). ------------------------ Editing the item list ------------------------ The item list runs from 2053 through 20b2. There are two bytes for each item. The first byte is the item's ID byte; the second byte is the quantity you have. Here's a chart of the item ID values. (Note that the same values are used for the equipment bytes in your character data.) 01-06 Claws 07-0e Rods 0f-15 Staffs 16-22 Swords 23-2a Spears 2b-32 Katanas and daggers 33-37 Whips 38-3d Misc. 3e Spoon/Cleaver 3f Crystal/Ragnarok Sword 40-41 Shuriken, Ninja/Hellwind 42-43 Boomerang, FullMoon 44-45 Harps 46 Dummy/Spare 47-48 More axes 49-4b Hammers 4c Avenger Sword 4d-53 Bows 54-5f Arrows 60 (blank) 61-6c Shields 6d-76 Helms 77-7c Caps 7d-7f Ninja, Karate stuff 80 Glass Helm 81-8c Armor 8d-95 Robes 96-99 Misc. 9a Adamant Armor 9b Ninja 9c-a6 Gauntlets a7-af Rings b0-c7 Battle items c8 Crystal c9-cd Battle items ce-dd Recovery items de Alarm df-e1 Apples, SomaDrop e2-e3 Tent, Cottage e4 PornoMag e5-ed Misc. ee-fa Quest items fb Dark Matter fc-fd Scn.0015, Scn.0016 fe-ff Sort and TrashCan You should play around with your item list for a bit, just because there's a bunch of items you probably never got, like the Artemis Bow and Lilith Sword. Also try doing screwy things like changing your armor byte to a weapon or a Potion and seeing what happens. ------------------------ Editing the spell lists ------------------------ Here's where you can have some real fun. Each spell list is 0x18 bytes long. Some characters have more than one spell list (Child Rydia has three). You can put any spells on any list -- even though Cecil's list is called "White", you can give him any spell you want. Here are the addresses of the spell lists. 2173 Cecil 218b ??? 21a3 Rydia (White) 21bb Rydia (Black) 21d3 Rydia (Call) 21eb Tellah (White) 2203 Tellah (Black) 221b Rosa 2233 Palom 224b Porom 2263 FuSoYa (White) 227b FuSoYa (Black) 2293 Edge And here are the spell ID values to plug into the lists. 01-18 White 19-30 Black 31-3f Call 40 Flare 41 Comet 42-47 Ninja Now the fun starts, because you can also give yourself monsters' special attacks. Even better, you can cast any of them instantly, for 0 MP! I've put *'s by the most powerful or interesting ones. Be warned that the names won't display properly in the menus, because they're longer than ordinary spell names. 48 Magic Arrow 49 Heal (weak Cure3, all ally) 4a Basuna 4b Poisona 4c Dagger 4d-5d Call effects (Chocobo Kick, etc.) 5e*W.Meteo 5f Monst015 60 Monst016 61 Gaze 62*Bluster 63 Slap 64 Cold Snap 65 Pupil 66 Charm/Lure 67 Tongue 68 Curse 69 Fingertip 6a*Count 6b Beak 6c Stone Gaze 6d Mind Blast 6e Hug 6f*Breath 70 Whisper 71 Entangle 72 Weak 73 Disrupt (no effect?) 74 Cold Mist 75 Explode (Mom Bomb version) 76 Curse Song 77*Hold Gas 78 Sleep Gas 79 Poison 7a Maser 7b*Vanish (enemy disappears!) 7c*Demolish 7d Black Hole 7e Death Song 7f*Disrupt 80*Maelstrom 81 Magnet 82*Chain Reaction 83 Hatch (no effect) 84 Remedy (recover some HP) 85 Absorb (recover HP?) 86*Heal (all ally) 87*Big Bang 88 Vampire 89 Digest 8a Pollen 8b*Crush 8c Alert (crashes game) 8d Call (crashes game) 8e Dummy 8f Vanish/Dark Revolution (fill HP?) 90 Search 91*Fission 92*Retreat (enemy runs away!) 93 Heal (all enemy!) 94 Beam 95*Globe199 96 Fire 97 Blaze 98 Blitz/LitFlash 99 Thunder 9a Dark Breath 9b Big Wave 9c Blizzard 9d Wave 9e Tornado 9f Laser a0 Explode a1 Quake a2 Emission a3 Heat Ray a4*Glare/FlameDgn a5 Odin a6*MegaNuke/MegaFlare a7 Needle a8 Counter (Antlion's needles) a9 Monst000 aa Monst000 ab*Recover (fills caster's HP) ac*Remedy (fills caster's HP) Values from ad-ff will do strange things. Try them if you're bold. (I found one that made you exit the battle, and another that added an enemy and killed the caster!!#$@) That's all, folks. If you have any questions, suggestions, or additions, feel free to mail me. Have fun! TERMS OF USE You may use, distribute, and modify this document freely. Only one restriction: These terms of use must stay the same. Oh, and I'd appreciate it if you credit me as the original author. DISCLAIMER All games and systems mentioned are copyright their respective companies. I am not responsible for any damage you may cause to your computer or software by using this document. Owning a ROM is illegal unless you already own the cartridge. If there are runners on first and second and fewer than two outs, a fly ball hit to an infielder shall be ruled "caught" even if the infielder drops it. I think that about covers everything.