BATTLE.BIN Data Tables
Jump to navigation
Jump to search
Contents
BATTLE.BIN Routines
BATTLE.BIN Routines
GPU, VRAM, and CPU Related Addresses
80067838 - Pointers for Numerical Display Color Code (0xd1 pointers) 80067b80 - Pointers for Display Type Code (SP/CT/Br/Fa/PA/MA) 80067bac - Field positional data for damage/status text as it bounces onto the field 80067bd8 - " 80067c04 - " 80067c30 - " 80067c5c - " 80067c88 - " (the above is somewhat elaborate and above my motivation grade right now. but it seems encoded in such a way that certain digits will appear later (data has intervals of like 0x15 but with big blank spaces of 0) which describes how the numbers bounce in one after the other when a unit takes damage.)
800682cc - Color Modification Code Pointers
800960cc - set to 04 in map zoom routine 800960d0 - Map Zoom 0x04 - Zoomed out 0x01 - Zoomed In
80098a24 - Rotation matrix elements (0x13 long, word each) 80098a38 - Translation vectors (3 words) 0x00 trx 0x04 try 0x08 trz
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
8010aad4 - even-frame sky-polygon 801198fc - odd-frame sky-polygon
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: Kernel 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
80174038 - Currently running thread ID (i.e. which thread has the CPU right now)
Game Loop Addresses
80067cb8 - return address list based on post-action display type (exp,jp, etc.) (for 0x51 display types)
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
80096024 - ? (set to 0 after prepping to display earned Exp/JP) (word)
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
800960d4 - controller input for map tilt? 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
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
80096204 - post action display phase
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 - Post Effect Message Counter (unit number?) increasing while setting messages 80096248 - Post Effect message data 0x08 long, 0x10 sections 0x00 - Message Type -0x1c - Item Stolen -0x1d - Item broken -0x27 - CT change -0x28 - Speed change -0x29 - Brave CHange -0x2a - Faith CHange -0x2b - PA Change -0x2c - MA Change -0x2d - Golem message -0x2e - Gils Change -0x2f - Xp Change 0x01 - Unit ID (Displayed Name) 0x02 - 0x03 - 0x04 - Additionnal info (Word) - 0x000000XX - XX is Item ID (broken or stolen) - 0x000080XX - XX is katana ID if broken katana 8009624c - item to break
80098d84 - Type of action (mimic / ability CT resolution) 0x0100 - active turn? 0x0200 - ability CT resolution 0x0300 - crystal/treasure?
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?
Battle Related Data
800b7308 - Miscellaneous/ENTD Unit Data 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 - chicken/frog/crystal/treasure graphic Y offset 0x30 - frog 0x60 - crystal Otherwise, 0x00.
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 (max = 7 (7 + 1 graphics)) 0x04 - VRAM Spritesheet ID 0x00 - screen 0x01 - screen 0x02 - screen 0x03 - screen 0x04 - active unit SP2 & EVTCHR1 0x05 - Formation screen (leftover from attack.out), target unit SP2 & EVTCHR2 0x06 - Last loaded Menus 0x07 - unit billboard 0x08 - EFF & TRAP 0x09 - WEP 0x0a - ZODIAC.BIN 0x0b - frog/chicken/crystals + some parts of zodiac.bin 0x0c - none (not none?) 0x0d - map textures 0x0e - map textures 0x0f - map textures 0x10 - 0x13 - bottom screen + vram palettes. 0x14 - First Unit Spritesheet 0x1c - Global Portrait list? 0x1d - in battle portraits + random spritesheet stuff 0x1e - item.bin 0x1f - Frame.bin 0x80 - erroneous flags, ignored when parsing to GPU. may mark some debug information, but not necessarily. 0x40 - 0x20 - 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
801908cc - Unit Data start (Unit ID * 0x1c0 for specific location) 0x0000: Base Class / Character ID (Also affects sprites) 0x?? - Special Character 0x80 - Generic Male 0x81 - Generic Female 0x82 - Monster 0x0001: Unit ID (FF doesn't exist) 0x0002: Party ID (Party unit index; 0xFF means not in party) (FE prevents HP/MP growth?) 0x0003: Job ID 0x0004: Palette 0x00 Default 0x01 Hokuten 0x02 Nanten 0x03 Death Corps 0x04 Glabados Church 0x05 No Palette? 0x0005: 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) 0x0006: Gender Byte 0x80 - Male 0x40 - Female 0x20 - Monster 0x10 - Join after event 0x08 - Load Formation 0x04 - ??? Stats 0x02 - 0x01 - Save Formation 0x0007: Death Counter (3 for living units) 0x0008: Bithday (days, plus bit 0 from next byte) 0x000-0x01e - January 0x01f-0x03a - February 0x03b-0x059 - March 0x05a-0x077 - April 0x078-0x096 - May 0x097-0x0b4 - June 0x0b5-0x0d3 - July 0x0d4-0x0f2 - August 0x0f3-0x110 - September 0x111-0x12f - October 0x130-0x14d - November 0x14e-0x16c - December 0x0009: Zodiac Sign 0xf0 - 0xe0 - 0xd0 - 0xc0 - Serpentarius 0xb0 - Pisces 0xa0 - Aquarius 0x90 - Capricorn 0x80 - Sagittarius 0x70 - Scorpio 0x60 - Libra 0x50 - Virgo 0x40 - Leo 0x30 - Cancer 0x20 - Gemini 0x10 - Taurus 0x00 - Aries 0x000a - Innate Ability 1 0x000c - Innate Ability 2 0x000e - Innate Ability 3 0x0010 - Innate Ability 4 0x0012 - Primary Skillset 0x0013 - Secondary Skillset 0x0014 - Reaction Ability 0x0016 - Support Ability 0x0018 - Movement Ability 0x001a - Head 0x001b - Body 0x001c - Accessory 0x001d - Right Hand Weapon 0x001e - Right Hand Shield 0x001f - Left Hand Weapon 0x0020 - Left Hand Shield 0x0021 - Experience 0x0022 - Level 0x0023 - Original Brave 0x0024 - Brave 0x0025 - Original Faith 0x0026 - Faith 0x0027 - 1 = Unit's Turn? 0x0028 - HP 0x002a - Max HP 0x002c - MP 0x002e - Max MP 0x0030 - Original PA 0x0031 - Original MA 0x0032 - Original SP 0x0033 - Bonus PA (doubles as minimum (bonus + 1) stats?) 0x0034 - Bonus MA 0x0035 - Bonus SP 0x0036 - PA 0x0037 - MA 0x0038 - SP 0x0039 - CT 0x003a - Move 0x003b - Jump 0x003c - WP 1 0x003d - WP 2 0x003e - WEVA 1 0x003f - WEVA 2 0x0040 - Acc. PEV 0x0041 - RH Shield PEV 0x0042 - LH Shield PEV 0x0043 - C-Ev 0x0044 - Acc. MEV 0x0045 - RH Shield MEV 0x0046 - LH Shield MEV 0x0047 - X Coordinate 0x0048 - Y Coordinate 0x0049: 0x80 - Higher Elevation 0x40 - Stepping Stone 0x20 - 0x10 - 0x08 - 0x04 - 0x03 - Facing East 0x02 - Facing North 0x01 - Facing West 0x00 - Facing South 0x004a: Equippable Items 1 0x80 - Barehanded 0x40 - Knife 0x20 - Ninja Blade 0x10 - Sword 0x08 - Knight's Sword 0x04 - Katana 0x02 - Axe 0x01 - Rod 0x004b: Equippable Items 2 0x80 - Staff 0x40 - Flail 0x20 - Gun 0x10 - Crossbow 0x08 - Bow 0x04 - Instrument 0x02 - Book 0x01 - Polearm 0x004c: Equippable Items 3 0x80 - Pole 0x40 - Bag 0x20 - Cloth 0x10 - Shield 0x08 - Helmet 0x04 - Hat 0x02 - Hair Adornment 0x01 - Armor 0x004d: Equippable Items 4 0x80 - Clothing 0x40 - Robe 0x20 - Shoes 0x10 - Armguard 0x08 - Ring 0x04 - Armlet 0x02 - Cloak 0x01 - Perfume 0x004e: Innate Statuses 1 0x80 - 0x40 - Crystal 0x20 - Dead 0x10 - Undead 0x08 - Charging 0x04 - Jump 0x02 - Defending 0x01 - Performing 0x004f: Innate Statuses 2 0x80 - Petrify 0x40 - Invite 0x20 - Darkness 0x10 - Confusion 0x08 - Silence 0x04 - Blood Suck 0x02 - Cursed 0x01 - Treasure 0x0050: Innate Statuses 3 0x80 - Oil 0x40 - Float 0x20 - Reraise 0x10 - Transparent 0x08 - Berserk 0x04 - Chicken 0x02 - Frog 0x01 - Critical 0x0051: Innate Statuses 4 0x80 - Poison 0x40 - Regen 0x20 - Protect 0x10 - Shell 0x08 - Haste 0x04 - Slow 0x02 - Stop 0x01 - Wall 0x0052: Innate Statuses 5 0x80 - Faith 0x40 - Innocent 0x20 - Charm 0x10 - Sleep 0x08 - Don't Move 0x04 - Don't Act 0x02 - Reflect 0x01 - Death Sentence 0x0053: Status Immunities 1 0x80 - 0x40 - Crystal 0x20 - Dead 0x10 - Undead 0x08 - Charging 0x04 - Jump 0x02 - Defending 0x01 - Performing 0x0054: Status Immunities 2 0x80 - Petrify 0x40 - Invite 0x20 - Darkness 0x10 - Confusion 0x08 - Silence 0x04 - Blood Suck 0x02 - Cursed 0x01 - Treasure 0x0055: Status Immunities 3 0x80 - Oil 0x40 - Float 0x20 - Reraise 0x10 - Transparent 0x08 - Berserk 0x04 - Chicken 0x02 - Frog 0x01 - Critical 0x0056: Status Immunities 4 0x80 - Poison 0x40 - Regen 0x20 - Protect 0x10 - Shell 0x08 - Haste 0x04 - Slow 0x02 - Stop 0x01 - Wall 0x0057: Status Immunities 5 0x80 - Faith 0x40 - Innocent 0x20 - Charm 0x10 - Sleep 0x08 - Don't Move 0x04 - Don't Act 0x02 - Reflect 0x01 - Death Sentence 0x0058: Current Statuses 1 0x80 - 0x40 - Crystal 0x20 - Dead 0x10 - Undead 0x08 - Charging 0x04 - Jump 0x02 - Defending 0x01 - Performing 0x0059: Current Statuses 2 0x80 - Petrify 0x40 - Invite 0x20 - Darkness 0x10 - Confusion 0x08 - Silence 0x04 - Blood Suck 0x02 - Cursed 0x01 - Treasure 0x005a: Current Statuses 3 0x80 - Oil 0x40 - Float 0x20 - Reraise 0x10 - Transparent 0x08 - Berserk 0x04 - Chicken 0x02 - Frog 0x01 - Critical 0x005b: Current Statuses 4 0x80 - Poison 0x40 - Regen 0x20 - Protect 0x10 - Shell 0x08 - Haste 0x04 - Slow 0x02 - Stop 0x01 - Wall 0x005c: Current Statuses 5 0x80 - Faith 0x40 - Innocent 0x20 - Charm 0x10 - Sleep 0x08 - Don't Move 0x04 - Don't Act 0x02 - Reflect 0x01 - Death Sentence Status CT decrement routines ~1837A0 0x005d - Poison CT 0x005e - Regen CT 0x005f - Protect CT 0x0060 - Shell CT 0x0061 - Haste CT 0x0062 - Slow CT 0x0063 - Stop CT 0x0064 - Wall CT 0x0065 - Faith CT 0x0066 - Innocent CT 0x0067 - Charm CT 0x0068 - Sleep CT 0x0069 - Don't Move CT 0x006a - Don't Act CT 0x006b - Reflect CT 0x006c - Death Sentence CT 0x006d: Elemental Absorption 0x80 - Fire 0x40 - Lightning 0x20 - Ice 0x10 - Wind 0x08 - Earth 0x04 - Water 0x02 - Holy 0x01 - Dark 0x006e: Elemental Nullification 0x80 - Fire 0x40 - Lightning 0x20 - Ice 0x10 - Wind 0x08 - Earth 0x04 - Water 0x02 - Holy 0x01 - Dark 0x006f: Elemental Halving 0x80 - Fire 0x40 - Lightning 0x20 - Ice 0x10 - Wind 0x08 - Earth 0x04 - Water 0x02 - Holy 0x01 - Dark 0x0070: Elemental Weakness 0x80 - Fire 0x40 - Lightning 0x20 - Ice 0x10 - Wind 0x08 - Earth 0x04 - Water 0x02 - Holy 0x01 - Dark 0x0071: Elements Strengthened 0x80 - Fire 0x40 - Lightning 0x20 - Ice 0x10 - Wind 0x08 - Earth 0x04 - Water 0x02 - Holy 0x01 - Dark 0x0072 - Raw HP 0x0075 - Raw MP 0x0078 - Raw SP 0x007b - Raw PA 0x007e - Raw MA 0x0081 - HP Growth 0x0082 - HP Multiplier 0x0083 - MP Growth 0x0084 - MP Multiplier 0x0085 - SP Growth 0x0086 - SP Multiplier 0x0087 - PA Growth 0x0088 - PA Multiplier 0x0089 - MA Growth 0x008a - MA Multiplier 0x008b: Reactions 1 0x80 - PA Save 0x40 - MA Save 0x20 - Speed Save 0x10 - Sunken State 0x08 - Caution 0x04 - Dragon Spirit 0x02 - Regenerator 0x01 - Brave UP 0x008c: Reactions 2 0x80 - Face (Faith) UP 0x40 - HP Restore 0x20 - MP Restore 0x10 - Critical Quick 0x08 - Meatbone Slash 0x04 - Counter Magic 0x02 - Counter Tackle 0x01 - Counter Flood 0x008d: Reactions 3 0x80 - Absorb Used MP 0x40 - Gilgame Heart 0x20 - Reflect 0x10 - Auto Potion 0x08 - Counter 0x04 - 0x02 - Distribute 0x01 - MP Switch 0x008e: Reactions 4 0x80 - Damage Split 0x40 - Weapon Guard 0x20 - Finger Guard 0x10 - Abandon 0x08 - Catch 0x04 - Blade Grasp 0x02 - Arrow Guard 0x01 - Hamedo 0x008f: Support 1 0x80 - Equip Armor 0x40 - Equip Shield 0x20 - Equip Sword 0x10 - Equip Katana 0x08 - Equip Crossbow 0x04 - Equip Spear 0x02 - Equip Axe 0x01 - Equip Gun 0x0090: Support 2 0x80 - Half of MP 0x40 - Gained JP-UP 0x20 - Gained EXP-UP 0x10 - Attack UP 0x08 - Defense UP 0x04 - Magic Attack UP 0x02 - Magic Defense UP 0x01 - Concentrate 0x0091: Support 3 0x80 - Train 0x40 - Secret Hunt 0x20 - Martial Arts 0x10 - Monster Talk 0x08 - Throw Item 0x04 - Maintenance 0x02 - Two Hands 0x01 - Two Swords 0x0092: Support 4 0x80 - Monster Skill 0x40 - Defend 0x20 - Equip Change 0x10 - 0x08 - Short Charge 0x04 - Non-Charge 0x02 - 0x01 - 0x0093: Movement 1 0x80 - Move +1 0x40 - Move +2 0x20 - Move +3 0x10 - Jump +1 0x08 - Jump +2 0x04 - Jump +3 0x02 - Ignore Height 0x01 - Move-HP UP 0x0094: Movement 2 0x80 - Move-MP UP 0x40 - Move-Get EXP 0x20 - Move-Get JP 0x10 - Cannot Enter Water 0x08 - Teleport 0x04 - Teleport 2 0x02 - Any Weather 0x01 - Any Ground 0x0095: Movement 3 0x80 - Walk on Water 0x40 - Move in Water 0x20 - Move on Lava 0x10 - Move Underwater 0x08 - Float 0x04 - Fly 0x02 - Silent Walk 0x01 - Move-Find Item 0x0096 - Unlocked Jobs 1-8 (all of these start at 0x80 and count down) 0x0097 - Unlocked Jobs 9-16 0x0098 - Unlocked Jobs 17-20 0x0099 - Base Action Abilities 1-8 0x009a - Base Action Abilities 9-16 0x009b - Base R/S/M 1-6 0x009c - Chemist Action Abilities 1-8 0x009d - Chemist Action Abilities 9-16 0x009e - Chemist R/S/M 1-6 0x009F - Knight Action Abilities 1-8 0x00A0 - Knight Action Abilities 9-16 0x00A1 - Knight R/S/M 1-6 0x00A2 - Archer Action Abilities 1-8 0x00A3 - Archer Action Abilities 9-16 0x00A4 - Archer R/S/M 1-6 0x00A5 - Monk Action Abilities 1-8 0x00A6 - Monk Action Abilities 9-16 0x00A7 - Monk R/S/M 1-6 0x00A8 - Priest Action Abilities 1-8 0x00A9 - Priest Action Abilities 9-16 0x00AA - Priest R/S/M 1-6 0x00AB - Wizard Action Abilities 1-8 0x00AC - Wizard Action Abilities 9-16 0x00AD - Wizard R/S/M 1-6 0x00AE - Time Mage Action Abilities 1-8 0x00AF - Time Mage Action Abilities 9-16 0x00B0 - Time Mage R/S/M 1-6 0x00B1 - Summoner Action Abilities 1-8 0x00B2 - Summoner Action Abilities 9-16 0x00B3 - Summoner R/S/M 1-6 0x00B4 - Thief Action Abilities 1-8 0x00B5 - Thief Action Abilities 9-16 0x00B6 - Thief R/S/M 1-6 0x00B7 - Mediator Action Abilities 1-8 0x00B8 - Mediator Action Abilities 9-16 0x00B9 - Mediator R/S/M 1-6 0x00BA - Oracle Action Abilities 1-8 0x00BB - Oracle Action Abilities 9-16 0x00BC - Oracle R/S/M 1-6 0x00BD - Geomancer Action Abilities 1-8 0x00BE - Geomancer Action Abilities 9-16 0x00BF - Geomancer R/S/M 1-6 0x00C0 - Lancer Action Abilities 1-8 0x00C1 - Lancer Action Abilities 9-16 0x00C2 - Lancer R/S/M 1-6 0x00C3 - Samurai Action Abilities 1-8 0x00C4 - Samurai Action Abilities 9-16 0x00C5 - Samurai R/S/M 1-6 0x00C6 - Ninja Action Abilities 1-8 0x00C7 - Ninja Action Abilities 9-16 0x00C8 - Ninja R/S/M 1-6 0x00C9 - Calculator Action Abilities 1-8 0x00CA - Calculator Action Abilities 9-16 0x00CB - Calculator R/S/M 1-6 0x00CC - Bard Action Abilities 1-8 0x00CD - Bard Action Abilities 9-16 0x00CE - Bard R/S/M 1-6 0x00CF - Dancer Action Abilities 1-8 0x00D0 - Dancer Action Abilities 9-16 0x00D1 - Dancer R/S/M 1-6 0x00D2 - Base/Chemist Job Level 0x00D3 - Knight/Archer Job Level 0x00D4 - Monk/Priest Job Level 0x00D5 - Wizard/Time Mage Job Level 0x00D6 - Summoner/Thief Job Level 0x00D7 - Mediator/Oracle Job Level 0x00D8 - Geomancer/Lancer Job Level 0x00D9 - Samurai/Ninja Job Level 0x00DA - Calculator/Bard Job Level 0x00DB - Dancer/Mime Job Level 0x00DC - Base Job JP 0x00DE - Chemist Job JP 0x00E0 - Knight Job JP 0x00E2 - Archer Job JP 0x00E4 - Monk Job JP 0x00E6 - Priest Job JP 0x00E8 - Wizard Job JP 0x00EA - Time Mage Job JP 0x00EC - Summoner Job JP 0x00EE - Thief Job JP 0x00F0 - Mediator Job JP 0x00F2 - Oracle Job JP 0x00F4 - Geomancer Job JP 0x00F6 - Lancer Job JP 0x00F8 - Samurai Job JP 0x00FA - Ninja Job JP 0x00FC - Calculator Job JP 0x00FE - Bard Job JP 0x0100 - Dancer Job JP 0x0102 - Mime Job JP 0x0104 - Total Base Job JP 0x0106 - Total Chemist Job JP 0x0108 - Total Knight Job JP 0x010A - Total Archer Job JP 0x010C - Total Monk Job JP 0x010E - Total Priest Job JP 0x0110 - Total Wizard Job JP 0x0112 - Total Time Mage Job JP 0x0114 - Total Summoner Job JP 0x0116 - Total Thief Job JP 0x0118 - Total Mediator Job JP 0x011A - Total Oracle Job JP 0x011C - Total Geomancer Job JP 0x011E - Total Lancer Job JP 0x0120 - Total Samurai Job JP 0x0122 - Total Ninja Job JP 0x0124 - Total Calculator Job JP 0x0126 - Total Bard Job JP 0x0128 - Total Dancer Job JP 0x012A - Total Mime Job JP 0x012C - 0x013B Unit Name 0x013C - 0x014B Job Name 0x014C - 0x0153 Primary Skillset Name (first 8 bytes) 0x0154 - 0x015B Secondary Skillset Name (First 8 bytes) 0x015c - Number of times unit has been KOed this battle 0x015d - Current Ability CT 0x015e - Graphic 0x015f - Portrait // Special Unit ID, if applicable, for allies (e.g. 0x1E for Agrias); otherwise, it was something else... sometimes 0x6X? 0x0160 - Palette 0x0161 - ENTD ID // (Non-Ramza allies: 0x70-0x7F; Ramza: (his base job, 01/02/03); Others: ENTD Unit ID) 0x0162 - Special Skillset? (Specials set their skillset here) 0x0163 - War Trophy 0x0164 - Bonus Money Mod (* 100 = Gil) 0x0165 - X Location? (For where AI tends to stay near) 0x0166 - Y Location? 0x0167 - 0x80 - Higher Elevation Flag (for location)? 0x40 - Focus on target? 0x20 - Stay near X/Y? (+0x08 = never move once there) 0x10 - more aggressive? 0x08 - Coward-like? 0x04 - 0x02 - 0x01 - 0x0168 - Prioritized Target 0x0169 - (ENTD) 0x016a - (ENTD) 0x04 - Save CT? (don't move unless needed?) 0x016b - (ENTD) 0x016c - Unit Name ID 0x00XX - Special 0x01XX - Generic Male 0x02XX - Generic Female 0x03XX - Generic Monster
Target Data for action 0x016e/0x00 - Attacker/Self ID? (this data for charging attacks?) 0x016f/0x01 - Skillset of Last Attack Used 0x0170/0x02 - Last Attack Used ID (Currently Charging/performing action?)(half) 0x0172/ox04 - Calculator Type Ability ID 0x0174/0x06 - Calculator Multiplier Ability ID 0x0176/0x08 - Used Item/Equip ID? 0x0178/0x0a - reaction ID? 0x05 - Tile-Specific Ability? 0x06 - Target-Specific Ability? 0x0179/0x0b - Target ID? 0x017a/0x0c - X target panel coordinate (half) 0x017c/0x0e - half - Target map level (half) 0x017e/0x10 - Y target panel coordinate (half 0x0180/0x12 - death on chocobo? 0x0181/0x13 - 0x80 - 0x40 - 0x20 - 0x10 - Stepping Stone 0x08 - 0x04 - 0x02 - 0x01 - Walkable 0x0182/0x14: Mount Info 0x80 - Riding A Unit 0x40 - Being Ridden 0x20 - 0x1f - ID of unit Riding/Being ridden by this unit 0x0183 - Dealing with unit's ability to appear in battle? (FF if unit can't exist?) (01 if unit exists, 00 if not (but later can?)?) 0x80 - Was active, but is now disabled? 0x02 - Unit will be removed from party? (no longer exists, treas/cryst?) 0x0184: Equipped Flags? 0x80 - 0x40 - 0x20 - 0x10 - 0x08 - Sword Equipped 0x04 - Materia Blade Equipped 0x02 - 0x01 - 0x0185 - 0x0186 - Character's turn if 01, otherwise 00 - able to use move/act/wait menu 0x0187 - Movement Taken 0x01 - Movement taken 0x00 - has not moved yet 0x0188 - Action Taken 0x01 - action taken 0x00 - has not acted yet 0x0189 - 0x80 - 0x40 - 0x20 - 0x10 - 0x08 - 0x04 - target learning ability? 0x02 - Target hit by ability? 0x01 - Turn ended (set to 01 when reacting) 0x018a - Unit ID (without "Unit Exists" check) 0x018b - Ability CT
CURRENT ACTION DATA dedicated page here
0x018c/0x00 - Hit Flag 0x00 - Miss 0x01 - Hit 0x018d/0x01 - Critical Hit Flag 0x018e/0x02 - Evade Type 0x00 - Hit 0x01 - Guarded (Accessory) / Evaded (Accessory) 0x02 - Evaded (Right Hand Item) 0x03 - Evaded (Left Hand Item) 0x04 - Arrow Guard? / Evaded (Class Evade) 0x05 - Nullified 0x06 - Miss 0x07 - Catch? / Attack forced to miss (Status infliction denied) / Float+Earth element / Finger Guard / Maintenance 0x08 - Canceled by status (death, petrify, wall) Set_some_data_for_current_attack (override previous values) 0x09 - Reflected? 0x0a - Golem 0x0b - Blade Grasp? 0x018f/0x03 - ID of the Item to remove (break/use/steal) 0x0190/0x04 - HP Damage 0x0192/0x06 - HP Recovery 0x0194/0x08 - MP Damage 0x0196/0x0a - MP Recovery 0x0198/0x0c - Gil Stolen/Lost 0x019a/0x0e - Reaction ID 0x019c/0x10 - Special Flags 1 0x80 - +1 Level 0x40 - Switch Team 0x20 - Poached 0x10 - Steal Item 0x08 - Stole targets item? - Katana not broken overrides others flag : here) 0x04 - Break Item 0x02 - Malboro (moldball virus) 0x01 - Golem 0x019d/0x11 - Special Flags 2 0x80 - Reducing Golem Amount? 0x40 - Knockback 0x20 - 0x10 - Katana broken 0x08 - Weakness? 0x04 - Absorption? 0x02 - Proc is Triggered - Enabled here Conditional_Status_Proc_Roll_(19%)_Inner_Routine 0x01 - -1 Level 0x019e/0x12 - SP Change 0x80 - Bonus Flag 0x019f/0x13 - CT Change 0xFF = "Quick" 0x7F = "CT0" 0x80 - Bonus Flag 0x01a0/0x14 - PA Change 0x80 - Bonus Flag 0x01a1/0x15 - MA Change 0x80 - Bonus Flag 0x01a2/0x16 - Brave Change 0x80 - Bonus Flag 0x01a3/0x17 - Faith Change 0x80 - Bonus Flag 0x01a4/0x18 - Status Change? 0x80 - animate on miss 0x02 - ("Guarded"?) 0x01 - Failed status infliction? ("Missed!") 0x01a5/0x19 - Remove Equipment 0x80 - Remove Helmet 0x40 - Remove Armor 0x20 - Remove Accessory 0x10 - Remove Right Hand Weapon 0x08 - Remove Right Hand Shield 0x04 - Remove Left Hand Weapon 0x02 - Remove Left Hand Shield 0x01 - 0x01a6/0x1a - Stolen Item ID 0x01a7/0x1b - Attack's Status Infliction 1 0x80 - 0x40 - Crystal 0x20 - Dead 0x10 - Undead 0x08 - Charging 0x04 - Jump 0x02 - Defending 0x01 - Performing 0x01a8/0x1c - Attack's Status Infliction 2 0x80 - Petrify 0x40 - Invite 0x20 - Darkness 0x10 - Confusion 0x08 - Silence 0x04 - Blood Suck 0x02 - Cursed 0x01 - Treasure 0x01a9/0x1d - Attack's Status Infliction 3 0x80 - Oil 0x40 - Float 0x20 - Reraise 0x10 - Transparent 0x08 - Berserk 0x04 - Chicken 0x02 - Frog 0x01 - Critical 0x01aa/0x1e - Attack's Status Infliction 4 0x80 - Poison 0x40 - Regen 0x20 - Protect 0x10 - Shell 0x08 - Haste 0x04 - Slow 0x02 - Stop 0x01 - Wall 0x01ab/0x1f - Attack's Status Infliction 5 0x80 - Faith 0x40 - Innocent 0x20 - Charm 0x10 - Sleep 0x08 - Don't Move 0x04 - Don't Act 0x02 - Reflect 0x01 - Death Sentence 0x01ac/0x20 - Attack's Status Removal 1 0x80 - 0x40 - Crystal 0x20 - Dead 0x10 - Undead 0x08 - Charging 0x04 - Jump 0x02 - Defending 0x01 - Performing 0x01ad/0x21 - Attack's Status Removal 2 0x80 - Petrify 0x40 - Invite 0x20 - Darkness 0x10 - Confusion 0x08 - Silence 0x04 - Blood Suck 0x02 - Cursed 0x01 - Treasure 0x01ae/0x22 - Attack's Status Removal 3 0x80 - Oil 0x40 - Float 0x20 - Reraise 0x10 - Transparent 0x08 - Berserk 0x04 - Chicken 0x02 - Frog 0x01 - Critical 0x01af/0x23 - Attack's Status Removal 4 0x80 - Poison 0x40 - Regen 0x20 - Protect 0x10 - Shell 0x08 - Haste 0x04 - Slow 0x02 - Stop 0x01 - Wall 0x01b0/0x24 - Attack's Status Removal 5 0x80 - Faith 0x40 - Innocent 0x20 - Charm 0x10 - Sleep 0x08 - Don't Move 0x04 - Don't Act 0x02 - Reflect 0x01 - Death Sentence 0x01b1/0x25: Attack Type 0x80 - HP Damage 0x40 - HP Recovery 0x20 - MP Damage 0x10 - MP Recovery 0x08 - Status Change? 0x04 - ? 0x02 - ? 0x01 - Pseudo-Status change? 0x01b2/0x26 - Last Attack Recieved 0x01b4/0x28 - Stolen Exp?
0x80 = Malus (Steal Xp)
0x01b5/0x29 - Stolen JP? 0x01b6/0x2a - Hit % (Display data?) 0x01b7/0x2b - 0x01b8/0x2c - Auto Battle Flag 0x01b9/0x2d - Main Target ID? 0x01ba/0x2e - Modified 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) 0x01bb/0x2f - Inflicted Status List 1 0x01bc/0x30 - Inflicted Status List 2 0x01bd/0x31 - Inflicted Status List 3 0x01be/0x32 - Inflicted Status List 4 0x01bf/0x33 - Inflicted Status List 5
80192da0 - Copy of Acting Unit's Current Action Data? 0x2c long
80193848 - (Data from 0x16e-0x182 of Unit Data)
* Not unit data start:
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
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
80192d8c - Attacker Current Action Data Pointer 80192d90 - Target Current Action Data Pointer 80192d94 - Attacker's Data Pointer 80192d98 - Target Data Pointer
80192d9c - Reaction ID
80192dcc - X coordinate of target 80192dd0 - Y coordinate of target 80192dd4 - map level of target
8018f5f4 - Team golem amounts
8017423c - 80174254 Song Abilities Address Table 80174258 - Nop 8017425c - 80174274 Dance Abilities Address Table 80174278 - Nop 8017427c - 80174294 Talk_Skill_Ability_Table 80174298 - Nop 8017429c - 801742fc Reaction abilities return adress table 80174300 - Nop (more unknown address tables after this)
8018afd8 - Reaction_abilities_return_adress_table
Map, Model, Camera Related Data
800960d8 - Map Tilt 0x02 - Steep 0x01 - Flat
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
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)
800a7784 - Map Tilt 0x2e - flatter 0xc0 - steeper 800a7786 - Map Rotation (half) 0x0002 0x0006 0x000a 0x000e
800c7ca8 - Camera zoom level (word); Higher number means more zoom Normal battle zoomed-out value: 0x0c00 Normal battle zoomed-in value: 0x1000
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
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)
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
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
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:
Animation & Display Related Data
80067e60 - Whoosh sounds? 80067e98 - return address list based on weapon type/direction (0x1dc in misc data) sets attackers animation
(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 ?) - Video : http://www.youtube.com/watch?v=nuy1yEL_Nhk (Thanks, Elric!) 0x02 - Flags 3 (Text displayed) 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 - Other 0x05 - Ruka 0x06 - Arute 0x07 - Kanzen 0x01 - SEQ ID 0x00 - Type 1 0x01 - Type 2 0x02 - Cyoko 0x03 - Mon 0x04 - Other 0x05 - Ruka 0x06 - Arute 0x07 - Kanzen 0x02 - Flying Flag 0x03 - Graphic height
800949c4 - Being Targetted Frame (front) - called if target hasn't replaced target animation (e.g. shield) 0x00 - Type 1 = 0x0b 0x01 - Type 2 = 0x0b 0x02 - Cyoko = 0x02 0x03 - Mon = 0x02 0x04 - Other = 0x01 0x05 - Ruka = 0x02 0x06 - Arute = 0x01 0x07 - Kanzen = 0x01 0x08-0x0c - 0x00 800949d0 - Being Targetted Frame (back) 0x00 - Type 1 = 0x10 0x01 - Type 2 = 0x10 0x02 - Cyoko = 0x04 0x03 - Mon = 0x04 0x04 - Other = 0x06 0x05 - Ruka = 0x04 0x06 - Arute = 0x0a 0x07 - Kanzen = 0x0a 0x08-0x0c - 0x00
File LBA & filesize locations 80094c04 - sprite type SEQ LBA & filesize 0x00 - spritesheet LBA 0x04 - spritesheet file size 80094c4c - sprite type SHP LBA & filesize 80094c94 - WEP 1 & 2 SEQ LBA & filesize 80094ca4 - WEP 1 & 2 SHP LBA & filesize 80094cb4 - EFF 1 SEQ LBA & filesize 80094cc4 - EFF 1 SHP LBA & filesize (there is room for EFF 2, but it would seem to be blanked out.) 80094cd4 - spritesheet LBA & filesize 8009560c - SP2 LBA & filesize (sorted by portrait. most values are null, this is just where bomb sp2 starts) 800956c4 - Iron giant SP2 LBA & filesize (sorted by animation ID. starts at 0x74)
8009612c - Animation continue check? 2 if not, 0 if so (word). 1 is also used, but I can't tell what for. 800962f4 - Graphic SHP data (how to build frames) 0x00 - start of Type 1 0x688 - start of type 2 0xD10 - start of Cyoko 0x1398 - start of Mon 0x1a20 - start of other 8009839c - Hardcoded address for RUKA/ARUTE/KANZEN SHP data 800a1c84 - Unit Animations start. loaded in ENTD order
800a69d0 - Weapon Animations start. 800a839c - some pointer for Ruka and above spritesheets? 800bdf0c - SHP data 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 - RUKA/ARUTE/KANZEN SEQ data (these overlap?)
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
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
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
80098dcc - numerical display data 80098dd4 - numerical display data?
800bda04 - 0x04 - X/Y Shift for number display 0x06 - Image Width/Height
800c7ce8 - start of VRAM spritesheet data (store decompressed attacking graphics from unit spriteesheet) 0x00 - misc unit ID 0x1f: unit's Misc ID 0xE0: unit's VRAM transparency type 0x01 - spritesheet ID 800d4640 - Palettes 800e466e - end of VRAM spritesheet data ?
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?
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"
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?)
Player Menu Memory Addresses
8016923c - list of menu data (0x05 bytes each) 0x00 - Menu type number (corresponds to 0x165f84 data)
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
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 ....
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
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
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
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
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.
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)
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
80173c6c - action menu byte
(text page? or just section per file?) 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
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
Assorted Memory Addresses
80067000 - List of return addresses (0x794 lines or 0x1e4 addresses) 80067830 - 800942ab - 800960c0 - 800960c4 - 80094ba4 - ? Palettes 800960f0 - Set to 1 when status is selected in main battle menu 800960f8 - Whether or not the status menu has already been requested (Triangle on Ai player turn) 800960fc - 80096100 - AT List ID (used to determine which data to load from the AT list) 80096104 - Map ID 80096200 - learned ability (learn on hit)? 8009620c - trap to display? 80096210 - Item to display 800962f4 - 80098a54 - Some units Misc Data Pointer 80098a54 - Pointer to last unit's Misc Data? 80098db8 - ?? cleared after post action 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 800bde64 - 800e6bb0 - list of return addresses 800e6c98 - list of return addresses 800e6edc - 800f64dc - 8016866c - start of a set of data 0x0c long, (0x1b0 total) (0x24 sets) 0x00 - address to ?? (word) 0x04 - 8016881d - 80169230 - 80121d58 - 80121d8f - list of data, 0x12 bytes long each, 9 entries 80132824 - ?
Yet Unsorted Addresses
80165f74
80174068 - Return address for ability range (based on action menu byte)17a8c0 routine
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
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
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
80169808
801697d0
80169870
801692b8 -
8016e42c
8016d9ca
80172258 - target current action pointer
80172660
801739c8 -
80173b00 - 80173c30'
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 - Table for Skillset Loading: jump locations for each Action Menu type. 4 bytes each. 0x00 (0x80174144): Default 0x04 (0x80174148): Item 0x08 (0x8017414C): Throw 0x0C (0x80174150): Math Skill 0x10 (0x80174154): Elemental 0x14 (0x80174158): Blank 0x18 (0x8017415C): Monster 0x1C (0x80174160): Draw Out 0x20 (0x80174164): Attack 0x24 (0x80174168): Jump 0x28 (0x8017416C): Charge
80174174 - 001829a8
80178f9c -
801792b8 -
80179828 - some pointer (word)
8018f500 - Pointers to some routine used while spreading AoE of Move. 0x00 - 801754d0 Spread_Move_to_East_Preset 0x04 - 801754f4 Spread_Move_to_North_Preset 0x08 - 8017551c Spread_Move_to_West_Preset 0x0c - 80175540 Spread_Move_to_South_Preset 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
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.)
8018f520 - active units ID?
8018f5f0 - Type of action (word) 0x01 - Reacting 0x00 - pre-attack, initial attack 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)
8018f4e0 - Pointer to Scratch Pad 0x1f800000 8018f4e4 - Pointer to Scratch Pad 0x1f800180 8018f4e8 - Pointer to Scratch Pad 0x1f800080 8018f4ec - Pointer to Scratch Pad 0x1f800100 8018f4f0 - Pointer to Scratch Pad 0x1f800200 8018f4f4 - Counter for some panel targeting 8018f4f8 - set to 1 during linear attack routine (word) 8018f4fc -
8018f510 - Set to 1 when reachable tile are set in 00174b8c_-_00174df4 8018f514 - Active unit ID (when 8018f510 is set to 1) - stored as a word (?)
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
8018f8b0 - "Can mimic Table" / 1 byte per Unit 0x15 entries (in battle data order while looping) Set to 0x01 if Unit is a mime and 0x8019389d = 0x01 In_between_turn_control_routine check variable 0x0d and 0x0e sections if 01 allows mimic setting
8018f8c5 - end -0x0738 8018f8c8 - Acting Unit ID (word)
80193d48 - Pointers for Action menu in routine : AI Ability Data Setting 0x00 - 801959d4 - Item Inventory 0x04 - 80195a30 - Weapon Iventory 0x08 - 80195bcc - Arithmeticks 0x0c - 80195c00 - Elements 0x10 - 80195c00 - Blank 0x14 - 80195c00 - Monster 0x18 - 80195a24 - Katana inventory 0x1c - 80195944 - Attack 0x20 - 80195a90 - Jump 0x24 - 80195ba0 - Charge 80193d98: Jump Adress for AI routine Calculate_Physical?_Target 6 words long
80192dda -
80192dd8 - Moveable/Targetable Panel Grid (By rows of X panels, 0x10 in each row) 0x00 - AoE of panels to highlight (1 only highlights panel, 2 highlights AoE 1 panels, etc.) 0x01 - set to 01 when panel is green (targeted with ability) - used as a stack in Select_Random_Tile_For_Random_Fire_Abilities 0x02 - Unit Number (battle) of unit standing on panel? 0x03 - 0x04 - Obstructed (set to 0xff if panel is obstructed)/ Not reachable? 801937d8 - Movable Unit Grid (0x10 Entries) - 0x05 Bytes (pretty much the same as Panel grid)
ENTD math?
80193844 - Sum of enemy levels (when loaded; doesn't factor in level ups) 80193920 - Highest enemy level (when loaded; doesn't factor in level ups)
Current executing ability data
80193860 - ? (set to 0 if an item is used on undead) - Host 1st set of canceled statuses (routine 0018b9f8called from pre formula set up) 80193861 - 2nd set of canceled statuses 80193862 - 3rd set of canceled statuses 80193863 - 4th set of canceled statuses 80193864 - 5th set of canceled statuses
80193868 - Targets hit by ability (0x10 bytes; amount of non-FF data is counted, and the data c/p to misc. unit data, 0x18e) 0x0f long 80193877 - End of target list 80193878 - Targets Hit Counter 8019387c
80193881 - start of some panel data (0x03 bytes each)
80193898
Current Ability Data 8019389c - Attacker's Facing (byte) 8019389d - Action performed byte? / set to 0x01 in Current_Action_Attacker_Data_Setting - If not null can trigger mimic in In_between_turn_control_routine 8019389e - Attacker's RH Weapon 8019389f - Attacker's LH Weapon 801938a0 - Attacker's Team
801938a2 - X Distance between Attacker/Target (halfword) 801938a4 - Y Distance between Attacker/Target (halfword) 801938a6 - Attacker/Self ID 801938a7 - Used Skillset ID 801938a8 - Used Ability ID 801938aa - Calculator Type ID 801938ac - Calculator Multiplier ID 801938ae - Used Item/Equip ID 801938af - (0x177) 801938b0 - Reaction ID?/flags 801938b1 - Target ID? 801938b2 - Target X 801938b4 - Target Map Level 801938b6 - Target Y 801938b8 - (0x180) 801938b9 - (0x181) stepping stone flags? 801938ba - Mount Info 801938bb - 801938bc - (word) Learn on hit? Hamedo Byte (set to 1 if hamedoing) - tells you to skip original attack
801938c0 - Attacker Unit ID 801938c1 - Target Unit ID 801938c2 - #Hits 801938c3 - Strike Counter 801938c4 - Primary Weapon ID (Also used for used item/weapon ID for Weapon Inventory) 801938c5 - Secondary Weapon ID 801938c6 - Reaction ID (half) also set to 0x01 if reaction is occurring, then later set with ability ID 801938c8 - ? (Deals with elemental nullification)/poach (post action thing? used in reaction routine too) (half) 0x01 - perform reaction? 801938ca - Target new X Coordinate 801938cb - Target new Y coordinate 801938cc - target new elevation 801938cd - Caster Tile Type 801938ce - XA 801938d0 - YA 801938d2 - Defender's Effective Faith 801938d3 - Attacker's Effective Faith (set to 100 after checking faith) 801938d4 - Used Ability's Skillset
801938d6 - Used Ability ID? 801938d8 - Used Weapon ID 801938d9 - ? (01 = two-hands is in use?) 801938da - Proc ID 801938db - Used Item ID 801938dc - Base Hit
801938de - Accessory Evade 801938df - RH Evade 801938e0 - LH Evade 801938e1 - Class Evade 801938e2 - Facing Modifier (00 Front, 01 Side, 02 Back)
801938e4 - Charge's Power? 801938e5 - Ability Formula? 801938e6 - Undead Reverse flag (So far, met only in Formula 0E free to be used anywhere else ?) 801938e7 - Earned Experience 801938e8 - Can earn EXP? 801938e9 - defaults to weapon attack? (default to attack flag?) 0x01 - default to weapon attack? 0x00 - don't default 801938ea - Random Damage modifier (Formula 0x32 : just stored and loaded - no other occurences found) - did some test with other formulas does nothing (free to use ?) 801938eb - MP Used 801938ec - able to knock back? (checked in knockback calculation) / Target Counter 801938ed - can poach?/fall damage flags? 0x80 - Fall damage not calculated 0xX2 - Ignore Fall Damage (Flying Unit) 0xX1 - Take Fall Damage (non-flying units, flying 801938ee - Fall Distance (divide by 2 for tiles fallen) 801938ef - post-action target ID? (used in knockback 2) 801938f0 - Ability Range 801938f1 - Ability Effect Area 801938f2 - Ability Vertical 801938f3 - Ability Flags 1 0x80 - 0x40 - 0x20 - Ranged Weapon 0x10 - Vertical Fixed 0x08 - Vertical Tolerence 0x04 - Weapon Strike 0x02 - Auto 0x01 - Can't Target Self 801938f4 - Ability Flags 2 0x80 - Can't Hit Enemies 0x40 - Can't Hit Allies 0x20 - 0x10 - Can't Follow Target 0x08 - Random Fire 0x04 - Linear Attack 0x02 - 3 Directions 0x01 - Can't Hit Caster 801938f5 - Ability Flags 3 0x80 - Reflectable 0x40 - Math Skill 0x20 - Affected By Silence 0x10 - Can't Mimic 0x08 - Normal Attack? 0x04 - Persevere 0x02 - Quote 0x01 - Animate on Miss 801938f6 - Ability Flags 4 0x80 - Counter Flood 0x40 - Counter Magic 0x20 - Direct 0x10 - Blade Grasp 0x08 - Requires Sword 0x04 - Requires Materia Blade 0x02 - Evadeable 0x01 - Np Targetting 801938f7 - Ability Element 0x80 - Fire 0x40 - Lightning 0x20 - Ice 0x10 - Wind 0x08 - Earth 0x04 - Water 0x02 - Holy 0x01 - Dark 801938f8 - Ability Formula 801938f9 - Ability X 801938fa - Ability Y 801938fb - Ability Inflict Status ID 801938fc - Ability CT 801938fd - Ability MP Cost 801938fe - Weapon Range
801938ff: Weapon Characteristics 0x80 - Striking 0x40 - Lunging 0x20 - Direct 0x10 - Arc Attack 0x08 - 2 Swordable 0x04 - 2h enabled 0x02 - Cast Spell (disabled, with formula 02), or inflict status (enabled)? 0x01 - Forced 2h
80193900 - Weapon Formula 80193901 - 80193902 - WP 80193903 - W-Evade 80193904 - Weapon's Element 80193905 - Inflict Status/Cast Spell Index
80193906 - Status Infliction Type 0x80 - All or Nothing 0x40 - Random 0x20 - Separate 0x10 - Cancel 0x08 - 0x04 - 0x02 - 0x01 - 80193907 - Status Set 1 0x80 - 0x40 - Crystal 0x20 - Dead 0x10 - Undead 0x08 - Charging 0x04 - Jump 0x02 - Defending 0x01 - Performing 80193908 - Status Set 2 0x80 - Petrify 0x40 - Invite 0x20 - Darkness 0x10 - Confusion 0x08 - Silence 0x04 - Blood Suck 0x02 - Cursed 0x01 - Treasure 80193909 - Status Set 3 0x80 - Oil 0x40 - Float 0x20 - Reraise 0x10 - Transparent 0x08 - Berserk 0x04 - Chicken 0x02 - Frog 0x01 - Critical 8019390a - Status Set 4 0x80 - Poison 0x40 - Regen 0x20 - Protect 0x10 - Shell 0x08 - Haste 0x04 - Slow 0x02 - Stop 8019390b - Status Set 5 0x80 - Faith 0x40 - Innocent 0x20 - Charm 0x10 - Sleep 0x08 - Don't Move 0x04 - Don't Act 0x02 - Reflect 0x01 - Death Sentence wrong i think 8019390c - Ability Type 8019390d - Ability Element (Set to 0x01 if Unit gain a Job Lv at Main_Reaction_subroutine_-_ENTD/ID_stuff) 8019390e - Post Formula flag set to 0x06 if target is poached / 0x09 if target is trained (switch team) 8019390f - Ability Power 1 80193910 - Ability Power 2 80193911 - Ability Inflict Status ID? 80193912 - Ability CT (?) 80193913 - Ability MP Cost
During movement? 80193910 - Move find item data 1 0x00 - coordinates (XY) 0x01 - Trap Flags/activation 0x20 - always trap 0x10 - disable trap 0x03 - steel needle 0x02 - sleeping gas 0x01 - deathtrap 0x00 - degenerator 0x02 - Rare Item 0x03 - Common Item Move find item data 2 Move find item data 3 Move find item data 4
80193924 - Unit AI Extended Status Data (16 total, 0x40 bytes each) 0x00 - Unit ID 0x01 - Death Counter 0x02 - Death Sentence CT? 0x03 - Current Statuses 1 0x04 - Current Statuses 2 0x05 - Current Statuses 3 0x06 - Current Statuses 4 0x07 - Current Statuses 5 0x08 - Poison CT 0x09 - Regen CT 0x0a - Protect CT 0x0b - Shell CT 0x0c - Haste CT 0x0d - Slow CT 0x0e - Stop CT 0x0f - Wall CT 0x10 - Faith CT 0x11 - Innocent CT 0x12 - Charm CT 0x13 - Sleep CT 0x14 - Don't Move CT 0x15 - Don't Act CT 0x16 - Reflect CT 0x17 - Death Sentence CT 0x18 - ENTD Flags 0x19 - Faith 0x1a - Turn Flag? 0x1b - HP
0x1e - MP 0x20 - Current Ability CT 0x21 - Base PA 0x22 - Base MA 0x23 - Base SP 0x24 - PA 0x25 - MA 0x26 - SP 0x27 - CT 0x28 - X Coordinate 0x29 - Y Coordinate 0x2a - Map Flags (Map Level, Facing, etc.) 0x2b - Turn Flag? 0x2c - Unit Moved Flag? 0x2d - Unit Acted Flag? 0x2e - (0x1b8 in unit data) 0x2f - Main Target ID? 0x30 - Modified ENTD Flags 0x31 - Inflicted Statuses 1 0x32 - Inflicted Statuses 2 0x33 - Inflicted Statuses 3 0x34 - Inflicted Statuses 4 0x35 - Inflicted Statuses 5 0x36 - Helmet 0x37 - Armor 0x38 - Accessory 0x39 - Right Hand Weapon 0x3a - Right Hand Shield 0x3b - Left Hand Weapon 0x3c - Left Hand Shield 0x3d - Brave 0x3e - Mount Info
80193d24 - Attacker's AI Data 0x00 - Facing 0x01 - (set to 1 when setting the weapon IDs) 0x02 - RH Weapon 0x03 - LH Weapon 0x04 - Team 0x05 - 0x06 - X Distance between Attacker/Target 0x08 - Y Distance between Attacker/Target 0x0a - Attacker/Self ID 0x0b - Used Skillset ID 0x0c - Used Ability ID 0x0e - Calculator Type ID 0x10 - Calculator Multiplier ID 0x12 - Used Item/Equip ID 0x13 - (0x177) 0x14 - Reaction ID?/flags 0x15 - Target ID? 0x16 - Target X 0x17 - 0x18 - Target Map Level 0x19 - 0x1a - Target Y 0x1b - 0x1c - (0x181) stepping stone flags? 0x1d - Mount Info
80193d44 - Acting Unit's Used Ability ID
80193d98 - AI Targeting? Code Pointers
80193aec - Player unit information (0x40 long for 5 units?) 0x0000 - Poison CT 0x0001 - Regen CT 0x0002 - Protect CT 0x0003 - Shell CT 0x0004 - Haste CT 0x0005 - Slow CT 0x0006 - Stop CT 0x0007 - Wall CT 0x0008 - Faith CT 0x0009 - Innocent CT 0x000a - Charm CT 0x000b - Sleep CT 0x000c - Don't Move CT 0x000d - Don't Act CT 0x000e - Reflect CT 0x000f - Death Sentence CT 0x0010 - Units Current Faith (not original) 0x0011 - Unit CT 0x0012 - Units HP 0x0013 - Units HP (2nd Byte)
0x0019 - Original PA 0x001a - Original MA 0x001b - Original Speed 0x001c - Current MA? 0x001d - Current Spd 0x001e - byte 0x39 in unit data... other CT byte? 0x001f - X Coordinate 0x0020 - Y Coordinate 0x0021 - Higher Elevation, facing direction? 0x0022 - Movement taken flag 0x0023 - action taken flag (perhaps double as "Able to Move/Act") 0x0024 - Main Target ID 0x0025 - Copy of 0x0006 in unit data, team/ENTD/Immortal flags (Current Action Data) 0x0026 - Inflicted statii (factors in random/seperate/etc. and accuracy) (Current Action Data) 0x0027 - Byte 2 ^^ 0x0028 - Byte 3 ^^ 0x0029 - Byte 4 ^^ 0x002a - 2d - Last bytes of unit data?? (list may have gotten out of order)
( Routine (0x0019ab44) starts loading THIS data into UNIT data.... wtF?) 0x002e - Equipped body 0x002f - equipped accessory 0x0030 - equipped right hand weapon 0x0031 - equipped right hand shield 0x0032 - equipped left hand weapon 0x0033 - equipped left hand shield
80193b2c - Unit 2 80193b6c - unit 3 80193bac - unit 4 80193bec - unit 5 80193c2c - ??
Table of Offsets from 0x193D48-E4F 801959D4 (Throw Item) 80195A30 (Something to do with moving?) 80195BBC (?) 80195C00 (?) 80195A24 (?) 80195944 (?) 80195A90 (CTR calculation for spells) 80195BA0 (?) 80198578 (?) 801985F8 (?) 8019870C (Checks r2 for 1 or -1 at beginning, ELSE, proceed to bottom routines...stuff for positive or negative status, maybe?) 80198748 (?) 80198788 (?...very similar to above...one's for damage, the other healing?) 801987C0 (?...very similar to above...this one's for pseudo-status?) 801986A0 (Goes into routine 0x19870C but inputs different variables) 801992E8 (Blood Suck) 80199240 (All routines that go to the same place as Blood Suck...telling the AI know unit is KO'd?) 80199288 (Check something? Increment r18 by 1 to check 21 times.) 801992FC (AI Routine for crystal/treasure?) 801992A0 (More routines that go to the same place as Blood Suck) 80199214 (Check something different? Increment r18 by 1 to check 21 times.) 8019B0B8 (?) 8019B100 (?...very similar to above...again, there's a check for -1 that voids the routine) 8019B160 (?...very similar to above...again, there's a check for -1 that voids the routine) 8019B1CC (?) 8019B240 (?) 8019B2C0 (?) 8019B068 (?...leads into 0x190B8 but with 2 extra checks, with a check for -1 that voids the 80routine) 8019AF74 (?...leads into previous routine but loads a random number...something to do with decision making?) 8019B094 (The second check of 0x19B068) 8019D8EC (Multiplies X? with r4 for CT?) 8019D91C (AI on CT effects like slow/stop and sleep/don't move/don't act) 8019D8F8 (Multiplies Y? with r4 for CT?) 8019D978 (CT effects' AI) 8019D950 (AI for control effects like Blood Suck/Confuse/Charm...my AI hack for Invite probably also needs to edit this or the AI won't use invite the way he uses charm...0x19D974 touches something important?)
Status Priority Values (19f308)
Values are interpreted as curHP%, thus, each status is +/- effective curHP. 0x01: Statuses 1 0x80 - 0% (0000) 0x40 - Crystal -150% -c0(ff40) 0x20 - Dead -150% -c0(ff40) 0x10 - Undead -30.5% -27(ffd9) 0x08 - Charging 0% (0000) 0x04 - Jump 0% (0000) 0x02 - Defending 0% (0000) 0x01 - Performing 0% (0000) 0x02: Statuses 2 0x80 - Petrify -90.6% -74(ff8c) 0x40 - Invite -180.4% -e7(ff19) 0x20 - Darkness -50% [-40(ffc0) * Evadable abilities] + 3 / 4 0x10 - Confusion -50% -40(ffc0) (+1 / 4 if slow/stop/sleep/don't move/act/) 0x08 - Silence -70.3% [-5a(ffa6) * Silence abilities] + 3 / 4 0x04 - Blood Suck -90.6% -74(ff8c) (+1 / 4 if slow/stop/sleep/don't move/act/) 0x02 - Cursed 0%(0000) 0x01 - Treasure -150% -c0(ff40) 0x03: Statuses 3 0x80 - Oil -5.5% -7(fff9) 0x40 - Float 9.4% c(000c) 0x20 - Reraise 39.8% 33(0033) 0x10 - Transparent 29.7% 26(0026) 0x08 - Berserk -30.5% -27(ffd9) 0x04 - Chicken -20.3% -1a(ffe6) 0x02 - Frog -40.6% -34(ffcc) 0x01 - Critical -25% -20(ffe0) 0x04: Statuses 4 0x80 - Poison -20.3% -1a(ffe6) 0x40 - Regen 19.5% 19(0019) 0x20 - Protect 19.5% 19(0019) 0x10 - Shell 19.5% 19(0019) 0x08 - Haste 14.8% 13(0013) 0x04 - Slow -30.5% -27(ffd9) 0 if Confusion/Charm/Blood Suck 0x02 - Stop -70.3% -5a(ffa6) 0 if Confusion/Charm/Blood Suck 0x01 - Wall 50% 40(0040) 0x05: Statuses 5 0x80 - Faith 4.7% 6(0006) 0x40 - Innocent -5.5% -7(fff9) 0x20 - Charm -50% -40(ffc0) (+1 / 4 if slow/stop/sleep/don't move/act/) 0x10 - Sleep -30.5% -27(ffd9) 0 if Confusion/Charm/Blood Suck 0x08 - Don't Move -30.5% -27(ffd9) 0 if Confusion/Charm/Blood Suck 0x04 - Don't Act -50% -40(ffc0) 0 if Confusion/Charm/Blood Suck 0x02 - Reflect 19.5% 19(0019) 0x01 - Death Sentence -80.5% -67(ff99)
8019f3ac - pointer to start of skillset/AI data (8019f3c4) 8019f3c0 - Unit AI Extended Status Data Pointer 8019f3c4 - Start of AI data *AI Ability Use Data (0x14 total?)* 0x0000 - Skillset 0x0001 - CT 0x0002 - Ability ID 0x0004 - Range 0x0005 - AoE 0x0006 - Item Considered (Destroyed/Stolen/Used) 0x0007 - Status Infliction 1 0x0008 - Status Infliction 2 0x0009 - Status Infliction 3 0x000a - Status Infliction 4 0x000b - Status Infliction 5 0x000c - AI Behavior Flags 1 0x80 - HP 0x40 - MP 0x20 - Cancel Status 0x10 - Add Status 0x08 - Stats 0x04 - Unequip 0x02 - Target Enemies 0x01 - Target Allies 0x000d - AI Behavior Flags 2 0x80 - Ignore Range? 0x40 - Reflectable 0x20 - Undead Reverse 0x10 - Follow Target? 0x08 - Random Hits 0x04 - Faith 0x02 - Evadeable 0x01 - Silence (on = affected by silence) 0x000e - AI Behavior Flags 3 0x80 - Arc Attack? 0x40 - Direct Attack 0x20 - Linear Attack 0x10 - Vertical Increase (default off) 0x08 - Triple Attack 0x04 - Triple Bracelet 0x02 - Magic Defense UP 0x01 - Defense UP 0x000f - AI Behavior Flags 4? 0x80 - Usable by AI? 0x40 - Cannot Target Enemy? 0x20 - Cannot Target Ally? 0x10 - 0x08 - Requires Monster Skill? 0x04 - Weapon-Range? (physical/weapon attacks) 0x02 - (raise/wall/Wave fist/dash/accumulate) 0x01 - Evade with Motion 0x0010 - Ability Elements 0x0011 - MP Cost 0x0014 - (set to 1 after setting AI Targeting Flags) 0x0018 - Acting Unit's X Coordinate 0x0019 - Acting Unit's Map Level 0x001a - Acting Unit's Y Coordinate 0x001b - ? (set to 0 when getting X/Y) 0xf3df/0x001b - (set to 0 when initializing current unit's data) 0xf3e0/0x001c/0x00 - Acting Unit's ID 0xf3e1/0x001d/0x01 - Skillset of Last Attack 0xf3e2/0x001e/0x02 - Last Attack Used ID 0xf3e4/0x0020/0x04 - Calculator Type Ability ID 0xf3e6/0x0022/0x06 - Calculator Multiplier Ability ID 0xf3e8/0x0024/0x08 - Item Destroyed/Stolen ID
0xf3ea/0x0026 - 0x05 - ability that uses weapon/physical animation 0x06 - ability that uses a target-specific animation 0xf3eb/0x0027 - Target ID? 0xf3ec/0x0028 - Target X
0xf3ee/0x002a - Target Map Level
0xf3f0/0x002c - Target Y
0xf3f4/0x0030 - Mount Info 0xf3f5/0x0031 - Base Hit% 0xf3f6/0x0032 - (halfword) - set to 0 after setting AI extended status 0xf3f8/0x0034 - ?? 0xf3f9/0x0035 - ?? 0x0050 - 0x0054 0x0000/0x0082 - set to 1 if ability is affect MP but not target enemy 0xf468/0x00a4 - Start of some data 0x????/0x0100 - ?? some flag? 0x????/0x0148 - Start of some data 0x????/0x01ec - ability MP cost list? (0x51 bytes, 0xff marks end of list) 0x????/0x0200 - Golem Amounts 0x00 - Blue Team 0x01 - Red Team 0x02 - Light Blue Team 0x03 - Green Team
0xf5f4/0x0230 - ? list (list from 0xe3c, 8 bytes) 0xf5f0/0x022c - AI Calculation Types? 0 skips Reaction calculations (Attack Phase?) 0xf5f4/0x0230 - ? list (list from 0xe3c, 8 bytes) 0xf5fc/0x0238 - set to 1 when moving Acting Unit data to AI (word) 0 = Attack Phase? 2 skips storing MP after subtracting MP used in 0x0017da20 != 0 skips formulas 1e and 1f random hits calculation 0x????/0x23e - action menu byte? /0x290 -
0xf750/0x038c - Graphical Data? 0x4e4 - trap settings?
/0x04ec - unit has weapon bytes? (check routine at 80182f34) 0x0a74 - data based on unit ID (0x48 bytes each) 0x0031/0x0c6d - set to 0 if 0xffff returned from 0x1971b8 0x0032/0x0c6e - set to 1 if able to move to target? (cleared when main target ID is set? 0x0036/0x0c72 - set to 0 if 801a0d7b != 0, else set to 1 0x0038/0x0c74 - X Coordinate 0x0039/0x0c75 - Map Level 0x003a/0x0c76 - Y Coordinate 0x003b/0x0c77 - ? (set to 0 when getting X/Y) 0x003c/0x0c78 - Active Unit List? (0x15 long) 0x0051/0x0c8d - Targetable Unit List (0x15 long, initialized targetable) 0x0065/0x0ca1 -
0x0078/0x0cb4 - (word) 0x40000000 - enabled after setting some targetability flags / Disabled if Acting unit has [Allied Target] or [Death Sentence] 0x20000000 - set if ability ID = holy water??? 0x01000000 - (enabled after setting AI Targeting Data) 0x007c/0x0cb8 - (halfword) 0x007e/0x0cba - (checked against FF)(byte) (set to 0xFF based on skillset = 0, 2? 0x0082/0x0cbe - (set to 0 after checking AI move list stuff) (set to 1 if MP/Target Enemies isn't enabled) 0x0000/0x0cc4 - list of words determined by 0x01f1 in AI data 0x0082/0x???? - set to 1 if ability has MP or target enemies flagged
0x0098/0x0cd4 - List of Unit AI/Action? Data (0x14 bytes - 16 Units) 0x00 - Attacker/Self? ID 0x01 - Last Attack Skillset 0x02 - Last Attack ID 0x04 - Calculator Type ID 0x06 - Calculator Multiplier ID 0x08 - Used Item/Equip? ID 0x09 - (0x177 in unit data) 0x0a - (0x178) 0x0b - Target ID? 0x0c - Target X 0x0d - (0x17b) 0x0e - Map Level Flag 0x0f - (0x17d) 0x10 - Target Y 0x11 - (0x17f) 0x12 - (0x180) 0x13 - (0x181) 0x01d8/0x0e14 - Chosen Throw Ability ID? 0x01da/0x0e16 - Chosen Throw Weapon ID? 0x01dc/0x0e18 - ? list (0x14 bytes) Set to 0 after Extended Status CT is set
0x01f1/0x0e2d - cleared after setting main target ID 0x01f2/0x0e2e - Acting Unit's ID /0x0e2f - Acting units ID? 0x01f3/0x0e3e - Acting Unit's Battle ID 0x01f4/0x0e30 - Acting Unit's X Coordinate 0x01f5/0x0e31 - Acting Unit's Map Level 0x01f6/0x0e32 - Acting Unit's Y Coordinate 0x01f7/0x0e33 - ? (set to 0 when getting X/Y) 0x01f8/0x0e34 - Acting Unit's AI Decision Pointer 0x01fc/0x0e38 - Acting Unit's Move 0x01fd/0x0e39 - Acting Unit's Team 0x01fe/0x0e3a - Map Max X 0x01ff/0x0e3b - Map Max Y 0x0200/0x0e3c - Team Golem values(8 bytes) 0x0000/0x0e44 - Status inflictions 1 0x0000/0x0e45 - Status inflictions 2 0x0000/0x0ef6 - Status inflictions 3 0x0000/0x0ef7 - Status inflictions 4 0x0000/0x0ef8 - Status inflictions 5
0x0213/0x0e4f - Remaining Clockticks 0x0214/0x0e50 - Unit AI Status Data Pointer (16 total, 8 bytes each) 0x00 - Unit ID 0x01 - Death Counter 0x02 - Death Sentence CT 0x03 - Current Statuses 1 0x04 - Current Statuses 2 0x05 - Current Statuses 3 0x06 - Current Statuses 4 0x07 - Current Statuses 5 0x0294/0x0ed0 - current abiliity CT 0x0295/0x0ed1 - current status 0x0296/0x0ed2 - inflicted status list 1 0x0298/0x0ed4 -0x0298/0x0ed4 - Main AI Progress? (0-2, for 0x00193e50)(byte) set to 0x02 if ability fails? 0x029a/0x0ed6 - 0x0???/0x0ee0 - In between turn control variable 0x0???/0x0ee4 - Menu loading control variable? 0x0???/0x0ee8 - active unit ID? 0x02b2/0x0eee - AI Progress? (0-2, for 0x0019d37c)(byte)
(801a02b4) (Unit entries ordered by AI unit index, which is a lookup table at 0x801a0d50 (AIData+0x198c) - lookup by battle unit index ("Unit ID" here)) 0x02b4/0x0ef0 - Unit's Move List (0x4 bytes each, 0x22 abilities per unit, 16 units, 0x88 bytes per unit, 0x880 total) 0x00 - Ability/R/S/M/Item ID (lower 8 bits) 0x01 - Upper 6 bits - Unit ID Lower 2 bits - bits 9 and 10 of A/R/S/M ID 0x02 - Ability's Skillset 0x03 - Usage Type? 0x80 - Set if usable ability? 0x40 - Allies/Self Only 0x20 - Enemies Only 0x10 - 0x08 - Requires Monster Skill? 0x04 - Weapon-Range? (physical/weapon attacks) 0x02 - (raise/wall/Wave fist/dash/accumulate) 0x01 - Evade with Motion? (may mean fail) 0x0b34/0x1770 - Hardcoded AI-Status abilities 0x00 - C8 - Blood Suck 0x01 - 00 (Target ID stored here shifted by 0x0a) Frog 0x02 - A7 0x03 - Usage Type = 0x84 0x04 - 6F (frog attack?) 0x05 - 01 Berserk 0x06 - A9 0x07 - Usage Type = 0x84 0x0b3c/0x1778 - Unit Weapon? Attack Data (16 entries, 8 bytes each) 0x00 - Range 0x01 - AI Behavior Flags 1 0x80 - HP 0x40 - MP 0x20 - Cancel Status 0x10 - Add Status 0x08 - Stats 0x04 - Unequip 0x02 - Target Enemies 0x01 - Target Allies 0x02 - AI Behavior Flags 2 0x80 - Ignore Range? 0x40 - Reflectable 0x20 - Undead Reverse 0x10 - Follow Target? 0x08 - Random Hits 0x04 - Faith 0x02 - Evadeable 0x01 - Silence (on = affected by silence) 0x03 - AI Behavior Flags 3 0x80 - Arc Attack? 0x40 - Direct Attack 0x20 - Linear Attack 0x10 - Vertical Increase (default off) 0x08 - Triple Attack 0x04 - Triple Bracelet 0x02 - Magic Defense UP 0x01 - Defense UP 0x04 - Weapon ID 0x05 - Elements 0x06 - 0x07 - 0x0bbc/0x17f8 - Acting Unit's Data Pointer
0x0bc3/0x17ff - (byte) 0x0000/0x1800 - word from AI + cc4 stored here
0x0bdc/0x1818 - (byte)
0x0bf0/0x182c - AI Decision Data? (16 bytes each, 21 total?) 0x00 - X Location? (these 3 are for where the AI will stay around) - Target X if focusing a unit 0x01 - Higher Elevation Flag? 0x02 - Y Location? - Target Y if focusing a unit 0x03 - (set to 0 after finding usable abilities) (Set to 0 in Store_main_target_ID_and_focus_on_target_flag - Target found) 0x04 - (0x167 in Unit's Data) 0x80 - Not dead/petrified/death sentenced Enemy unit (Unit without this flag are ignored) 0x40 - Focus on Target? (Auto flags this as well) 0x20 - Stay Near X/Y Location? 0x10 - More Aggressive? 0x08 - Coward-like? (0x19a1 value set to 0x11) 0x04 - unit is jumping 0x02 - needs to be un-petrified 0x01 - needs to be revived 0x05 - Main Target ID (Based on Unit ID) 0x06 - (0x169 ")AI Targeting Flags 1 0x80 - 0x40 - 0x20 - 0x10 - 0x08 - Charging?(disabled if Ability CT = FF) 0x04 - Unit has largest # of usable abilities? 0x02 - Has HP recovery on ally ability? 0x01 - has ability that's not direct or arcing attack? 0x07 - AI Targeting Flags 0x80 - Critical HP Unit (HP < 12.5% Max HP) 0x40 - Dead Unit with Reraise 0x20 - Dead Unit without Reraise 0x10 - Can't be targeted? (enabled if result from 0x196ce8 = 1) 0x08 - [Allied Target] - AI Panic mod : Enabled if Acting unit allies are all frog or critical or Acting unit has one ally left (AI Team only) 0x04 - Save CT/Protect self? 0x02 - Low MP Unit (MP < 50% Max MP) 0x01 - Low HP Unit (HP < 50% Max HP) 0x08 - Enemy Flag (set to 1 if Acting Unit's team is different)(0x16b ") 0x09 - Highest MP Cost 0x0a - Lowest MP Cost (These have a value of 0-4, possibly for priorities) 0x0b - MP Using Ability Mod (# MP Using abilities * 4 / # abilities) 0x0c - Silence Blocking Mod (# silence ignoring abilities ") 0x0d - Evade Ignoring Mod (# evadeable (physical?) abilities ") 0x0e - Range of Lowest range ability (+ Unit Move) 0x0f - Range of Highest range ability (+ Unit Move)
(AI unit index - lookup by battle unit index; uses range 0-15) 0x0d50/0x198c - Unit's Battle ID (21 unit ID's; based on number of units; FF = not used) 0x0d65/0x19a1 - ? (21 unit values?) 0x11 - (AI set to Coward? + Save CT/Protect self 0x0e - (AI set to Target Unit + Aggressive?, and teams are different) 0x0c - (AI set to Target Unit + Aggressive?, and teams are the same) 0x0d7a/0x19b6 - AI/Autobattle setting (0x1b8 in unit data) 0x0d7b/0x19b7 - (byte) - involved in skillset/ability usage calculations (able to act if = 0?) 0x0d7c/0x19b8 - # of random hits abilities*128 / number of usable abilities... 0x0d7d/0x19b9 - water movement flag 0x01 - normal movement capability 0x00 - move in water/walk on water/float
0x0d7e/0x19ba - 0 if base hit = FF (byte) 0x0d7f/0x19bb - Unit targetable flag? - Set to 0x01 when there is only one enemy left (Some_targetability_setting) 0x0d80/0x19bc - (byte)set to 0 in section after initialization 0x0d81/0x19bd - AI Action Taken Flag? 0x0d82/0x19be - AI Movement Taken Flag?
0x0d8b/0x19c7 - (byte) 0x????/0x245c - List of tile data? (half each, 0x24 bytes for each map level, 0x48 total) 0x8000 - Moveable panel? 0x801a0d8b
end of AI related?
8019f358 - X/Y Mods (2 bytes each, 4 total)(for targeting? gets added to base values) 0x00 - X Mod 0x01 - Y Mod
0x00 - -1 Y 0x02 - -1 X 0x04 - +1 Y 0x06 - +1 X
0x8019f3c4 - Player's ability list menu data (if not AI.) 0x0000 - Ability ID (0x100 bytes long at max, if throw with maxed out weapon inv) 0x0001 - Ability Type flag (0x70 is ability, 0x38 is item, determines menu text.) 0x00a4 - MP cost/item stock (halfwords) 0x0148 - No. Turns to complete (halfwords) 0x01ec - MP cost/item stock (bytes) 0x023e - No. Turns to complete (bytes) 0x0290 - Silence/reflect flags 0x02e2 - No. Turns to complete (bytes) 0x0334 - No. Turns to complete (bytes) 0x06XX - skillset list
8019f5ac - word
8019f5b0/0x01ec - Items used list/ MP list?
0x23c 8019f602/0x23e - ability CT?
8019f654/0x0290 - Silence/reflect flags (related: if performance is checked here as well, the game won't set "No. turns to complete") 0x02 - affected by silence 0x01 - reflect 0x00 - none
8019f9b4 - Extra Battle Stats. (Used for saving/loading certain Battle Stats at certain times.)
801b48d0 - Effect Data Miscellaneous, partly scattered data and tables. starts at 801b48d0.