Final Fantasy Legend Save State Hacking Guide
by mafafu (mafafu (at) hotmail (dot) com)

Specifically listing offsets for SMYGB Emulator
"Easily" modified for use with your favorite emulator

Copyright Information
Copyright 2004 mafafu

This file may be freely distributed as long as it remains unchanged and it is
not used for profit (yeah, right). That is all.

Version Information
Version 1.0: Original Creation June 13, 2004

This is a savestate hacking guide for the game Final Fantasy Legend for the
original Gameboy, published by Square/SquareSoft. This was the first RPG that
really grabbed me, so it's a bit nostalgic. Just for old time's sake, I felt
like playing it. I was interested after seeing the GameFAQs for the other FFLs
to see that there was no savestate guide for the first FFL. So, I set about
making it here. Included are the offsets for charcater information including
HP, name, stats, and items/powers. Also listed are the byte values for items
and powers.

In order to hack a savestate, you need a hex editor and a bit of know-how
that you will not find here. If you're trying to hack a savestate, then you
probably already know how to do this. Otherwise, check out the intro to the
save state hacking guide for Final Fantasy Legend 2 by Thundergod at GameFAQs.

These offsets are using SMYGB Emulator savestates. Other emulators will create
save states differently and will not work with the offsets listed here.
However, the item list below will still be correct regardless of emulator. See
below for compatility issues for other emulators.

Just as a warning, make sure to back up your save states before editing. These
offsets will work for SMYGB. The savestate file type is .mgb

SMYGB .sav issue with FFL1
I had a slight problem when running FFL with SMYGB. It seemed to incorrectly
generate a .sav file upon program completion. It caused the emulator to crash
on the next load of FFL. Simply deleting the FFL.sav file fixed the problem. I
just had to do this each time before playing.

Compatibility with other Emulators
It is unlikely that other emulators will have the exact same offsets listed
here. I may later add offsets for BGB, but it is not to hard to figure out
where they are. The most tedious part was determining what the object bytes
were. That part will remain the same regardless of the emulator used.

So, simply take note of, say, your hit points (covert this to hex) and what
your weapon is and how many uses it has left (convert this to hex). Look up
you weapon below for the hex value. Then use a hex editor to search for the
hex value of the weapon, followed by the hex value for the number of uses
left. You should likely only find one instance (make sure though). Now this
is the offset for the character you are working with and you should see that
the rest of the inventory is near this data. Now you should also see your hit
points hex value near by. Play with the data until you get the desired effect
and remember to make backups.

I have tried hard to put only correct information, but mistakes happen. I may
have gone cross-eyed staring at the hex editor. If you see an error here, 
please email me at the address above.

Offsets in .MGB save files
Numeric data stored in multiple bytes is done so in reverse byte order.

Items/Powers are stored in two bytes. The first is the hex value of the item/
power listed in the table below. The second value is the number of uses. The
value FE is used to denote infinite uses.

I'm not sure what the encoding is for the names. It's not ASCII.

First Character Offsets
Name: 56635-56638
Race/Sex: 56639
Current HP: 5663A-5663B
Maximum HP: 5663C-5663D
Strength: 5663F
Defense : 56640
Agility : 56641
Mana    : 56642

Items/Powers offset: 
First Byte: 56643 
Last Byte : 56652

Second Character Offsets
Name: 56654-56657
Race/Sex: 56658
Current HP: 56659-5665A
Maximum HP: 5663B-5663C
Strength: 5665E
Defense : 5665F
Agility : 56660
Mana    : 56661

Items/Powers offset: 
First Byte: 56662 
Last Byte : 56671

Third Character Offsets
Name: 56673-56676
Race/Sex: 56677
Current HP: 56678-56679
Maximum HP: 5667A-5667B
Strength: 5667D
Defense : 5667E
Agility : 5667F
Mana    : 56680

Items/Powers offset: 
First Byte: 56681 
Last Byte : 56690

Fourth Character Offsets
Name: 56692-56695
Race/Sex: 56696
Current HP: 56697-56698
Maximum HP: 56699-5669A
Strength: 5669C
Defense : 5669D
Agility : 5669E
Mana    : 5669F

Items/Powers offset: 
First Byte: 566A0 
Last Byte : 566AF

Inventory Offsets
First byte: 566B0
Last byte : 566BF

Gold Offset
I couldn't seem to find the gold offset. If anyone happens to find it, feel
free to email me and I will add it and credit you.

Race/Sex/Monster Encodings
Listed are the encoding for the Humans and Mutants. You can edit this value to
change your race and monster type. However, this will not really change
anything. For instance, if you change the encoding for the weak monster Lizard
to Athalot, you will not gain the abilities of the Athalot. Therefore, it is
not necessary to list the full monster encodings here as all that will change
is the character picture and character type text description.

AD: Human Male
AE: Human Female
B3: Mutant Male
B4: Mutant Female

Item/Powers Byte List
IMPORTANT: If you want to hack in armor, you need to add it to your inventory,
then equip in the game. The game will not give the armor bonuses when you hack
in the armor. Furthermore, it subtracts the stats of the armor from your stats
when you remove the armor. That should be obvious in normal play, but it will
also happen here. So, if you leave your stats alone, then add some armor to a
character, you will not get any stat bonus. When you remove the armor your
stats will go down. This can also create a glitch, because it may subtract
more from the stat than you really have. This will cause your stat to be well
above 99 (it still reads as 99 however).

Names are reproduced with the same spelling as those in the game with comments
in parentheses.

