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×1de044 — 0×1df8a3.
- 0×223f4c — 0×2257ab.
- 0×227054 — 0×2288b3.
- 0×22a880 — 0×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.
Pls how to change the rarity of the monster?
— Mlmtm · Jul 1, 06:57 PM · #
— xd · Nov 7, 01:58 PM · #