Final Fantasy V
Magic Hacking Guide for ZSNES save states
By Dark Penguin (penguin_821@yahoo.com)
Version 1.0
Last Update: 12/30/03

Greetings, and welcome to the Final Fantasy V Magic Hacking Guide. I
decided to write this guide when, after reading the available FF5
hacking guides, I found that there was little to no information
available about hacking your characters' magic spells. Note that
this guide assumes you have some basic knowledge about the
hexadecimal system, and hex editing in general.

Obviously, this info only applies to the SNES ROM version of FF5,
and not the Playstation remake. Though if you want to try and hex
edit your PSX saves, go right ahead. ^_^

If you wish to learn a little about how the spells are stored within
the game, keep reading. Otherwise, feel free to skip to the
"instructions" section below.

You may wonder just why information concerning magic hacking is
so scarce. Well, the data concerning which spells your party
possesses is stored in a much different way than, say, the data
for your items is. All 125 spells are stored in just 16 bytes.
How, you ask? Well, suppose each spell had its own byte. If the
byte read "00", the spell would be "off", or unavailable. If the
byte read "01", then the spell would be "on" and ready for use.
But wait! Each byte has 256 different possible values, right?
Only using two of those values is such a waste of space.

Somewhere along the line, someone came up with a great idea: since
each item has only two possible values, why not store a whole bunch
of them in one byte? Eight of them, to be exact. (There are 8 items
and two values for each; 2 to the 8th power is 256. See? It works!)
Stored this way, one byte holds the on/off info for eight different
spells, and has a value to represent any possible combination of
those spells. Fun, eh? (Don't worry if you didn't understand a word
of that. I've never been good at explanations. >_<)

~Instructions for 1337 magic hacking:~

The setup here is pretty basic. Each byte of info holds eight spells.
The value of that byte determines which, if any, of the spells are
currently active in your FF5 game. Each spell occupies a predefined
"position" within the byte, and each position has a hex value
associated with it. I'll use the byte holding the first 8 spells as
an example.

BYTE 1563 (Sword Magic)
 -----------------------
|Spells     |Hex Value  |
|-----------|-----------|
|1. Ice 2   | 01        |
|2. Fire 2  | 02        |
|3. Sleep   | 04        |
|4. Mute    | 08        |
|5. Venom   | 10        |
|6. Bolt    | 20        |
|7. Ice     | 40        |
|8. Fire    | 80        |
 -----------------------

To determine what the value of the byte should be, simply add up the
values of all the spells that you want to have. If you only want
Ice 2, and you don't want to have any of the other spells, then just
open your saved state in a hex editor, go to byte 1563, and input the
value "01". If you want both Ice 2 and Fire 2, then add the numbers
together. 01 plus 02 equals 03. Input that number, load your game,
and the first two spells will be active. But remember! You're working
in hexadecimal here. 8 + 4 is NOT equal to twelve, it's equal to C.
If you're not a hex master, note that most calculators -- including
the Windows Calculator -- have hexadecimal modes that can be used for
this sort of thing. If you want ALL the spells in a particular byte,
I'll save you some math: all of the numbers added together equal FF,
the highest possible value. So if you want all of the spells, just
type FF at each byte.

Now that you're a master hacker, I present you with the bytes
containing all of Final Fantasy V's magic spells. Note that if a
spell slot reads [Nothing], it means just that -- activating that
slot does not activate a spell. I haven't seen any glitches or
problems caused by activating these slots, but if you want to be
safe I would suggest leaving them off.

BYTE 1563 (Sword Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Ice 2   |Sword      | 01        |
|2. Fire 2  |Sword      | 02        |
|3. Sleep   |Sword      | 04        |
|4. Mute    |Sword      | 08        |
|5. Venom   |Sword      | 10        |
|6. Bolt    |Sword      | 20        |
|7. Ice     |Sword      | 40        |
|8. Fire    |Sword      | 80        |
 -----------------------------------

BYTE 1564 (Sword Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Holy    |Sword      | 01        |
|2. Bolt 3  |Sword      | 02        |
|3. Ice 3   |Sword      | 04        |
|4. Fire 3  |Sword      | 08        |
|5. Bio     |Sword      | 10        |
|6. Break   |Sword      | 20        |
|7. Drain   |Sword      | 40        |
|8. Bolt 2  |Sword      | 80        |
 -----------------------------------

BYTE 1565 (White/Sword Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Size    |White      | 01        |
|2. Armor   |White      | 02        |
|3. Mute    |White      | 04        |
|4. Antdt   |White      | 08        |
|5. Scan    |White      | 10        |
|6. Cure    |White      | 20        |
|7. Psych   |Sword      | 40        |
|8. Flare   |Sword      | 80        |
 -----------------------------------

BYTE 1566 (White Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Wall    |White      | 01        |
|2. Cure 3  |White      | 02        |
|3. Heal    |White      | 04        |
|4. Shell   |White      | 08        |
|5. Image   |White      | 10        |
|6. Charm   |White      | 20        |
|7. Life    |White      | 40        |
|8. Cure 2  |White      | 80        |
 -----------------------------------

BYTE 1567 (Black/White Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Venom   |Black      | 01        |
|2. Bolt    |Black      | 02        |
|3. Ice     |Black      | 04        |
|4. Fire    |Black      | 08        |
|5. Dispel  |White      | 10        |
|6. Holy    |White      | 20        |
|7. Life 2  |White      | 40        |
|8. Berserk |White      | 80        |
 -----------------------------------

BYTE 1568 (Black Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Bio     |Black      | 01        |
|2. Break   |Black      | 02        |
|3. Drain   |Black      | 04        |
|4. Bolt 2  |Black      | 08        |
|5. Ice 2   |Black      | 10        |
|6. Fire 2  |Black      | 20        |
|7. Toad    |Black      | 40        |
|8. Sleep   |Black      | 80        |
 -----------------------------------

BYTE 1569 (Time/Black Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Slow    |Time       | 01        |
|2. Drag*   |Time       | 02        |
|3. Psych   |Black      | 04        |
|4. Doom    |Black      | 08        |
|5. Flare   |Black      | 10        |
|6. Bolt 3  |Black      | 20        |
|7. Ice 3   |Black      | 40        |
|8. Fire 3  |Black      | 80        |
 -----------------------------------
*Also known as 'Speed' in some versions.

BYTE 156A (Time Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Comet   |Time       | 01        |
|2. Exit    |Time       | 02        |
|3. Stop    |Time       | 04        |
|4. Demi    |Time       | 08        |
|5. Float   |Time       | 10        |
|6. Haste   |Time       | 20        |
|7. Void    |Time       | 40        |
|8. Regen   |Time       | 80        |
 -----------------------------------

BYTE 156B (Time Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. X-Zone  |Time       | 01        |
|2. Quick   |Time       | 02        |
|3. Meteo   |Time       | 04        |
|4. Old     |Time       | 08        |
|5. Haste 2 |Time       | 10        |
|6. Quarter |Time       | 20        |
|7. Reset   |Time       | 40        |
|8. Slow 2  |Time       | 80        |
 -----------------------------------

BYTE 156C (Summon Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Golem   |Summon     | 01        |
|2. Titan   |Summon     | 02        |
|3. Ifrit   |Summon     | 04        |
|4. Ramuh   |Summon     | 08        |
|5. Shiva   |Summon     | 10        |
|6. Remora  |Summon     | 20        |
|7. Sylph   |Summon     | 40        |
|8. Chocobo |Summon     | 80        |
 -----------------------------------

BYTE 156D (Song/Summon Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Power   |Song       | 01        |
|2. Bahamut |Summon     | 02        |
|3. Levia.  |Summon     | 04        |
|4. Phoenix |Summon     | 08        |
|5. Odin    |Summon     | 10        |
|6. Syldra  |Summon     | 20        |
|7. Carbuncl|Summon     | 40        |
|8. Shoat   |Summon     | 80        |
 -----------------------------------

BYTE 156E (Songs)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1.[Nothing]|           | 01        |
|2. Charm   |Song       | 02        |
|3. Love    |Song       | 04        |
|4. Requiem |Song       | 08        |
|5. Heroic  |Song       | 10        |
|6. Magic   |Song       | 20        |
|7. Vitality|Song       | 40        |
|8. Speed   |Song       | 80        |
 -----------------------------------

BYTE 1573 (Blue Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. L2 Old  |Blue       | 01        |
|2. L4Quartr|Blue       | 02        |
|3. L5 Doom |Blue       | 04        |
|4. AquaRake|Blue       | 08        |
|5. Roulette|Blue       | 10        |
|6. Condemn |Blue       | 20        |
|7.[Nothing]|           | 40        |
|8.[Nothing]|           | 80        |
 -----------------------------------

BYTE 1574 (Blue Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Aero    |Blue       | 01        |
|2. DeathClw|Blue       | 02        |
|3. MoonFlt |Blue       | 04        |
|4. TimeSlip|Blue       | 08        |
|5. Flash   |Blue       | 10        |
|6. TinySong|Blue       | 20        |
|7. FrogSong|Blue       | 40        |
|8. L3 Flare|Blue       | 80        |
 -----------------------------------

BYTE 1575 (Blue Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. MndBlast|Blue       | 01        |
|2. Fusion  |Blue       | 02        |
|3. GuardOff|Blue       | 04        |
|4. DrkShock|Blue       | 08        |
|5. GobPunch|Blue       | 10        |
|6. Emission|Blue       | 20        |
|7. Aero 3  |Blue       | 40        |
|8. Aero 2  |Blue       | 80        |
 -----------------------------------

BYTE 1576 (Blue Magic)
 -----------------------------------
|Spells     |Spell Type |Hex Value  |
|-----------|-----------|-----------|
|1. Missle  |Blue       | 01        |
|2. WhiteWnd|Blue       | 02        |
|3. BlowFish|Blue       | 04        |
|4. ????    |Blue       | 08        |
|5. Exploder|Blue       | 10        |
|6. BigGuard|Blue       | 20        |
|7. Hammer  |Blue       | 40        |
|8. Vampire |Blue       | 80        |
 -----------------------------------

And there you are. If you have any questions, or need any help,
feel free to drop me a line at penguin_821@yahoo.com. I only check
my mail about once a week, though, so don't expect a reply fifteen
minutes after you send a message.

---------------
Version History
---------------

Why did I put this at the bottom? Because it's not at the top.

  v1.0 -- First version. I probably won't make any further updates,
          unless mistakes turn up. In the future, though, I may add
          info on editing SRAM files, so that people who aren't using
          ZSNES can still make use of the guide.

-------
Credits
-------

Dark Penguin (myself):
--wrote the guide, did the research, etc.
The folks at RPGe:
--translated FF5, and did a better job than Square, IMHO.
Square:
--They still made the game, though. Gotta give 'em some credit for
  that.
The ZSNES Team:
--Made a GREAT SNES emulator, the best out there.
The Save the Whales Foundation:
--Someone has to save some whales while I'm sitting here writing
  guides for old video games.

----------
Disclaimer
----------

Don't use this guide for anything bad. Don't sell the guide, don't use the
guide commercially, don't steal the guide, don't eat the guide, don't set the
guide on fire, don't print out the guide and use it as birdcage lining, and
don't use the guide to take over the world. Keep out of reach of children, the
elderly, and sixteenth century witches. If guide comes into contact with eyes,
rinse with water and cotton candy. The surgeon general has determined that the
amounts of carcinogenic compounds in the guide are well below
federal standards.

>-End of File-<