Deprecated: Function get_magic_quotes_gpc() is deprecated in /home2/jludwig/public_html/finalfantasy/hacking/textpattern/lib/constants.php on line 29
Final Fantasy GBA Hacking Notes: Bestiary
JeffLudwig.com
GOG.com

Bestiary

Final Fantasy 1— Bestiary

As with other lists, before I get into defining monster characteristics, I will list out the monsters in Final Fantasy 1, in ID order. This is the order that they are listed in the Bestiary. The Bestiary # and the monster IDs below are not related.

0×00 Goblin Goblin Guard Wolf Warg Wolf
0×04 Werewolf Winterwolf Lizard Fire Lizard
0×08 Basilisk Hill Gigas Ice Gigas Fire Gigas
0×0c Sahagin Sahagin Chief Sahagin Prince Pirate
0×10 Buccaneer Shark White Shark Bigeyes
0×14 Deepeyes Skeleton Bloodblones Gigas Worm
0×18 Crawler Hyenadon Hellhound Ogre
0×1c Ogre Chief Ogre Mage Cobra Anaconda
0×20 Sea Snake Scorpion Sea Scorpion Minotaur
0×24 Minotaur Zombie Troll Sea Troll Shadow
0×28 Wraith Specter Ghost Zombie
0×2c Ghoul Ghast Wight Purple Worm
0×30 Sand Worm Lava Worm Evil Eye Death Eye
0×34 Medusa Earth Medusa Weretiger Rakshasa
0×38 Ankheg Remorazz Lesser Tiger Sabertooth
0×3c Vampire Vampire Lord Gargoyle Horned Devil
0×40 Earth Elemental Fire Elemental White Dragon Red Dragon
0×44 Dragon Zombie Green Slime Grey Ooze Ochre Jelly
0×48 Black Flan Black Widow Tarantula Manticore
0×4c Sphinx Baretta Desert Baretta Mummy
0×50 King Mummy Cockatrice Pyrolisk Wyvern
0×54 Wyrm Allosaurus Tyrannosaur Pirahna
0×58 Red Pirahna Crocodile White Croc Ochu
0×5c Neochu Hydra Fire Hydra Guardian
0×60 Soldier Water Elemental Air Elemental Water Naga
0×64 Spirit Naga Chimera Rhyos Piscodemon
0×68 Mindflayer Garland Green Dragon Blue Dragon
0×6c Clay Golem Stone Golem Iron Golem Black Knight
0×70 Death Knight Astos Dark Wizard Dark Fighter
0×74 Crazy Horse Nightmare Death Machine Lich
0×78 Lich (Chaos) Marilith Marilith (Chaos) Kraken
0×7c Kraken (Chaos) Tiamat Tiamat (Chaos) CHAOS
0×80 Echidna Cerberus Ahriman 2-Headed Dragon
0×84 Scarmiglione (cloaked) Scarmiglione (undead) Cagnazzo Barbariccia
0×88 Rubicante Gilgamesh Omega Shin Ryuu
0×8c Atomos Typhon Orthros Phantom Train
0×90 Death Gaze Devil Wizard Abyss Worm Elm Gigas
0×94 Flare Gigas Unicorn Yellow Ogre Mad Ogre
0×98 Mage Chimera Yellow Dragon Holy Dragon Mythril Golem
0×9c Killer Shark Death Manticore Blood Tiger Dark Eye
0xa0 Bloody Eye Flood Gigas Poison Eagle Black Goblin
0xa4 Knocker Desert Pede Gloom Widow Duel Knight
0xa8 Squidkraken Pharoah Bonesnatch Silver Dragon
0xac Black Dragon Blue Troll Earth Troll Poison Naga
0xb0 Earth Plant Yamatano Orochi Dark Elemental Devil Hound
0xb4 Sekhret Catoblepas Hundlegs Undergrounder
0xb8 Death Elemental Wild Nakk Dark Wolf Rock Gargoyle
0xbc Sahagin Queen Reaper Python Skuldier
0xc0 Red Flan Prototype Revenant  

Bestiary data

