Difference between revisions of "BATTLE.BIN Routines"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
Line 409: Line 409:
 
00082eec - 000831b4: [[Set Animation based on status]]
 
00082eec - 000831b4: [[Set Animation based on status]]
  
000831b8 - 00083468: [[More animation based on status]]
+
000831b8 - 00083468: [[More animation based on status, death sound effects]]
  
 
0008346c - 0008356c: [[Poach/Morbol Transformation]] Can change spritesheet ID here
 
0008346c - 0008356c: [[Poach/Morbol Transformation]] Can change spritesheet ID here

Revision as of 23:22, 1 September 2014

BATTLE.BIN RAM

  • 00067000 - 00067794: Return Addresses

000683c0 - 000683d0: Store AT list ID = 1

000683d4 - 000683e0: Store AT list ID = 0

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

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


00068534 - 00068630: Palette modification based on team

00068634 - 00068678: Highlight units based on Team 2 (Square pressed during free cursor)

0006867c - 000686ac: Increment AT List ID

00068768 - 00068790: check something and clear AT list ID

00068794 - 000687a0: Clear AT list ID

000687bc - 000687dc: Transfer Palette

000687e0 - 00068948: Set evade type data

0006894c - 000689a0: Set evade type data and weapon element effect

000689a4 - 00068a1c: Set evade type data, item and throw stone hardcoding

00068a20 - 00068a70: set some palette stuff

00068a74 - 00068a90: Call palette routine 1

00068a94 - 00068ab0: Call palette routine 2

00068ab4 - 00068ad0: Call palette routine 3

00068ad4 - 00068af0: Call palette routine 4

00068af4 - 00068b10: Call palette routine 5

00068b14 - 00068b30: Call palette routine 6

00068b34 - 00068b50: Call palette routine 7

00068b54 - 00068b90: Set targets animation 1 based on attack type

00068b94 - 00068bd0: Set targets animation 2 based on attack type

00068bd4 - 00068c14: Jump to post action display

00068c18 - 00068c7c: Set Bow Hardcoding

00068c80 - 00068cc0: Call Bow Hardcoding routine

00068cc4 - 00068d04: Call Bow Hardcoding routine

00068d08 - 00068e2c: Status/sprite transformation/animation display setting

00068e30 - 00068e54: Jump to 68d08

00068e58 - 00068e7c: Jump to 68d08 2

00068e80 - 000690f4: Special Status Flag Enabling?

000690f4 - 0006912c: jump to set item graphic/palette (83758)


0006dc8c - 0006dda8: Knockback with bows?

0006ddac - 0006dde8: Transfer Target Coordinates (knockback) knockback with bows?


0006e7c8 - 0006eed4: Free Cursor Selection Routine

0006eedc - 0006eeec: Set Game Flow Variable to 1

0006eef0 - 0006eefc: Set Game Flow Variable to 0


0006f13c - 0006f170: Rotate Map (Counterclockwise?) 2 L1 controller input

0006f174 - 0006f1a4: Rotate Map (Counterclockwise?)

0006f1a8 - 0006f1dc: Rotate Map (Clockwise?) 2 R1 Controller input

0006f1e0 - 0006f214: Rotate Map (Clockwise?)


0006f28c - 0006f31c: L1 and R1 rotation


0006f5bc - 0006f630: Change Map Zoom 2

0006f634 - 0006f674: Change Map Zoom (L2 Controller Input)


0006f8c8 - 0006f964: Tilt Map/Zoom 2

0006f968 - 0006f9a8: Tilt Map/Zoom(R2 Controller Input)


00070820 - 00070994: Some Tile - map rotation interaction

00070998 - 000709f8: Set casting unit ID = FF 2

000709fc - 00070a34: Set casting unit ID = FF 1

00070a38 - 00070b78: Some system routines for ramza crystal, ability CT resolution

00070b7c - 00070c00: Store ENTD flags into misc data w/o control flag

00070c04 - 00070c74: Set next script = action menus

00070cdc - 00070d14: Store next Battle flow script = 1 (Select pressed during free cursor)


00070e6c - 00071004: In between turn events mimic, ability cast, traps, etc.


0007134c - 0007139c: Highlight units based on team (Square pressed during free cursor)

000713a0 - 00071430: menu stuff?

000714f4 - 000715a4: Menu stuff

