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
Jump to navigation Jump to search

Class and Character Data

  • $69B31 to $69B88 - Commands each class can use in battle, four bytes per class

Values for each command:

 04 Attack
 05 Defend
 06 Run
 07 Escape
 08 Jump
 0C Peep
 0D Scan
 14 Item
 15 Magic
 0E Steal
 0B Terrain
 08 Jump
 0F Build Up
 10 Sing
 11 Scare
 12 Cheer

There are no more commands. Putting other values will show garbled text, that will most probably crash the game. You can give commands from one class to another, and they will even get Class Experience, although; curiously enough, they will get a different ammount of exp than the original job in most cases.

Also, to use Sing you need an harp; but you can use Attack with an harp too, making that command somewhat obsolete.

The order of the classes:

 Onion K	04 05 06 14	 $69B31 	
 Fighter	04 05 06 14	 $69B35 		
 Monk		04 05 06 14 	 $69B39		
 WhiteMage  	04 15 06 14 	 $69B3D 		
 BlackMage	04 15 06 14	 $69B41	 	
 Red    	04 15 06 14 	 $69B45 	 	
 Hunter         04 05 15 14 	 $69B49 		
 Knight         04 05 06 14 	 $69B4D	
 Thief	        04 0E 07 14	 $69B51	 	
 Scholar	04 0C 0D 14 	 $69B55              
 Geomancer	04 0B 05 14 	 $69B59		
 Dragoon	04 08 05 14	 $69B5D 		
 Viking         04 05 06 14	 $69B61 	
 BlackBelt	04 0F 05 14 	 $69B65	 	
 M.Knight 	04 05 15 14 	 $69B69 		
 Conjurer	04 15 06 14	 $69B69 		 
 Bard    	10 11 12 14 	 $69B71          
 Warlock 	04 15 06 14	 $69B75 	
 Devout  	04 15 06 14 	 $69B79 	
 Summon  	04 15 06 14 	 $69B7D 
 Sage		04 15 06 14 	 $69B81 
 Ninja		04 05 06 14 	 $69B85 


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

Class list by order:

 $72010  88 00 05 05 05 05 05 00  Onion K
 $72018  79 00 0A 0A 05 02 03 00  Fighter
 $72020  77 00 0A 0A 07 01 02 00  Monk
 $72028  99 00 05 06 04 05 0A 01  White Mage
 $72030  97 00 05 07 03 0A 05 01  Black Mage	
 $72038  8A 00 06 07 05 06 06 02  Red Mage
 $72040  7B 09 05 14 05 05 05 03  Hunter
 $72048  8C 09 0A 0A 0A 03 07 00  Knight
 $72050  75 09 0A 0F 09 05 01 00  Thief
 $72060  A4 0E 0A 0A 0A 14 05 00  Scholar
 $72068  5B 0E 14 0A 0A 05 0A 00  Geomancer
 $72070  55 0E 0F 0A 14 05 05 00  Dragoon
 $72078  28 0E 17 0A 14 01 01 00  Viking
 $72080  82 0E 14 14 0A 02 03 03  Black Belt
 $72088  D8 0E 0A 0A 05 0F 0F 04  Mystic / Magic Knight
 $72090  BB 0E 05 0F 0F 0A 0A 00  Conjurer
 $72098  C4 1D 0A 0F 0A 1E 05 05  Bard
 $720A0  CC 1D 0F 0A 0F 05 19 06  Warlock / Magus
 $720A8  F0 1D 14 0F 0A 05 0F 0F  Shaman  / Devout
 $720B0  FF 27 0F 14 0F 19 19 08  Sage
 $720B8  00 27 19 19 14 0F 0F 09  Ninja
	

Base MP Values: There are 8 levels of Magic, each one has it's own points. Each chass has one value pointing to one of these groups (Not all of them, there are a few weird ones).

 00 Nothing, 0 MP for all levels
 01  8 Lvl 1 
 02  4 Lvl 1 
 03  4 Lvl 1 
 04  2 Lvl 1
 05 10 Lvl 1 /  9 Lvl 2 /  8 Lvl 3 /  7 Lvl 4 /  6 Lvl 5 /  5 Lvl 6 /  4 Lvl 7 /  3 Lvl 8
 06 10 Lvl 1 /  9 Lvl 2 /  8 Lvl 3 /  7 Lvl 4 /  6 Lvl 5 /  5 Lvl 6 /  4 Lvl 7 /  3 Lvl 8
 07  4 Lvl 1 /  3 Lvl 2 /  2 Lvl 3 /  1 Lvl 4
 08 20 Lvl 1 / 15 Lvl 2 / 10 Lvl 3 /  5 Lvl 4 /  4 Lvl 5 /  3 Lvl 6 /  2 Lvl 7 /  1 Lvl 8
 0A 32 Lvl 1 /  1 Lvl 2 /  5 Lvl 5 /  1 Lvl 6 /  1 Lvl 8 
 0B 86 Lvl 1 /  8 Lvl 2 
 11 13 Lvl 4 / 13 Lvl 5 / 13 Lvl 6 /  8 Lvl 7 / 13 Lvl8
 14 32 Lvl 4 / 32 Lvl 5 / 32 Lvl 6 / 32 Lvl 7 / 32 Lvl 8 
 15 32 Lvl 3
 1A  7 Lvl 5 /  7 Lvl 7
 1B 13 Lvl 1 / 45 Lvl 2 / 45 Lvl 3 / 45 Lvl 4 / 45 Lvl 5 /  6 Lvl 6 /  6 Lvl 7 /  6 Lvl 8
 1C  8 Lvl 1 /  8 Lvl 2 /  8 Lvl 3 /  9 Lvl 6 /  9 Lvl 5 /  9 Lvl 6 /  9 Lvl 7 /  8 Lvl 8
 1D  8 Lvl 1 /  8 Lvl 2 /  8 Lvl 4 / 10 Lvl 5 / 10 Lvl 6 / 10 Lvl 7 / 10 Lvl 8 
 1E 40 Lvl 1 / 40 Lvl 2 / 32 Lvl 3 / 40 Lvl 4 / 16 Lvl 5 / 16 Lvl 6 / 16 Lvl 7 / 16 Lvl 8 
 1F 17 Lvl 1 / 17 Lvl 2 / 17 Lvl 3 / 17 Lvl 4 / 17 Lvl 5 / 17 Lvl 6 / 17 Lvl 7 / 78 Lvl 8

After that they are pretty messy. The offset for these start at $73B98. This will add a certain number of MP to a class. As it's the base MP it will not increase. So if you give a Knight a value of 5 PM Level 1, that character will always have 5 PM (Unless you modify that class' MP gains).


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