BATTLE.BIN Data Tables
Jump to navigation
Jump to search
80067000 - List of return addresses (0x794 lines or 0x1e4 addresses)
80067830 - (unlabelled?)
80067838 - Pointers for Numerical Display Color Code (0xd1 pointers) 80067b80 - Pointers for Display Type Code (SP/CT/Br/Fa/PA/MA) 80067bac - ? (0x2a long) 80067bd8 - ?2 80067c04 - ?3 80067c30 - ?4 80067c5c - ?5 80067c88 - ?6
80067cb8 - return address list based on post-action display type (exp,jp, etc.) (for 0x51 display types) 80067e60 - Whoosh sounds? 80067e98 - return address list based on weapon type/direction (0x1dc in misc data) sets attackers animation 800680dc - Map and direction related flags? stores horizontal/vertical flip flags, facing mod and generic walking anim for current map rotation per facing angle 0x00 - South facing horizontal/vertical flip flags 0x02 - West facing horizontal/vertical flip flags 0x04 - North facing horizontal/vertical flip flags 0x06 - East facing horizontal/vertical flip flags 0x08 - South facing mod 0x0a - West facing mod 0x0c - North facing mod 0x0e - East facing mod 0x30 - south facing walking animation 0x38 - West facing walking animation 0x40 - North facing walking animation 0x48 - East facing walking animation 800682cc - Color Modification Code Pointers
800942ab -
80093d08 - Display Type (page?) 0x00 - HP Damage 0x01 - HP Healing 0x02 - MP Damage 0x03 - MP Healing 0x04 - SP Damage 0x05 - SP Bonus 0x06 - CT Damage 0x07 - CT Bonus 0x08 - Brave Damage 0x09 - Brave Bonus 0x0a - Faith Damage 0x0b - Faith Bonus 0x0c - PA Damage 0x0d - PA Bonus 0x0e - MA Damage 0x0f - MA Bonus 80093d18 - Status ID's for Display Type Bytes: 0x00 - 0x01 - Crystal 0x02 - Dead 0x03 - Undead 0x04 - Charging 0x05 - Jump 0x06 - Defending 0x07 - Performing 0x08 - Petrify 0x09 - Invite 0x0a - Darkness 0x0b - Confusion 0x0c - Silence 0x0d - Blood Suck 0x0e - Cursed 0x0f - Treasure 0x10 - Oil 0x11 - Float 0x12 - Reraise 0x13 - Transparent 0x14 - Berserk 0x15 - Chicken 0x16 - Frog 0x17 - Critical 0x18 - Poison 0x19 - Regen 0x1a - Protect 0x1b - Shell 0x1c - Haste 0x1d - Slow 0x1e - Stop 0x1f - Wall 0x20 - Faith 0x21 - Innocent 0x22 - Charm 0x23 - Sleep 0x24 - Don't Move 0x25 - Don't Act 0x26 - Reflect 0x27 - Death Sentence IDs: 0x00 - Dead? 0x01 - Undead 0x02 - Petrify 0x03 - Invite 0x04 - Darkness 0x05 - Confusion 0x06 - Silence 0x07 - Blood Suck 0x08 - Oil 0x09 - Float 0x0a - Reraise 0x0b - Transparent 0x0c - Berserk 0x0d - Poison 0x0e - Regen 0x0f - Protect 0x10 - Shell 0x11 - Haste 0x12 - Slow 0x13 - Stop 0x14 - Faith 0x15 - Innocent 0x16 - Charm 0x17 - Sleep 0x18 - Don't Move 0x19 - Don't Act 0x1a - Reflect 0x1b - Death Sentence
(probably to go in SEQ & Animation info page and SHP & Graphic info page?)
Weapon Sounds (0x00 = item type 0x01 - knife) 80093d40 - Weapon Whoosh 80093d60 - Weapon Hit 80093d80 - Shield Deflection 80093de8 - Ability Animation number 80093e10 - Ability Animation Flags (0x1C6 abilities, 3 bytes each) (Doesn't include all 0x200 because Support and Movement abilities are not included) 0x00 - Flags 1 0x01 - Flags 2 (Monster Animations) 0x02 - Flags 3 0x00094364 - Weapon Change of Animation (multiplied by 2 (+1 if camera is behind the unit) to get true animation - applied to unit when attacking Fists: 3d 3e 3f Daggers: 40 41 42 Ninja Blades: 40 41 42 Swords: 40 41 42 Knight Swords: 40 41 42 Katana: 40 41 42 Axes: 40 41 42 Rods: 40 41 42 Staffs: 40 41 42 Fails: 40 41 42 Guns: 50 51 52 Crossbows: 53 54 55 Bows: 53 54 55 Instruments: 57 57 57 Dictionaries: 56 56 56 Polearms: 4d 4e 4f Poles: 4d 4e 4f Bags: 77 78 79 Cloths: 77 78 79 All other item types exist, but the animations are set to 0. 800943e4 - Item Graphic Data (0x7f total?) 0x00 - Palettes 0xF0 - WEP1 Palette 0x0F - WEP2 Palette 0x01 - Graphic ID (multiple of 2) 80094508 - halves, based on number of sprite sections 8009453c - Unit raw size measurements? all words. contains many possible raw size combinations (for the record, these are all *8 to get the true graphic size.) 800946c8 - weapon/effect raw size measurements? all words, with only a byte of data each. this is just inefficient. 80094748 - Spritesheet Data (4 bytes each, 0x9f total) 0x00 - SHP ID 0x00 - Type 1 0x01 - Type 2 0x02 - Cyoko 0x03 - Mon 0x04 - 0x05 - Ruka 0x06 - Arute 0x07 - Kanzen 0x01 - SEQ ID 0x00 - Type 1 0x01 - Type 2 0x02 - Cyoko 0x03 - Mon 0x04 - 0x05 - Ruka 0x06 - Arute 0x07 - Kanzen 0x02 - Flying Flag 0x03 - Graphic height
800949c4 - emergency fall back frame (facing camera) 0x00 - Type 1 = 0x0b 0x01 - Type 2 = 0x0b 0x02 - Cyoko = 0x02 0x03 - Mon = 0x02 0x04 - ??? = 0x01 0x05 - Ruka = 0x02 0x06 - Arute = 0x01 0x07 - Kanzen = 0x01 0x08-0x0c - 0x00 800949d0 - emergency fall back frame (facing away from camera) 0x00 - Type 1 = 0x10 0x01 - Type 2 = 0x10 0x02 - Cyoko = 0x04 0x03 - Mon = 0x04 0x04 - ??? = 0x06 0x05 - Ruka = 0x04 0x06 - Arute = 0x0a 0x07 - Kanzen = 0x0a 0x08-0x0c - 0x00 8009612c - Weapon being sheathed? 2 if not, 0 if so (word). 1 appears to be dummied? 800962f4 - Data for spritesheets? (0x688 each, 5 sections - up to Ruka sheets) SHP (I forget what this is about...) 0x00 - start of Type 1 0x688 - start of type 2 0xD10 - start of Cyoko 0x1398 - start of Mon 0x1a20 - start of Ruka 8009839c - end of above data 800a1c84 - Unit Animations start. loaded in ENTD order
800a69d0 - Weapon Animations start. 800a839c - some pointer for Ruka and above spritesheets? 800bdf0c - SHP data (I investigated this, can't recall what it was for.) 0x00-0x3c - 0x40-0 - SHP pointers (words) 0x840- SEQ Animation command pointers (words)
800bfa38 - SEQ Unit animation command pointers (words)
800c1260 - Type 1 SHP 800c5e8e - WEP 1 SHP 0x00 - Number of graphics to load (0x07) & pointer to weapon rotation (0xf8) 0x01 - Weapon's Eff rotation bytes 0x01 - transparent (even if not flipped on, this is set true anyway when saving.) 0x02 - flip horizontally 0x04 - flip vertically 0x08 - ? 0x20 - ? 0x40 - ? 0x02 - X shift (I'd assume relative to the unit. useful for pole thrusting) 0x03 - Y shift 0x04 - Graphic size pointer (0x3c00), Raw X pixel offset (0x001f), Raw Y pixel offset (0x03e0). (halfword) 800c0e58 - ARUTE/KANZEN SEQ data 800cfa30 - SEQ data (0x408 each, 5 sections 0x00 0x408 0x810 0xc18 0x1020
800949dc - X coordinates to load status bubble icons (KO stars, AT icon also), starts with KO stars: 22 bytes long 800949f4 - Y coordinates to load status bubble icons (KO stars, AT icon also), starts with KO stars: 22 bytes long
80094a0c - X coordinates to load death counter numbers 80094a24 - Y coordinate to load death counter numbers 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)
800960c0 -
800960c4 -
800960cc - set to 04 in map zoom routine 800960d0 - Map Zoom 0x04 - Zoomed out 0x01 - Zoomed In
800960d4 - controller input for map tilt?
800960d8 - Map Tilt 0x02 - Steep 0x01 - Flat 800960dc - cleared before setting next control script
800960e4 - (set to 0x28 after prepping earned Exp/JP) (Word) set to 0x2b after prepping ability effect? Type of display - Has something to do with what display function is happening 0x2b - ability Effect 0x29 - Action being taken? 0x28 - Exp/JP 0x1b - Action confirmation 0x19 - Targeting, Target selected 0x18 - Select within firing range 0x17 - Targeting, no target selected 0x16 - Specify target with cursor message (pre-targeting) / Can't execute action, no targets from panel 0x14 - Specify Direction for wait message 0x13 - Selecting direction for wait 0x08 - AT / Unit list / Options 0x04 - All menus + status screen 0x00 - Moving around battleground with cursor (Free cursor)
800960e8 - value of 800960e4 stored here
(page for scattered battle data? stuff like, stored ID, AT list, just to keep it all in one place?) 800960f0 - Set to 1 when status is selected in main battle menu 800960f8 800960fc
80096100 - AT List ID (used to determine which data to load from the AT list) 80096104 - Map ID
80096110 - cleared in ability effect routines
80096118 - Casting units ID? (mimic?), ability CT resolution 8009611c - Casting units Misc ID? 800961b4 - Cursor X Coordinate (Cursor) 800961b8 - Cursor Map Level (0 = base floor, 1 = higher floor) 800961bc - Cursor Y Coordinate (Cursor) 800961c0 - Timer Counter for cursor repeat speed
80096200 - learned ability (learn on hit)? 80096204 - post action display phase 80096208 - Move find item/trap/move-stat up results for display 0x01 - treasure chest item? 0x02 - move XX up activation? 0x04 - item found 0x08 - trap 0x10 - remove charging? 0x20 - move hp up 0x40 - move MP up 0x80 - move exp up 0x0100 - move jp up
0x0400 - status changes
8009620c - trap to display? 80096210 - Item to display 80096214 - Action Phase 0x00 - pre-action 0x01 - acting unit's action 0x02 - reacting unit's action 0x03 - post-action
8009621C - Unit misc ID when selected by cursor
80096220 - Target/Attacker Tile pointer 80096224 - Target/Attacker Tile Pointer
80096244 - unit number? 80096248 - units action data 0x08 long?, 0x0b sections? 0x00 -0x28 - speed change 0x01 - unit ID
8009624c - item to break
800962f4
(stuff for display) 800962d4 - HP Damage 800962d6 - HP Healing 800962d8 - MP Damage 800962da - MP Healing 800962dc - SP Damage 800962de - SP Bonus 800962e0 - CT Damage 800962e2 - CT Bonus 800962e4 - Brave Damage 800962e6 - Brave Bonus 800962e8 - Faith Damage 800962ea - Faith Bonus 800962ec - PA Damage 800962ee - PA Bonus 800962f0 - MA Damage 800962f2 - MA Bonus
80098a24 - Rotation matrix elements (0x13 long, word each) 80098a38 - Translation vectors (3 words) 0x00 trx 0x04 try 0x08 trz 80098a54 - Some units Misc Data Pointer
80098a54 - Pointer to last unit's Misc Data?
80098d84 - Type of action (mimic / ability CT resolution) 0x0100 - active turn? 0x0200 - ability CT resolution 0x0300 - crystal/treasure?
80098db8 - ?? cleared after post action
80098dbc - some effect address
80098d70 - points to available scratchpad address Calculate_Available_RAM_Address; for effect data?
80098dcc - numerical display data
80098dd4 - numerical display data?
800995ec - (word)
800995f4 - (14 groups at 0x982 bytes each) set 4 = Unit (team?) Palettes? 800995f5 - 1 = skip setting below data? 800995f6 - (16 sections, 8 bytes each) 0x00 - (1 = active?) 0x01 - 0x02 - 0x03 - (set to PV2 in 0x8f710) 0x04 - (set to 0 if PV = 10 in 0x8f710) 0x05 - Red Mod (for what changed the below section) 0x06 - Green Mod 0x07 - Blue Mod 80099676 - Palette Color Mod Data (16 sect. w/ 16 colors; 7 bytes each color (0x700 total)) 0x00 - Red Value 0x01 - Green Value 0x02 - Blue Value 0x03 - Alpha Flag 0x04 - Modified Red? (0x1f if total of RGB = 0) 0x05 - Modified Green? 0x06 - Modified Blue? 80099d76 - Raw Palettes (16 sections, 16 colors, 2 bytes each (0x200 total))
8009b27c - list of some misc data
800a7784 - Map Tilt 0x2e - flatter 0xc0 - steeper 800a7786 - Map Rotation (half) 0x0002 0x0006 0x000a 0x000e
(page for this nonsense?) 800a7790 - word loaded to coprocessor 2 register: gtedr00_vxy0 800a7794 - word loaded to coprocessor 2 register: gtedr00_vz0 800a7798 - word loaded to coprocessor 2 register: gtedr01_vxy1 800a779c - word loaded to coprocessor 2 register: gtedr01_vz1 800a77a0 - word loaded to coprocessor 2 register: gtedr02_vxy2 800a77a4 - word loaded to coprocessor 2 register: gtedr02_vz2 before rtpt
800a77a8 - word loaded to coprocessor 2 register: gtedr00_vxy0 800a77ac - word loaded to coprocessor 2 register: gtedr00_vz0 before rtps
800b9eb4 - gtecr31_flag 800b9f14 -
800bb704 - start of some data
800bcbf4 - start of some data
800bd8cc - data sent back from GPU?
800bd8e4 - data sent back from GPU - gtedr14_sxy2
800b6294
8015327c - Pointer to thread array (WORLD.BIN) (0x80195cd0)
800b6698 - word, deals with palette modification (useful in a map related page?) 0x00 0x01 0x02 0x03 - 0x02 - skips stormy weather palette mod? (ignore weather mod) 0x01 - skips time of day palette mod? (Snow weather mod) 8016986c - Thread array (Each thread data block is 0x400 = 1024 bytes, and includes its own stack); 16 entries total 0x00 - Thread function parameter 1 0x04 - Thread function parameter 2 0x08 - Thread function parameter 3 0x0c - ? (Set to 0 when thread is initialized) 0x10 - 0x2c: Saved register values for this thread ($s0 - $s7) 0x30 - 0x34: Kernal register values for this thread ($k0 - $k1) 0x38 - Global pointer for this thread ($gp) 0x3c - Stack pointer for this thread ($sp) 0x40 - Frame pointer for this thread ($fp) 0x44 - Address of first command for this thread to run upon being started or resumed ($ra) 0x48 - IsRunning value (boolean; True (1) if thread is currently active/running, false (0) if not) 0x4c - Task ID (Matches those listed in WaitForInstruction event command) 0x50 - 0x68: ? (Set to 0 when thread is initialized) 0x6c and beyond: Stack for this thread; ~900 bytes available
80173e68 - ? changes with different message displayed (execute action, select target, etc.) 0x04 in memory changes 50 29 03 0c - nothing displayed - free cursor (targeting) 1c(or 98) bb 16 0c - normal menu/act menu 3c bb 16 0c - specify the target with cursor, press 0 to select, or specify move, panel/unit follow option b8 bb 16 0c - execute action?
80174038 - Currently running thread ID (i.e. which thread has the CPU right now)
800b7308 - Miscellaneous Unit Data (0x440 bytes each) (PAGE FOR THIS!!!) 0x000 - Pointer to previous unit's misc data (00000000 means this is the first) 0x004 - Unit Misc ID? 0x005 - Spritesheet VRAM slot 0x006 - Spritesheet ID 0x007 - Stored Palette? (Xif) 0x008 - ? (less than 31 skips Unit ID check?) (halfword) incremented on ability display 0x00a - set to 1 when using ability 0x00c (half) -Change of animation (set when changing animation) animation = unit animation(see video in important links) + 01 0x0e - (half) - VRAM Spritesheet ID? 0x14 - First Unit Spritesheet 0x1c - Last Unit Spritesheet 0x1e - Wep sheet? item.bin? 0x1f - Frame.bin 0x3f - Item.bin 0x10 - (half) - VRAM palette ID 0x012 - sprite display bytes 0x80 - no notable effect 0x40 - if transparent, the unit is darkened considerably. 0x20 - if transparent, the unit is lit up considerably. 0x10 - no notable effect 0x08 - no notable effect 0x04 - flip sprite vertically (lol when would you need this) 0x02 - flip sprite horizontally 0x01 - transparent sprite
0x018 - X Mod * 4096 0x01c - Height Mod * 4096 0x020 - Y Mod * 4096 0x038 - half, initialized to 0x2000 special movement flags? -----These values used to create vectors for effects processing 0x040 - X Mod (X * 28 + some value) - X Location on screen 0x042 - Height Mod (negative) - Z Location on screen 0x044 - Y Mod (Y * 28 + some value) - Y Location on Screen
0x050 - X ?(halfword) 0x052 - Height? ?(halfword) 0x054 - Y ?(halfword) 0x060 - X ?(halfword) 0x062 - Height? ?(halfword) 0x064 - Y ?(halfword) ----- 0x070 - Current Facing? (/ 0x400 = facing) 0xc00 - Facing East 0x800 - Facing North 0x400 - Facing West 0x000 - Facing South 0x072 - Attack Facing? (FFFF = no facing change; this is the facing after attack) NOTE: Counter sets 0x72 to 0x70, 0x70 gets changed to facing towards attacker, then 0x70 is set back to 0x72 and 0x72 set to FFFF (end) 0x074 - (gets added to depth * 12 before subtracting from height)(halfword) 0x076 - (added to final height value)(halfword)(if riding) 0x7a -
0x07c - Unit's X Coordinate initialized to ENTD (current location?) 0x07d - Unit's Y Coordinate 0x07e - Unit's Map Level (0 = Floor 1, 1 = Floor 2) 0x07f - Unit's offset from normal position on tile? (e.g. When moving, how far off the center of the tile the unit is as it moves to the next tile)?
first to be changed 0x080 - Unit's X Coordinate (While moving) 0x081 - Unit's Y Coordinate (While moving) 0x082 - Unit's Map Level + flags (While moving) (with 0x83 byte) 0x083 - Motion Flags 0x10 - Float 0x20 - Currently dragoon jumping upward (not set on way down (removed after set)) 0x084 - Unit's X Coordinate (Previous Location?) (saved location until move confirmed) 0x085 - Unit's Y Coordinate 0x86 - Units map level
0x98 - Number of tiles moved so far in current movement //cleared when knocked back 0x9c - Number of tiles in movement? //List of tiles to move to? 0x9d - 0x9d + (Number at 0x9c) - 1: 0x00 = Move east 0x40 = Move west 0x80 = Move south 0xc0 = Move north 0x20 flag = Higher Elevation 0x01 to 0x11 = Number of tiles to jump over // Not sure about these... 0x9d - Unit's X Coordinate (Current location?) 0x9e - Unit's Y Coordinate 0x9f - Unit's Map Level 0x11b - (allows 0x9d flags to get 0x10 to set 0x11e, if != 0) only ever saw this variable set to 0, so it may not work 0x11c - (some flags stored to 0x9621c, stored here from 0x9d list) // (Current movement value?) 0x11e - 0x18a Unit ID + 1 (not sure what unit though) 0x11f - Previous 0x11e 0x120 - Position relative to the camera, unsure which one is which direction though. 2 halfwords at 0x120, another at 0x128.
0x12c 0x130 - Mount/Rider Value 0x00 = N/A 0x01 = Riding 0x131 0x02 = Mount for 0x131 0x131 - Mount/Rider ID 0x132 - Previous Mount/Rider Value? 0x133 - Previous Mount/Rider ID? 0x134 - Pointer to Unit's Data
0x138 - Used Ability ID 0x13a - used Item/Weapon ID 0x13b - Equipped weapon type (determines unit animation) 0x13c - set to 0 when ability CT resolves / mimic ability used 0x13d - ENTD flags from Unit data 0x13e - (skips 0x822bc code if != 0)(byte) - modified palette byte 0x13f - (byte)
0x140 - Status Flags 1 0x80 - Confusion 0x40 - Sleep 0x20 - Petrify 0x10 - Stop 0x08 - Critical 0x04 - Dead 0x02 - (disabled if 0x130 = 1) 0x01 - 0x141 - Status Flags 2 0x80 - Faith 0x40 - Berserk 0x20 - Cursed 0x10 - Haste 0x08 - Slow 0x04 - Defending 0x02 - Charging 0x01 - Performing 0x142 - Status Flags 3 0x80 - Oil 0x40 - Poison 0x20 - Protect 0x10 - Shell 0x08 - Don't Act 0x04 - Don't Move 0x02 - Blood Suck 0x01 - Innocent 0x143 - Status Flags 4 0x80 - (Originally Reflect?) 0x40 - Undead 0x20 - Regen 0x10 - Reraise 0x08 - Darkness 0x04 - Death Sentence 0x02 - Silence 0x01 - Charm 0x144 - Status Flags 5 (word) 0x80 - Poached 0x40 - Jump 0x20 - Float 0x10 - Transparent 0x08 - Treasure (Enabling only) 0x04 - Frog 0x02 - Chicken/Crystal (removal only) 0x01 - Crystal 0x145 - Status Flags 6 0x80 - 0x40 - 0x20 - 0x10 - 0x08 - 0x04 - 0x02 - 0x01 - Morbol virus'd NOTE: Unused, Invite, Wall and Reflect aren't set 0x148 - Statuses to Add 1 0x14c - Statuses to Add 5 0x150 - Statuses to Remove 1 0x154 - Statuses to Remove 5
0x158 - 2 = AI Error? (word) 0x16e - in Unit Data: 0x15c - Target ID 0x15d - Skillset used ID 0x15e - Ability used ID 0x160 - Calculator type abiltiy ID 0x162 - Calculator Multiplier abiltiy ID 0x164 - used Item ID 0x165 - 0x166 - reaction ID? 0x05 - Tile-Specific Ability? 0x06 - Target-Specific Ability? 0x167 - Target ID? 0x168 - X target panel coordinate (half) 0x16a - Target map level 0x16c - Y target panel coordinate
0x16e - 0x180 in unit data 0x16f - 0x181 in unit data
0x174 - ability range? (return value from 0x17a8c0 0x17c - some word checked before action phase routines
0x180 - (word) 0xff if target ID = 0xff skips movement stuff if 0
0x184 - X Coordinate to move to?
0x186 - (byte)
0x188 - Y Coordinate to move to?
Current action data? 0x18c - Reaction ID / Attacking unit ID? - Used Ability ID 0x18d - Limit for 0x18e data (Targets Hit Counter) 0x18e - Target list - Ends when 0xff is reached 0x00 - Target unit ID? 0x19e/0x12 - set to 1 when animate on miss is not true, cleared when units are hit 0x19f/0x13 - control value 0x01 - math skill 0x1a0/0x14 - last attack used ID (half) 0x1a2/0x16 - ability formula? can poach? 0x1a3/0x17 - ?? control value? set to 1 if reaction occurred 0x1a4/0x18 - Continue attack byte? 0x01 - continue 0x00 - end 0x1a5/0x19 - Current Hit number 0x1a6/0x1a - reaction ID? 0x1a7/0x1b - 0x1a8/0x1c - target new X coordinate 0x1a9/0x1d - Target new Y coordinate(for post action knockback?) 0x1aa/0x1e - target map level 0x1ab/0x1f - used weapon ID 0x1ac/0x20 - 0x1ad/0x21 - 0x1ae/0x22 - can poach flag? 0x1af - can earn experience 0x1b0 - Earned Experience (For Display?) 0x1b1 - Earned JP 0x1b2 - Level (For Level UP! event?) 0x1b3 - Job Level (stored if level changed) 0x1b4 - ? (byte) 0x1b5 - 0x1b7 - Inflicted/Removed Status Counter (max of 0x1b) 0x1b8 - Display Flags 1 0x80 - CT Bonus 0x40 - CT Damage 0x20 - SP Bonus 0x10 - SP Damage 0x08 - MP Healing 0x04 - MP Damage 0x02 - HP Healing 0x01 - HP Damage 0x1b9 - Display Flags 2 0x80 - MA Bonus 0x40 - MA Damage 0x20 - PA Bonus 0x10 - PA Damage 0x08 - Faith Bonus 0x04 - Faith Damage 0x02 - Brave Bonus 0x01 - Brave Damage 0x1ba - Display Flags 3 0x80 - "Guarded" 0x40 - "Missed!" 0x20 - "CT0" 0x10 - "Quick" 0x08 - "Broken" 0x04 - "Stolen" 0x02 - +"1Lv." 0x01 - -"1Lv." 0x1bb - Display Flags 4 0x20 - "No MP" 0x10 - "Silenced" 0x08 - "No Target" 0x04 - Gained JP 0x02 - Gained Exp 0x01 - "Caught" 0x1bc - End of Inflicted/Removed Status ID List (0x1b long, counts backwards) 0x80 - Removal Flag
0x01d8 - Unit Sprite Data 0x1d8 - Graphic trigger 0x1da - 0x1dc - Current animation (halfword) 0x1de - frame command byte counter (unit) 0x1e0 - Frame 0x1e2 - Wait time (in frames) 0x1e4 - Loop counter 0x1e6 - Unit animation 0x1ea - Slow down amount 0x1ec - Frame offset (jarring) 0x1ee - Wait command: frames left to wait 0x1f0 - rotation bytes 0x01 - transparent 0x02 - Flip horizontally 0x04 - flip vertically 0x1f4 - SHP Data Pointer 0x1f8 - SEQ Data Pointer 0x1fc - SHP Data Pointer 0x200 - SEQ Data Pointer 0x204 - Sprite Display Section Pointer in Misc Data 0x208 - WEP Sprite Data? (0x362) (seems to be 'current' weapon animation data.) 0x208 - Graphic trigger (1 is on screen, 0 is not on screen) 0x20a - Graphic type (1 = Weapon, 2 = Effect) (Halfword) 0x20c - Weapon Animation (Halfword) 0x20e - frame command byte counter (weapon) (Halfword) 0x210 - Frame (Halfword) 0x212 - amount of frames to stay unmoving 0x214 - loop counter 0x216 - Weapon animation (saved) 0x21a - Frame Delay (halfword) 0x21c - Another Frame offset? math works out in favour of making 1 here look like a low strike. 0x21e - Frame offset 0x220 - Rotation bytes 0x01 - transparent 0x02 - Flip horizontally 0x04 - flip vertically
0x224 - SHP Data pointer (Word) 0x228 - SEQ Data pointer (Word) 0x22c - ? Display data pointer (with the 3 bytes of info and 1 byte of padding. Word)
0x238 - EFF Sprite Data? (0x3e6) 0x238 - graphic trigger? 0x23a - graphic type? (1 = weapon, 2 = effect) (halfword) 0x23d - effect animation (halfword) 0x23e - frame command byte counter (effect) (Halfword) 0x240 - Frame? (Halfword)= 0x242 - Frame + Frame delay + frame command byte (halfword) 0x244 - 0x246 - Effect animation? 0x24a - Frame delay (basically always 0) (halfword) 0x24c - Effect rotation? (halfword) 0x24e - Wait command: Frames left to wait 0x220 - Rotation bytes 0x01 - transparent 0x02 - Flip horizontally 0x04 - flip vertically 0x254 - SHP Data pointer? 0x258 - SEQ Data pointer? 0x25c - ? Display data pointer(?) 0x268 - Numerical Display Data? (0x3aa) 0x298 - Shadow (0x3ce) 0x2bc - Activation flag for Numerical Display/Status text ~ 0x2be - Display Type 0x0200 - (uses 0x18e list?) 0x0100 - "No MP" 0x00f0 - "Silenced" 0x00e0 - "No Target" 0x00d0 - "CT0" 0x00c0 - "Quick" 0x00b0 - "Broken" 0x00a0 - "Stolen" 0x0090 - +"1Lv." 0x0080 - -"1Lv." 0x0070 - Status Removal 0x0060 - Status Infliction 0x0050 - Gained JP 0x0040 - Gained Exp 0x0030 - "Caught" 0x0020 - "Guarded" 0x0010 - "Missed!" 0x000f - MA Bonus 0x000e - MA Damage 0x000d - PA Bonus 0x000c - PA Damage 0x000b - Faith Bonus 0x000a - Faith Damage 0x0009 - Brave Bonus 0x0008 - Brave Damage 0x0007 - CT Bonus 0x0006 - CT Damage 0x0005 - SP Bonus 0x0004 - SP Damage 0x0003 - MP Healing 0x0002 - MP Damage 0x0001 - HP Healing 0x0000 - HP Damage ` 0x2c0 - Number to Display (JP/EXP/HP/MP/CT/SP/PA/MA/Br/Fa) NOTE: the way they go about doing it is messy; you could get the same result by dividing by 10 each pass through a loop (with the limit = # of digits to display), storing the remainder as the digit, and sending the remaining value through the next pass.
0x2c2 - Display Type (set to 0 if 0x2bc = 0, capped at 0x15; gets 0x45980 added to it) (some frame/animation thing? used for loading 0x67bac data) 0x2c4 - Numerical Display Pointer 1 0x2c8 - Numerical Display Pointer 2 0x2cc - Numerical Display Pointer 3 0x2d0 - something with display for item abilities? 0x2d8 - Item/Equip Display Pointer
0x2dc - Activation byte for Status Bubble 0x2dd - Which status bubble to show 0x2de - X location of status bubble 0x2df - Y location of status bubble 0x2e0 - Timer (word) 0x2e4 - ? Pointer to 0x410 data - Status Bubble 0x2e8 - Unused Section
*Display*
0x31c - Sprite Display Section (8 graphical sections) (0x46 each) - Main Sprite 0x00 - Red Shading 0x01 - Green Shading 0x02 - Blue Shading 0x03 - number of graphics to be loaded 0x04 - VRAM Spritesheet ID 0x00 - Map 0x01 - Map? 0x02 - Map? 0x03 - Map? (had height) (upper right screen) 0x04 - active unit SPR2? EVTCHR1? 0x05 - Formation screen (active unit SPR3 +? EVTCHR2?) 0x06 - Last loaded Menus 0x07 - unit billboard 0x08 - Wep2, Wep3 0x09 - Wep1 0x0a - some background 0x0b - frog/chicken/crystals 0x0c - none 0x0d - some checkerboard with fonts? 0x0e - checkerboard with fronts + random stuff 0x0f - more checkerboard + random 0x10 - 0x13 - maps again 0x14 - First Unit Spritesheet 0x1c - Global Portrait list? 0x1d - in battle portraits + random spritesheet stuff 0x1e - Wep sheet? item.bin? 0x1f - Frame.bin 0x3f - Item.bin 0x80 - some flag 0x40 - ?? 0x20 - some flag, does nothing? 0x06 - VRAM Palette ID 0x08 - X Size (stretches sprite to this size) 0x0a - Y Size (stretches sprite to this size) 0x0c - upper bit, Spin on Y axis (direction sprite is facing) 0x0d - lower bit, Spin on Y axis (direction sprite is facing) Sprite data (duplicate occurances per graphic loaded for this sprite) 0x0e - X Shift on screen 0x0f - Y Shift on screen 0x10 - Image Width 0x11 - Image Height 0x12 - X Load Location from spritesheet 0x13 - Y Load Location 0x14 - x/y reverse and VRAM flags 0x80 - only hard-set flag? if error computing size of graphic 0x40 - related to which SPR is loaded? set based on frame ID being loaded 0x20 - related to which SPR is loaded? set based on frame ID being loaded 0x10 - 0x08 - 0x04 - vertical flip 0x02 - horizontal flip 0x01 - transparent
0x362 - WEP1 Display Data 0x362 + 0x00 - Red shading 0x01 - Green shading 0x02 - Blue shading 0x03 - how many graphics to load 0x04 - VRAM Spritesheet ID and some other nonsense (halfword) 0x06 - VRAM Palette ID and some other nonsense (Halfword) 0x08 - image stretch (horizontal, halfword but only the lower byte is considered) 0x0a - image stretch (vertical, and ditto) 0x0c - spin on Y axis? (halfword) 0x0e - X shift 0x0f - Y shift Graphic data (duplicated per weapon graphic loaded) 0x10 - Image Width 0x11 - Image Height 0x12 - X Load location (In pixels) 0x13 - Y Load location (In Pixels) 0x14 - VRAM flags? 0x1 - 0x2 - 0x4 - 0x8 - 0x386 - EFF Display data 0x362 + 0x00 - Red shading 0x01 - Green shading 0x02 - Blue shading 0x03 - how many graphics to load 0x04 - VRAM Spritesheet ID and some other nonsense (halfword) 0x06 - VRAM Palette ID and some other nonsense (Halfword) 0x08 - image stretch (horizontal, halfword but only the lower byte is considered) 0x0a - image stretch (vertical, and ditto) 0x0c - spin on Y axis? (halfword) 0x0e - X shift 0x0f - Y shift Graphic data (duplicated per effect graphic loaded) 0x10 - Image Width 0x11 - Image Height 0x12 - X Load location (In pixels) 0x13 - Y Load location (In Pixels) 0x14 - VRAM flags 0x1 - 0x2 - 0x4 - 0x8 - 0x3aa - ? Display (3 Sprite Data Sections, plus 1 byte padding?) 0x3ce - Numerical Display Section 1 (these have 1 Sprite Data section) (0x16 bytes each) 0x00 - Red 0x01 - Green 0x02 - Blue 0x03 - Image type 0x04 - VRam Spritesheet ID 0x05 - 0x06 - half - initialized to 0x10 in misc data + 0x0100 0x08 - X stretch (half) 0x0a - Y stretch (half) 0x14 - initialized to 0 (VRAM flags?) 0x3e4 - Numerical Display Section 2 0x00 - X Shift 0x01 - Y Shift 0x02 - Image Width 0x03 - Image Height 0x04 - X Load Location 0x05 - Y Load Loaction (2 bytes?) 0x3fa - Numerical Display Section 3 0x00 - X Shift 0x01 - Y Shift 0x02 - Image Width 0x03 - Image Height 0x04 - X Load Location 0x05 - Y Load Loaction (2 bytes?) 0x410 - Status Text/Bubbles Display Section (1 Sprite Data Section) 0x00 - Red Shading 0x01 - Green Shading 0x02 - Blue Shading ~ 0x03 - Sprite Type? 0x00 - None 0x01 - Text? 0x02 - Monster? (Panther) 0x03 - Type 1? (Units and Goblin) ` 0x04 - ? (one frame in chanting/riding chocobo)
0x06 - Chocobo? ~ 0x04 - VRAM Spritesheet ID 0x00 - Map 0x01 - Map? 0x02 - Map? 0x03 - Map? (had height) (upper right screen 0x04 - active unit SPR2? EVTCHR1? 0x05 - Formation screen (active unit SPR3 +? EVTCHR2?) 0x06 - Last loaded Menus 0x07 - unit billboard 0x08 - Wep2, Wep3 0x09 - Wep1 0x0a - some background 0x0b - frog/chicken/crystals 0x0c - none 0x0d - some checkerboard with fonts? 0x0e - checkerboard with fronts + random stuff 0x0f - more checkerboard + random 0x10 - 0x13 - maps again 0x14 - First Unit Spritesheet 0x1c - Global Portrait list? 0x1d - in battle portraits + random spritesheet stuff 0x1e - Wep sheet? item.bin? 0x1f - Frame.bin 0x3f - Item.bin 0x80 - some flag 0x40 - ?? ` 0x20 - some flag, does nothing? 0x06 - VRAM Palette ID 0x08 - X Size (stretches sprite to this size) 0x0a - Y Size (stretches sprite to this size) 0x0c - Spin on Y axis (direction sprite is facing) 0x0d - *Sprite Data (7 bytes each)* 0x0e - X Shift on screen 0x0f - Y Shift on screen 0x10 - Image Width 0x11 - Image Height 0x12 - X Load Location from spritesheet 0x13 - Y Load Loaction (2 bytes?) 0x14 - VRAM flags? 0x426 - Item/Equip Display Section (1 Sprite Data Section) 0x43c - initialization byte
(end page for above)
800bda04 - 0x04 - X/Y Shift for number display 0x06 - Image Width/Height
800bdd24 - some effect coordinate address?
800bde64
800c7ca8 - Camera zoom level (word); Higher number means more zoom Normal battle zoomed-out value: 0x0c00 Normal battle zoomed-in value: 0x1000
800c7ce8 - start of VRAM spritesheet data (store decompressed attacking graphics from unit spriteesheet) 0x00 - misc unit ID?
800d4640 - Palettes 800e466e - end of VRAM spritesheet data ?
800e4e90 - Cursor X Coordinate 800e4e94 - Cursor Map Level 800e4e98 - Cursor Y Coordinate
800e4e9c - Map Max X coordinate 800e4ea0 - Map Max Y coordinate 800e4ea4 - Modified Palettes (14 chunks at 512 bytes each) 0x000 -> Modified Palettes 0x982 ->
800e6b94 - current map data
800e6bb0 - list of return addresses 800e6c98 - list of return addresses
800e6edc -
800f4200 - Map GNS section 3 duplicate (initialised 000f4dd4 - 000f5574) (below needs to be in map related page?) 0x88 - Counter for moving GNS data 0x8a - 0x8c - 0x8e - 0x90 - GNS line header (normally 0x22, caps the value at 0x88?) 0x92 - load room arrangement this GNS line applies to? 0x94 - Full map command halfword? (or command + something else?) 0x96 - buffer? (all 0) 0x98 - ? (normally 0x14?) 0x9a - ? (normally 0x00?) 0x9c - buffer? 0x9e - buffer? 0xa0 - buffer? 800f5ba8 - current loaded map (set at f385c) 800f 800f5c58 - map data (specifically some kind of pseudo command? certain values are set and expected in map loading and reloading routines) 0x00 - Load map? 0x01 - Don't load map? 0x0f - clears a sleuth of map data (starting at 0x800f7a65, clears every 0x14 values backwards) 800f5c5c - similar case as above. has some kind of format with above? 0x00 - reload current map? (does not check for existing map - nor initialise some values) 0x02 - load new map? (from overworld? from another map?) 0x93 - clear snowy weather? (is this all it does?)
800f5c74 - Map's Move-find data (see 000f3638 - 000f36c0). 0x10 entries per map (no overlap (even though they can't all be loaded at once anyway...))
800f5e74 - Move-Find Item Data (and Traps) 0x00 - X/Y Coordinate (Y + X * 16, up to 15 each) Upper Nibble - 0x?X - X Coordinate Lower Nibble - 0xX? - Y Coordinate 0x01 - Trap 0x80 - No Activation 0x40 - Unknown 0x20 - Always Trap 0x10 - Disable Trap 0x08 - Steel Needle 0x04 - Sleeping Gas 0x02 - Deathtrap 0x01 - Degenerator 0x02 - Rare Item ID 0x03 - Common Item ID
0x04-0x0f - same as above, but for locations 2-4
800f64dc
800f6860 - Map Max X 800f6864 - Map Max Y
800f70b4 - map data?
800fc558 - ?? map data? 800fa6c6 - important duplicate GNS data 0x1cc - texture file GNS line 0x398 - primary mesh GNS line 0x3ac - Override mesh GNS line 80121ffc - Map LBA data pointer (loaded from scus by 00044414 - 000444d8, saved 0x000f3788 and 0x000f37d4) 80124604 - Map GNS Data duplicate 0x00 - stored 0x00 at 0x07c01af0
0x04 - File Type? (0117 = Texture)
0x08 - LBA Sector 0x0c - File Size (multiples of 0x800) 80167920 - Maps status index to text image data index (Index for array at 0x8014cf68) ff ff 00 01 ff ff ff ff 02 03 04 05 06 07 ff ff 08 09 0a 0b 0c ff 30 ff 0d 0e 0f 10 11 12 13 ff 14 15 16 17 18 19 1a 1b
80167994 - Height (with halves; displayed height * 2) image display data array (for top right of screen) (Size of element = 12 bytes) Even heights use 2 entries: one for "h", one for height number / 2 Odd heights use 3 entries: one for "h", one for height number / 2, one for .5 0x00: X Load Location (2 bytes, but high byte is ignored) 0x02: Y Load Location (2 bytes, but high byte is ignored) 0x04: Width (2 bytes) 0x06: Height (2 bytes) 0x08: X Screen Location Offset (2 bytes) - Negative value to shift image left, Positive to shift image right 0x0a: Y Screen Location Offset (2 bytes) - Negative value to shift image up, Positive to shift image down 80168324 - Maps height number (displayed height * 2) to start of height image display data index (Index for array at 0x80167994) 00 02 05 07 0a 0c 0f 11 14 16 19 1b 1e 20 23 25 28 2a 2d 2f 32 35 39 3c 40 43 47 4a 4e 51 55 58 5c 5f 63 66 6a 6d 71 74 78 7b 7f 82 86 89 8d 90 94 97 9b 9e a2 a5 a9 ac b0 b3 b7 ba b3 c1 c5 c8 cc
8016836c - Color shading values for height number (top right) display 0x00: Red shading value for top-left corner 0x01: Green shading value for top-left corner 0x02: Blue shading value for top-left corner 0x04: Red shading value for top-right corner 0x05: Green shading value for top-right corner 0x06: Blue shading value for top-right corner 0x08: Red shading value for bottom-left corner 0x09: Green shading value for bottom-left corner 0x0a: Blue shading value for bottom-left corner 0x0c: Red shading value for bottom-right corner 0x0d: Green shading value for bottom-right corner 0x0e: Blue shading value for bottom-right corner
80173cbc - List of entries for height display Struct data for height display entry: 0x34 (52) bytes long 0x00 - 0x02: Byte sequence 0x17, 0x3c, 0xf0; Can sometimes be other values; Causes bizarre display errors if value is wrong 0x03: Flags? 0x0c? (1 byte) 0x04: Red shading value for top-left corner (1 byte) 0x05: Green shading value for top-left corner (1 byte) 0x06: Blue shading value for top-left corner (1 byte) 0x07: Flags? 0x3e, or 0x3c? (1 byte) 0x08: X Screen Location (2 bytes) 0x0a: Y Screen Location (2 bytes) 0x0c: X Load Location (1 byte) 0x0d: Y Load Location (1 byte) 0x0e: 0x7cfc? (2 bytes) 0x10: Red shading value for top-right corner (1 byte) 0x11: Green shading value for top-right corner (1 byte) 0x12: Blue shading value for top-right corner (1 byte) 0x13: Zero (0) (Unused)? (1 byte) 0x14: X Screen Location + Width (2 bytes) 0x16: Y Screen Location (2 bytes) 0x18: X Load Location + Width (1 byte) 0x19: Y Load Location (1 byte) 0x1a: Spritesheet ID (0x001e = ITEM.BIN, 0x001f = FRAME.BIN) (2 bytes) 0x1c: Red shading value for bottom-left corner (1 byte) 0x1d: Green shading value for bottom-left corner (1 byte) 0x1e: Blue shading value for bottom-left corner (1 byte) 0x1f: Zero (0) (Unused)? (1 byte) 0x20: X Screen Location (2 bytes) 0x22: Y Screen Location + Height (2 bytes) 0x24: X Load Location (1 byte) 0x25: Y Load Location + Height (1 byte) 0x26: Zero (0) (Unused)? (2 bytes) 0x28: Red shading value for bottom-right corner (1 byte) 0x29: Green shading value for bottom-right corner (1 byte) 0x2a: Blue shading value for bottom-right corner (1 byte) 0x2b: Zero (0) (Unused)? (1 byte) 0x2c: X Screen Location + Width (2 bytes) 0x2e: Y Screen Location + Height (2 bytes) 0x30: X Load Location + Width (1 byte) 0x31: Y Load Location + Height (1 byte) 0x32: Zero (0) (Unused?) (2 bytes) 80173e00 - Same structure as 80173cbc
80173f44 - Pointer to height display entry (see 80173cbc); placing a pointer here makes the display happen?
8016866c - start of a set of data 0x0c long, (0x1b0 total) (0x24 sets) 0x00 - address to ?? (word) 0x04 -
8016881d -
80169230 8016923c - list of menu data (0x05 bytes each) 0x00 - Menu type number (corresponds to 0x165f84 data) 80121d58 - ?
80121d8f - list of data, 0x12 bytes long each, 9 entries
80132824 - ?
8014cf68 - Status Image Data (4 bytes each, 0xc4 total) 0x00 - X Load Location 0x01 - Y Load Location 0x02 - Image Width 0x03 - Image Height
0x00 - "Dead" 0x04 - "Undead" 0x08 - "Petrify" 0x0c - "Invite" 0x10 - "Darkness" 0x14 - "Confusion" 0x18 - "Silence" 0x1c - "Blood Suck" 0x20 - "Oil" 0x24 - "Float" 0x28 - "Reraise" 0x2c - "Transparent" 0x30 - "Berserk" 0x34 - "Poison" 0x38 - "Regen" 0x3c - "Protect" 0x40 - "Shell" 0x44 - "Haste" 0x48 - "Slow" 0x4c - "Stop" 0x50 - "Faith" 0x54 - "Innocent" 0x58 - "Charm" 0x5c - "Sleep" 0x60 - "Don't Move" 0x64 - "Don't Act" 0x68 - "Reflect" 0x6c - "Death Sentence" 0x70 - "Stolen" 0x74 - "Broken" 0x78 - (these 6 are unused) 0x7c - 0x80 - 0x84 - 0x88 - 0x8c - 0x90 - "Quick" 0x94 - "HP" 0x98 - "MP" 0x9c - "CT" 0xa0 - "Speed" 0xa4 - "Brave" 0xa8 - "Faith" 0xac - Sword Icon (PA) 0xb0 - Rod Icon (MA) 0xb4 - "Lv." 0xb8 - "GIL" 0xbc - "Exp." 0xc0 - "Frog"
8014d02c - Tile type ID of currently selected tile (e.g. Grassland, Stone Floor, Tree, etc.)
8018f8cc - Tile Data Start (8 bytes each, +100h for Higher Elevation tiles) 0x00: Tile Type 0x80 - 0x40 - 0x3F - Cross section 0x3e - 0x3d - 0x3c - 0x3b - 0x3a - 0x39 - 0x38 - 0x37 - 0x36 - 0x35 - 0x34 - 0x33 - 0x32 - 0x31 - 0x30 - 0x2F - 0x2E - Coffin 0x2D - Waterfall 0x2C - Tombstone 0x2B - Moss 0x2A - Iron plate 0x29 - Machine 0x28 - Deck 0x27 - Ivy 0x26 - Furniture 0x25 - Stairs 0x24 - Water plant 0x23 - Bridge 0x22 - Mud wall 0x21 - Chimney 0x20 - Brick 0x1F - Box 0x1E - Tree 0x1D - Rug 0x1C - Obstacle 0x1B - Book 0x1A - Salt 0x19 - Darkness 0x18 - Sky 0x17 - Stone wall 0x16 - Roof 0x15 - Stone floor 0x14 - Wooden floor 0x13 - Road 0x12 - Lava 0x11 - Sea 0x10 - Lake 0x0F - River 0x0E - Waterway 0x0D - Ice 0x0C - Lava rocks 0x0B - Poisoned marsh 0x0A - Marsh 0x09 - Swamp 0x08 - Wasteland 0x07 - Gravel 0x06 - Rocky cliff 0x05 - Snow 0x04 - Thicket 0x03 - Grassland 0x02 - Stalactite 0x01 - Sand area 0x00 - Natural Surface 0x01: 0x02 - Height (whole numbers) 0x03 - Height (halves) + Depth 0x80 - Depth 4 0x60 - Depth 3 0x40 - Depth 2 0x20 - Depth 1 0x1F - height(halves) 0x04: Slope height (i.e. where the unit stands on the tile)? 0x05: 0x80 - Green Panel - Enemy in Range (fdc) 0x40 - Used in targeting 0x06: 0x80 - 0x40 - 0x20 - 0x10 - 0x08 - Heavy shadow (sprite effect) 0x04 - Slight shadow (sprite effect) 0x02 - Cannot Target (Red cursor) 0x01 - Unselectable via cursor 0x07:
8014d038 - pre-attack display (display page?)
8014d05c - Start of display data (when menu is loaded in battle) 0x00 - level 0x02 - enemy/ally/Autobattle flag 0x08 - Experience 0x0c - Current HP 0x10 - Max HP 0x12 - Current MP 0x16 - Max MP 0x18 - CT 0x26 - Job ID 0x28 - Brave 0x2a - Faith 0x2c - modified Birthday 8014d08a - Selected unit index (halfword) 8014d09a - hit % data (for display?)
8014d13c - Skillset Display? 8014d13d -
8014d148 - Unit Name
8014d264 - Player abilities display (greying out ability, blinking red, etc.) 0x00 - normal 0x01 - normal greyed out 0x04 - normal greyed out 0x05 - normal greyed out 0x08 - blinking red 0x09 - greyed out and blinking 0x0c - greyed, blinking blue
8014d304 - Unit ID 8014d308 - used ability for spell quotes (word) 8014d30c - used skillset (word) 8014d310 - used item (regardless of thrown/attack) (word) 8014d314 - Autobattle Setting?
8014d318 - function setting for 141b0c routine (r4) 8014d31c - r5 setting for 141b0c routine
8014d320 - Ability CT? 8014d324 - set to 1 when ability is selected 8014d32c - some data, 0x8 bytes each, 0x9 sections
8014d374 - list of menu data (from 165f84) 0x00 - menu directive 0x0e - Units turn menu can't move, not on chocobo 0x13 - Units turn menu can move, can't act, not on chocobo 0x14 - Units turn menu can't move or act, not on chocobo 0x2e - Units turn menu with move/act usable, On Mount 0x2f - Units turn menu with move usable, on mount 0x30 - Units turn menu with move usable, act not usable, on mount 0x31 - Units turn menu with move/act not usable, on mount 0x04 - address
8014d46c - Unit Menu Data (remembers menu scroll when changing to a menu that removes/hides the old menu) 0x00 - Main Act Menu Index 0x00 - Move 0x01 - Act 0x02 - Wait 0x03 - Status 0x04 - Auto-Battle 0x01 - 0xff for all units 0x02 - Act Menu Index 0x00 - Attack 0x01 - 0x04: (if they exist, in this order:) Primary Skillset, Secondary skillset, Defend, Re-equip 0x03 - (unused) "Attack" Menu Index 0x04 - (unused) "Attack" Menu Scroll 0x05 - Primary skillset Menu Index 0x06 - Primary skillset Menu Scroll 0x07 - Secondary skillset Menu Index 0x08 - Secondary skillset Menu Scroll 0x0b - Math Spell menu Index 0x0c - Math Spell menu Scroll 0x0d - Math Secondary menu Index 0x0e - (unused) Math Secondary menu Scroll 0x0f - "Math" Primary menu Index 0x10 - (unused) Math Primary menu Scroll
80165ee4 - Menu selection (act/wait/move) stored here (counter #) 0x00 - Main Menu 0x02 - Skillsets Menu - Also Execute Action menu 0x04 - Ability Menu/First Math bytes 0x06 - Second Math Bytes 0x08 - Math Ability 80165ee6 - Menu Selection (Execute Action. Ok?) counter 0x00 - execute 0x01 - Quit
80165ef4 - calculator type ability ID / Item ID? - also skillset to display + 0xb000 80165ef8 - Calculator multiplier ability ID - also second skillset to display + 0xb000 80165efc - used ability ID - also ....
80165f74 80165f84 - Menu/ message display byte
0x0e - Units turn menu can't move, not on chocobo 0x13 - Units turn menu can move, can't act, not on chocobo 0x14 - Units turn menu can't move or act, not on chocobo 0x2e - Units turn menu with move/act usable, On Mount 0x2f - Units turn menu with move usable, on mount 0x30 - Units turn menu with move usable, act not usable, on mount 0x31 - Units turn menu with move/act not usable, on mount 141654 inputs 0x01 - wait message 0x06 - attack selected (select target to attack) 0x07 - movement message? 0x08 - continue? 0x0a - normal ability name display 0x14 - select target to attack (auto battle fight for life) 0x1a - target confirmation (Unit to attack for auto battle) 0x1b - target confirmation (unit to protect for auto battle) 0x1d - job level up/level up? 0x1e - learn on hit 0x1f - crystal/treasure menus 0x21 - after move, confirmation to move there 0x22 - 0x25 - traps? 0x26 - move find item 0x32 - calculator stuff?
Text Data (Some sections behave differently. Menus 2e and 00 cannot be greyed out by making the 0x01 byte 00) 801630da - Act menu display data (0x05 bytes each, 0x06 for each unit?) 0x00 - Letter 0x01 - availability byte 0x04 - abilities not known in skillset? (greyed out) 0x00 - abilities known in skillset 0x02 - set to 0xff if no command displayed 0x03 - set to 0xfa 0x04 0x05
0x82 - 1637b2 0x83 - 1637de - move disabled
80169994 - limit the cursor can scroll before menu shifts 80169996 - number of slots the menu can shift downward 80169998 - "Ability" menu header X display location 8016999a - "MP" or "Stock" menu header X display location 8016699c - "Turns" menu header X Display Location 8016699e - Ability name display
801669a0 - Controls menu display of abilities (stock, mp, turns, etc.) 0x00 0x01 0x02 - Can't display Turns ("Now!") 0x03 - Can display Turns 0x04 801669a2 - Controls menu display of abilities (stock, mp, turns, etc.) 0x00 - 0x01 - 0x02 - Can't display MP/stock 0x03 - Can display MP/stock
801669a4 - pointer skillset abilities for menu display 801669a8 - pointer skillset MP costs for menu display (ability list + 0xa4) 801669ac - pointer skillset Turns for menu display (ability list + 0x148)
801669b0 - ability display flags
801669bc - Amount of slots the menu scrolled down (to display more abilities)
80166a40 - some skillset data, half each 0x1000 - abilities not known in skillset (removes sound effect when skillset is selected) 0x0016 - set to this if nothing to display for that skillset slot 0x0003 - always set?
Menu List 80166b10 - Main Menu 80166bc4 - ability menu (math skill menus included) 0x2c - type of menu 80166c00 - Act menu (skillsets + attack) 80166b10 - Menu Data (0x3c each) 0x38 - Move/Act/Wait/Status/etc. menu counter 0xe0 - Header set for menu 0x00 - none 0x01 - "Menu" 0x02 - "Check" 0x03 - "Effect" 0x04 - "Turn" 0x05 - "Ability" "Ref" "Turn" 0x06 - "Ability" "Ref" "Mp" "Turn" 0x07 - "" "Ref" "Stock" "Turn" 0x08 - "" "Ref" "Turn" "" 0x09 - "Ability" 0x0a - "Menu" all blotchy 0x0b - "Ability" "Ref" "Mp" "Turn" 0x0c - none everything else seems to be none 0xec - Counter 0xee - Type of menu? (ability list)
0xbe - 0x167614 - 2f Menu 167124 - counter for movement confirmation 167430 - counter for Execute Action check menu (only Attack picked 1675d4 - counter for Execute Action check menu (skillset picked)
801675d8 - Menu data for riding chocobo 0x00 - X load location on sheet? 0x02 - Y load location on Sheet? 0x04 - Menu background width (behind) 0x06 - Menu background height (Behind) 0x08 - X position 0x0a - Y position 0x14 - Menu background width in front 0x16 - Menu background height in front 0x18 - X position (in front) 0x1a - Y position (in front) 0x1c - Menu to load (half) 0x83 - Chocobo, no movement 0x1e - Menu counter limit 0x20 - ?? (word) 0x24 - ?? Address 0x38 - Move/Act/Wait/Status/etc. menu counter
Menu struct data (general; same structure for BATTLE/WORLD) (0x3c = 60 bytes): 0x00: ? (=0x0180, 0x01c0, 0x01e0) (Weird graphical issues if value is wrong) (2 bytes) 0x02: ? (=0x0000, 0x00a0) (Displays weird things if value is wrong) (2 bytes) 0x04: Inner width of window? (Should be the same as value at offset 0x14) (ex. 0x3c) (2 bytes) 0x06: Inner height of window? (Should be the same as value at offset 0x16) (ex. 0x3c) (2 bytes) 0x08: X Screen Location of window (ex. 0x00e2) (2 bytes) 0x0a: Y Screen Location of window (ex. 0x00a0) (2 bytes) 0x0c: ? (ex. 0x3c) Seems to have no effect (2 bytes?) 0x0e: ? (ex. 0x40) Seems to have no effect (2 bytes?) 0x10: ? (=0x00000000?) Seems to have no effect (4 bytes?) 0x14: Overall width of window (Should be the same as value at offset 0x04) (ex. 0x40) (2 bytes) 0x16: Overall height of window (Should be the same as value at offset 0x06) (ex. 0x40) (2 bytes) 0x18: ? (=0x00000000?) Seems to have no effect (4 bytes?) 0x1c: Menu text entry to display for entire menu text (Newline character (0xF8) as row separator, end with 0xFFFF, or 0xFE) (ex. 0x502e, 0x0000 (blank)) (2 bytes) 0x1e: Maximum row index, starting at 0. Equal to number of rows - 1. (ex. 0x02) (2 bytes) 0x20: ? (=0x00000001?) Seems to have no effect (4 bytes?) 0x24: Pointer to action/menu ID array for this menu (ex. 0x80166a74) (4 bytes) 0x28: Pointer to code function that brings up this menu / performs this action? (ex. 0x8013bfbc) (4 bytes) 0x2c: Menu header (=0x01) (2 bytes) Default for unspecified value is (No header) 0x01 = "Menu" 0x02 = "Check" 0x03 = "Effect" 0x04 = "Turn" 0x05 = "Ability" 0x06 = "Ability" 0x09 = "Ability" 0x0b = "Turn" 0x2e: ? (=0x0000?) Seems to have no effect (2 bytes?) 0x30: Pointer to store whether or not menu needs initialization? (Sometimes) (ex. 0x80166994) (4 bytes) 0x34: Pointer to store selected menu option (when Circle button pressed) (ex. 0x8016e42c) (4 bytes) 0x38: Index of currently selected menu option (2 bytes) 0x3a: Index for select text (Affects which select text is displayed) (ex. 0x0a) (2 bytes)
8014d0a0 - Billboard data? 0x00 - Move 0x02 - Speed 0x04 - Jump 0x06 - WP 1 0x08 - WP 2 0x0a - W-Ev 1 0x0c - W-Ev 2 0x0e - Primary Skillset ('attack' (0x01) if monster) 0x10 - 2 hands flag 0x12 - PA 0x14 - C-Ev 0x16 - Shield P-Ev 0x18 - Accessory P-Ev 0x1c - MA 0x1e - "00" under c-ev 0x20 - Shield M-Ev 0x22 - Accessory M-Ev 0x24 - Right hand equipment 0x26 - left hand equipment 0x28 - head 0x2a - Body 0x2c - accessory 0x2e - Primary skillset // First monster ability 0x30 - Secondary skillset // Second monster ability 0x32 - Reaction // Third monster ability 0x34 - Support // Fourth monster ability 0x36 - Movement // not exactly possible, but fifth monster ability.
80174060 - Displayed Skillsets (act Menu) - ff in first slot that doesn't have skillset, rest 00 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 80174068 - Return address for ability range (based on action menu byte)17a8c0 routine
801740a8 - Code Pointers for ability targeting (Action menu byte) used in Calculate_Targeting_for_Menu_Types 0x00 - 8017abac - Default 0x04 - 8017abb8 - Item Inventory 0x08 - 8017abb8 - Weapon Inventory 0x0c - 8017abc0 - Arithmeticks 0x10 - 8017abd4 - Elements 0x14 - 8017ab2c - Blank 0x18 - 8017abac - Monster 0x1c - 8017abe4 - Katana Inventory 0x20 - 8017abb8 - Attack 0x24 - 8017abb8 - Jump 0x28 - 8017abb8 - Charge 0x2c - 8017ac08 - Defend 0x30 - 8017ac08 - Change Equipment 0x34 - 8017ac08 - Unknown 0x38 - 8017ac08 - Blank 0x3c - 8017ac2c - Unknown
801740e8 - Code Pointers for attack preparation routine(Action menu byte) 17c45c routine 0x00 - 8017c7fc - Default 0x04 - 8017c548 - Item Inventory 0x08 - 8017c5b4 - Weapon Inventory 0x0c - 8017c658 - Arithmeticks 0x10 - 8017c6b8 - Elements 0x14 - 8017c818 - Blank 0x18 - 8017c7fc - Monster 0x1c - 8017c6c8 - Katana Inventory 0x20 - 8017c704 - Attack 0x24 - 8017c730 - Jump 0x28 - 8017c79c - Charge 0x2c - 8017c7ec - Defend 0x30 - 8017c7f4 - Change Equipment
8015d304 - Current Unit's ID (* 0x1c0 for Data Pointer)
801612dc - start of some data - used in Set Unit Names routine ~133434 list of words, values loaded and added to 8016135c that address is then stored in 173f8c + offset
(text page?) 8016135c - 80161928 - Battle Error Messages Text 80161929 - 80161d41 - Battle Messages Text 80161d41 - 801622c2 - Job Names Text 801622c3 - 80162e48 - Item Names Text 80162e50 - 801630d9 - Japanese writing (FREE SPACE) 801630da - 80163b87 - Act menus display data (0x05 bytes each, 0x06 for each unit?) 80163b88 - Ability Names Text 80164eb6 Battle Messages Status Names Error/Confirmation 8016593a - 165d73 - Skillset Names "Anything" in between 80165d88 - Summon Names 80165df6 - Draw Out Names
80165e64 - Start of some other data
80165ecc
80165ea4 -
80165eb4 - Palette Pointer Mod 1? (halfword) 80165eb6 - Palette Pointer Mod 2? (halfword) (((b6 + Palette / 8) * 64) OR (((b4 + (Palette MOD 8) * 16) / 16) AND 0x3f forms some sort of palette value stored in 0x06/0x07 of sprite data sections
80173f8c - Pointers to Text Data (Mod below / 0x200 + 173f8c) 0x5000 - Menus items 0x4000 - Unit Name 0x3000 - Job Name 0x2000 - 0x1000 - Skillset Name : 8016135c : 8016135d : 8016135e - Skillsets : 80161929 : 80161d3f : 80161d40 : 80161d41 - Job Name : 801622c3 : 80162e4c - Unit Name : 80163006 : 801630da - menu items : 801639cc : 80163b86 : 80163b87 : 80163b88 : 80164ebb : 80164ebc : 80165281 : 801653b2 : 80165937 : 80165938 : 80165939 : 8016593a : 80165d89 : 8016135c : 8016135c : 8016135c : 8016135c : 8016135c : 8016135c : 8016135c
80165f94 80165f98 - pointer to 0x8016986c - Thread array base pointer 80165f9c - pointer to 0x5771c - Start of main data
80165fa0 - changes depending on displayed menu/message during battle 80165fa2 - same as above, changed when scroll you scroll past the initial abilities displayed
80165fb4 - Sound effect to play (See https://ffhacktics.com/wiki/SoundEffect) (move selected, panel selected - set to 1 (Move to panel?) (5 if can't move due to Don't move? during... ability setup?))
80165fbc
80165ff6
80166018 - incremented
80166048 - freezes control to go to next event
8016604a -
801660a3 - control variable used in 0x13b590
801660ec - half 801660ee - half 801660f0 - half 801660f2 - half
801696a8 - 801696aa -
80166ae4
80169264 - start of skillset data? AAAA BBBB Default - 0003 0000 Item Inventory - 0003 0001 Throw - 0003 0001 Math Skill - 0003 0000 Elemental - fffd 0000 Blank - fffd 0000 Monster - 0003 0000 Katana - 0003 0001 Attack - fffd 0000 Jump - fffd 0000 Charge - 0003 0000 Defend - fffd 0000 Equip Change - 0003 0000 Unknown - fffd 0000 Blank - fffd 0000 Unknown - fffd 0000 BBBB - halfword, whether the skillset calls from party inventory. AAAA - halfword, 3 or -3, -3 means don't load ability data to menu, execute targeting immediately.
80169808
801697d0
80169828 - ability selected byte? (word) Control byte 0x03 - learn on hit (ability known) 0x02 - learn on hit 8016982d - Skillset (ability loading routines) 8016982e - Used Ability (half)
80169840 - returned value from routine 0x181530 (skillset/act menu loading)
80169870
801692b8 -
169828 data 0x05 - used skillset 0x06 - used item if not throw/draw out/item skillset 0x0c - used item in throw ability setting 0x0e - Tells the game to commence execution of attack
80169c6c 0x10 - unit ID? 0x14 - unit Data 8016a06c 8016a46c 8016a86c 8016ac6c - corresponds to 8016b06c - Corresponds to skillset menu 0x00 - Menu Address? 8016b46c - Corresponds to main menu
8016e42c
8016d9ca
80172258 - target current action pointer
80172660
801739c8 -
80173b00 - 80173c30'
80173c6c - action menu byte
80173c74 - next event?
80173ca8 - return address in 14ceb4 routine
80173cb0
80173cb8 - pointer to 166b10
8017403c - Skillset determinations (set to 1 if no abilities known?), 0 if not (ai page?)
80174042 - end of previous list 80174048 - pointer to start of AI data / skillset 8017404c - Action menu byte list for skillsets
80174102 - 80174144 - 80174174 - 001829a8 8017423c - 80174254 Song Abilities Address Table 80174258 - Nothing (free to be used) 8017425c - 80174274 Dance Abilities Address Table 80174278 - Nothing (free to be used) 8017427c - 80174294 Talk_Skill_Ability_Table 80174298 - Nothing (free to be used) 80178f9c -
801792b8 -
80179828 - some pointer (word)
8018afd8 - Reaction_abilities_return_adress_table
8018f518 - In between turn control variable 0x00 - next clocktick 0x01 - dead processing, next turn processing 0x02 - ability CT decrement 0x03 - Post ability ability CT setting 0x04 - status CT decrement 0x05 - set AI CT data? 0x06 - ?? 0x07 - blank 0x08 - blank 0x09 - find highest CT 0x0a - after setting characters turn active (validate units turn) 0x0b - blank 0x0c - blank 0x0d - set some AI weapon data? 0x0e - mimic ability setting 0x0f - transparent removal 0x10 - blank 0x11 - poison marsh status 0x12 - blank 0x13 - poison/regen HP changes 0x14 - get tile type
-0x0ae4 8018f51c - Control Variable (word) - used in skillset loading 0x09 - after setting characters turn active 0x03 - find highest CT - then stored into 8018f518 - go to post-ability CT setting 0x01 - main selection screen (move, act, etc.) -0x0ae0 8018f520 - active units ID?
-0x0a10 8018f5f0 - Type of action (word) 0x01 - Reacting 0x00 - pre-attack, initial attack
8018f5f4 - Team golem amounts
-(0x0a04) 8018f5fc - Action state (word) 0 - Action executing 1 - AI considering action 2 - Projected action result (skips conditional proc roll and displays average damage for random)
8018f600: Zodiac Compatability Modifiers 00 - Neutral 01 - Bad 02 - Good 03 - Special (becomes 04 (Worst), 05 (Best), or 01 (Bad, Monsters only)) 8018f600 - Aries 8018f601 - Taurus 8018f602 - Gemini 8018f603 - Cancer 8018f604 - Leo 8018f605 - Virgo 8018f606 - Libra 8018f607 - Scorpio 8018f608 - Sagittarius 8018f609 - Capricorn 8018f60a - Aquarius 8018f60b - Pisces
8018f60c - Rider Allowed Status Inflictions (5 entries, 1 byte each) (for 0x184b24 routine) 0x00 - Crystal/Dead/Undead/Charging/Jump/Defending/Performing 0x01 - NONE 0x02 - Reraise/Transparent/Critical 0x03 - Regen/Protect/Shell/Haste/Wall 0x04 - Faith/Innocent/Charm/Reflect 8018f610 - Formula Code Pointers (overlaps with above, but 0x00 is no formula) 0x0000/0x00 - N/A (shared with Rider statuses; fake pointer) 0x0004/0x01 - 80188b64 0x0008/0x02 - 80188ba4 0x000c/0x03 - 80188be4 0x0010/0x04 - 80188c24 0x0014/0x05 - 80188c9c 0x0018/0x06 - 80188cf4 0x001c/0x07 - 80188d3c 0x0020/0x08 - 80188d84 0x0024/0x09 - 80188df4 0x0028/0x0a - 80188e78 0x002c/0x0b - 80188eb8 0x0030/0x0c - 80188ef8 0x0034/0x0d - 80188f38 0x0038/0x0e - 80188f90 0x003c/0x0f - 80189084 0x0040/0x10 - 801890dc 0x0044/0x11 - 80189124 0x0048/0x12 - 8018912c 0x004c/0x13 - 80189164 0x0050/0x14 - 8018916c 0x0054/0x15 - 801891ac 0x0058/0x16 - 80189204 0x005c/0x17 - 8018925c 0x0060/0x18 - 8018929c 0x0064/0x19 - 801892a4 0x0068/0x1a - 801892ac 0x006c/0x1b - 8018933c 0x0070/0x1c - 8018937c 0x0074/0x1d - 801893d8 0x0078/0x1e - 80189434 0x007c/0x1f - 80189464 0x0080/0x20 - 801895c4 0x0084/0x21 - 801895f4 0x0088/0x22 - 80189654 0x008c/0x23 - 8018967c 0x0090/0x24 - 801896b4 0x0094/0x25 - 801896ec 0x0098/0x26 - 80189794 0x009c/0x27 - 80189828 0x00a0/0x28 - 80189870 0x00a4/0x29 - 80189910 0x00a8/0x2a - 801899a4 0x00ac/0x2b - 80189a90 0x00b0/0x2c - 80189ad8 0x00b4/0x2d - 80189b20 0x00b8/0x2e - 80189b94 0x00bc/0x2f - 80189c50 0x00c0/0x30 - 80189c90 0x00c4/0x31 - 80189cd0 0x00c8/0x32 - 80189d74 0x00cc/0x33 - 80189e28 0x00d0/0x34 - 80189e94 0x00d4/0x35 - 80189f08 0x00d8/0x36 - 801868f0 0x00dc/0x37 - 80189f84 0x00e0/0x38 - 80187f24 0x00e4/0x39 - 80186d2c 0x00e8/0x3a - 80186d00 0x00ec/0x3b - 80186d58 0x00f0/0x3c - 80186dbc 0x00f4/0x3d - 80189fcc 0x00f8/0x3e - 8018a00c 0x00fc/0x3f - 8018a02c 0x0100/0x40 - 8018a088 0x0104/0x41 - 8018a114 0x0108/0x42 - 8018a17c 0x010c/0x43 - 80186e28 0x0110/0x44 - 80186e54 0x0114/0x45 - 80186e78 0x0118/0x46 - 8018a218 0x011c/0x47 - 8018a220 0x0120/0x48 - 8018a250 0x0124/0x49 - 80188288 0x0128/0x4a - 8018a2c4 0x012c/0x4b - 8018a2ec 0x0130/0x4c - 8018a3a0 0x0134/0x4d - 8018a3d0 0x0138/0x4e - 8018a420 0x013c/0x4f - 8018a458 0x0140/0x50 - 8018a4a0 0x0144/0x51 - 8018a4e8 0x0148/0x52 - 8018a554 0x014c/0x53 - 8018a5e4 0x0150/0x54 - 8018a668 0x0154/0x55 - 8018a698 0x0158/0x56 - 8018a6f8 0x015c/0x57 - 8018a758 0x0160/0x58 - 8018a824 0x0164/0x59 - 8018a908 0x0168/0x5a - 8018a980 0x016c/0x5b - 8018a9c4 0x0170/0x5c - 8018aa10 0x0174/0x5d - 8018aa54 0x0178/0x5e - 8018aa98 0x017c/0x5f - 8018aac8 0x0180/0x60 - 8018aaf8 0x0184/0x61 - 8018ab18 0x0188/0x62 - 8018ab58 0x018c/0x63 - 8018ab98 0x0190/0x64 - 8018ac44
8018f7ec - Used Ability Flags 1
8018f510 - ?
8018f7f0 - No. Tiles moved (movement page?) - Per tile, includes facing/walking direction to destination
8018f86d - current units movement supports 0x80 - fly 0x40 - float 0x20 - walk on water 0x10 - move in water 0x08 - teleport (1 and 2) 0x04 - 0x02 - silent walk 0x01 - 0x00 - default 8018f89c -
8018f8a4 - ID of found item for move-find item (word) 0x00 Item ID 8018f8a8 - Move-Find Item/trap flags 0x00 - activation type 0x02 - found trap 0x01 - found item 0x00 - none? 0x01 - Trap Setting or number of trap activated 0x00 - Degenerator 0x01 - Deathtrap 0x02 - Sleeping Gas 0x03 - Steel Needle 0x02 - Rare Item 0x03 - Common Item
Mimic Check(0x15 in battle ID order) - If ability occured, and if job = mimic, stores 01
for that unit ID's byte. 8018f8b0 - if 01 allows mimic setting
8018f8c5 - end -0x0738 8018f8c8 - Acting Unit ID (word)