Difference between revisions of "Routine Locations"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Removed redirect to Routine and Data/Table Locations)
Tag: Removed redirect
 
(161 intermediate revisions by 10 users not shown)
Line 1: Line 1:
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.
+
: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
  
 +
:For Data Tables, see [[Data/Table Locations]]
  
== SCUS.942.21 RAM ==
+
  Main Routine Locations:
 
 
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]]
 
 
 
== 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: gets weapon graphic and palette and ability effect?
 
 
 
 
 
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]]
 
 
 
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: [[Ability/attack checks
 
 
 
 
 
0017b4a0 - 0017b4cc: [[Disable Green Panel Flags]]
 
 
 
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]]
 
 
 
0017c3dc - 0017c458: [[Attack Preparation Setup]]
 
 
 
0017c45c - 0017c908: [[Attack Preparation]]
 
 
 
 
 
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 ]]
 
 
 
 
 
0017f2d8 - 0017f318: [[Get Elemental Ability ID]]
 
 
 
 
 
0017fddc - 0017ffbc: [[Set Rider/Mount's X/Y Data]]
 
 
 
 
 
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]]
 
 
 
00180afc - 00180b28: [[Get Unit's Data Pointer]]
 
 
 
00180b2c - 00180c8c: [[Check Sprite Set]] | [[Ramza Causes Game Over]]
 
 
 
 
 
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]]
 
 
 
 
 
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]]
+
  RAM -> File
 
+
    0x00F800 -> [[SCUS 942.21 Routines]]
0018783c - 0018785c: [[Quick Effect]]
+
    0x067000 -> [[WLDCORE.BIN Routines]]
   
+
    0x067000 -> [[BATTLE.BIN Routines]]
00187860 - 0018790c: [[Determine which stat will be reduced ]]
+
    0x067000 -> [[OPEN.BIN Routines]]
 
+
    0x0E0000 -> [[WORLD.BIN Routines]]
00187910 - 001879c4: [[Katana Break Chance]]
+
    0x1BF000 -> [[ATTACK.OUT Routines]]
+
    0x1BF000 -> [[REQUIRE.OUT Routines]]
001879c8 - 00187c9c: [[Steal/Break/Might Sword Hard Coding]]
+
    0x1BF000 -> [[OPTION.OUT Routines]]
 
+
    0x1BF000 -> [[ETC.OUT Routines]]
00187ca0 - 00187eb0: [[Formula 01 - 06 Aftermath]]
+
    0x1BF000 -> [[EQUIP.OUT Routines]]
 
+
    0x1BF000 -> [[CARD.OUT Routines]]
00187eb4 - 00187f20: [[Apply status (to action) - (Preserve hit status, evade type, hit %)]]
+
    0x1BF000 -> [[BUNIT.OUT Routines]]
 
+
    0x1DF000 -> [[JOBSTTS.OUT Routines]]
00187f24 - 00188284: [[Apply status (to action)]] Formula 38
+
    0x1DF000 -> [[HELPMENU.OUT Routines]]
+
    0x1DF000 -> [[SMALL.OUT Routines]]
00188288 - 001882c4: [[MP Healing Item Formula]]
+
    0x1DF000 -> SP2 + effects + other.
 
 
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]]
 
 
 
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
+
PSX Console:
 
   
 
   
0018b34c - 0018b9f4: [[Pre Formula Setup (FDC)]]
+
  RAM -> File
 
+
    0x00000000 -> [[PSX BIOS]]
0018b9f8 - 0018ba40: [[Remove Status]]
+
    0x07c00000 -> [[PSX Kernel]]
 
 
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]]
 
 
 
 
 
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
 

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