Routine Locations

From Final Fantasy Hacktics
Jump to: navigation, search

Here is a list of Routine locations in RAM. To view the actual code of the routine follow the link under it. If you add routines PLEASE keep them in order. When unfinished routines are deciphered they'll be inserted in the correct location. Thanks! These locations are during a battle and the majority of them found in Battle.BIN. If you know the return locations of the routine, please link to them under the routine code. See "Defense Up" for an example.

SCUS_942.21 RAM

000000a0: Jump to 0x5c4


00017e7c - 00017eb4: Get Sound Effect Data For ability effects?


0001bec8 - 0001d64c: Initialize some screen data


0001bfb4 - 0001bfb8: Clear r2 <-- best routine on the Iso


0001c04c - 0001c050: r2 = 0xff


0001d09c - 0001d0d4: Store Rotation matrix elements to GTE

0001d0d8 - 0001d104: Store Light Source Matrix Elements to GTE

0001d108 - 0001d134: Store Light Color matrix source RGB's to GTE

0001d138 - 0001d154: Store Translation Vectors to GTE

0001d158 - 0001d160: Get Projection Plane distance from GTE

0001d164 - 0001d184: Store Background RGB to GTE

0001d188 - 0001d1a4: Store far color RGB to GTE

0001d1a8 - 0001d1bc: Store Screen offsets to GTE

0001d1c0 - 0001d1d0: Store Projection plane distance in GTE

0001d1d4 - 0001d1fc: Multiply vector and store results

0001d200 - 0001d224: Depth Cue Color Light

0001d228 - 0001d260: Depth Cue Triple

0001d264 - 0001d284: interpolate

0001d288 - 0001d2ac: square vector