Some objects are listed more than once because the game uses multiple entries
for powers with different numbers of uses.

NOTE:"o" is used to denote the circle used in resistances
NOTE:"x" is used to denote the cross used in weaknesses
NOTE: -BLANK- is used to denote an entry that does not correspond to a game
object. FF is listed as -NULLDATA- because the game seems to use FF to denote
an empty object. They are included simply for completeness.

00: Potion
01: XPotion
02: Cure Book
03: Rod
04: Needle
05: Symbol
06: Eyedrop
07: Revive
08: Elixir
09: Heart (the symbol, i.e. the item to allows another revive)
0A: Arcane
0B: Door
0C: Strong
0D: Agility
0E: HP200
0F: HP400
10: HP600
11: King Sword
12: King Armor
13: King Shield
14: Airseed
15: Red Orb
16: BlueOrb
17: Erase99
18: BlueKey
19: JailKey
1A: WhitKey
1B: Rock
1C: Light
1D: Repent
1E: Rom
1F: Board
20: Hammer
21: Long Sword
22: Axe
23: Battle Sword
24: Katana Sword
25: Silver Sword
26: Coral Sword
27: Ogre Sword
28: Dragon Sword
29: Sun Sword
2A: Flame Sword
2B: Ice Sword
2C: Elec Sword
2D: Rapier
2E: Sabre
2F: L-Sabre
30: CatCraw
31: P-Knife
32: P-Sword
33: Revenge
34: Vampic Sword
35: Defend Sword
36: Rune Sword
37: Xclbr Sword
38: Glass Sword
39: Masmune
3A: Bow
3B: Long Bow
3C: Gr. Bow
3D: Colt
3E: Musket
3F: Magnum
40: Whip
41: E-Whip
42: Saw
43: SMG
44: Grenade
45: Bazooka
46: Balkan
47: Missile
48: N. Bomb
49: Laser
4A: Hyper
4B: Bronze Shield
4C: Gold Shield
4D: Silver Shield
4E: Flame Shield
4F: Ice Shield
50: Dragon Shield
51: Aezis Shield
52: Bronze Helm
53: Gold Helm
54: Silver Helm
55: Army Helm
56: Band Helm
57: Dragon Helm
58: Bronze Armor
59: Gold Armor
5A: Silver Armor
5B: Dragon Armor
5C: Suit Armor
5D: Arthur Armor
5E: Bronze Gauntlet
5F: Gold Gauntlet
60: Silver Gauntlet
61: Giant Gauntlet
62: Ninja Gauntlet
63: Hermes Shoe
64: Geta Shoe
65: Shoe (blank name)
66: Power Armor
67: Wand
68: Staff
69: Book
6A: Fire Book
6B: Ice Book
6C: Elec Book
6D: Fog Book
6E: Flare Book
6F: Sleep Book
70: Stone Book
71: Death Book
72: Punch
73: Kick
74: Butt
75: X-Kick
76: Judo
77: Karate
78: Tempter
79: Counter
7A: Antdote
7B: Bell
7C: Pan
7D: Shocker
7E: Left
7F: Right
80: Honey
81: Cure
82: Heal
83: Revive
84: Care
85: Raise
86: Telepor
87: Head
88: Nose
89: Pincher
8A: Beak
8B: Punch
8C: Bite
8D: Fin
8E: Bone
8F: Sword
90: Hari-Te
91: Bash
92: Saw
93: 2Pincer
94: 4Heads
95: Nail
96: 8Legs
97: 2Tusks
98: 4Horns
99: 2Swords
9A: 6Arms
9B: Poison
9C: Poison
9D: Tusk
9E: P-Fangs
9F: Strict
A0: Petrify
A1: D-Fangs
A2: Sl-Gaze
A3: Sleep
A4: Blind
A5: Flash
A6: Ink
A7: Horn
A8: Gaze
A9: Gaze
AA: Riddle
AB: Sing
AC: Tail
AD: Gaze
AE: Gaze
AF: Drain
B0: Stench
B1: Sand
B2: Tremble
B3: Electro
B4: Bother
B5: Web
B6: Touch
B7: Kiss
B8: Kick
B9: Flame
BA: Ice
BB: Thunder
BC: Gas
BD: Acid
BE: Squirt
BF: Quake
C0: Tornado
C1: Acid
C2: Whirl
C3: Steal
C4: Tentacl
C5: D-Beam
C6: Fire
C7: Ice
C8: Elec
C9: Flare
CA: Stop
CB: Sleep
CC: Axe
CD: S-Skin
CE: P-Skin
CF: P-Skin
D0: Burning
D1: oFire
D2: oIce
D3: oElec
D4: oPoison
D5: oStone
D6: oPara
D7: oWeapon
D8: oQuake
D9: Explode
DA: oChange
DB: oDamage
DC: Stone
DD: oIce/Wp
DE: oAll
DF: xFire
E0: xElec
E1: xIce
E2: Shell
E3: Shell
E4: Drink
E5: Chill
E6: Pollen
E7: Rocket
E8: Beam
E9: Melt
EA: Sphere
EB: Mirror
EC: Kinesis
ED: P-Blast
EE: Leech
EF: Uncurse
F1: Hypnos
F2: Barrier
F3: Mirror
F4: Power
F5: Armor
F6: Gaze
F7: 3Heads
F9: Stealth
FA: Warning
FB: Forseen

Thanks indirectly go to Thundergod. After using his hacking guide for FFL2,
I decided to make this one for FFL.