Final Fantasy III:ROM map
From Data Crystal
Class and Character Data
- $69B31 to $69B88 - Commands each class can use in battle, four bytes per class
- $72010 to $720BF - Base stat data for all classes, 8 bytes per class:
0x0: Unknown (affects CP cost to change to this class) 0x1: Level needed to change to this job 0x2-0x6: Base stats (Strength-Agility-Vitality-Intelligence-Spirit) 0x8: Base MP bonus. Probably an index to a table.
Order of classes is: Onion Kid/Fighter/Monk/Black Mage/White Mage/Red Mage Hunter/Knight/Thief/Scholar Geomancer/Dragoon/Viking/Karateka/M.Knight/Conjurer/Bard Warlock/Shaman/Summoner/Sage/Ninja
- $720C0 to $721E5 - Experience needed for each level, 3 bytes per level.
- $721E6 to $732BD - Stat table for level-ups, determining which stats raise on every level for each class.
There are two bytes per level; the first determines the increase of physical stats using a bitfield: 0x80 - Strength 0x40 - Agility 0x20 - Vitality 0x10 - Intelligence 0x08 - Spirit 0x04-0x01: Amount to increase stat(s) by The second byte determines which spell levels increase using a bitfield system, one bit for each of the 8 levels. The order of classes is the same as the base stat table.
- $73BE8 to $73BE9 - Starting HP of the four characters
- $73C00 to $73C06 - Starting equipment (armor/weapons) of the four characters:
0x1,0x2,0x03: Helmet,Armor,Glove, respectively 0x04,0x06: Items in right and left hand, respectively 0x05,0x06: Quantity of items in right and left hand (for arrows etc)
- $73C07 to $73C0E - Starting magic of the four characters (empty by default), one byte for each magic level.
Weapons, Armor, Magic
- $910 to $A0F - Weapon/Armor/Magic usability table; 3 bytes for each entry, with one bit for each of the 22 classes.
Determines which classes can use which equipment. Many entries are empty or unused ingame.
- $21E10 - Price for each item in the game, two bytes per item; sorted by item ID.
- $56F00 - Sprite data for weapons during battle
- $5D0A8 - Sprite and palette that every weapon uses in battle, ordered by weapon ID; three bytes per weapon:
0x0: Animation (Sword slash, bow&arrow,etc...) 0x1: Weapon sprite used 0x2: Palette used
- $61410 to $616CF - Weapon Combat stats, 8 bytes per weapon:
0x0: Weapon Element 0x1: Hit% (max 100% by default) 0x2: Attack 0x3: Status added on successful hit 0x4: Magic cast when used/back row OK 0x5: Special properties (for Onion Sword, Shuriken, arrows) 0x6: Stat bonuses/elemental boosts 0x8: Class usability index
- $616D0 to $618CF - Armor combat stats, 8 bytes per piece:
0x0: Elemental resistance 0x1: Evade bonus 0x2: Defence 0x3: Status resistance 0x4: Magic Defence 0x5: (Always zero) 0x6: Stat bonuses/Elemental boosts 0x7: Class usability index (bit 0x80 always set for armor)
- $618D0 to $61A8F - Black/White magic data, 8 bytes per spell; sorted in descending order of spell level:
0x0: Spell Element 0x1: Hit% (max 100% by default) 0x2: Spell Power 0x3: Spell Type (damage, status setting, percent-based damage,etc) 0x4: Target status needed? (eg Life spell only works on dead targets) 0x5: Targeting,reflectability? 0x6: Unknown 0x7: Class usability index
- $61A90 to $61B4F? - Monster and item magic data
- $61B50 to $61BA7? - Geomaner's Terrain magic
- $61BA8 to $61C67 - Summon magic; sorted in ascending order of spell level
- $21A90 - Monster Steal/drop data?
- $21C90 - Table of exp value pointers, one for each monster; each entry is a two-byte pointer to data at:
- $21D90 - Table of XP values
- $60010 to $60E7F - Monster combat data, 16 bytes per enemy:
0x0: Level 0x1-0x2: HP 0x3: AI pointer index 0x4: Skill 0x5: Elemental weakness(es) 0x6: Magic Evade/Magic Defense index 0x7: Intelligence 0x8: Attack element 0x9: Attack/Hit/Attack multipler index 0xA: Status applied on successful attack 0xB: Elemental absorption? 0xC: Defense/Evade index 0xD: Elemental resistance? 0xE: Special Attack index 0xF: Steal/Drop index
- $61010 - Combined table for monster attack/hit, defence/evade and Magic Defence/evade/, three bytes per entry. Indexed to in monster attack data
0x0: Attack/Evade/M.Evade multiplier 0x1: Hit/Evade/M.Evade % 0x2: Attack/Defense/M.Defense
- $A10 - Map connections; determines which entrances lead to which map (sprites not included).
- $3C10 to ? - Contents of all chests in the game, in no particular order
- $30810 - Text pointer for item/magic/enemy names
- $30D70 - Start of text data
- $3CC3A - Start of text data for items, magic and enemies
- $58010 to $5894F - pointers to, among other things, shop inventory data
- $62C46,4A - Maximum base Hit% for attacks
- $61C68 - Gold given by every enemy, two bytes per enemy
- $7CDE0 - Player's movement speed in towns and dungeons. Higher values than 2 cause screen glitches.