Data/Table Locations
Jump to navigation
Jump to search
- For additional ASM notes and an easier to use version of this data in .txt format, visit this thread: http://ffhacktics.com/smf/index.php?topic=6538.140#msg181059 and download New Asm Files.7z
Main Data Locations: RAM -> File 0x00F800 -> SCUS_942.21 0x067000 -> WLDCORE.BIN 0x067000 -> BATTLE.BIN 0x067000 -> OPEN.BIN 0x0E0000 -> WORLD.BIN 0x1BF000 -> ATTACK.OUT 0x1BF000 -> REQUIRE.OUT 0x1BF000 -> OPTION.OUT 0x1BF000 -> ETC.OUT 0x1BF000 -> EQUIP.OUT 0x1BF000 -> CARD.OUT 0x1BF000 -> BUNIT.OUT 0x1DF000 -> JOBSTTS.OUT 0x1DF000 -> HELPMENU.OUT 0x1DF000 -> SP2 + effects + other.
Main Routine Locations: RAM -> File 0x00F800 -> SCUS_942.21 0x067000 -> WLDCORE.BIN 0x067000 -> BATTLE.BIN 0x067000 -> OPEN.BIN 0x0E0000 -> WORLD.BIN 0x1BF000 -> ATTACK.OUT 0x1BF000 -> REQUIRE.OUT 0x1BF000 -> OPTION.OUT 0x1BF000 -> ETC.OUT 0x1BF000 -> EQUIP.OUT 0x1BF000 -> CARD.OUT 0x1BF000 -> BUNIT.OUT 0x1DF000 -> JOBSTTS.OUT 0x1DF000 -> HELPMENU.OUT 0x1DF000 -> SP2 + effects + other.
Controller Inputs Title Screen: 0x800851BC World Map/Formation: 0x8019A204
59854-5e90b code is here (why is this here?) 8006fbf0 - Ability Data Pointer 2 (this seems off by 0x10000 addresses. was someone's math wrong?) 0x00 - Range 0x01 - Effect Area 0x02 - Vertical 0x03: Flags 1 0x80 - 0x40 - 0x20 - Ranged Weapon 0x10 - Vertical Fixed 0x08 - Vertical Tolerence 0x04 - Weapon Strike 0x02 - Auto 0x01 - Can't Target Self 0x04: 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 0x05: 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 0x06: Flags 4 0x80 - Counter Flood 0x40 - Counter Magic 0x20 - Direct 0x10 - Blade Grasp 0x08 - Requires Sword 0x04 - Requires Materia Blade 0x02 - Evadeable 0x01 - No Targeting 0x07 - Element 0x08 - Formula 0x09 - X 0x0a - Y 0x0b - Inflict Status 0x0c - CT 0x0d - MP Cost 80093b20 - World Map Month Image Data (WLDCORE.BIN 0x2cb20) Each month has one entry. (Size per entry: 0x14 = 20 bytes) (Entries for the numbers used for the day are located directly after the months. 11 entries corresponding to 0 1 2 3 4 5 6 7 8 9 /) Offset (bytes): Notes 0x00 (4): Number of images to display? (Default 1) 0x04 (4): ? Affects display (Default 0x01000180) 0x08 (4): ? Affects colors? (Default 0x01e60000) 0x0c (1): Screen Location Offset X (Default 0x80 = 128) 0x0d (1): Screen Location Offset Y (Default 0x80 = 128) 0x0e (1): Palette? (Default 0) (Messed up colors if changed) 0x0f (1): Flip 0: Upright 1: Vertical flipped 2: Horizontal flipped 3: Both flipped 0x10 (1): Pixel Height (Default 12) 0x11 (1): Pixel Width (Default 24) 0x12 (1): Source Bitmap Y Location 0x13 (1): Source Bitmap X Location
801612dc - Start of SAMPLE.LZW
8018aa98 - WORLD.BIN: Formation unit Preview data Contains some data regarding the unit, such as level, exp, etc., directly from world.bin party data Also contains Bonus stat information, bonus/malus HP/MP/PA/SP etc. to show in blue text when previewing equipment while changing, or movement abilities when changing.
8018ba20 - Selected formation unit index (WORLD.BIN) 8018d844 - Shop Item Availability Table - 2 bytes per item, 256 items (technically the first 1 and last 2 are unavailable). 0x00 - First Byte 0x80 - Lesalia Imperial Castle 0x40 - Riovanes Castle 0x20 - Igros Castle 0x10 - Lionel Castle 0x08 - Limberry Castle 0x04 - Zeltennia Castle 0x02 - Gariland Magic City 0x01 - Yardow Fort City 0x01 - Second Byte 0x80 - Goland Coal City 0x40 - Dorter Trade City 0x20 - Zaland Fort City 0x10 - Goug Machine City 0x08 - Warjilis Trade City 0x04 - Bervenia Trade City 0x02 - Zarghidas Trade City 0x01 - Unknown
8018f4e0 - Some kind of pointer 8018f4e4 - some kind of pointer 8018f4f4 - Counter for some panel targeting 8018f4f8 - set to 1 during linear attack routine (word) 8018f4fc - 8018de34 - NPC Formation Screen Sprites (for jobs 0x00 to 0x49 only), 1 byte per entry 0x00 - Formation Sprite, not sure what it references, someone who does spriting should know.
80190814 -
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
80192d8c - Attacker Current Action Data Pointer 80192d90 - Target Current Action Data Pointer 80192d94 - Attacker's Data Pointer 80192d98 - Target Data Pointer
80192d9c - Reaction ID
80192da0 - Copy of Acting Unit's Current Action Data? 0x2c long
80192db0 -
80192dc5
80192dcc - X coordinate of target 80192dd0 - Y coordinate of target 80192dd4 - map level of target
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?
801934c2 801937d3
80193844 - Sum of enemy levels (when loaded; doesn't factor in level ups)
80193848 - (Data from 0x16e-0x182 of Unit Data)
8019385c - end of above 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 - (set to 1 when setting the weapon IDs) action performed byte? 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
80193920 - Highest enemy level (when loaded; doesn't factor in level ups)
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 - ??
80193d47
80193d48 - code 80195cd0 - Thread array (WORLD.BIN) (Each thread data block is 0x400 = 1024 bytes, and includes its own stack); 17 entries total 0x00 - Thread function parameter 1 0x04 - Thread function parameter 2 0x08 - Thread function parameter 3 0x0c - ? (Set to 0 when thread is initialized) 0x10 - 0x2c: Saved register values for this thread ($s0 - $s7) 0x30 - 0x34: Kernal register values for this thread ($k0 - $k1) 0x38 - Global pointer for this thread ($gp) 0x3c - Stack pointer for this thread ($sp) 0x40 - Frame pointer for this thread ($fp) 0x44 - Address of first command for this thread to run upon being started or resumed ($ra) 0x48 - IsRunning value (boolean; True (1) if thread is currently active/running, false (0) if not) 0x4c - Task ID (Matches those listed in WaitForInstruction event command) 0x50 - 0x68: ? (Set to 0 when thread is initialized) 0x6c and beyond: Stack for this thread; ~900 bytes available
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
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
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 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)
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 0x01 - 0x80 - 0x7c - Unit ID << 2 0x02 - 0x01 - bit 8 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) 0x01 - Higher Elevation Flag? 0x02 - Y Location? 0x03 - (set to 0 after finding usable abilities) 0x04 - (0x167 in Unit's Data) 0x80 - Charging/Performing + not dead/petrified/death sentenced / Ally unit 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? 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 0x0f - Range of Highest range ability
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? 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 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 - table of effect file start locations 801b53e8 - start of data (8 bytes each, by effect ID)
801b63e8 - Effect running state 0 = Not running 1 = Started (2 and 3 are intermediate steps between Started and Playing) // set to 0x03 after getting palette data 4 = Playing 801b63f0 - Ability Effect (2 bytes each, 0x1c6 total)
801b677c - Event & non-ability Effects (2 bytes each, 0x25 total)
801b84ac - table for secondary effect anims per 1st ability animation byte
801b8544 - 801b8874 - a gravity value? (0x53a) 801b8878 - "Gravity" Mod (0xa8000, constant? loaded with map?) (word) 28 (X/Y Mod mult) * 12 (tile height mult) * 2048 = 0xa8000 not really sure what it is exactly yet
801b8ba4 - Start of some data (0x54 bytes each, by effect ID) 0x00 - set to 0x03 when used?
801b8b60 - Acting Unit's ID (Word) 801b8b64 - Target's ID (Word) 801b8b68 - Attack's Current X (for checking targets) 801b8b6a - Attack's Current Map Level 801b8b6c - Attack's Current Y 801b8b70 - ArcTan Angle Mod (may be for other angle mods too) 801b8b74 - ??? Related to trajectory (see stored in arc weapon trajectory validation) 801b8b7c - Attack's X Mod Difference (Current X Mod - Previous X Mod) 801b8b80 - Attack's Z Mod Difference () 801b8b84 - Attack's Y Mod Difference 801b8b88 - ??? Stored (not seen set) in arc weapon trajectory routine 801b8b8c - Attack's Current X Mod 801b8b8e - Attack's Current Z Mod 801b8b90 - Attack's Current Y Mod 801b8b94 - Target Tile's 0x06 byte's 0x10-0x40 flags stored as 0x01 0x02 0x04(on hitting a tile) 801b8b9c - (byte, start/part of chunk with 84 byte long sections?) (replaces 0x1b9134) (replaced by 0x1b9130)
801b8bc0 - used weapon ID? (Word)
801b8ba4 - set to 1 after storing data
801b8da4 -
801b8d4c
801b9134 - ?
801b9144 - Effect instruct. 0x6: pointer to arg. 2's file by ID? could have up to 0xe pointers
801b925c - Acting Unit's X/Y/Z Mods Pointer 0x00/0x5c - X Mod 0x02/0x5e - Z Mod (-Height) 0x04/0x60 - Y Mod 801b9264 - Target's X/Y/Z Mods Pointer 0x00/0x64 - X Mod 0x02/0x66 - Z Mod (-Height) 0x04/0x68 - Y Mod
801bbf3c - 3D Step Counter / 4 (number of passes needed for 3D attack?) (can also store 3D Distance / 512) 801bbf64 - check for different abilities
801c24c8 - 801c24d0 - loaded ability effect (half)
Loaded into RAM 0x1dc000 during battle setup
0x00 - Base Class / Character ID (Also affects sprites) 0x01 - "Gender" Byte (ENTD Flags) 0x80 - Male 0x40 - Female 0x20 - Monster 0x10 - Join After Event 0x08 - Load as Guest 0x04 - Has ??? Stats 0x02 - ? 0x01 - Join as Guest 0x02 - Name 0x03 - Level (over 99 = Party Level + Value - 100) 0x04 - Birth Month 0x05 - Birth Day 0x06 - Brave 0x07 - Faith 0x08 - Job Unlocked 0x13 - Mime 0x12 - Dancer 0x11 - Bard 0x10 - Calculator 0x0f - Ninja 0x0e - Samurai 0x0d - Lancer 0x0c - Geomancer 0x0b - Oracle 0x0a - Mediator 0x09 - Thief 0x08 - Summoner 0x07 - Time Mage 0x06 - Wizard 0x05 - Priest 0x04 - Monk 0x03 - Archer 0x02 - Knight 0x01 - Chemist 0x09 - Job Level 0x0a - Job ID 0x0b - Secondary ID 0x0c - Reaction 0x0e - Support 0x10 - Movement 0x12 - Helmet 0x13 - Armor 0x14 - Accessory 0x15 - RH Equip 0x16 - LH Equip 0x17 - Palette 0x18 - ENTD Flags 0x80 - Always Present 0x40 - Randomly Present 0x20 - Team Bit 1. 0x20 and 0x10 is Light Blue. 0x20 is Green. 0x10 - Team Bit 2. 0x10 is Red. If neither bit, team is Blue. 0x08 - Control 0x04 - Immortal 0x02 - (if both 01 and 02, then immune to knockback) 0x01 - (both set by Ramza when initialized) 0x19 - X Coordinate 0x1a - Y Coordinate + Facing/Upper Level Flag 0x1c - Starting Experience 0x1d - Primary Skillset 0x1e - War Trophy 0x1f - Gil (* 100) 0x20 - Unit ID 0x21 - X Position (for AI) 0x22 - Y Position 0x23 - 0x40 - Focus on Target in 0x24? 0x20 - Stay near X/Y in 0x21/22? (0x28 = move and stay at position) 0x10 - More aggressive? (when with 40, ONLY target that unit unless healing self) 0x08 - Coward-like? (stay behind X/Y location?)
Notes: 0x10 seems to override 0x20
0x20 seems to keep it's distance until it can get close enough to you?
0x08 will move up to 4 tiles away from the X/Y listed (0/0 = anywhere?) seems to keep a 10 tile distance, unless an enemy moves within their 10 tile radius (testing with 3 move archer with bow) they will not move unless they need to.
seem to keep 10 away unless unable to move farther back, then they move back towards the center of their radius. you can force them out of their area by moving towards them (but out of their firing range), and continue to push them out, but the turn after they leave the area they will move back towards it, even if you are within the 10 tile radius.
managed to get a 4 move unit 12 tiles away by moving close to them when they had a bow... they seem to retreat away from the spot if they can't get to it and can still attack you (close-range would move to you) 0x24 - Target Unit ID 0x25 - 0x26 - 0x04 - Save CT (don't move if not needed; also buff before attacking?)? 0x27 -
***Effect Data Section
801b48d0 - Per effect ID, start of effect data; will be different from 0x801c2500 if the file has any assembly/extraneous data to accompany it
801b53e8 - List of data by Effect ID (0x08 bytes each, goes to 801b63e8) 0x04 - LBA value (word) [Blank effects get routed to E0511, 71150 0x08 - Byte length rounded up to the nearest multiple of 0x800
801b63e8 - Effect running state 0 = Not running 1 = Started (2 and 3 are intermediate steps between Started and Playing) // set to 0x03 after getting palette data 4 = Playing
801b67c8 - list of effect code instruction return addresses 001b67c8: 801a2238 0x00 001b67cc: 801a225c 0x01 001b67d0: 801a2280 0x02 001b67d4: 801a22f8 0x03 001b67d8: 801a236c 0x04 001b67dc: 801a2374 0x05 001b67e0: 801a23a8 0x06 001b67e4: 801a2414 0x07 001b67e8: 801a2488 0x08 001b67ec: 801a2524 0x09 001b67f0: 801a2560 0x0a 001b67f4: 801a259c 0x0b 001b67f8: 801a262c 0x0c 001b67fc: 801a2668 0x0d 001b6800: 801a26a4 0x0e 001b6804: 801a2734 0x0f 001b6808: 801a2770 0x10 001b680c: 801a27b0 0x11 001b6810: 801a2810 0x12 001b6814: 801a2870 0x13 001b6818: 801a28d4 0x14 001b681c: 801a2938 0x15 001b6820: 801a2998 0x16 001b6824: 801a29e0 0x17 001b6828: 801a2a2c 0x18 001b682c: 801a2a7c 0x19 001b6830: 801a2b18 0x1a 001b6834: 801a2b70 0x1b 001b6838: 801a2bc8 0x1c 001b683c: 801a2c28 0x1d 001b6840: 801a2c7c 0x1e 001b6844: 801a2cfc 0x1f 001b6848: 801a2d48 0x20 001b684c: 801a2d94 0x21 001b6850: 801a2de0 0x22 001b6854: 801a2e2c 0x23 001b6858: 801a2e78 0x24 001b685c: 801a2eb4 0x25 001b6860: 801a30ec 0x26 001b6864: 801a3148 0x27 001b6868: 801a3408 0x28 001b686c: 801a4838 0x29 001b6870: 801a4c44 0x2a 001b6874: 801a4c84 0x2b 001b6878: 801a4cc0 0x2c 001b687c: 801a4cd8 0x2d 001b6880 - 001b69a4: 801a2214 0x2e - 0x??
801b69a8 - effect palette address
801b69cc - check this half! used in enormous determination routine
801b84dc - Table of Extra particle effect flags? AA BB CC DD 0x00 Nothing : 00 00 00 00 0x01 Bow Arrow : 08 00 00 01 0x02 Spell chrg : 00 00 00 04 0x03 X-bow Bolt : 08 00 00 14 0x04 Spell chrg : 00 01 00 04 0x05 Smn Chrg : 00 00 00 16 0x06 Throw Stone: 08 01 00 14 0x07 Glowing Tar: 00 00 00 02 0x08 Glowing Tar: 00 00 00 02 0x09 Falling far: 00 00 00 08 0x0a Reflect : 0c 02 00 12 0x0b Zodiac Poof: 00 00 00 11 0x0c Death Poof : 00 00 00 0f 0x0d Level Up : 00 00 00 0d 0x0e Venom trap : 00 00 00 0c 0x0f Splash : 00 00 00 09 0x10 Throw Item : ff ff 00 14 0x11 red orbs : 00 00 00 06 0x12 equip Break: 00 00 00 15 0x13 teleport : 00 00 00 13 0x14 Golem : 00 00 00 03 0x15 Erroneous? : 00 00 00 05 it's remarkable this isn't all hard coded, there's actually some wriggle room here if you know what you're doing. AA - no idea, seems to have very little effect. it's only set on empty set particles, and reflect, which is never read from. BB - for animation types 0x1 and 0x14, this is the model used for the projectile of the attack. ff is simply no model, or the item.bin graphic for the used weapon. Model data can be found Secondary Effect 0x1b69dc Table here, 0x801b69dc is the model data of an arrow, 0x801b6d00 for a stone, 0x801b6f00 for the reflect barrier. Not sure yet what spell charge is doing with a BB, but it is the only other instance of this being a non-0 value, and also the only other routine that reads the value. CC - zero DD - the actual function of the particles.
801b8900 - call addresses per secondary animation effect type Effect Related (0x1b47e0) 0x00 Nothing : 801b0fec 0x01 Arrow Arc : 801b0ffc 0x02 Glowing Tar: 801b153c 0x03 Golem : 801b1aec 0x04 Spell chrg : 801b1c04 0x05 Unsure : 801b27dc 0x06 Red Orbs : 801b284c 0x07 Not Called : 801b2968 0x08 Falling Tar: 801b2970 0x09 Splash : 801b2a88 0x0a Not Called : 801b2bfc 0x0b Not Called : 801b2c04 0x0c Venom Trap : 801b2c0c 0x0d Level Up : 801b2d28 0x0e Not Called : 801b2e60 0x0f Death Poof : 801b2e68 0x10 Not Called : 801b3118 0x11 Zodiac Poof: 801b3120 0x12 Reflect : 801b33d4 0x13 teleport : 801b3820 0x14 Lin. Proj. : 801b3938 0x15 Equip Break: 801b40f8 0x16 Smn chrg : 801b4234 801b895c
801b8a40 - first 0x10 bytes of first section of main motion data stored here 0x00 0x04 0x08 0x0c
801b8b9c - some effects table with varying amounts of variability? 0x54 bytes long. first 0x54 bytes are null by default, and code means it won't change that automatically. This data seems extremely volitile, and changes rapidly depending on what's loaded and stored. also, random duplicates exist. 0x00 - previous effect target ID 0x01 - current effect target ID 0x02 - next effect target ID 0x03 - secondary effect's function byte 0x05 - Additional animation effects? 0x00 - nothing 0x01 - nothing 0x02 - spell charging spots and lines (if called incorrectly, will loop indefinitely) 0x03 - nothing 0x04 - spell charging spots and lines (ditto) 0x05 - Summon charge (if called incorrectly, will loop indefinitely) 0x06 - nothing 0x07 - an additional strike glow on target? 0x08 - an additional strike glow on target? 0x09 - landing from a height in sand 0x0a - reflect spiiiIIIiiIIiin 0x0b - green zodiac stone poof? 0x0c - death poof 0x0d - level up sparkles? job level up sparkles? 0x0e - triggering a venom trap 0x0f - landing in water 0x10 - nothing 0x11 - red focus orbs 0x12 - break equipment shatter particles 0x13 - teleport send-recieve 0x14 - golem block 0x06 - ability element, presented in awful format (none, fire, water, earth, wind, holy, dark, Ice, Lightning) and also its just a value, not bitflags. edits target palette? 0x08 - if prepared correctly, 0x01? 0x10 - Contains unit misc ID (and a bunch of unrelated stack.) 0x1a - contains valid hit# & X coordinate of target (if no targets are hit.) otherwise contains secondary animation effect? (0x1d?) 0x1e - contains map level & Y coordinate of target (if no targets are hit.) 0x24 - used weapon ID 0x28 - hit counter 0x50 - pointer to effect data in RAM (after loaded in)
801b9130 - Resets to zero when effect is finished 801b9134 - Seems to control something relating to unit animation and effects? Increases for each target of an effect? Doesn't reset? Can soft lock game if value is wrong 801b9138 - Resets to zero when effect is finished
801bacc8 - start of on hit effect header
801baccc - GTE data 0x14 - X vector 0x18 - Y vector 0x1c - Z vector
801bad0c - effect coordinate data stored here 0x00 - Hit Counter 0x02 - Counter of found targets 0x04 - animate on miss flag (01 if animate on miss 0x06 - Target ID / X coordinate for animate on miss 0x07 - Type of attack 0x00 - normal hit 0x01 - critical hit 0x02 - reflected 0x03 - evaded 0x08 - map level of animate on miss 0x0a - Y coordinate 0x0c - some address (word) 0x800bdd24 0x0e - 00? 0x10 - next units Data 0x12 - next target ID 0x34 - acting unit data address 0x38 - acting unit ID? byte
0x40 - some address (8017ac40) 0x48 - some address (80026cec) something for GPU? 0x54 - pointer to start of misc data 0x74 - unit ID 0x78 - 801938ef - post action byte address 0x7c - units misc data pointer 801badca - X/Y Coordinate for effect? 801badcc - map level 801badce - X/Y? 801bade0
-4088 801bbf78 - start of frame data address -4084 801bbf7c - 0x10 in effect data (coordinates?) 801bbf80 - effect palette address 801bbf84 - start of misc timed display? (effect misc. timing data + 0x8)
801bbf8c - parameter sets address (+ 0x04?)
801bbf90 - Is effect playing? 0 = false, 1 = true // used in effect control routine
801bc094 - Ptr. to effect's code scripts (relative to start of effect data.)
801bc0c8 - misc effect data address 801bc0cc - (while processing models/effects) pointer to polygons by depth table
0x1bc0d4 - set to 0 after storing data to 0x801bad0c 0x1bc0dc - 0x0a in sound effect data (word)
801bf000 - 2nd byte in header / 16 (shifted 0x04 right) 1 space to the right
801bf02c - Temp effect data table (0xf8 per phase?) 0x00 - Is effect playing(?) 0x06 - header counter 0x08 - Ptr. to effect code scripts 0x1c - 0x1e - 0x1, skip some step. 0x28 - timer 0x2c - when not 0, execute custom code in 0xd4? 0xd4 - ptr. to extra code for effect to execute
801bf21c - start of some data (temp effect data?) 0x00 -
801bf242 - skip effect routine if = 2? 0x1e - some counter (decremented)
801c00c8 - Copied/edited of effect parameter data in RAM. 0x24 bytes per parameter? 0x06 - Function flags for effect 0x01 - set when loading new frame. 0 otherwise. 0x02 - set on initialisation; Don't multiply motion vector by some matrix (describes camera rotation?) 0x04 - set on initialisation; Don't multiply rotation matrix by camera zoom. the other flags don't seem to be checked? 0x08 - special function half (for 0x83 function, 2nd byte is added) // tbh don't think it's that. this is any extra XX XX offset appended to the parameter.
0x0a - 0x03 and 0x04 of starting 5 bytes (half)(for 0x83 function, 3rd byte is added) // again, I don't think it's that. YY YY offset. 0x0c - screen XX XX of current frame? maybe XX velocity? 0x0e - screen YY YY of current frame? maybe YY velocity? 0x10 - screen ZZ ZZ of current frame? maybe ZZ velocity? 0x12 - angle between attacker and target 0x14 - current 3rd byte? 0x16 - Duration to hold frame 0x18 - pointer to current Parameter data in file 0x1c - parameter counter 0x1e - next frame byte? VRAM flag check? 0x1f - current frame 0x20 - pointer to temp effect SHP or palette data? 801c24d0 - Effect ID (During effect animation, or last played effect); sometimes set to 0x0c when no effect is playing //Current ability Effect 801c24da - ? Changes during effect
801c83f8 - Job Wheel Bytes(2 bytes each, goes until FF FF is reached) 0x4000 - Grey out job on Job Wheel 0x00xx - Job ID
801c8638 (WORLD.BIN) Formation screen unit definition : 0x128 (296) bytes Data copies here from party data at routine 0x80120bb0 (WORLD.BIN) Offset (bytes): Description 0x000 (2): Level 0x002 (2): 2 if unit is Guest, otherwise 0 0x008 (2): Experience 0x00a (2): Party unit index (controls portrait) 0x00c (2): Max HP (HP?) 0x010 (2): Max HP 0x012 (2): Max MP (MP?) 0x016 (2): Max MP 0x018 (2): CT 0x01c (2): 100 (Max CT)? 0x022 (2): Party unit index (controls display name) 0x024 (2): Job ID 0x026 (2): Brave 0x028 (2): Faith 0x02a (2): Birthday (first 4 bits) 0x02c (2): Party unit index 0x030 (2): Move 0x032 (2): Speed 0x034 (2): Jump 0x036 (2): Right Hand WP 0x038 (2): Left Hand WP 0x03a (2): Right Hand W-EV 0x03c (2): Left Hand W-EV 0x03e (2): 1 if primary skillset is Monster skillset (between 0xB0 and 0xDF, inclusive), 0 otherwise 0x040 (2): Two Hands active (1 if active, 0 if inactive) 0x042 (2): PA 0x044 (2): C-Ev 0x046 (2): Physical S-Ev 0x048 (2): Physical A-Ev 0x04c (2): MA 0x04e (2): 0 (Magical C-Ev?) 0x050 (2): Magical S-Ev 0x052 (2): Magical A-Ev 0x054 (2): Right Hand Equip 0x056 (2): Left Hand Equip 0x058 (2): Head Equip 0x05a (2): Body Equip 0x05c (2): Accessory 0x05e (2): Primary skillset 0x060 (2): Secondary skillset 0x062 (2): Reaction ability 0x064 (2): Support ability 0x066 (2): Movement ability 0x070 (1): Flags ("Gender" Byte) 0x80 - Male 0x40 - Female 0x20 - Monster 0x10 - Join after event 0x08 - Load Formation 0x04 - ??? Stats 0x02 - 0x01 - Join as Guest 0x072 (1): Base class 0x073 (1): Equippable Items 1 0x80 - Barehanded 0x40 - Knife 0x20 - Ninja Blade 0x10 - Sword 0x08 - Knight's Sword 0x04 - Katana 0x02 - Axe 0x01 - Rod 0x074 (1): Equippable Items 2 0x80 - Staff 0x40 - Flail 0x20 - Gun 0x10 - Crossbow 0x08 - Bow 0x04 - Instrument 0x02 - Book 0x01 - Polearm 0x075 (1): Equippable Items 3 0x80 - Pole 0x40 - Bag 0x20 - Cloth 0x10 - Shield 0x08 - Helmet 0x04 - Hat 0x02 - Hair Adornment 0x01 - Armor 0x076 (1): Equippable Items 4 0x80 - Clothing 0x40 - Robe 0x20 - Shoes 0x10 - Armguard 0x08 - Ring 0x04 - Armlet 0x02 - Cloak 0x01 - Perfume 0x077 (1): Unlocked Jobs 1 0x078 (1): Unlocked Jobs 2 0x079 (1): Unlocked Jobs 3 0x07a (1): Base Action Abilities 1-8 0x07b (1): Base Action Abilities 9-16 0x07c (1): Base R/S/M 1-6 0x07d (1): Chemist Action Abilities 1-8 0x07e (1): Chemist Action Abilities 9-16 0x07f (1): Chemist R/S/M 1-6 0x080 (1): Knight Action Abilities 1-8 0x081 (1): Knight Action Abilities 9-16 0x082 (1): Knight R/S/M 1-6 0x083 (1): Archer Action Abilities 1-8 0x084 (1): Archer Action Abilities 9-16 0x085 (1): Archer R/S/M 1-6 0x086 (1): Monk Action Abilities 1-8 0x087 (1): Monk Action Abilities 9-16 0x088 (1): Monk R/S/M 1-6 0x089 (1): Priest Action Abilities 1-8 0x08a (1): Priest Action Abilities 9-16 0x08b (1): Priest R/S/M 1-6 0x08c (1): Wizard Action Abilities 1-8 0x08d (1): Wizard Action Abilities 9-16 0x08e (1): Wizard R/S/M 1-6 0x08f (1): Time Mage Action Abilities 1-8 0x090 (1): Time Mage Action Abilities 9-16 0x091 (1): Time Mage R/S/M 1-6 0x092 (1): Summoner Action Abilities 1-8 0x093 (1): Summoner Action Abilities 9-16 0x094 (1): Summoner R/S/M 1-6 0x095 (1): Thief Action Abilities 1-8 0x096 (1): Thief Action Abilities 9-16 0x097 (1): Thief R/S/M 1-6 0x098 (1): Mediator Action Abilities 1-8 0x099 (1): Mediator Action Abilities 9-16 0x09a (1): Mediator R/S/M 1-6 0x09b (1): Oracle Action Abilities 1-8 0x09c (1): Oracle Action Abilities 9-16 0x09d (1): Oracle R/S/M 1-6 0x09e (1): Geomancer Action Abilities 1-8 0x09f (1): Geomancer Action Abilities 9-16 0x0a0 (1): Geomancer R/S/M 1-6 0x0a1 (1): Lancer Action Abilities 1-8 0x0a2 (1): Lancer Action Abilities 9-16 0x0a3 (1): Lancer R/S/M 1-6 0x0a4 (1): Samurai Action Abilities 1-8 0x0a5 (1): Samurai Action Abilities 9-16 0x0a6 (1): Samurai R/S/M 1-6 0x0a7 (1): Ninja Action Abilities 1-8 0x0a8 (1): Ninja Action Abilities 9-16 0x0a9 (1): Ninja R/S/M 1-6 0x0aa (1): Calculator Action Abilities 1-8 0x0ab (1): Calculator Action Abilities 9-16 0x0ac (1): Calculator R/S/M 1-6 0x0ad (1): Bard Action Abilities 1-8 0x0ae (1): Bard Action Abilities 9-16 0x0af (1): Bard R/S/M 1-6 0x0b0 (1): Dancer Action Abilities 1-8 0x0b1 (1): Dancer Action Abilities 9-16 0x0b2 (1): Dancer R/S/M 1-6 0x0b3 (1): Base/Chemist Job Level 0x0b4 (1): Knight/Archer Job Level 0x0b5 (1): Monk/Priest Job Level 0x0b6 (1): Wizard/Time Mage Job Level 0x0b7 (1): Summoner/Thief Job Level 0x0b8 (1): Mediator/Oracle Job Level 0x0b9 (1): Geomancer/Lancer Job Level 0x0ba (1): Samurai/Ninja Job Level 0x0bd (1): Calculator/Bard Job Level 0x0bc (1): Dancer/Mime Job Level (Gap for alignment?) 0x0be (2): Base Job JP 0x0c0 (2): Chemist Job JP 0x0c2 (2): Knight Job JP 0x0c4 (2): Archer Job JP 0x0c6 (2): Monk Job JP 0x0c8 (2): Priest Job JP 0x0ca (2): Wizard Job JP 0x0cc (2): Time Mage Job JP 0x0ce (2): Summoner Job JP 0x0d0 (2): Thief Job JP 0x0d2 (2): Mediator Job JP 0x0d4 (2): Oracle Job JP 0x0d6 (2): Geomancer Job JP 0x0d8 (2): Lancer Job JP 0x0da (2): Samurai Job JP 0x0dc (2): Ninja Job JP 0x0de (2): Calculator Job JP 0x0e0 (2): Bard Job JP 0x0e2 (2): Dancer Job JP 0x0e4 (2): Mime Job JP 0x0e6 (2): Total Base Job JP 0x0e8 (2): Total Chemist Job JP 0x0ea (2): Total Knight Job JP 0x0ec (2): Total Archer Job JP 0x0ee (2): Total Monk Job JP 0x0f0 (2): Total Priest Job JP 0x0f2 (2): Total Wizard Job JP 0x0f4 (2): Total Time Mage Job JP 0x0f6 (2): Total Summoner Job JP 0x0f8 (2): Total Thief Job JP 0x0fa (2): Total Mediator Job JP 0x0fc (2): Total Oracle Job JP 0x0fe (2): Total Geomancer Job JP 0x100 (2): Total Lancer Job JP 0x102 (2): Total Samurai Job JP 0x104 (2): Total Ninja Job JP 0x106 (2): Total Calculator Job JP 0x108 (2): Total Bard Job JP 0x10a (2): Total Dancer Job JP 0x10c (2): Total Mime Job JP 0x10e-0x11d: Unit Name 0x11e (1): Graphic 0x11f (1): Proposition byte 0x120 (2): Birthday 0x122 (2): ? (0xd2 party data) 0x124 (1): 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 0x125 (1): 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 0x126 (1): Support 3 0x80 - Train 0x40 - Secret Hunt 0x20 - Martial Arts 0x10 - Monster Talk 0x08 - Throw Item 0x04 - Maintenance 0x02 - Two Hands 0x01 - Two Swords 0x127 (1): Support 4 0x80 - Monster Skill 0x40 - Defend 0x20 - Equip Change 0x10 - 0x08 - Short Charge 0x04 - Non-Charge 0x02 - 0x01 - 801cd170 - Current thread ID (WORLD.BIN); index into array at 0x80195cd0 801cd330 - Unit Names 801cd43c - Reserve Items array for Fitting Room - Added to inventory after finished (Old equipment replaced with fitted equipment) 10 bytes per unit (5 item IDs as halfwords) 801cd5ec - Formation unit reference array (WORLD.BIN); each entry is a pointer to formation unit data 801cd788 - Number of formation screen units (WORLD.BIN)