Difference between revisions of "Hacked RAM"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "Here we will make a duplicate of the Routine Locations section, although we will insert ASM hack routines so that we know what sections have code, what code doesn't account fo...")
 
Line 1: Line 1:
 
Here we will make a duplicate of the Routine Locations section, although we will insert ASM hack routines so that we know what sections have code, what code doesn't account for load delay, and what hacks conflict with other hacks.
 
Here we will make a duplicate of the Routine Locations section, although we will insert ASM hack routines so that we know what sections have code, what code doesn't account for load delay, and what hacks conflict with other hacks.
 +
 +
 +
 +
 +
 +
== 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]]
 +
 +
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]]
 +
 +
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]]
 +
 +
001874ec - 0018750c: [[Convert HP Damage into MP Recovery]]
 +
 +
001875bc - 001875f8: [[Dragon Check]]
 +
 +
001875fc - 00187634: [[Sleep Check]]
 +
 +
00187638 - 0018768c: [[Maintence]]
 +
 +
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]]
 +
 +
00188288 - 001882c4: [[MP Healing Item Formula]]
 +
 +
001882c8 - 001882f4: [[100% HP/MP Healing (actual)]]
 +
 +
001882f8 - 001883a8: [[Finger Guard]]
 +
 +
001883ac - 00188484: [[Catch]]
 +
 +
00188488 - 001884bc: [[Calculate Hit %]]
 +
 +
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 - 0018bd30: [[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: [[Elemental Section?]]
 +
 +
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?
 +
 +
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
 +
 +
[[Unknown 1]]
 +
 +
0013b644 - 0013b6e0: jumped to from routine immediately above this one
 +
 +
[[Uknown 2]]
 +
 +
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]]
 +
 +
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]]

Revision as of 16:41, 24 February 2012

Here we will make a duplicate of the Routine Locations section, although we will insert ASM hack routines so that we know what sections have code, what code doesn't account for load delay, and what hacks conflict with other hacks.



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

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

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

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

001875bc - 001875f8: Dragon Check

001875fc - 00187634: Sleep Check

00187638 - 0018768c: Maintence

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

00188288 - 001882c4: MP Healing Item Formula

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

001882f8 - 001883a8: Finger Guard

001883ac - 00188484: Catch

00188488 - 001884bc: Calculate Hit %

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 - 0018bd30: 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: Elemental Section?

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?

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

Unknown 1

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

Uknown 2

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

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