Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

Final Fantasy III (NES)/ROM map

From Data Crystal
< Final Fantasy III (NES)
Revision as of 04:48, 25 November 2014 by Kea (talk | contribs) (Starting the page off. Feel free to add to/correct this as needed.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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


Monsters

  • $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 (read big-endian)
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

Miscellaneous

  • $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.