Final Fantasy III (NES)/ROM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
Line 2: Line 2:
== Class and Character Data ==
== Class and Character Data ==
* $69B31 to $69B88 - Commands each class can use in battle, four bytes per class
* $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:
* $72010 to $720BF - Base stat data for all classes, 8 bytes per class:
Line 9: Line 58:
   0x8: Base MP bonus. Probably an index to a table.
   0x8: Base MP bonus. Probably an index to a table.


Order of classes is:
Class list by order:
  Onion Kid/Fighter/Monk/Black Mage/White Mage/Red Mage
 
  Hunter/Knight/Thief/Scholar
  $72010  88 00 05 05 05 05 05 00 Onion K
  Geomancer/Dragoon/Viking/Karateka/M.Knight/Conjurer/Bard
  $72018  79 00 0A 0A 05 02 03 00  Fighter
  Warlock/Shaman/Summoner/Sage/Ninja
  $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.
* $720C0 to $721E5 - Experience needed for each level, 3 bytes per level.

Revision as of 12:34, 2 November 2015

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.