0001d2b0 - 0001d2d4: square matrix/vector (duplicate routine?

0001d2d8 - 0001d2f4: Find Average of 3 Z values

0001d2f8 - 0001d318: Find Average of 4 Z values

0001d31c - 0001d370: calculate outer product of 2 vectors

0001d374 - 0001d3c8: calculate outer product of 2 vectors 2

0001d3cc - 0001d3e0: Get leading 0 or 1 count


0002230c - 00022314: Random Number Generator

00040934 - start of meaningful code

00042a10 - 00042aac: Starting Inventory

00045938 - end of meaningful code

00059854 - 00059abc: Initialize Status Check Data

00059ac8 - 00059aec: Initialize Party ID to FF

00059af0 - 00059b14: Get Party Data Pointer

00059b18 - 00059bac: Unit Initialization

00059bb0 - 00059d58: Add Unit to Party/Store Unit's Party Data

00059d5c - 00059e14: Find Free Party Slot

00059e18 - 00059ed0: Create Monster Egg

00059ed4 - 00059f90: Find Empty Party Slot and Generate Unit

00059f94 - 00059fdc: Find Unit's Party Data Location

00059fe0 - 00059ff8: Remove Unit from Party

00059ffc - 0005a3dc: Out of Battle Unit Generation

0005a3e0 - 0005a3fc: Generate Unit's Base Raw Stats Prep

0005a400 - 0005a444: Prep for Generating Base Raw Stats

0005a448 - 0005a51c: Generate Unit's Base Raw Stats

0005a520 - 0005a564: Transfer Job's Growths/Mults to Unit

0005a568 - 0005a634: Load Ability From Skillset

0005a638 - 0005a728: Store Skillset's Abilities

0005a72c - 0005a880: Calculate Ability Pointers and Type

0005a884 - 0005a8a0: Get Item Data Pointer

0005a8a4 - 0005a8d0: Get Job Data Pointer

0005a8d4 - 0005a9b0: Initialize Unit's Job Data

0005a9b4 - 0005aafc: Unit Battle Initialization

0005ab00 - 0005ab44: Equipment/Move/Jump +X/Name Storing/Generation

0005ab48 - 0005ac18: Store Ramza's Name/Birthday/Zodiac

0005ac1c - 0005b034: ENTD Data Calculation

0005b038 - 0005b0cc: Prep for Initializing Unit's Job Data

0005b0d0 - 0005b2b0: Initialize Unit's Battle Data

0005b2b4 - 0005b4fc: Calculate ENTD Unit Jobs

0005b500 - 0005b5d8: Sprite Set and Random Secondary Job Calculation

0005b5dc - 0005b79c: Transfer Job's Data to Unit's Data

0005b7a0 - 0005b828: Enable Unit's R/S/M Flags

0005b82c - 0005b87c: R/S/M Flag Setting

0005b880 - 0005ba6c: Calculate Actual Stats (Used for Stat Capping as well)

0005ba70 - 0005bdac: Calculate Unit's Abilities

0005bdb0 - 0005bdec: Monster Equipment Storing

0005bdf0 - 0005c278: Calculate/Store ENTD Unit Equipment

0005c27c - 0005c394: Equippable Item Setting (Support/Female-only)

0005c398 - 0005c5c4: Equipment Stat Setting

0005c5c8 - 0005c8e8: Equipment Attribute Setting

0005c8ec - 0005c980: Move/Jump +X Calculation (can be used to load data at start of battle)

0005c984 - 0005cbcc: Store/Generate Character Names

0005cbd0 - 0005cc60: Calculate Highest Party Level

0005cc64 - 0005cc94: Store X into Y (r4 = Loading Pointer, r5 = Storing Pointer)

0005cc98 - 0005ce70: Calculate Random Equipment

0005ce74 - 0005d0b8: Calculate Learned Abilities

0005d0bc - 0005d3c0: Calculate Unit's R/S/M

0005d3c4 - 0005d410: Find Skillset's Job ID (Not used?)

0005d414 - 0005d46c: Status Initialization

0005d470 - 0005d4cc: Nullify CT/Initialize Death Counter

0005d4d0 - 0005d5b8: Float/Current Statuses/Status Immunities/Status CT

0005d5bc - 0005d5dc: Status Setting/Checking + Equip/R/S/M Stats Prep

0005d5e0 - 0005d600: Status Setting/Checking + Equip/R/S/M Stats Prep 2

0005d604 - 0005d624: Status Setting/Checking + Equip/R/S/M Stats Prep 3

0005d628 - 0005d87c: Status Setting/Checking + Equip/R/S/M Stats

0005d880 - 0005d8f8: Check if Unit Leveled UP

0005d8fc - 0005da0c: Level Unit to Specific Level

0005da10 - 0005db6c: Level Up Section

0005db70 - 0005dc10: Status CT Setting

0005dc14 - 0005dd44: Calculate Unlocked Jobs

0005dd48 - 0005ded4: Proposition JP Gain

0005ded8 - 0005def0: Store 3-Byte Data

0005def4 - 0005df34: Calculate Job Level

0005df38 - 0005dfa8: Initialize Unit's Job Levels

0005dfac - 0005dfd0: Initialize Some Unit Data

0005dfd4 - 0005e014: Minimum SP Capping/War Trophy Nulling/Status Initialization

0005e018 - 0005e04c: Get Ability's Range

0005e050 - 0005e084: Get Ability's AoE

0005e088 - 0005e0c8: Calculate Unit's Palette/Portrait (return Portrait)

0005e0cc - 0005e11c: Check if Random is greater/equal to Chance

0005e120 - 0005e1ac: Get Unit's Portrait/Palette

0005e1b0 - 0005e1fc: Status Checks (r5 = set to check)

0005e200 - 0005e228: Get Known Abilities

0005e22c - 0005e250: Transfer Target ID? Through Mount Data

0005e254 - 0005e284: Store X Byte into Y

0005e288 - 0005e474: Get Total Equipment Quantity (Equip Change/Formation Screen?)

0005e478 - 0005e4e4: Initialize Unit's X/Y+Facing/Battle Rewards

0005e4e8 - 0005e5d4: Get Lowest Order Status' 0x08 Check Data? (Status Checks 2)

0005e5d8 - 0005e640: Calculate Zodiac Symbol

0005e644 - 0005e66c: Data Nullifying (requires r5 = Limit, and r4 = Starting location)

0005e670 - 0005e6c8: Increase Casualties/Injured Counters

0005e6cc - 0005e740: Inflicted Status Changes

0005e744 - 0005e774: Store Current Statuses

0005e778 - 0005e7a4: Transfer Last Ability Used CT

0005e7a8 - 0005e8e4: Enable/disable acting statuses

0005e8e8 - 0005e908: ? removed code?

WORLD.BIN RAM

001208f8 - 0012092c: Dismiss-able check

00122c20 - 00122e3c: "Set Ability" menu display

00125374 - 001253cc: Sort equipment as weapon/shield/hat/body/other based on item number

BATTLE.BIN RAM

  • 00067000 - 00067794: Return Addresses

000683e4 - 00068414: Transfer Unit's X/Y/Map Level

00068418 - 00068490: X/Y Data Gathering for Attacks?


00068534 - 00068630: Palette modification based on team


0006867c - 000686ac: Increment AT List ID


00068e80 - 000690f4: Special Status Flag Enabling?


00072928 - 00072a0c: Rider/Mount X/Y/Facing Setting?


00072a88 - 00072acc: Check if Facing Needs Changed?

000732c8 - 000734c8: Battle Message Display


000736d4 - 000739c8: Display calculations for current ability critical hit, reflect, etc.


00073eec - 00073fb4: Action processing?


00074f5c - 0007530c: big Misc unit data routine


0007a6e4 - 0007a720: Find Current Misc Unit Data Pointer (external ID)?

0007a724 - 0007a770: Find Misc Unit Data Pointer (checking for specific unit)?


0007ac60 - 0007aca8: Unit RGB/Sprite Type/? Initialization


0007b4ec - 0007b52c: Store Display Data


0007f45c - 0007f508: Store Item's Display Data


0007f5f8 - 0007ff40: Post Action Display Routine

0007ff44 - 0007ff78: "Speed" display

0007ff7c - 0007ffac: "CT" display

0007ffb0 - 0007ffe4: "Br" display

0007ffe8 - 0008001c: "Fa" display

00080020 - 00080050: "Attack" Sword display

00080054 - 00080088: "Magic" Rod display

0008008c - 000800b8: "Missed" display

000800bc - 000800e8: "Guarded" display

000800ec - 00080114: "Caught?" display

000803e4 - 000808b4: Post-Action Display Setup

000808b8 - 00080bc0: Set Exp/JP Display Data and get Palette

00080bc4 - 00080c3c: *One-Digit Experience*

00080c40 - 00080cf4: *Two-Digit Experience*

00080cf8 - 00080d80: *One-Digit JP*

00080d84 - 00080e38: *Two-Digit JP*

00080e3c - 00080e78: *"No Target" Display*

00080e7c - 00080eb8: *"Silenced" Display*

00080ebc - 00080f00: *"No MP" Display*


00080f44 - 00080fe8: Prep for Displaying Earned Exp/JP


000810a4 - 00081974: More post action display?

00081978 - 00081984: Store unit animation and facing value


00082508 - 0008254c: Status/? Misc ID checks

00082550 - 00082588: Transparent Check (for opacity?)


00082b80 - 00082c0c: Set unit animation based on ability


00082eec - 000831b4: Set Animation based on status


00083758 - 00083850: Set thrown item graphic/palette also throw stone


00084818 - 0008522c: Animate party units?


0008ced0 - 0008cef8: Find Unit's Misc Data Pointer (+0x15c)


0008dc24 - 0008dc70: Get Unit's Spritesheet Value


0008dc9c - 0008dcc0: Find Unit's Misc Data Pointer and Load Spritesheet Value


0008f710 - 00090044: Palette Modification


00092620 - 000926d4: Extract RGB+Alpha from Palette

000926d8 - 000927b8: Get Palette Data


0011acdc - 0011aeec: Throw Determination Routine


00132824 - 00132858: Prep for Loading Text


00136b10 - 00136bcc: Get Item Graphic Data


0013b590 - 0013b640: jumped to from steal item decrement/stat changes/price change?? And weather effects on crossbows/bows

0013b644 - 0013b6e0: jumped to from routine immediately above this one


0013fa6c - 00140224: Skillset Display and a bunch of AI calculation (abilities greyed/blinking red)


00143bd8 - 001449f8: Event Instruction Main Routine 1

001449fc - 00145750: Event Instruction Main Routine 2

00145754 - 00145f70: Event Instruction Main Routine 3

00146078 - 00146090: Load Halfword

0014a018 - 0014a2e8: Jumped to from subroutines of steal routine - Calculate party inventory?


0014ce78 - 0014ceb0: Find Text ID's Location


  • 00174068 - 0017436c: Return addresses


001743c8 - 0017442c: Chocobo Check


00179204 - 00179258: Moldball Virus Depth Check


001792a4 - 001793fc: Check Vert Tolerance and if Tiles can be Chosen

00179400 - 00179420: Null some Tile Data (192dd9)

00179424 - 00179514: more map/targeting stuff

00179518 - 00179638: Calculate Tiles Hit by Ability

0017963c - 001797b8: Calculate Possible AoE Tiles


0017a16c - 0017a28c: calculate ability range with map parameters?

0017a290 - 0017a514: Set panels affected by ability?

0017a7bc - 0017a8bc: some map calculation

0017a8c0 - 0017aaf4: Calculate ability range for menu types?

0017aaf8 - 0017ac8c: Calculate Targeting for Menu Types

0017ac90 - 0017afbc: Targeting validation (weapon flags)

0017afc0 - 0017b3f0: Auxilary targeting validation

0017b3f4 - 0017b49c: Height/coordinate validation

0017b4a0 - 0017b4cc: Disable Green Panel Flags (initialization?)

0017b4d0 - 0017b7b0: Calculator Routine

0017b7b4 - 0017b870: Disable Green Panel on all but Target's Tile

0017b874 - 0017bc74: Targeting routine

0017bc78 - 0017bdcc: Check Allies/Enemies that can be Targeted

0017bdd0 - 0017be64: Check if Unit can be Targeted

0017be68 - 0017c040: Linear/3-direction AoE Calculation

0017c044 - 0017c154: Linear Attack Tile Calculation

0017c158 - 0017c3b4: Calculate Height Data

0017c3b8 - 0017c3d8: Call Attack Preparation (ability selected)

0017c3dc - 0017c458: Call Attack Preparation (AT list preview)

0017c45c - 0017c908: Attack Preparation

0017c90c - 0017c950: Unit exists/party member checkReturns 0x16e in unit data

0017c954 - 0017c9b4: Player Item Quantity decrement

0017c9b8 - 0017cac8: Prep Current Action Data

0017cacc - 0017cd20: Reaction Target/Hit Calculation

0017cd24 - 0017ce40: Map calculations for attack Attack, charge, ranged weapon flag

0017ce44 - 0017d34c: Main ability loading routine?

0017d350 - 0017d40c: set target coordinates for ability? also set regenerator target

0017d410 - 0017d49c: draw out routine dealing with experience gain

0017d4a0 - 0017d704: Current Action Ability Data Setting / Multi Hit Formulas

0017d708 - 0017d84c: Targeting/panel routine

0017d850 - 0017da1c: more map/panel targeting

0017da20 - 0017dbc4: Ability Usage Checks and MP Reduction

0017dbc8 - 0017dc84: Store Some Acting Unit Data

0017dc88 - 0017dca4: Get ID of Unit if Tile is Targetable

0017dca8 - 0017decc: Check if another unit is on the same Tile

0017ded0 - 0017def8: Clear targeting panel data?

0017defc - 0017e174: Big... Contains Hamedo check

0017e178 - 0017e58c: Main reaction routine?

0017e590 - 0017e64c: Counter magic targeting?

0017e650 - 0017e77c: Store counter ability?

0017e780 - 0017e7e0: Auto Potion

0017e7e4 - 0017ea24: Gained JP Up Section

0017ea28 - 0017ea7c: Load Job Level

0017ea80 - 0017ec14: Store JP; Calculate Unlocked Jobs

0017ec18 - 0017f01c: big map/panel routine

0017f020 - 0017f0e8: Float/Float/Fly movements

0017f0ec - 0017f178: Move Cap?

0017f17c - 0017f2d4: [[Pre-Pre formula calculations]

0017f2d8 - 0017f318: Get Elemental Ability ID

0017f31c - 0017f384: Initialize party members Job data, Sp cap, Status initialization

0017f388 - 0017f5f4: Initialize units battlefield data(ENTD ID/flags, Map location, palette, control, etc.) 0017f5f8 - 0017f61c: Initialize players battlefield units

0017f620 - 0017f63c: Initialize enemy battlefield units

0017f640 - 0017f6c0: Set unit placement and validate

0017f6c4 - 0017f89c: Validate unit placement

0017f8a0 - 0017fbe8: Big ENTD unit loading routine

0017fbec - 0017fcc4: ENTD AI?

0017fcc8 - 0017fd04: Disable/Remove unit

0017fd08 - 0017fd7c: Check for unit availability(existance) and ENTD level setting

0017fd80 - 0017fda8: Set unit cannot exist(but can), return r2 = 0

0017fdac - 0017fdd8: Erase unit, set to be removed from party

0017fddc - 0017ffbc: Set Rider/Mount's X/Y Data

0017ffc0 - 00180130: Set target for mounted unit, move find item/trap

00180134 - 00180174: Get movement support flags (move-MP/HP/EXP/JP up)

00180178 - 0018020c: Remove charging status/ability CT

00180210 - 0018022c: Disable acting statuses

00180230 - 001802c4: Rare/common item determination

001802c8 - 001804c0: Set map Item/trap data

001804c4 - 0018052c: Move find item flag calculation

00180530 - 00180900: Generate Crystal or Treasure

00180904 - 00180a04: Learn from Crystal

00180a08 - 00180af8: Generate Treasure

00180afc - 00180b28: Get Unit's Data Pointer

00180b2c - 00180c8c: Check Sprite Set | Ramza Causes Game Over

00180c90 - 00180dac: Unit Existence/crystaltreasure check

00180db0 - 00180dfc: [[Party level + XX modification?


00180fe4 - 0018109c: Prep for Special Status Flag Enabling

001810a0 - 001810d0: Map Location Calculation

001810d4 - 00181110: Load unit Data (exists check within)

00181114 - 00181148: Find Active Unit Data Pointer?


001811f8 - 00181308: Player Control Routine?

0018130c - 001813bc: Weapon Guard Usability (Check if Unit can React)

001813c0 - 00181580: Player Skill Set

00181584 - 0018171c: Skillset Loading?

00181720 - 001817bc: Ability Loading?

001817c0 - 00181b6c: Load ability data for skillset (MP, CT, req. sword booleans)

00181b70 - 00181cb4: Item Inventory

00181cb8 - 00181eec: Throw

00181ef0 - 00182060: Math Skill

00182068 - 001821c8: ???

001821cc - 001822c8: Elemental

001822cc - 0018242c: Monster skill, frog attack ability loading

00182430 - 00182504: Monster Skill check prep

00182508 - 00182660: Monster Skill check

00182664 - 00182784: Draw Out


001827f0 - 00183074: In between turn control routine

  • 001829b8 - 00182a40: Next clocktick
  • 00182a44 - 00182ba8: Dead processing, next turn processing (100CT)
  • 00182bac - 00182c04: Ability CT decrement
  • 00182c08 - 00182c8c: Post-ability CT setting
  • 00182c90 - 00182ce4: Status CT decrement
  • 00182ce8 - 00182d4c: Set AI CT data?
  • 00182d50 - 00182d88: ???
  • 00182d8c - 00182dfc: Find highest CT
  • 00182e00 - 00182e6c: Validate units turn
  • 00182e70 - 00182ea8: Poison and regen
  • 00182eac - 00182fa0: Poison marsh
  • 00182fa4 - 00183074: Mimic ability setting

00183078 - 001832c8: Death sentence, crystalization, treasurization, etc also: reraise, defend removal, chicken brave increment

001832cc - 00183370: Status checks

00183374 - 001834b8: Gameover by party incapacitated

00183544 - 001835a4: Calculate AT List and Get Specific Unit ID

001835a8 - 001835f0: Unit doesn't exist/deadcrystaltreasurepetrify/being ridden check

001835f8 - 00183708: Removed Code? action loading routines

0018370c - 00183ac8: Calculate AT List

00183acc - 00183e90: AT List Sorting


00183bf0 - 00183c68: Various Flags r4= data pointer

00183c6c - 00183d0c: End of Turn

00183d10 - 00183d6c: Able to move/act checks (Menu?)

00183d70 - 00183ddc: Change of Turn check

00183e00 - 00183e38: another intermediate routine

00183e3c - 00183e8c: Unit exists checks

00183e90 - 00183e9c: Activates move/act

00183ea0 - 00183f5c: something involving map coordinates

00183f60 - 00183fb0: Load Move Find-Item data to Current Map

00183fb4 - 00184018: Get Tile's Data Pointer

0018401c - 00184148: Return Various Tile Data

0018414c - 001842f4: deals with map coordinates 3

001842f8 - 00184308: Clear r2 2

0018430c - 00184338: Force Attack Miss

0018433c - 0018435c: Force Attack Miss?

00184360 - 001843e4: Dance/Song hit % Returns if attack hit or not

001843ec - 0018460c: Knockback Calculation

00184610 - 001848d4: Knockback 2

001848d8 - 00184960: Attack Evaded Calculations

00184964 - 00184b20: Compatibility

00184b24 - 00184e3c: Validate Status Changes

00184e40 - 00184e94: Elemental Nullification Nullify Action - Glain

00184e98 - 00184f98: Elemental Damage Modification

00184f9c - 001851c0: Equipment Evasion Setting (Physical)

001851c4 - 001852e0: Equipment Evasion Setting (Magical)

001852e4 - 00185324: Concentrate Calculation

00185328 - 00185378: Dark/Confuse Caclulation

0018537c - 001853f0: Abandon Calculation

001853f4 - 001854b4: Evasion Changes due to Statuses

001854b8 - 001854f8: Transparent Calculation

001854fc - 00185734: Facing Evade Calculation

00185738 - 00185810: Weather effects on Bows

00185814 - 00185a98: Calculate Final Hit %

00185a9c - 00185c90: Base XA Calculation

00185c94 - 00185cbc: Store MA and Y

00185cc0 - 00185d3c: Base XA and YA for MA + Y / 2

00185d00 - 00185d7c: Store PA and PA + Y / 2

00185d40 - 00185d7c: Store MA and PA + Y / 2

00185d80 - 00185da8: Store MA and X

00185dac - 00185dd4: Store PA and X

00185dd8 - 00185e00: Store PA and WP

00185e04 - 00185e2c: Store PA and Y

00185e30 - 00185e58: Store Speed and X

00185e5c - 00185e90: Store PA and WP + Y

00185e94 - 00185f7c: Formula 64 or Jump Base XA / YA

00185f80 - 00185fa0: Charge Calculation

00185fa4 - 00185ff8: Weapon Element Strengthen

00185ffc - 00186050: Elemental Strengthen

00186054 - 00186148: Attack UP/Two Hands/Martial Arts

0018614c - 00186200: Formula 32, 33, 34, 35 Attack Up and Martial Arts

00186204 - 00186250: Magic Attack Up routine

00186254 - 001862c8: Attacker Berserk/Frog Check

001862cc - 00186318: Defense UP routine

0018631c - 00186368: Magic Defense Up routine

0018636c - 0018645c: Target XA affecting Statuses (Physical)

00186460 - 001864f4: Target's Status Affecting XA (Magical)

001864f8 - 00186564: Critical Hit Calculation

00186568 - 00186598: XA * YA Calculation

0018659c - 00186620: Set XA + YA for Status Formulas (Stupid section)

00186624 - 00186688: Calculate % of damage

0018668c - 001866e8: MP Damage Routine (Uses Y instead of X.)

001866ec - 00186740: Gravi2 Damage Routine

00186744 - 00186810: Steal Gil

00186814 - 001868ec: Set EXP Stolen

001868f0 - 00186918: Formula 36

0018691c - 001869e8: Damage and Knockback Routine (Dash, tackle, throw stone)

001869ec - 00186af4: Song abilities

00186af8 - 00186c00: Dance abilities

00186c04 - 00186cfc: Talk Skill

00186d00 - 00186d28: Formula 3a

00186d2c - 00186d54: Formula 39

00186d58 - 00186db8: Formula 3B

00186dbc - 00186e24: Formula 3C

00186e28 - 00186e50: Formula 43

00186e54 - 00186e74: Formula 44

00186e78 - 00186ea0: Formula 45

00186ea4 - 00186ecc: +Y brave

00186ed0 - 00186fcc: Weather Elemental effects?

00186fd0 - 00186ff4: Elemental Damage Modification (Prep)

00186ff8 - 001870f8: Ability Elemental? Apply Elemental - Glain

001870fc - 0018714c: Elemental Absorption

00187150 - 00187244: Faith Calculation

00187248 - 0018734c: HP Absorbtion (Seems needlessly complex)

00187350 - 001873d4: Undead Reversal

001873d8 - 00187468: Undead Absorb Attack

0018746c - 001874e8: MP Recovery Routine -MP Absorb*

001874ec - 0018750c: Convert HP Damage into MP Recovery

00187510 - 001875b8: ??? Routine (Often appears after elemental absorb routine)

001875bc - 001875f8: Dragon Check

001875fc - 00187634: Sleep Check

00187638 - 0018768c: Maintenance

00187690 - 001876e0: Conditional Status Proc Roll (19%) Inner Routine

00187730 - 00187838: Magic Gun Ability Decision

0018783c - 0018785c: Quick Effect

00187860 - 0018790c: Determine which stat will be reduced

00187910 - 001879c4: Katana Break Chance

001879c8 - 00187c9c: Steal/Break/Might Sword Hard Coding

00187ca0 - 00187eb0: Formula 01 - 06 Aftermath

00187eb4 - 00187f20: Apply status (to action) - (Preserve hit status, evade type, hit %)

00187f24 - 00188284: Apply status (to action) Formula 38

00188288 - 001882c4: MP Healing Item Formula

001882c8 - 001882f4: 100% HP/MP Healing (actual)

001882f8 - 001883a8: Finger Guard

001883ac - 00188484: Catch

00188488 - 001884bc: Calculate Hit %

001884c0 - 0018850c: Conditional Status Proc Roll (19%)

00188510 - 00188564: Physical Evade Calculation

00188568 - 001885b4: Physical Evade Calculation(Charge)

001885b8 - 001885f4: Magical Evade Calculation

001885f8 - 00188634: Physical XA Modifying Statuses/Support

00188638 - 001886a0: Weapon Damage Calculation

001886a4 - 001886d0: Damage Calculation

001886d4 - 00188718: Routine used in formula 2B

0018871c - 00188740: Elemental Absorb + Status proc

00188744 - 00188778: Magical Support/Status/Compat

0018877c - 001887c0: Elemental XA * YA

001887c4 - 001887fc: Elemental Absorb/Status

00188800 - 00188854: MA + X

00188858 - 00188884: Magical XA * YA

00188964 - 001889a0: Truth/Formula 5E-5F Magical damage

001889a4 - 001889c8: 2Truth/Formula 5E-5F Calculate damage

001889cc - 00188a20: Calculate Accuracy for Magical Spells

00188a24 - 00188a80: Calculate Accuracy for Magical

00188a84 - 00188ad8: MA + X without faith

00188adc - 00188b10: Cluster of Physical Routines

00188b14 - 00188b60: Physical Routine for Hit % abilities

00188b64 - 0018ac70: Formulas

0018ac74 - 0018acd8: remove transparent status if Jump is used?

0018acdc - 0018ad54: Pheonix down on undead

0018ad58 - 0018adf0: Double WP if two hands is equipped?

0018adf4 - 0018ae38: action data nulling

0018ae3c - 0018af28: Knockback?

0018af2c - 0018b270: Perform reaction abilities

0018b274 - 0018b348: Store used weapon based on action menu byte

0018b34c - 0018b9f4: Pre Formula Setup (FDC)

0018b9f8 - 0018ba40: Remove Status

0018ba44 - 0018bcec: set some data for current attack

0018bcf0 - 0018bd30: Called by Nullify Action - Glain

0018bd34 - 0018bd70: ?Nullify steal item? - Glain (Update Notes)

0018bd74 - 0018bdd0: Current Action Data Nulling

0018bdd4 - 0018be04: Null Some Status Data

0018be08 - 0018c67c: Main Reaction Routine - performs ability effects

0018c680 - 0018c754: Poach Calculation

0018c758 - 0018c858: some kind of ENTD/Unit manipulation

0018c85c - 0018c91c: Level up/down ability

0018c920 - 0018c964: Check if unit can react 1

0018c968 - 0018c99c: Check if unit can react?

0018c9a0 - 0018c9e0: Reaction check?

0018c9e4 - 0018cafc: 'Reflect', Blade Grasp, and Arrow Guard

0018cb00 - 0018cc30: Sunken State, Caution, Dragon Spirit, etc. usability

0018cc34 - 0018ccd4: MP Switch, Distribute, and Damage Split usability

0018ccd8 - 0018ce00: PA Save, MA Save, Speed Save Regenerator, HP Restore, MP Restore, Critical Quick, Meatbone Slash, Auto Potion, Gilgame Heart check

0018ce04 - 0018ce84: Counter, Counter Tackle, Counter Flood, Brave Up, Dragon Spirit, Sunken State, and Caution Usability usability

0018ce88 - 0018cef0: PA Save, MA Save, Speed Save, Regenerator, Auto Potion, Gilgame Heart usability

0018cef4 - 0018cf70: Critical Quick, HP Restore, MP Restore, Meatbone Slash usability

0018cf74 - 0018cfe4: Face Up and Absorb Used MP usability

0018cfe8 - 0018d04c: Reflect Reaction?

0018d050 - 0018d0e4: Blade Grasp Usability

0018d0e8 - 0018d1b4: Arrow Guard Usability

0018d1b8 - 0018d2a4: MP Switch Usability

0018d2a8 - 0018d314: Distribute Usability

0018d318 - 0018d380: Damage Split Usability

0018d384 - 0018d3bc: Chance to React

0018d3c0 - 0018d56c: Steal Routine

0018d570 - 0018d61c: Stat Increment/Decrement

0018d620 - 0018d708: Attacker's Earned Experience

0018d70c - 0018d7c4: Store target stats pointer + data calls main action loading routine

0018d7c8 - 0018d864: Poison and Regen

0018d868 - 0018d90c: Transparent removal routine

0018d910 - 0018da00: status CT decrement and innate statuses?

0018da04 - 0018da40: target pointers

0018da44 - 0018da84: Crystal, Dead, Jump, Petrify, Treasure check

0018da88 - 0018dbac: Poison Marsh Routine

0018dbb0 - 0018dd40: Traps Routine

0018dd44 - 0018df08: Move-HP Up, Move-MP Up, Gained Exp Up\

0018dff8 - 0018e078: Main Reaction subroutine - ENTD/ID stuff - Calculate Unlocked Jobs/set ability element = dark?


0018e9bc - 0018e9e4: Determine if Status Flags can be Enabled

0018e9e8 - 0018ea94: Item quantity increment for steal/break?

0018ea94 - 0018eb4c: Steal Gil/Exp routine?

0018eb50 - 0018ec0c: Apply Exp gain / Level up


0018edf8 - 0018ee20: Store ability data 80193868 + 0x10 bytes

0018ee24 - 0018ee64: Count # of targets hit by ability


0018eea0 - 0018eed4: Random Process, gives a number between 0-7fff

0018eed8 - 0018ef28: Random Process, (gives a random based on r4 (MOD) and checks against r5 (chance to work))


0018ef34 - 0018f034: Current Action Attacker Data Setting


0018f624 - 0018f7a0: Formula Table


001941f8 - 00194310: Acting Unit's Data Setup (AI?)


00195878 - 00195940: AI Ability Data Setting

00195944 - 001959d0: Attack

001959d4 - 00195a20: AI Item Inventory

00195a24 - 00195a2c: Katana Inventory

00195a30 - 00195a8c: Weapon Inventory

00195a90 - 00195b9c: Jump

00195ba0 - 00195bb8: Charge

00195bbc - 00195bfc: Arithmeticks

00195c00 - 00195d90: Default


00196ce8 - 00196dac: Check if Unit can be Targeted (Cryst/Trea/Mount/Trans)


001978e4 - 00197958: Find Direction of Target


00199124 - 00199368: Calculate Physical? Target

0019936c - 0019939c: Calculate Distance Between Units


001998c8 - 001999c4: Check if Regen/Charm/DM/Reraise/DA Can be Inflicted


00199b98 - 00199c84: Calculate Clockticks Until Unit Acts


00199ec8 - 0019a2c8: Usable Ability Setting/ENTD AI Calculations

0019a2cc - 0019a2ec: Dividend * 4 / Divisor

0019a2f0 - 0019a528: Set AI Flags/Usable Abilities

0019a52c - 0019a5f4: Store Weapon? Attack Data

0019a5f8 - 0019a638: Usable Ability Setting

0019a63c - 0019a66c: Part of the Weapon Inventory

0019a670 - 0019a6a0: Ability Loading

0019a6a4 - 0019a7a0: Weapon Inventory 2

0019a7a4 - 0019a7e0: Arithmeticks 2

0019a7e4 - 0019a814: Charge 2

0019a818 - 0019a994: Others

0019a998 -0019a9c4: Jump 2


0019a9f8 - 0019aa4c: Jump 3

0019aa50 - 0019ab04: Load Known Ability Flag

0019ab08 - 0019ab44: Transfer Halfword Values

0019ab48 - 0019ab74: Transfer Byte Values

0019ab78 - 0019abb0: Word Nulling


0019ad74 - 0019ae2c: [[Determine if Height Difference < 3]]


0019b6b0 - 0019b750: Calculate Height Difference Between Units


0019e160 - 0019e374: Transfer Unit Data to AI Data

0019e378 - 0019e53c: Transfer AI Data to Unit Data


0019ef24 - 0019efac: Check if Status Should/Can be Added


0019f2a4 - 0019f2f0: Transfer Unit Coordinates to AI


001a0fa0 - 001a0fd0: Get Start of Frame Pointers Address

001a0fd4 - 001a100c: Get Start of Parameter Sets Address

001a1010 - 001a1040: Get Header before Motion Data Address

001a1044 - 001a1074: Get Coordinate Data Address

001a1078 - 001a10a8: Get Motion Data Address

001a10ac - 001a10e8: Get Misc. Data and Palette Data Addresses


001a1198 - 001a11c8: Get ??? Data Address


001a15b4 - 001a1810: Ability animation uses animation flags (Ball Hardcoding)

001a1814 - 001a1850: Load ability effect also has accumulate hardcoding?


001a18d8 - 001a1c3c: Effect Control Routine


001a20b4 - 001a20e4: Clear some data


001adfac - 001adfe8: Get Ninja Ball effect based on weapons element. Only valid entries for fire,water,lightning