Table location: There are four separate instances of the FF1 bestiary stored in the ROM. You’ll need to edit all four to make intelligible changes to the monsters.

  • 0×1de0440×1df8a3.
  • 0×223f4c0×2257ab.
  • 0×2270540×2288b3.
  • 0×22a8800×22c0df.

Data structure size: 32 bytes per monster.

This means that each table is 0×1860 bytes in size. With a good hex editor, you can change one table, copy it, and paste that table over the others.

Examples, showing bytes 1 to 16

Monster Exp. Gil HP Cowardice AI byte Evasion Defense # of hits Hit Rate Attack Agility Intellect Luck
Goblin 0600 0600 0800 6a ff 06 04 01 02 04 03 01 01
Warg Wolf 5d00 1600 4800 6c ff 36 00 01 12 0e 1b 03 01
Werewolf 8700 4300 4400 78 ff 2a 06 01 11 0e 15 08 01
Death Machine 007d 007d d007 c8 20 60 50 02 c8 80 30 32 01
Minotaur e901 e901 a400 7c ff 30 04 02 29 16 18 08 01

Examples, showing bytes 17 to 32

Monster Cond? Inflict Family Magic Def. Weakness Resist Item drop Drop % Zeroes
Goblin 00 00 00 04 10 00 00 00 00 00 00 00 00 00 00 00
Warg Wolf 00 00 00 00 2e 00 00 00 00 00 01 0b 04 00 00 00
Werewolf 02 01 04 91 2D 00 00 00 00 00 00 00 00 00 00 00
Death Machine 00 00 00 80 c8 00 00 00 fb 3f 03 1b 05 00 00 00
Minotaur 00 00 00 00 5f 00 00 00 00 00 02 02 06 00 00 00

Decoding various bytes of information

The Cowardice byte

I’m not exactly sure exactly how this byte works, but it has a definite effect on the threshold when a monster runs from the party. The higher the value, the more powerful the party needs to be for it to run, and the less likely it is to run.

The AI byte

This byte is the ID of the AI entry from which the monster will pick its special attacks. See an explanation of the AI table here.

Cond?

I do not know what effect these values have, but they seem to be non-zero when a monster has a condition inflict bound to their physical attack.

Inflict

This byte controls which condition or conditions might be inflicted in the event of a successful physical attack. The Werewolf is illustrative here:

0 0 0 0 0 1 0 0
Confuse Mute Sleep Stun Blind Poison Stone Kill

Family

The 8 bits that make up this byte specify which families this monster is a member of. Let’s look at the Werewolf.

91 = 1 0 0 1   0 0 0 1
  Regenerating Magical Aquatic Lycanthrope   Undead Giant Dragon Evil

The Werewolf regenerates, and is a Lycanthrope, as well as Evil. It’s important to note that “Regenerating” is both a property as well as a Family designation… if this bit is set, the monster will regain about 5% of its maximum HP every turn.

Weakness and Resist bytes

The Weakness and Resist bytes follow the same bit pattern. This also is the same bit pattern as found in the Weapons structure and the Armor structure. To illustrate these bytes, let’s take a look at the Death Machine’s Resist bytes:

Byte 1— fb = 1 1 1 1   1 0 1 1
  Quake Lightning Ice Fire   Death Time Stone Stun
Byte 2— 3f = 0 0 1 1   1 1 1 1
  —- —- Mind Confuse   Silence Sleep Blind Poison

So we see that the only attack that a Death Machine does not resist outright are Time-based attacks (Stop spell, for instance).

Item Drop and Drop %

The first Item Drop byte specifies the item type that will be dropped. A 0×01 denotes a consumable item, a 0×02 signifies a weapon, and a 0×03 references an armor.

The second Item Drop byte specifies the ID of the item from the correct table. Therefore an Item Drop combo of 02 03 would drop a Staff (ID 0×03 from the Weapon table.

The Drop % byte, predictably, is the percentage chance for the specified item to drop. Each individual monster has a chance to drop an item, and you can receive more than one item in a single battle.

ludmeister

Date published: 2011-12-15

Leave a comment ->

  1. Pls how to change the rarity of the monster?

    — Mlmtm · Jul 1, 06:57 PM · #

  2. — xd · Nov 7, 01:58 PM · #