0007171c - 000717c8: [[Get next acting unit?


00071ee8 - 000723d0: Post Movement Display

000723d4 - 0007245c: Post Movement Display Prep

0007270c - 00072738: Turn sprite towards attack

0007273c - 00072924: Movement/action direction setting?

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


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


00072bf0 - 00072ce4: Set item/throw stone ability display stuff?


000732c8 - 000734c8: Battle Message Display


000736d4 - 000739c8: Ability effect calculations critical hit, reflect, etc.

000739cc - 00073b98: Action phase control

00073b9c - 00073ee8: set some target coordinates/attacker animation, others

00073eec - 00073fb4: Set damage display type based on ability


00073fe0 - 00074064: Store animation and facing based on animation flag 1


00074bf8 - 0x00 - Free Cursor Controller Input

00074dd0 - 0x01 - Get Tile Information when Select is pressed

00074e2c - 0x02

00074e94 - 0x03 - Action Menus


00074f5c - 0007530c: big Misc unit data routine based on action menu byte

  • Control script 0x04

00075310 - 000755f8: Set move/act based on skillset mainly for defend/eq.change - also sets other flags

  • Control Script 0x05

000755fc - 0x06

00075690 - 0x07

0007571c - 0x08

000757c4 - 0x09

00075820 - 0x0a

0007587c - 0x0f

00075910 - 0x10

00075c34 - 0x11

00075ca0 - 0x12

00075d0c - 0x13

00075db0 - 0x14

000761cc - 0x15

0007629c - 0x17

00076430 - 0x16

00076658 - 0x18

0007691c - 0x19

000769b0 - 0x1a

00076b7c - 0x1b

00076be8 - 0x1d

00076c50 - 0x1c

00076d84 - 0x1e

00076f14 - 0x1f - store animation/facing

00076fd0 - 0x20

00077098 - 0x21 - Action occurring

00077134 - 0x22

000771a0 - 0x23

00077314 - 0x24

00077378 - 0x25

000773f8 - 0x26

00077760 - 0x27

000777ec - 0x28

000779a0 - 0x29

00077bd8 - 0x2a

00077c08 - 0x2b

00077c38 - 0x2c

00077ca4 - 0x2d

00077e1c - 0x2e

00077e88 - 00077f64: AI target processing?

  • Control script 0x2f

00077f68 - 0x30

00078030 - 0x31


000780a0 - 0x0b

00078148 - 00078324: Copy 0x16e in unit data to misc data, display processing

  • Control Script 0x0e

00078328 - 0x0d

0007843c - 0x0e

00078504 - 0x32

000785ac - 0x33

000787fc - 0x34

00078964 - 0x37

00078acc - 0x3a

00078bf4 - 0x35

00078d20 - 0x38

00078e58 - 0x36

00078fb4 - 0x39


00079a98 - 0007a1d0: Game Flow Control routine


0007a1d4 - 0007a214: Get casting unit's misc data data that matches 0x9112c


0007a724 - 0007a770: Get unit misc data that matches r4 ID


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 Sprite Display Data

0007b96c - 0007b9cc: Store vx, vy, vz vectors


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

00081988 - 00819a4: Store unit animation/facing/someothervalue

000819a8 - 00081a04: Get some Spritesheet data address


00081ad0 - 00081adc: r2 = 0x800b669c

00081ae0 - 00081aec: r2 = 0x800b6edc


00081b0c - 00081b84: Store some coordinate data

00081b88 - 00081c18: Store some movement coordinate data


00081c60 - 00081d50: Save Spritesheet ID to spritesheet data

00081d54 - 0008210c: Weather/time of day/tile palette modification

00082110 - 000822b8: Special spritesheet ID palette mods?

000822bc - 00082464: palette mod by status

00082468 - 00082504: [[check for tile, status palette mod

00082508 - 0008254c: Status/? Misc ID checks

00082550 - 00082588: Transparent Check (for opacity?)


00082620 - 00082788: Set some display/anim data for weapon/evade types

0008278c - 00082888: Movement validation - float/fly?

0008288c - 00082a40: Target spritesheet calculations?

00082a44 - 00082b18: Set animation for Item abilities

00082b1c - 00082b7c: Store attack animation flags and facing 1

00082b80 - 00082c0c: Set attack animation flags and facing 2

00082c10 - 00082cc0: Set attack animation flags and facing 3

00082cc4 - 00082d4c: Set Level up/Job level up animations?


00082eec - 000831b4: Set Animation based on status

000831b8 - 00083468: More animation based on status, death sound effects

0008346c - 0008356c: Poach/Morbol Transformation Can change spritesheet ID here

00083570 - 00083754: Sprite changing stuff? crystal, frog, etc.

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

00083874 - 00083974: Set attacker animation for shield block

00083978 - 00083c54: Set targets animation based on attack type

00083c58 - 00083cd0: Sprite display setting for all units based on attack


00084214 - 000846ac: Update Sprite display data


00084818 - 0008522c: ??? Has damage display hardcording for arm aim/lucavi abilities

00087a28 - 00088014: Misc unit data initialization


0008ca48 - 0008ca78: get misc data, do something else if none found


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


0008d138 - 0008d188: store mimicking misc data, existence/entd checks


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


00133158 - 00133490: Get misc ID (goes through a bunch of event command checks and more)


00133588 - 00133750: Store level,exp, HP/MP hardcoding, store CT

00133754 - 00133c90: Store units small in battle display data


00138ed8 - 001390b8: Move/Act/Wait menu Idle routine


00136b10 - 00136bcc: Get Item Graphic Data


0013b590 - 0013b640: Load Main Data (data from 5771c - ???)

0013b644 - 0013b6e0: Store Main Data

0013c3a4 - 0013c564: Equip Change Routine


0013cf58 - 0013d0a8: menu Routine


0013d634 - 0013d700: Store unit names and some event block data


0013f520 - 0013f664: Data setting from menu selections


0013f76c - 0013f7a8: Initialize menu counters


0013f7b4 - 0013f8b0: Store some data for menus


0013fa6c - 00140224: Main Skillset/ability loading (abilities greyed/blinking red)


001404cc - 00140728: Main act menu loading


00140a30 - 00140b00: Disable Move/Act based on menu ID


00140ed4 - 0014115c: Ability selected routine


001411b4 - 00141460: Set used item based on skillset

  • Bad name for this routine, I think it does much more important shit
    • Change loaded skillset here to make non-default abilities work in default skillset

00141464 - 00141650: Store message/menu type


0014171c - 00141758: Store main target ID/auto battle

0014175c - 001419b4: Spell Quote determination


001419b8 - 00141a88: System function setup routine


00141b0c - 00142504: System function routine

  • 00141c14 - 00141cb8: Gameover checks (both)
  • 00141db0 - 00141e24: Gameover (party incapacitated) checks
  • 00142074 - 001420e0: Calculator skillset loading?
  • 0014227c - 001422f4: recieve item whos quantity = 99 (increase gil)
  • 001422f8 - 00142334: Increment item quantity


00143bd8 - 001449f8: Event Instruction Main Routine 1

001449fc - 00145750: Event Instruction Main Routine 2

00145754 - 00145f70: Event Instruction Main Routine 3


00146078 - 00146090: Load event command bytes


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


0014b394 - 0014ba24: Giant message/menu loading routine


0014ca38 - 0014ca54: Store event command bytes

0014ca58 - 0014ca7c: Store event command bytes 2

0014ca80 - 0014cbb0: Some event data setting routine runs many many times, jr r31's to a new location

0014cbc0 - 0014cbf0: Get menu address?

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

0014ceb4 - 0014cf24: Jalr routine


  • 00174068 - 0017436c: Return addresses


001743c8 - 0017442c: Chocobo Check

00174430 - 00174b88: Store movement stuff into scratch pad


00175958 - 00175e9c: Movement routine Highlights panels blue


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

001797b4 - 001798ac: Depth Calculation

001798b0 - 00179a1c: Set initial panels

00179a20 - 00179b54 Set targeting for weapon attack?

00179b58 - 00179c98: Striking/lunging modification

00179c9c - 00179d80: Depth Calculation 2???

00179d84 - 00179dc4: Remove ???? targets

00179dc8 - 0017a168: Set Ability Targeting?

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 Ability Display

00181cb8 - 00181eec: Throw

00181ef0 - 00182060: Math Skill Ability Display

00182068 - 001821c8: Math Skill ability loading

001821cc - 001822c8: Elemental ability loading

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

  • 0018282c - 001828ac: Initialize data?
  • 001828b0 - 00182920: Validate mime action?
  • 00182924 - 00182978: Set active turn
  • 001829b8 - 00182a40: Next clocktick - CT increment
  • 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 Mime bytes
  • 00182d50 - 00182d88: Clear Mime bytes
  • 00182d8c - 00182dfc: Find highest CT
  • 00182e00 - 00182e6c: Validate units turn
  • 00182e70 - 00182ea8: Poison and regen
  • 00182eac - 00182ee4: Poison marsh
  • 00182ee8 - 00182f30: Transparent Removal
  • 00182f34 - 00182fa0: Check if mimicable ability occurred
  • 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: AT List Preview?

0018370c - 00183ac8: Calculate AT List

00183acc - 00183ba4: AT List Sorting

00183ba8 - 00183bc8: Set Only Action Taken

00183bcc - 00183bec: Set Only Movement Taken

00183bf0 - 00183c68: Set move/act flags used in defend/equip change routines

00183c6c - 00183d0c: End of Turn

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

00183d70 - 00183ddc: Change of Turn check

00183de0 - 00183dfc: Enable/disable acting status

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: Set XA*YA as hit%

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 and status roll 19% conditional status

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

0018df0c - 0018dff4: Prep gained exp/jp/level/job level + other stuff?

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

0018e07c - 0018e1ac: Some status hardcoding dead hp=0, remove ability CT, remove player control

0018e1b0 - 0018e244: Remove control based on status

0018e248 - 0018e30c: Inflicted status+CT setting, xfer last used CT

0018e310 - 0018e5e0: Store status,modified ENTD for current attack

0018e628 - 0018e65c: Store current attack data into AI?

0018e660 - 0018e6b4: ??? Involves 0x13b590 routine

0018e6b8 - 0018e8a8: Learn on hit 1

0018e8ac - 0018e9b8: Learn on hit 2

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


0018ec44 - 0018ed78: More status infliction/removal also deals with innate status

0018ed7c - 0018edf4: Sort target list at 80193868

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))

0018ef2c - 0018ef30: jr r31

0018ef34 - 0018f034: Current Action Attacker Data Setting

0018f038 - 0018f2ac: Mimic ability setting


0018f4c8 - 0018f4d4: Load last used ability

0018f510 - 0018f610: ????? Table

0018f624 - 0018f7a0: Formula Table


00193d48 - 00193e4c: AI Return addresses

00193e50 - 001941f4: Main AI action setup?

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

00194314 - 0019456c: Set type of target for all targets

00194570 - 00194718: Some targetability setting

0019471c - 00194908: Set AI flags for target consideration

0019490c - 00194940: Store main target ID and focus on target flag

00194944 - 00194e54: AI movement/panel data setting

00194e58 - 001957bc: Set AI ability considerations for all units and self

001957c0 - 00195874: Some type of checking algorithm

00195878 - 00195940: AI Ability Data Setting

  • This is called when ability is chosen by AI, r4 = address of move in units move list

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

00195d94 - 00195f68:

00195f8c - 00196198: set current ability CT/status change


00196c8c - 00196ce4: Check target type (r2 = 1 if target can't be targeted/dead without? reraise)

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


001971b8 - 00197534: Set chosen ability/target for AI status (berserk, blood suck, confuse, frog, chicken)

00197538 - 001978e0: Store ability/skillset data, set AI settings for ability?

001978e4 - 00197958: Find Direction of Target


00197f14 - 00197ff0:

00197ff4 - 001982d4:


00199124 - 00199368: Calculate Physical? Target

0019936c - 0019939c: Calculate Distance Between Units

001994f8 - 00199718: See if able to move to target?


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


0019dd8c - 0019e15c: AI ability processing

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

001a10ec - 001a1194: Some sound effect prep

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


001a12a4 - 001a12d8: Load LBA sector and Byte length of effect


001a13bc - 001a15b0: Effect prep, default to cure if invalid LBA Sector

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

001a1814 - 001a1850: Load ability effect Stores pre-cast effects, has some hardcodings. Also transfers lots of important effect data to 0x1bad0c

001a1854 - 001a187c: Check if ability is Item ability Checks 0x0800 flag, returns 1 if not item effect

001a1880 - 001a18a0: Increment effect section address loading directive 801b63e8

001a18d8 - 001a1c3c: Load Effect section addresses

001a1c40 - 001a1c8c: ??


001a2084 - 001a20b0: Clear some data in temp effect data

001a20b4 - 001a20e4: Clear some data in temp effect data 2

001a20e8 - 001a2210: Initialize temp effect data?

001a2214 - 001a2234: [[Effect code script >= 2E]]

001a2238 - 001a2258: Effect code script 00 - Store next half as new counter, return 0 This byte creates a loop in the header section

001a225c - 001a227c: Effect code script 01 - store next half as new counter, return 1

001a2280 - 001a22f4: Effect code script 02

001a22f8 - 001a2368: Effect code script 03

001a236c - 001a2370: Effect code script 04 End effect?

001a2374 - 001a23a4: Effect code script 05 - Increment counter, store 2nd byte / 4 at 801bf000

001a23a8 - 001a2410: Effect code script 06

001a2414 - 001a2484: Effect code script 07

001a2488 - 001a2520: Effect code script 08

001a2524 - 001a255c: Effect code script 09

001a2560 - 001a2598: Effect code script 0A

001a259c - 001a2628: Effect code script 0B

001a262c - 001a2664: Effect code script 0C

001a2668 - 001a26a0: Effect code script 0D

001a26a4 - 001a2730: Effect code script 0E

001a2734 - 001a276c: Effect code script 0F

001a2770 - 001a27ac: Effect code script 10

001a27b0 - 001a280c: Effect code script 11

001a2810 - 001a286c: Effect code script 12

001a2870 - 001a28d0: Effect code script 13

001a28d4 - 001a2934: Effect code script 14

001a2938 - 001a2994: Effect code script 15

001a2998 - 001a29dc: Effect code script 16 - check counter against 0x1c in temp effect data

  • Sets next half as counter if check is true, jumps out of loop

001a29e0 - 001a2a28: Effect code script 17

001a2a2c - 001a2a78: Effect code script 18

001a2a7c - 001a2b14: Effect code script 19

001a2b18 - 001a2b6c: Effect code script 1A

001a2b70 - 001a2bc4: Effect code script 1B

001a2bc8 - 001a2c24: Effect code script 1C

001a2c28 - 001a2c78: Effect code script 1D - check timer against effect duration

  • jump out of loop if timer > effect duration

001a2c7c - 001a2cf8: Effect code script 1E - check all timing bytes

  • Seems to deal with time in between moving to next target primarily

001a2cfc - 001a2d44: Effect code script 1F - go to end if hit counter = 0?

001a2d48 - 001a2d90: Effect code script 20

001a2d94 - 001a2ddc: Effect code script 21

001a2de0 - 001a2e28: Effect code script 22

001a2e2c - 001a2e74: Effect code script 23

001a2e78 - 001a2eb0: Effect code script 24

001a2eb4 - 001a30e8: Effect code script 25 - Runs effect?

001a30ec - 001a3144: Effect code script 26

001a3148 - 001a31a4: Effect code script 27 - store first 4 words of on hit effects data

001a31a8 - 001a32e4: Effect text/transformation/animation display timing

001a32e8 - 001a3404: On-Hit effect sounds like when the healing is displayed in moogle

001a3408 - 001a3d2c: Effect code script 28 - huge big ol' routine Handles timing

001a4838 - 001a4c40: Effect code script 29 - 'nother huge routine

001a4c44 - 001a4c80: Effect code script 2A - clear some temp effect data

001a4c84 - 001a4cbc: Effect code script 2B - clear some temp effect data 2

001a4cc0 - 001a4cd4: Effect code script 2C - Increment counter Useful for editing

001a4cd8 - 001a4cec: Effect code script 2D - duplicate of 2C

001a4cf0 - 001a4d98: Effect code script loop


001a60ac - 001a7f58: Emitter Control Routine


001a8bf8 - 001a8c10: Modify Data 1


001a8d04 - 001a8d78: Modify Data 2


001a90d0 - 001a9314: Modify based on first word of timing section header


001a9984 - 001a99a8: Store first section of on hit effects data

001a9bb0 - 001a9f40: Matrix / effect mathematics?


001aa1a0 - 001aa1f4: Some parameter set stuff


001aa1f8 - 001aa7c0: Composite frame loading for parameter sets


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