Difference between revisions of "Data/Table Locations"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
 
(186 intermediate revisions by 13 users not shown)
Line 1: Line 1:
Here we will put all tables listing data for quick and easy reference, with a link to the table/data contents.
+
:For additional ASM notes and an easier to use version of this data in .txt format, [[https://ffhacktics.com/smf/index.php?action=dlattach;topic=6538.0;attach=11553| download ASM Files]] <-- possibly outdated
  
 +
:If you're just starting ASM, check [[Assembly FAQ|this page]] first, it contains some important assorted information
  
== SCUS RAM ==
+
:For ASM Routines, see [[Routine Locations]]
  
*80037880 - 80037B90 - [[Music Files]]
+
Main Data Locations:
 +
 +
RAM -> File
 +
    0x00F800 -> [[SCUS 942.21 Data Tables]]
 +
    0x067000 -> [[WLDCORE.BIN Data Tables]]
 +
    0x067000 -> [[BATTLE.BIN Data Tables]]
 +
    0x067000 -> [[OPEN.BIN Data Tables]]
 +
    0x0E0000 -> [[WORLD.BIN Data Tables]]
 +
    0x1BF000 -> [[ATTACK.OUT Data Tables]]
 +
    0x1BF000 -> [[REQUIRE.OUT Data Tables]]
 +
    0x1BF000 -> [[OPTION.OUT Data Tables]]
 +
    0x1BF000 -> [[ETC.OUT Data Tables]]
 +
    0x1BF000 -> [[EQUIP.OUT Data Tables]]
 +
    0x1BF000 -> [[CARD.OUT Data Tables]]
 +
    0x1BF000 -> [[BUNIT.OUT Data Tables]]
 +
    0x1DF000 -> [[JOBSTTS.OUT Data Tables]]
 +
    0x1DF000 -> [[HELPMENU.OUT Data Tables]]
 +
    0x1DF000 -> [[SMALL.OUT Data Tables]]
 +
    0x1DF000 -> SP2 + effects + other.
  
*800473ac - [[Customized Options]]
 
  
*800473b0 - [[Default Options]]
+
Controller Inputs
 +
 +
Title Screen: 0x800851BC
 +
Event/Battle: 0x80045944
 +
World Map/Formation: 0x8019A204
 +
 +
  0x8000  Left
 +
  0x4000  Down
 +
  0x2000  Right
 +
  0x1000  Up
 +
  0x0800  Start
 +
  0x0400  R3
 +
  0x0200  L3
 +
  0x0100  Select
 +
  0x0080  Square
 +
  0x0040  Cross (X)
 +
  0x0020  Circle
 +
  0x0010  Triangle
 +
  0x0008  R1
 +
  0x0004  L1
 +
  0x0002  R2
 +
  0x0001  L2
  
*800577b8 - [[Event ID]] (used by Brave Story to load certain events)
+
801612dc - Start of SAMPLE.LZW (should this be above?)
*800577cc - Gil
 
*800577d4 - Month
 
*800577d8 - Day
 
*800577e0 - [[Current Location]]
 
*80057F74 - 80059374 - Unit [[World Stats]]
 
*800577e4 - ENTD Data ID (ENTD to load)
 
*800577e8 - Map ID
 
*800577ec - Number of Teams
 
*800577f0 - Battle Formation ID (for placement)
 
*800578d4 - Storyline Progression
 
*800578d8 - Shop Item Availability
 
*8005791E - [[Activation bytes]]
 
*80057940 - [[Facts]]
 
*80057943 - [[Brave Story Records]]
 
*8005794c - Map location and Path exist flags
 
*80057958 - World Locations colors (0 = red ; 1 = blue/green)
 
*80057966 - Active Rumors
 
*80057970 - Obtained Treasures
 
*80057976 - Unexplored Territory
 
*80057978 - Work History
 
*800579a8 - "Person" data flags
 
*80057b5c - Weapon Page Order (FF = early end; uses Item ID's, 0x8c long)
 
*80057be8 - Helmet Page Order (0x20 long)
 
*80057c08 - Armor Page Order (0x28 long)
 
*80057c30 - Accessory Page Order (0x24 long)
 
*80057c54 - Item Page Order (0x14? long)
 
80057d84 - Save screeen data? (0x18 long, 15 total?)
 
80057f74 - [[World Stats]] (256 bytes each, 20 sections)
 
*80059494 - [[Poached Item Quantities]]
 
  
*800596e0 - Available Item Quantities (same order as item ID's)[Amount owned - amount equipped]
+
ENTD data - Loaded into RAM 0x1dc000 during battle setup
** [[Item Inventory]]
+
 
 +
  0x00 - Base Class / Character ID (Also affects sprites)
 +
  0x01 - "Gender" Byte (ENTD Flags)
 +
    0x80 - Male
 +
    0x40 - Female
 +
    0x20 - Monster
 +
    0x10 - Join After Event
 +
    0x08 - Load as Guest
 +
    0x04 - Has ??? Stats
 +
    0x02 - ?
 +
    0x01 - Join as Guest
 +
  0x02 - Name
 +
  0x03 - Level (over 99 = Party Level + Value - 100)
 +
  0x04 - Birth Month
 +
  0x05 - Birth Day
 +
  0x06 - Brave
 +
  0x07 - Faith
 +
  0x08 - Job Unlocked
 +
0x13 - Mime
 +
0x12 - Dancer
 +
0x11 - Bard
 +
0x10 - Calculator
 +
0x0f - Ninja
 +
0x0e - Samurai
 +
0x0d - Lancer
 +
0x0c - Geomancer
 +
0x0b - Oracle
 +
0x0a - Mediator
 +
0x09 - Thief
 +
0x08 - Summoner
 +
0x07 - Time Mage
 +
0x06 - Wizard
 +
0x05 - Priest
 +
0x04 - Monk
 +
0x03 - Archer
 +
0x02 - Knight
 +
0x01 - Chemist
 +
  0x09 - Job Level
 +
  0x0a - Job ID
 +
  0x0b - Secondary ID
 +
  0x0c - Reaction
 +
  0x0e - Support
 +
  0x10 - Movement
 +
  0x12 - Helmet
 +
  0x13 - Armor
 +
  0x14 - Accessory
 +
  0x15 - RH Equip
 +
  0x16 - LH Equip
 +
  0x17 - Palette
 +
  0x18 - ENTD Flags
 +
0x80 - Always Present
 +
0x40 - Randomly Present
 +
0x20 - Team Bit 1. 0x20 and 0x10 is Light Blue. 0x20 is Green.
 +
0x10 - Team Bit 2. 0x10 is Red. If neither bit, team is Blue.
 +
0x08 - Control
 +
0x04 - Immortal
 +
0x02 - (if both 01 and 02, then immune to knockback)
 +
0x01 - (both set by Ramza when initialized)
 +
  0x19 - X Coordinate
 +
  0x1a - Y Coordinate + Facing/Upper Level Flag
 +
  0x1c - Starting Experience
 +
  0x1d - Primary Skillset
 +
  0x1e - War Trophy
 +
  0x1f - Gil (* 100)
 +
  0x20 - Unit ID
 +
  0x21 - X Position (for AI)
 +
  0x22 - Y Position
 +
  0x23 -
 +
0x40 - Focus on Target in 0x24?
 +
0x20 - Stay near X/Y in 0x21/22? (0x28 = move and stay at position)
 +
0x10 - More aggressive? (when with 40, ONLY target that unit unless healing self)
 +
0x08 - Coward-like? (stay behind X/Y location?)
 +
 
 +
Notes:  0x10 seems to override 0x20
 +
 
 +
0x20 seems to keep it's distance until it can get close enough to you?
 +
 
 +
0x08 will move up to 4 tiles away from the X/Y listed (0/0 = anywhere?)
 +
seems to keep a 10 tile distance, unless an enemy moves within
 +
their 10 tile radius (testing with 3 move archer with bow)
 +
they will not move unless they need to.
 +
 
 +
seem to keep 10 away unless unable to move farther back, then they move
 +
back towards the center of their radius. you can force them out of their
 +
area by moving towards them (but out of their firing range), and continue
 +
to push them out, but the turn after they leave the area they will move
 +
back towards it, even if you are within the 10 tile radius.
 +
 
 +
managed to get a 4 move unit 12 tiles away by moving close to them when
 +
they had a bow... they seem to retreat away from the spot if they can't
 +
get to it and can still attack you (close-range would move to you)
 +
  0x24 - Target Unit ID
 +
  0x25 -  
 +
  0x26 -
 +
0x04 - Save CT (don't move if not needed; also buff before attacking?)?
 +
  0x27 -
  
*800597e0 - Save Times
+
(unsure who added these or what file they're for)
*80059818 - [[Level UP Stat Storing Code Pointers]]
+
80190814 -  
*80059830 - [[Action Status Code Pointers]]
+
80192db0 -  
*8005e90c - [[Raw Unit Data]]
+
80192dc5 -
*8005e93c - [[Base Raw Variances]]
+
801934c2 -
*8005e950 - (0x100 long?)
+
801937d3 -
*8005ea50 - (0x180 long?, 0x40 per section)
+
80193d47 -  
*8005ebd0 - (0x20 long?)
+
801b8da4 -  
*8005ebf0 - [[Ability Data 1]]
+
801b8d4c -
*8005fbf0 - [[Ability Data 2]]
+
801b9134 - ?
80061010 - Item Abilities
 
80061020 - Throw Abilities
 
8006102c - Jump Abilities
 
80061044 - Charge Abilities
 
80061054 - Calculator Abilities
 
8006105c - R/S/M Abilities
 
800610b8 - [[Job Data]]
 
80062eb8 - [[Item Data]] Start
 
80063ab8 - [[Weapon Secondary Data]]
 
80063eb8 - [[Shield Secondary Data]]
 
80063ed8 - [[Helm/Armor Secondary Data]]
 
80063f58 - [[Accessory Secondary Data]]
 
80063f98 - [[Item Secondary Data]]
 
80063fc4 - [[Inflict Statuses]]
 
800642c4 - Item Attributes
 
80064a94 - Skillsets
 
80065bc4 - Monster Skillsets
 
80065cb4 - Action Menus (1 byte for all skillsets)
 
80065de4 - Status Effects
 
*80066064 - [[Poached Item List]] (2 bytes per Job for common and rare items)
 
800660c4 - Job Unlock Requirements (High nybble/low nybble)
 
80066182 - Job Level JP Requirements (some checks start at 66184)
 
80066194 - Job Data Pointer
 
80066198 - Prime Number List
 
800661ce - Month Day Values
 
800661e8 - Zodiac Day Limits
 
80066200 - Start of Battle Flag? (1 = Initialize data?)
 
80066204 - Temp Ability List (used for setting usable abilities)
 
 
 
80066238 - Current ENTD Pointer
 
 
 
800662d0 - Status checks (determined from 0x4/5 of 80065de4 data?)
 
80066308 - Highest Party Level
 
8006fbf0 - Ability Data POinter 2 (loading to skillset?)
 
80093e10 - Ability Animation Flags (0x200 abilities, 3 bytes each)
 
800943e6 - Item Graphic Data (0x7f total?)
 
80094a40 - (start of below? Counter is set to +1 before so it starts at 94a44)
 
80094a44 - Status Flags (for Display? 28 total, 4 bytes each)
 
80094ae4 - Start of some list of palettes
 
80094ba4 - ? Palettes
 
 
 
80096024 - ? (set to 0 after prepping to display earned Exp/JP) (word)
 
 
 
800960e4 - (set to 0x28 after prepping earned Exp/JP) (Word)
 
 
 
800961b4 - Unit's X Coordinate?
 
800961b8 - Unit's Map Level? (0 = base floor, 1 = higher floor)
 
800961bc - Unit's Y Coordinate?
 
 
 
80098a54 - Pointer to last unit's Misc Data?
 
 
 
800995ec - (word)
 
 
 
800995f4 - (14 groups at 0x982 bytes each)
 
800995f5 - 1 = skip setting below data?
 
800995f6 - (Start of some data? 16 sections, 8 bytes each)
 
80099676 - Palette Color Data (16 sect. w/ 16 colors; 7 bytes each color (0x700 total))
 
80099d76 - Stored Unit? Palettes (16 sections, 16 colors, 2 bytes each (0x200 total))
 
800b7308 - Miscellaneous Unit Data - Giant display section (0x440 bytes each)
 
 
 
800B8594 - start of inventory data?
 
800d4578 - amount of days on proposition
 
800d4574 - amount of days on proposition
 
 
 
800e4e9c - Map Max X coordinate
 
800e4ea0 - Map Max Y coordinate
 
800f5e74 - Move-Find Item Data (and Traps)
 
80124604 - Map GNS Data?
 
 
 
 
 
== BATTLE.BIN RAM ==
 
80173f8c - Pointers to Text Data (Mod below / 0x200 + 173f8c)
 
80174060 - Displayed Skillsets (act Menu)
 
 
 
*8017429c - Reaction effect table (jump and return address stored as a word)
 
8018f600: Zodiac Compatability Modifiers
 
 
 
*8018f610 - Formula table (jump and return address stored as a word)
 
**[[Formula Table]]
 
 
 
8018f8cc - Tile Data Start
 
 
 
*801908cc - 80192BCC - Unit ID * 0x1c0 for specific location, 20 units in total
 
**[[Battle Stats]]
 
 
 
80192d8c - Attacker Current Action Data Pointer
 
80192d90 - Target Current Action Data Pointer
 
80192d94 - Attacker's Data Pointer
 
80192d98 - Target Data Pointer
 
 
 
80192d9c - Current move data table? used by AI only
 
801938bc - Start of action data table, set only when unit is targetted
 
8019f3c4 - Start of AI data?
 
801A0BF0 - AI Decision Data?
 
801b63f0 - Ability Effect (2 bytes each, 0x1c6 total)
 
801b677c - Event Effects (2 bytes each, 0x25 total)
 

Latest revision as of 06:09, 23 September 2024

For additional ASM notes and an easier to use version of this data in .txt format, [download ASM Files] <-- possibly outdated
If you're just starting ASM, check this page first, it contains some important assorted information
For ASM Routines, see Routine Locations
Main Data Locations:

RAM -> File
   0x00F800 -> SCUS 942.21 Data Tables
   0x067000 -> WLDCORE.BIN Data Tables
   0x067000 -> BATTLE.BIN Data Tables
   0x067000 -> OPEN.BIN Data Tables
   0x0E0000 -> WORLD.BIN Data Tables
   0x1BF000 -> ATTACK.OUT Data Tables
   0x1BF000 -> REQUIRE.OUT Data Tables
   0x1BF000 -> OPTION.OUT Data Tables
   0x1BF000 -> ETC.OUT Data Tables
   0x1BF000 -> EQUIP.OUT Data Tables
   0x1BF000 -> CARD.OUT Data Tables
   0x1BF000 -> BUNIT.OUT Data Tables
   0x1DF000 -> JOBSTTS.OUT Data Tables
   0x1DF000 -> HELPMENU.OUT Data Tables
   0x1DF000 -> SMALL.OUT Data Tables
   0x1DF000 -> SP2 + effects + other.


Controller Inputs

Title Screen: 0x800851BC
Event/Battle: 0x80045944
World Map/Formation: 0x8019A204

  0x8000  Left
  0x4000  Down
  0x2000  Right
  0x1000  Up
  0x0800  Start
  0x0400  R3
  0x0200  L3
  0x0100  Select
  0x0080  Square
  0x0040  Cross (X)
  0x0020  Circle
  0x0010  Triangle
  0x0008  R1
  0x0004  L1
  0x0002  R2
  0x0001  L2
801612dc - Start of SAMPLE.LZW (should this be above?)
ENTD data - Loaded into RAM 0x1dc000 during battle setup
 
  0x00 - Base Class / Character ID (Also affects sprites)
  0x01 - "Gender" Byte (ENTD Flags)
   0x80 - Male
   0x40 - Female
   0x20 - Monster
   0x10 - Join After Event
   0x08 - Load as Guest
   0x04 - Has ??? Stats
   0x02 - ?
   0x01 - Join as Guest
  0x02 - Name
  0x03 - Level (over 99 = Party Level + Value - 100)
  0x04 - Birth Month
  0x05 - Birth Day
  0x06 - Brave
  0x07 - Faith
  0x08 - Job Unlocked
	0x13 - Mime
	0x12 - Dancer
	0x11 - Bard
	0x10 - Calculator
	0x0f - Ninja
	0x0e - Samurai
	0x0d - Lancer
	0x0c - Geomancer
	0x0b - Oracle
	0x0a - Mediator
	0x09 - Thief
	0x08 - Summoner
	0x07 - Time Mage
	0x06 - Wizard
	0x05 - Priest
	0x04 - Monk
	0x03 - Archer
	0x02 - Knight
	0x01 - Chemist
  0x09 - Job Level
  0x0a - Job ID
  0x0b - Secondary ID
  0x0c - Reaction
  0x0e - Support
  0x10 - Movement
  0x12 - Helmet
  0x13 - Armor
  0x14 - Accessory
  0x15 - RH Equip
  0x16 - LH Equip
  0x17 - Palette
  0x18 - ENTD Flags
	0x80 - Always Present
	0x40 - Randomly Present
	0x20 - Team Bit 1. 0x20 and 0x10 is Light Blue. 0x20 is Green.
	0x10 - Team Bit 2. 0x10 is Red. If neither bit, team is Blue.
	0x08 - Control
	0x04 - Immortal
	0x02 - (if both 01 and 02, then immune to knockback)
	0x01 - (both set by Ramza when initialized)
  0x19 - X Coordinate
  0x1a - Y Coordinate + Facing/Upper Level Flag
  0x1c - Starting Experience
  0x1d - Primary Skillset
  0x1e - War Trophy
  0x1f - Gil (* 100)
  0x20 - Unit ID
  0x21 - X Position (for AI)
  0x22 - Y Position
  0x23 - 
	0x40 - Focus on Target in 0x24?
	0x20 - Stay near X/Y in 0x21/22? (0x28 = move and stay at position)
	0x10 - More aggressive? (when with 40, ONLY target that unit unless healing self)
	0x08 - Coward-like? (stay behind X/Y location?)
 
	Notes:  0x10 seems to override 0x20
 
		0x20 seems to keep it's distance until it can get close enough to you?
 
		0x08 will move up to 4 tiles away from the X/Y listed (0/0 = anywhere?)
			seems to keep a 10 tile distance, unless an enemy moves within
			their 10 tile radius (testing with 3 move archer with bow)
			they will not move unless they need to.
 
		seem to keep 10 away unless unable to move farther back, then they move
		back towards the center of their radius. you can force them out of their
		area by moving towards them (but out of their firing range), and continue
		to push them out, but the turn after they leave the area they will move
		back towards it, even if you are within the 10 tile radius.
 
		managed to get a 4 move unit 12 tiles away by moving close to them when
		they had a bow... they seem to retreat away from the spot if they can't
		get to it and can still attack you (close-range would move to you)
  0x24 - Target Unit ID
  0x25 - 
  0x26 - 
	0x04 - Save CT (don't move if not needed; also buff before attacking?)?
  0x27 -
(unsure who added these or what file they're for)
80190814 - 
80192db0 - 
80192dc5 -
801934c2 -
801937d3 -
80193d47 - 
801b8da4 - 
801b8d4c -
801b9134 - ?