Routine Locations
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
0002230c - 00022314: Random Number Generator
00042a10 - 00042aac: Starting Inventory
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
BATTLE.BIN RAM
0007f5f8 - 0007ff40: Big routine before display data
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
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*
00143bd8 - 001449f8: Event Instruction Main Routine 1
001449fc - 00145750: Event Instruction Main Routine 2
00145754 - 00145f70: Event Instruction Main Routine 3
001743c8 - 0017442c: Chocobo Check
0017b4d0 - 0017b7b0: Calculator Routine
0017b874 - 0017bc74: Targeting routine
0017c45c - 0017c908: Writes action taken
0017dca8 - 0017decc: Find Unit at Coordinates
0017d4a0 - 0017d704: Determining Multi Hit Formulas
0017da20 - 0017dbc4: MP Cost (Half of MP) Section
0017e780 - 0017e7e0: Auto Potion
0017e7e4 - 0017ea24: Gained JP Up Section
0017f020 - 0017f0e8: Float/Float/Fly movements
00180134 - 00180170: Move HP / MP Up
00180174 - 0018020c: Set Status Based on Ability
- 00180210 - 18022c: Auxilary routine
00180230 - 0018052c: Move-Find Item Routines
00180530 - 00180900: Generate Crystal or Treasure
00180904 - 00180a04: Learn from Crystal
00180a08 - 00180af8: Generate Treasure
00180b2c - 00180c8c: Ramza Causes Game Over
001810a0 - 001810d0: Map Location Calculation
0018130c - 001813bc: Weapon Guard Usability
001813c0 - 00181580: Player Skill Set
00181f38 - 00182060: Routine that checks math skill IDS? (undeciphered)
001835a8 - 001835f0: Unit doesn't exist/deadcrystaltreasurepetrify/being ridden check
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
00183e8c - 00183e9c: Activates move/act
00183f60 - 00183fb0: Load Move Find-Item data to Current Map
0018430c - 00184338: Force Attack Miss
0018433c - 0018435c: Force Attack Miss?
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
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
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)
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
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
00188adc - 00188b10: Cluster of Physical Routines
00188b14 - 00188b60: Physical Routine for Hit % abilities
0018b34c - 0018b9f4: Pre Formula Setup (FDC)
0018b9f8 - 0018ba40: Remove Status
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
0018d620 - 0018d708: Attacker's Earned Experience
0018d7c8 - 0018d864: Poison and Regen
0018d868 - 0018d90c: Transparent removal routine
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
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))
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
0018e9bc - 0018e9e4: Determine if Status Flags can be Enabled?
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
Undeciphered Routines
Post what notes you have on routines that aren't completed yet.
0005e0cc - 0005e11c: Checking if Attack Hits?
0005e200 - 0005e228: Checking known abilities?
0005e7a8 - 0005e8e4: status infliction/removal?
0005e8e8 - 0005e908: ? (removed code?)
000732c8 - 000734c8: Battle Message Display
000736d4 - 000739c8: ??? effect research
00073eec - 00073fdc: ?? effect research
001810d4 - 0018110c: Get unit data pointer?
00181114 - 00181148: check whose turn it is?
00186ed0 - 00186fcc: Weather Elemental effects?
0018bcf0 - 0018bd30: Called by Nullify Action - Glain
001811f8 - 00181308: Player Control Routine?
0018bd34 - 0018bd70: ?Nullify steal item? - Glain (Update Notes)
00187510 - 001875b8: ??? Routine (Often appears after elemental absorb routine)
00184b24 - 00184e94: jumped to from poach routine - status infliction checks?
001827f0 - 00183704: Main in between turn routine
0018370c - 00183ac4: CT increment routine?
00183ea0 - 00183f5c: something involving map coordinates
00183fb4 - 00184018: deals with map coordinates 1
0018401c - 00184148: deals with map coordinates 2
0018414c - 001842f4: deals with map coordinates 3
001817c0 - 00181b68: Jumped to from 181fb4...?
00183de0 - 00183dfc: Intermediate routine - preserves return address
00183e00 - 00183e38: another intermediate routine
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
0014a018 - 0014a2e8: Jumped to from subroutines of steal routine - Calculate party inventory?
0017a290 - 0017a514: Check ability data?
0017defc - 0017e174: Big... Contains Hamedo check
0018bcf0 - 0018bd30: Nullification Process? (disables a bunch of stuff)
0018c758 - 0018c858: some kind of ENTD/Unit manipulation
0018c85c - 0018c91c: Level up/down ability
0018be08 - 0018c67c: Main Reaction Routine - performs ability effects
0018d570 - 0018d61c: Stat Increment/Decrement
0018dff8 - 0018e078: Main Reaction subroutine - ENTD/ID stuff
0018eb50 - 0018ec0c: Apply Exp gain / Level up
0018e9e8 - 0018ea94: Item quantity increment for steal/break?
0018ea94 - 0018eb4c: Steal Gil/Exp routine?
0019abb4 - 0019e15c: Unknown AI routines
001a1810 - 001a1850: Load Ability Effect