Difference between revisions of "Routine Locations"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "Not sure if there's a better way to display this, but here are starting locations for all the routines I have in my notes. If you have more please add them. It would be nice t...")
 
(Removed redirect to Routine and Data/Table Locations)
Tag: Removed redirect
 
(264 intermediate revisions by 10 users not shown)
Line 1: Line 1:
Not sure if there's a better way to display this, but here are starting locations for all the routines I have in my notes. If you have more please add them. It would be nice to have spoilers below the routine to show the code, but idk if we can do that on wiki.
+
:For additional ASM notes and an easier to use version of this data in .txt format, [[https://ffhacktics.com/smf/index.php?action=dlattach;topic=6538.0;attach=11553| download ASM Files]] <-- possibly outdated
  
 +
:If you're just starting ASM, check [[Assembly FAQ|this page]] first, it contains some important assorted information
  
000000a0: Jump to 0x5c4
+
:For Data Tables, see [[Data/Table Locations]]
  
 
+
Main Routine Locations:
0005e0cc: Checking if Attack Hits?
 
 
 
 
 
0005e200: Checking known abilities?
 
 
 
 
 
0005e644: Data Nullifying (requires r5 = Limit, and r4 = Starting location)
 
 
 
 
 
000736d4: ??? effect research
 
 
 
 
 
00073eec: ??? effect research
 
 
 
 
 
0007ff44: "Speed" display
 
 
 
 
 
0007ff7c: "CT" display
 
 
 
 
 
0007ffb0: "Br" display
 
 
 
 
 
0007ffe8: "Fa" display
 
 
   
 
   
 +
RAM -> File
 +
    0x00F800 -> [[SCUS 942.21 Routines]]
 +
    0x067000 -> [[WLDCORE.BIN Routines]]
 +
    0x067000 -> [[BATTLE.BIN Routines]]
 +
    0x067000 -> [[OPEN.BIN Routines]]
 +
    0x0E0000 -> [[WORLD.BIN Routines]]
 +
    0x1BF000 -> [[ATTACK.OUT Routines]]
 +
    0x1BF000 -> [[REQUIRE.OUT Routines]]
 +
    0x1BF000 -> [[OPTION.OUT Routines]]
 +
    0x1BF000 -> [[ETC.OUT Routines]]
 +
    0x1BF000 -> [[EQUIP.OUT Routines]]
 +
    0x1BF000 -> [[CARD.OUT Routines]]
 +
    0x1BF000 -> [[BUNIT.OUT Routines]]
 +
    0x1DF000 -> [[JOBSTTS.OUT Routines]]
 +
    0x1DF000 -> [[HELPMENU.OUT Routines]]
 +
    0x1DF000 -> [[SMALL.OUT Routines]]
 +
    0x1DF000 -> SP2 + effects + other.
  
00080020: "Attack" Sword display
+
PSX Console:
 
   
 
   
 
+
  RAM -> File
00080054: "Magic" Rod display
+
    0x00000000 -> [[PSX BIOS]]
 
+
    0x07c00000 -> [[PSX Kernel]]
 
 
0008008c: "Missed" display
 
 
 
 
 
000800bc: "Guarded" display
 
 
 
 
 
000800ec: "Caught?" display
 
 
 
 
 
00080bc4: *One-Digit Experience*
 
 
 
 
 
00080c40: *Two-Digit Experience*
 
 
 
 
 
00080cf8: *One-Digit JP*
 
 
 
 
 
00080d84: *Two-Digit JP*
 
 
 
 
 
00080e3c: *"No Target" Display*
 
 
 
 
 
00080e7c: *"Silenced" Display*
 
 
 
 
 
00080ebc: *"No MP" Display*
 
 
 
 
 
0013b590: jumped to from steal item decrement/stat changes/price change?? And weather effects on crossbows/bows
 
   
 
0013b644: jumped to from routine immediately above this one
 
 
 
 
 
0014a018: Jumped to from subroutines of steal routine - Calculate party inventory?
 
 
 
 
 
0017a290: Check ability data?
 
 
 
 
 
0017b4d0: Calculator Routine
 
 
 
 
 
0017b874: Targeting routine:
 
 
 
 
 
0017c45c: Writes action taken
 
 
 
 
 
0017d4a0: Determining Multi Hit Formulas (and other ugly hard coding)
 
 
 
 
 
0017da20: MP Cost (Half of MP) Section:
 
 
 
 
 
0017defc: Big... Contains Hamedo check
 
 
 
 
0017e780: Auto Potion?
 
 
 
 
 
0017e7e4: Gained JP Up Section... And other stuff
 
 
 
 
 
0017f020: Float/Float/Fly movements (and some other stuff)
 
 
 
 
 
00180134: Move HP / MP Up?
 
 
 
 
 
00180b2c: Ramza Causes Game Over?
 
 
 
 
 
001810a0: Map Location Calculation (requires r4 = Target Data Pointer)
 
 
 
 
001810d4: Get unit data pointer?
 
 
 
 
00181114: check whose turn it is?
 
 
 
 
001811f8: Player Control Routine? ---- look here for Mind Control/Possess
 
 
 
 
 
0018130c: Weapon Guard Usability (requires r4 = Target's Data Pointer)
 
 
 
 
 
001813c0: Player Skill Set:
 
 
 
 
 
001817c0: Jumped to from 181fb4...?
 
 
 
 
00181f38: Routine that checks math skill IDS
 
 
 
 
 
001835a8: Unit doesn't exist/deadcrystaltreasurepetrify/being ridden check
 
 
 
 
0018370c: jumped to from 18189c
 
 
 
 
 
00183bf0: Various Flags? r4= data pointer?
 
 
 
 
00183c6c: End of Turn
 
 
 
 
00183d10: Able to move/act checks (Menu?)
 
 
 
 
 
00183d70: Change of Turn check?
 
 
 
 
 
00183de0: Intermediate routine - preserves return address
 
 
 
 
 
00183e00: another intermediate routine
 
 
 
 
00183e8c: activates move/act
 
 
 
 
 
00183ea0: something involving map coordinates
 
 
 
 
 
00183fb4: deals with map coordinates
 
 
 
 
 
0018401c: deals with map coordinates
 
 
 
 
0018414c: deals with map coordinates
 
 
 
 
 
0018430c: Force Attack Miss (Used in Formula 0x0E)
 
 
 
 
 
0018433c: Force Attack Miss?
 
 
 
 
 
001843ec: Knockback Calculation:
 
 
 
 
 
001848d8: Attack Evaded Calculations
 
 
 
 
 
00184964: Compatibility:
 
 
 
 
 
00184b24: jumped to from poach routine - status infliction checks?
 
 
 
 
 
00184e40: Elemental Nullification
 
 
 
 
00184e98: Elemental Damage Modification (Halve, Null, Absorb, Weak) (r4 = Weapon's Element)
 
 
00184f9c: Equipment Evasion Setting (Physical)
 
 
 
 
 
001851c4: Equipment Evasion Setting (Magical):
 
 
 
 
 
001852e4: Concentrate Calculation
 
 
 
 
 
00185328: Dark/Confuse Caclulation
 
 
 
 
 
0018537c: Abandon Calculation
 
 
 
 
 
001853f4: Evasion Changes due to Statuses
 
 
 
 
 
001854b8: Transparent Calculation
 
 
 
 
 
001854fc: Facing Evade Calculation
 
 
 
 
 
00185738: Weather effects on Bows/Crossbows
 
 
 
 
00185814: Calculate Final Hit %
 
 
 
 
 
00185a9c: Base XA Calculation (Weapons)
 
 
 
 
 
00185c94: Store MA and Y
 
 
 
 
 
00185cc0: Base XA and YA for MA + Y / 2 used for Truth and Hydra Formula:
 
 
 
 
00185d00: Store PA and PA + Y / 2
 
 
 
 
00185d40: Store MA and PA + Y / 2
 
 
 
 
 
00185d80: Store MA and X
 
 
 
 
00185dac: Store PA and X
 
 
 
 
 
00185dd8: Store PA and WP
 
 
 
 
00185e04: Store PA and Y
 
 
 
 
 
00185e30: Store Speed and X
 
 
 
 
00185e5c: Store PA and WP + Y
 
 
 
 
 
00185e94: Formula 64 or Jump Base XA / YA
 
 
 
 
 
00185f80: Charge Calculation
 
 
 
 
 
00185fa4: Weapon Element Strengthen Calculation
 
 
 
 
 
00185ffc: Elemental Strengthen
 
 
 
 
00186054: Attack UP/Two Hands/Martial Arts
 
 
 
 
 
0018614c: Formula 32, 33, 34, 35 Attack Up and Martial Arts (No Two Hands, also is stupid.)
 
 
 
00186204: Magic Attack Up
 
 
 
 
 
00186254: Attacker Berserk/Frog Check
 
 
 
 
 
001862cc: Defense UP
 
 
 
 
 
0018631c: Magic Defense Up
 
 
 
 
 
0018636c: Target XA affecting Statuses (Physical):
 
 
 
 
00186460: Target's Status Affecting XA (Magical)
 
 
 
 
 
001864f8: Critical Hit Calculation:
 
 
 
 
 
00186568: XA * YA Calculation (Final HP Damage):
 
 
 
 
0018659c: Set XA + YA for Status Formulas (Stupid section)
 
 
 
 
 
00186624: Calculate % of damage
 
 
 
 
 
00186ed0: Elemental Section?
 
 
 
 
 
00186fd0: Elemental Damage Modification (Prep)
 
 
 
 
 
00186ff8: Ability Elemental?:
 
 
 
 
001870fc: Elemental Absorption
 
 
 
 
00187150: Faith Calculation:
 
 
 
 
 
00187248: HP Absorbtion (Seems needlessly complex)
 
 
 
 
00187350: Undead Reversal
 
 
 
 
001873d8: Undead Absorb Attack:
 
 
 
 
 
0018746c: MP Recovery Routine (Longer then it needs to be?)
 
 
 
 
 
001874ec: Convert HP Damage into MP Recovery (Formula 54)
 
 
 
 
 
00187510: ??? Routine (Often appears after elemental absorb routine)
 
 
 
 
 
001875bc: Dragon Check:
 
 
 
 
 
001875fc: Sleep Check:
 
 
 
 
00187638: Maintence Check:
 
 
 
 
00187730: Magic Gun Ability Decision:
 
 
 
 
 
0018783c: Quick Effect:
 
 
 
 
00187860: Determine which stat will be reduced (bunch of hardcoding)
 
 
 
 
 
00187910: Katana Break Chance:
 
 
 
 
001879c8: Steal/Break/Might Sword Hard Coding
 
 
 
 
 
00187ca0: Formula 01 - 06 Aftermath (Contains Poach and Secret Hunt)
 
 
 
 
00188288: MP Healing Item Formula
 
 
 
 
 
001882c8: 100% HP/MP Healing (actual)
 
 
 
 
 
001882f8: Finger Guard:
 
 
 
 
001883ac: Catch:
 
 
 
 
00188488: Calculate Hit %
 
 
 
 
00188510: Physical Evade Calculation:
 
 
 
 
00188568: Physical Evade Calculation (Charge):
 
 
 
 
 
001885b8: Magical Evade Calculation:
 
 
 
 
 
001885f8: Physical XA Modifying Statuses/Support (Plus Compat):
 
 
 
 
00188638: Physical Damage Calculation (Weapons):
 
 
 
 
 
001886a4: Damage Calculation
 
 
 
 
 
001886d4: Routine used in formula 2B
 
 
 
 
 
00188744: Magical Support/Status/Compat:
 
 
 
 
 
0018877c: Elemental XA * YA (often used in Magic based formulas)
 
 
 
 
 
001887c4: Elemental Absorb/Status and an odd r2 = 0
 
 
 
 
00188800: MA + X (For... Only buffs?)
 
 
 
 
 
00188858: Magical XA * YA:
 
 
 
 
 
00188964: Truth/Formula 5E-5F Magical damage:
 
 
 
 
 
001889a4: 2Truth/Formula 5E-5F Calculate damage:
 
 
 
 
 
001889cc: Calculate Accuracy for Magical Spells (No elemental boost)
 
 
 
 
 
00188a24: Calculate Accuracy for Magical Spells
 
 
 
 
 
00188adc: Cluster of Physical Routines that has attacker berserk / frog checks...
 
 
 
 
 
00188b14: Physical Routine for Hit % abilities
 
 
 
 
0018b34c: Pre Formula Setup (FDC)
 
 
 
 
 
0018bcf0: Nullification Process? (disables a bunch of stuff)
 
 
 
 
 
0018bd34: ?Nullify steal item?
 
 
 
 
 
0018be08: Big routine - performs ability effects?
 
 
 
 
0018c9e4: 'Reflect', Blade Grasp, and Arrow Guard check?
 
 
 
 
 
0018cb00: Sunken State, Caution, Dragon Spirit, Brave Up, Face Up, Counter Tackle, Counter Flood, Absorb Used MP, Counter, Counter Magic Check:
 
 
 
 
0018cc34: MP Switch, Distribute, and Damage Split Check:
 
 
 
 
0018ccd8: PA Save, MA Save, Speed Save, Regenerator, HP Restore, MP Restore, Critical Quick, Meatbone Slash, Auto Potion, Gilgame Heart Check:
 
 
 
 
0018ce04: Counter, Counter Tackle, Counter Magic, Counter Flood, Brave Up, Dragon Spirit, Sunken State, and Caution Usability:
 
 
 
0018ce88: PA Save, MA Save, Speed Save, Regenerator, Auto Potion, Gilgame Heart Usability:
 
 
 
 
 
0018cef4: Critical Quick, HP Restore, MP Restore, Meatbone Slash Usability:
 
 
 
 
0018cf74: Face Up and Absorb Used MP Usability:
 
 
 
 
 
0018cfe8: Reflect Reaction?
 
 
 
 
 
0018d050: Blade Grasp Usability:
 
 
 
 
 
0018d0e8: Arrow Guard Usability:
 
 
 
 
 
0018d1b8: MP Switch Usability:
 
 
 
 
 
0018d2a8: Distribute Usability:
 
 
 
 
0018d318: Damage Split Usability:
 
 
 
 
 
0018d384: Chance to React:
 
 
 
 
 
0018d3c0: Steal Routine
 
 
 
 
 
0018d620: Attacker's Earned Experience and Gained EXP Up
 
 
 
 
0018d7c8: Poison and Regen:
 
 
 
 
 
0018d868: Transparent removal routine
 
 
 
 
 
0018da04: target pointers
 
 
 
 
0018da44: Crystal, Dead, Jump, Petrify, and Treasure check:
 
 
 
 
 
0018dd44: Move-HP Up, Move-MP Up, Gained Exp Up, Gained JP Up:
 
 
 
 
 
0018e9e8: Item quantity increment for steal/break?
 
 
 
 
0018ea94: something involving steal/poach?
 
 
 
 
 
0018eea0: Random Process (gives a number between 0-7FFF)
 
 
 
 
0018eed8: Random Process (gives a random based on r4 (MOD) and checks against r5 (chance to work))
 
 
 
 
 
00195878 - 0019e15c  AI data Routines
 
 
 
 
 
001a1810: Load ability effect: called from 73f68
 

Latest revision as of 06:04, 23 September 2024

For additional ASM notes and an easier to use version of this data in .txt format, [download ASM Files] <-- possibly outdated
If you're just starting ASM, check this page first, it contains some important assorted information
For Data Tables, see Data/Table Locations
Main Routine Locations:

RAM -> File
   0x00F800 -> SCUS 942.21 Routines
   0x067000 -> WLDCORE.BIN Routines
   0x067000 -> BATTLE.BIN Routines
   0x067000 -> OPEN.BIN Routines
   0x0E0000 -> WORLD.BIN Routines
   0x1BF000 -> ATTACK.OUT Routines
   0x1BF000 -> REQUIRE.OUT Routines
   0x1BF000 -> OPTION.OUT Routines
   0x1BF000 -> ETC.OUT Routines
   0x1BF000 -> EQUIP.OUT Routines
   0x1BF000 -> CARD.OUT Routines
   0x1BF000 -> BUNIT.OUT Routines
   0x1DF000 -> JOBSTTS.OUT Routines
   0x1DF000 -> HELPMENU.OUT Routines
   0x1DF000 -> SMALL.OUT Routines
   0x1DF000 -> SP2 + effects + other.
PSX Console:

RAM -> File
   0x00000000 -> PSX BIOS
   0x07c00000 -> PSX Kernel