Jump to 0x5c4 000000a0: 3c080000 lui r8,0x0000 r8 = 00000000 000000a4: 250805c4 addiu r8,r8,0x05c4 r8 = 5c4 000000a8: 01000008 jr r8 000000ac: 00000000 nop 000005c4: 24080200 addiu r8,r0,0x0200 r8 = 200 000005c8: 00094880 sll r9,r9,0x02 r9 = r9 * 4 000005cc: 01094020 add r8,r8,r9 r8 += r9 * 4 000005d0: 8d080000 lw r8,0x0000(r8) r8 = bfc02200 in this case 000005d4: 00000000 nop 000005d8: 01000008 jr r8 000005dc: 00000000 nop 0002230c: 240a00a0 addiu r10,r0,0x00a0 r10 = a0 00022310: 01400008 jr r10 00022314: 2409002f addiu r9,r0,0x002f r9 = 2f (47) 00022318: 00000000 nop Checking if Attack Hits? 0005e0cc: 27bdffe0 addiu r29,r29,0xffe0 0005e0d0: afb00010 sw r16,0x0010(r29) 0005e0d4: 00808021 addu r16,r4,r0 r16 = Base Hit 0005e0d8: afb10014 sw r17,0x0014(r29) 0005e0dc: afbf0018 sw r31,0x0018(r29) 0005e0e0: 0c0088c3 jal 0x0002230c Random number generator 0005e0e4: 00a08821 addu r17,r5,r0 r17 = Evade Type's Evade% 0005e0e8: 00500018 mult r2,r16 Random * Base Hit 0005e0ec: 00001012 mflo r2 0005e0f0: 04410002 bgez r2,0x0005e0fc Check if result is >= 0 0005e0f4: 00000000 nop 0005e0f8: 24427fff addiu r2,r2,0x7fff Make value positive 0005e0fc: 000213c3 sra r2,r2,0x0f Result / 8000h 0005e100: 0051102a slt r2,r2,r17 0005e104: 38420001 xori r2,r2,0x0001 r2 = 1 if Result >= Evade Type's Evade% 0005e108: 8fbf0018 lw r31,0x0018(r29) 0005e10c: 8fb10014 lw r17,0x0014(r29) 0005e110: 8fb00010 lw r16,0x0010(r29) 0005e114: 27bd0020 addiu r29,r29,0x0020 0005e118: 03e00008 jr r31 0005e11c: 00000000 nop Data Nullifying (requires r5 = Limit, and r4 = Starting location) 0005e644: 27bdfff8 addiu r29,r29,0xfff8 0005e648: 18a00006 blez r5,0x0005e664 Branch if r5 <= 0 0005e64c: 00001821 addu r3,r0,r0 r3 = 0 0005e650: a0800000 sb r0,0x0000(r4) X Value = 0 0005e654: 24630001 addiu r3,r3,0x0001 r3 += 1 (Counter ++) 0005e658: 0065102a slt r2,r3,r5 0005e65c: 1440fffc bne r2,r0,0x0005e650 Branch if counter isn't at limit 0005e660: 24840001 addiu r4,r4,0x0001 Data to null + 1 0005e664: 27bd0008 addiu r29,r29,0x0008 0005e668: 03e00008 jr r31 0005e66c: 00000000 nop Determining Multi Hit Formulas (and other ugly hard coding) 0017d4a0: 27bdffe8 addiu r29,r29,0xffe8 0017d4a4: 3c038019 lui r3,0x8019 0017d4a8: 8c63f5f0 lw r3,-0x0a10(r3) 0017d4ac: 34020001 ori r2,r0,0x0001 0017d4b0: afbf0014 sw r31,0x0014(r29) 0017d4b4: afb00010 sw r16,0x0010(r29) 0017d4b8: 3c018019 lui r1,0x8019 0017d4bc: a02238c2 sb r2,0x38c2(r1) Hit is normal hits, not multi-hit. 0017d4c0: 3c018019 lui r1,0x8019 0017d4c4: a02038c3 sb r0,0x38c3(r1) ??? 0017d4c8: 3c018019 lui r1,0x8019 0017d4cc: a42038c8 sh r0,0x38c8(r1) No Spell Procs. 0017d4d0: 3c018019 lui r1,0x8019 0017d4d4: a02038ed sb r0,0x38ed(r1) Attack is not evaded? 0017d4d8: 14600009 bne r3,r0,0x0017d500 If RAM 0x18F5F0 isn't 0, GOTO RAM 0x17D500. 0017d4dc: 00002821 addu r5,r0,r0 0017d4e0: 3c018019 lui r1,0x8019 0017d4e4: a02038e8 sb r0,0x38e8(r1) ELSE, No Spell Procs (again). 0017d4e8: 3c018019 lui r1,0x8019 0017d4ec: a02038e7 sb r0,0x38e7(r1) No EXP bonus. 0017d4f0: 3c018019 lui r1,0x8019 0017d4f4: a020390c sb r0,0x390c(r1) ??? 0017d4f8: 3c018019 lui r1,0x8019 0017d4fc: a020390d sb r0,0x390d(r1) ??? 0017d500: 9082016f lbu r2,0x016f(r4) Load attack's Skillset ID. 0017d504: 3c018006 lui r1,0x8006 0017d508: 00220821 addu r1,r1,r2 0017d50c: 90265cb4 lbu r6,0x5cb4(r1) Load attack's menu type from SCUS. 0017d510: 3c018019 lui r1,0x8019 0017d514: a020f7ec sb r0,-0x0814(r1) Clear byte where Ability Flags are copied (one of many places). 0017d518: 9082001d lbu r2,0x001d(r4) 0017d51c: 3c018019 lui r1,0x8019 0017d520: a02238c4 sb r2,0x38c4(r1) RH Weapon is stored. 0017d524: 9082001f lbu r2,0x001f(r4) 0017d528: 3c038019 lui r3,0x8019 0017d52c: 906338c4 lbu r3,0x38c4(r3) 0017d530: 3c018019 lui r1,0x8019 0017d534: a02238c5 sb r2,0x38c5(r1) LH Weapon is stored. 0017d538: 340200ff ori r2,r0,0x00ff 0017d53c: 14620008 bne r3,r2,0x0017d560 If RH weapon exists, GOTO RAM 0x17D560. 0017d540: 30c300ff andi r3,r6,0x00ff 0017d544: 9083001f lbu r3,0x001f(r4) 0017d548: 340200ff ori r2,r0,0x00ff 0017d54c: 3c018019 lui r1,0x8019 0017d550: a02238c5 sb r2,0x38c5(r1) 0017d554: 3c018019 lui r1,0x8019 0017d558: a02338c4 sb r3,0x38c4(r1) ELSE, LH weapon is set as primary weapon, and LH weapon byte = none. 0017d55c: 30c300ff andi r3,r6,0x00ff 0017d560: 34020002 ori r2,r0,0x0002 0017d564: 14620006 bne r3,r2,0x0017d580 If attack type isn't THROW, GOTO RAM 0x17D580 0017d568: 00000000 nop 0017d56c: 90820176 lbu r2,0x0176(r4) 0017d570: 3c018019 lui r1,0x8019 0017d574: a02238c4 sb r2,0x38c4(r1) If attack type is THROW, store thrown item and GOTO END. 0017d578: 0805f5bd j 0x0017d6f4 0017d57c: 00000000 nop 0017d580: 10600003 beq r3,r0,0x0017d590 If attack type is , GOTO RAM 0x17D590 0017d584: 34020006 ori r2,r0,0x0006 0017d588: 1462002b bne r3,r2,0x0017d638 If attack type isn't Monster, GOTO RAM 0x17D638 0017d58c: 30c300ff andi r3,r6,0x00ff 0017d590: 84830170 lh r3,0x0170(r4) If Attack type is or Monster, load attack ID. 0017d594: 00000000 nop 0017d598: 04610004 bgez r3,0x0017d5ac 0017d59c: 000310c0 sll r2,r3,0x03 0017d5a0: 28620170 slti r2,r3,0x0170 0017d5a4: 1040000b beq r2,r0,0x0017d5d4 If attack is after Potion, GOTO RAM 0x17D5D4 0017d5a8: 000310c0 sll r2,r3,0x03 0017d5ac: 00431023 subu r2,r2,r3 0017d5b0: 00021040 sll r2,r2,0x01 0017d5b4: 3c038006 lui r3,0x8006 0017d5b8: 2463fbf0 addiu r3,r3,0xfbf0 0017d5bc: 00431021 addu r2,r2,r3 0017d5c0: 90430003 lbu r3,0x0003(r2) 0017d5c4: 3c018019 lui r1,0x8019 0017d5c8: a023f7ec sb r3,-0x0814(r1) Store Ability Flags Byte 1 0017d5cc: 90500009 lbu r16,0x0009(r2) Load X 0017d5d0: 90450008 lbu r5,0x0008(r2) Load Formula 0017d5d4: 00000000 nop 0017d5d8: 24a2ffe2 addiu r2,r5,0xffe2 0017d5dc: 2c420002 sltiu r2,r2,0x0002 0017d5e0: 10400010 beq r2,r0,0x0017d624 If Formula is not Rafa's or Malak's, GOTO RAM 0x17D624. 0017d5e4: 30a300ff andi r3,r5,0x00ff 0017d5e8: 3c028019 lui r2,0x8019 0017d5ec: 8c42f5fc lw r2,-0x0a04(r2) 0017d5f0: 00000000 nop 0017d5f4: 1440000c bne r2,r0,0x0017d628 ELSE if attack hits no one, GOTO RAM 0x17D628. 0017d5f8: 3402005e ori r2,r0,0x005e 0017d5fc: 0c0088c3 jal 0x0002230c 0017d600: 00000000 nop 0017d604: 02020018 mult r16,r2 0017d608: 00001012 mflo r2 0017d60c: 04410002 bgez r2,0x0017d618 0017d610: 00000000 nop 0017d614: 24427fff addiu r2,r2,0x7fff 0017d618: 000213c3 sra r2,r2,0x0f 0017d61c: 0805f5bb j 0x0017d6ec ELSE (if Rafa/Malak formula hits), GOTO RAM 0x17D6EC and store r2 = RN{1...X+1}, the amount of hits. 0017d620: 24420001 addiu r2,r2,0x0001 0017d624: 3402005e ori r2,r0,0x005e 0017d628: 14620003 bne r3,r2,0x0017d638 If Formula is not Triple Thunder/Flame's, GOTO RAM 0x17D638. This is the hard-coding of multi-hit for Triple Flame/Thunder. 0017d62c: 30c300ff andi r3,r6,0x00ff 0017d630: 0805f5bb j 0x0017d6ec If it is, GOTO RAM 0x17D6EC and store X+1, the amount of hits. Because there is no corresponding check (like Rafa/Malak) to see if you actually hit anything in the AoE, it is possible to have the animation appear even if nothing is in the AoE. 0017d634: 26020001 addiu r2,r16,0x0001 0017d638: 34020009 ori r2,r0,0x0009 0017d63c: 1062002d beq r3,r2,0x0017d6f4 If attack type is Jump, GOTO END. 0017d640: 34020008 ori r2,r0,0x0008 0017d644: 10620009 beq r3,r2,0x0017d66c 0017d648: 3402000a ori r2,r0,0x000a 0017d64c: 10620007 beq r3,r2,0x0017d66c If attack type is Attack or Charge, GOTO RAM 0x17D66C 0017d650: 00000000 nop 0017d654: 3c028019 lui r2,0x8019 0017d658: 9042f7ec lbu r2,-0x0814(r2) 0017d65c: 00000000 nop 0017d660: 30420020 andi r2,r2,0x0020 0017d664: 10400023 beq r2,r0,0x0017d6f4 0017d668: 00000000 nop 0017d66c: 9082005a lbu r2,0x005a(r4) Attack type here is Attack, Charge, or has Ranged Weapon. 0017d670: 90850091 lbu r5,0x0091(r4) 0017d674: 30420002 andi r2,r2,0x0002 0017d678: 14400006 bne r2,r0,0x0017d694 If attacker is frogged, GOTO RAM 0x17D694 0017d67c: 340200ff ori r2,r0,0x00ff 0017d680: 90820006 lbu r2,0x0006(r4) 0017d684: 00000000 nop 0017d688: 30420020 andi r2,r2,0x0020 0017d68c: 10400005 beq r2,r0,0x0017d6a4 If attacker is not a monster, GOTO RAM 0x17D6A4 0017d690: 340200ff ori r2,r0,0x00ff 0017d694: 3c018019 lui r1,0x8019 0017d698: a02238c4 sb r2,0x38c4(r1) If attacker is frogged or is a monster, RH Weapon = none. 0017d69c: 3c018019 lui r1,0x8019 0017d6a0: a02238c5 sb r2,0x38c5(r1) If attacker is frogged or is a monster, LH Weapon = none. 0017d6a4: 3c048019 lui r4,0x8019 0017d6a8: 248438c4 addiu r4,r4,0x38c4 0017d6ac: 94830000 lhu r3,0x0000(r4) 0017d6b0: 3402ffff ori r2,r0,0xffff 0017d6b4: 1062000a beq r3,r2,0x0017d6e0 0017d6b8: 340300ff ori r3,r0,0x00ff 0017d6bc: 90820000 lbu r2,0x0000(r4) 0017d6c0: 00000000 nop 0017d6c4: 1043000b beq r2,r3,0x0017d6f4 0017d6c8: 00000000 nop 0017d6cc: 3c028019 lui r2,0x8019 0017d6d0: 904238c5 lbu r2,0x38c5(r2) 0017d6d4: 00000000 nop 0017d6d8: 10430006 beq r2,r3,0x0017d6f4 0017d6dc: 00000000 nop 0017d6e0: 30a20001 andi r2,r5,0x0001 0017d6e4: 10400003 beq r2,r0,0x0017d6f4 0017d6e8: 34020002 ori r2,r0,0x0002 0017d6ec: 3c018019 lui r1,0x8019 0017d6f0: a02238c2 sb r2,0x38c2(r1) Store number of hits from multi-hit or two swords. 0017d6f4: 8fbf0014 lw r31,0x0014(r29) 0017d6f8: 8fb00010 lw r16,0x0010(r29) 0017d6fc: 27bd0018 addiu r29,r29,0x0018 0017d700: 03e00008 jr r31 0017d704: 00000000 nop MP Cost (Half of MP) Section: 0017da20: 27bdffd8 addiu r29,r29,0xffd8 0017da24: afb00018 sw r16,0x0018(r29) 0017da28: 00808021 addu r16,r4,r0 Attacker's Data Pointer to r16? 0017da2c: afbf0024 sw r31,0x0024(r29) 0017da30: afb20020 sw r18,0x0020(r29) 0017da34: afb1001c sw r17,0x001c(r29) 0017da38: 9202016f lbu r2,0x016f(r16) 0017da3c: 96110170 lhu r17,0x0170(r16) 0017da40: 3c018006 lui r1,0x8006 0017da44: 00220821 addu r1,r1,r2 0017da48: 90325cb4 lbu r18,0x5cb4(r1) Load Action Menus 0017da4c: 3c028019 lui r2,0x8019 0017da50: 8c42f5f0 lw r2,-0x0a10(r2) 0017da54: 3c018019 lui r1,0x8019 0017da58: a02038eb sb r0,0x38eb(r1) Used MP = 0 ? 0017da5c: 14400003 bne r2,r0,0x0017da6c Branch if used ??? is not 0 0017da60: 00000000 nop 0017da64: 0c0179ea jal 0x0005e7a8 0017da68: 340500ff ori r5,r0,0x00ff r5 = FF 0017da6c: 0c0604c3 jal 0x0018130c MP Usability, Weapon Guard Usability, Reaction Usability 0017da70: 02002021 addu r4,r16,r0 Attacker's Data Pointer to r16? 0017da74: 9203005c lbu r3,0x005c(r16) 5th set of Current Status 0017da78: 00000000 nop 0017da7c: 30630004 andi r3,r3,0x0004 0017da80: 10600002 beq r3,r0,0x0017da8c Branch if unit is not affected with Don't Act 0017da84: 00000000 nop 0017da88: 34020001 ori r2,r0,0x0001 r2 = 1 0017da8c: 14400047 bne r2,r0,0x0017dbac Branch to end if r2 > 0 0017da90: 24420006 addiu r2,r2,0x0006 r2 + 6 0017da94: 9202005a lbu r2,0x005a(r16) Load 3rd set of Status 0017da98: 00000000 nop 0017da9c: 30420002 andi r2,r2,0x0002 0017daa0: 1040000e beq r2,r0,0x0017dadc Branch if unit is not Frogged 0017daa4: 00111400 sll r2,r17,0x10 0017daa8: 00021c03 sra r3,r2,0x10 0017daac: 10600005 beq r3,r0,0x0017dac4 0017dab0: 3402016f ori r2,r0,0x016f Check for normal attack 0017dab4: 10620003 beq r3,r2,0x0017dac4 0017dab8: 3402001d ori r2,r0,0x001d 0017dabc: 1462003b bne r3,r2,0x0017dbac 0017dac0: 34020005 ori r2,r0,0x0005 0017dac4: 324300ff andi r3,r18,0x00ff 0017dac8: 3402000a ori r2,r0,0x000a 0017dacc: 14620004 bne r3,r2,0x0017dae0 0017dad0: 2e220170 sltiu r2,r17,0x0170 0017dad4: 0805f6eb j 0x0017dbac Jump to End 0017dad8: 34020005 ori r2,r0,0x0005 R2 = 5 0017dadc: 2e220170 sltiu r2,r17,0x0170 0017dae0: 10400031 beq r2,r0,0x0017dba8 0017dae4: 00111400 sll r2,r17,0x10 0017dae8: 00021403 sra r2,r2,0x10 0017daec: 000218c0 sll r3,r2,0x03 0017daf0: 00621823 subu r3,r3,r2 0017daf4: 00031840 sll r3,r3,0x01 0017daf8: 3c028006 lui r2,0x8006 0017dafc: 2442fbf0 addiu r2,r2,0xfbf0 0017db00: 00622021 addu r4,r3,r2 0017db04: 324300ff andi r3,r18,0x00ff 0017db08: 10600003 beq r3,r0,0x0017db18 0017db0c: 34020006 ori r2,r0,0x0006 0017db10: 1462000b bne r3,r2,0x0017db40 0017db14: 00000000 nop 0017db18: 90820005 lbu r2,0x0005(r4) Load Abilities 3rd set of Flags 0017db1c: 00000000 nop 0017db20: 30420020 andi r2,r2,0x0020 0017db24: 10400006 beq r2,r0,0x0017db40 Branch if ability is not affected by Silence (Ability Flag) 0017db28: 00000000 nop 0017db2c: 92020059 lbu r2,0x0059(r16) Load 2nd set of Status 0017db30: 00000000 nop 0017db34: 30420008 andi r2,r2,0x0008 Branch if Silenced 0017db38: 1440001c bne r2,r0,0x0017dbac 0017db3c: 34020002 ori r2,r0,0x0002 r2 = 2 0017db40: 1640001a bne r18,r0,0x0017dbac Branch if action menu is not default 0017db44: 00001021 addu r2,r0,r0 r2 = 0 0017db48: 92030003 lbu r3,0x0003(r16) Load Job 0017db4c: 3402005d ori r2,r0,0x005d r2 = 5d 0017db50: 10620016 beq r3,r2,0x0017dbac Branch if Job # is Mime 0017db54: 00001021 addu r2,r0,r0 r2 = 0 0017db58: 92020090 lbu r2,0x0090(r16) Load secend set of Support 0017db5c: 9084000d lbu r4,0x000d(r4) Abilities MP Cost 0017db60: 30420080 andi r2,r2,0x0080 0017db64: 10400002 beq r2,r0,0x0017db70 Branch if not equiped with Half of MP 0017db68: 00000000 nop 0017db6c: 00042042 srl r4,r4,0x01 Abilities MP Cost / 2 0017db70: 3c018019 lui r1,0x8019 0017db74: a02438eb sb r4,0x38eb(r1) Store new Abilities MP Cost 0017db78: 8602002c lh r2,0x002c(r16) Load Current MP 0017db7c: 00000000 nop 0017db80: 00402821 addu r5,r2,r0 Current MP to r5 0017db84: 0044102a slt r2,r2,r4 Set r2 to 1 if Current MP is less than Ability Clost 0017db88: 14400008 bne r2,r0,0x0017dbac If Current MP is less then Ability Cost Branch to end 0017db8c: 34020003 ori r2,r0,0x0003 r2 = 3 0017db90: 3c038019 lui r3,0x8019 0017db94: 8c63f5fc lw r3,-0x0a04(r3) ??? 0017db98: 34020002 ori r2,r0,0x0002 r2 = 2 0017db9c: 10620002 beq r3,r2,0x0017dba8 0017dba0: 00a41023 subu r2,r5,r4 Current MP - Used MP 0017dba4: a602002c sh r2,0x002c(r16) Store new Current MP 0017dba8: 00001021 addu r2,r0,r0 r2 = 0 0017dbac: 8fbf0024 lw r31,0x0024(r29) 0017dbb0: 8fb20020 lw r18,0x0020(r29) 0017dbb4: 8fb1001c lw r17,0x001c(r29) 0017dbb8: 8fb00018 lw r16,0x0018(r29) 0017dbbc: 27bd0028 addiu r29,r29,0x0028 0017dbc0: 03e00008 jr r31 0017dbc4: 00000000 nop Big... Contains Hamedo check 0017defc: 27bdffb8 addiu r29,r29,0xffb8 0017df00: afb5003c sw r21,0x003c(r29) 0017df04: 0080a821 addu r21,r4,r0 0017df08: afb60040 sw r22,0x0040(r29) 0017df0c: 001510c0 sll r2,r21,0x03 0017df10: 00551023 subu r2,r2,r21 0017df14: 00021180 sll r2,r2,0x06 0017df18: afb20030 sw r18,0x0030(r29) 0017df1c: 3c128019 lui r18,0x8019 0017df20: 265208cc addiu r18,r18,0x08cc 0017df24: afb1002c sw r17,0x002c(r29) 0017df28: 00528821 addu r17,r2,r18 0017df2c: afbf0044 sw r31,0x0044(r29) 0017df30: afb40038 sw r20,0x0038(r29) 0017df34: afb30034 sw r19,0x0034(r29) 0017df38: afb00028 sw r16,0x0028(r29) 0017df3c: 3c018019 lui r1,0x8019 0017df40: ac2038bc sw r0,0x38bc(r1) 0017df44: 92230001 lbu r3,0x0001(r17) 0017df48: 340200ff ori r2,r0,0x00ff 0017df4c: 1062007e beq r3,r2,0x0017e148 0017df50: 00a0b021 addu r22,r5,r0 0017df54: 9630002c lhu r16,0x002c(r17) 0017df58: 0c05f688 jal 0x0017da20 0017df5c: 02202021 addu r4,r17,r0 0017df60: 14400079 bne r2,r0,0x0017e148 0017df64: a630002c sh r16,0x002c(r17) 0017df68: 00002021 addu r4,r0,r0 0017df6c: 02401821 addu r3,r18,r0 0017df70: a460019a sh r0,0x019a(r3) 0017df74: a0600189 sb r0,0x0189(r3) 0017df78: 24840001 addiu r4,r4,0x0001 0017df7c: 28820015 slti r2,r4,0x0015 0017df80: 1440fffb bne r2,r0,0x0017df70 0017df84: 246301c0 addiu r3,r3,0x01c0 0017df88: 9222016f lbu r2,0x016f(r17) 0017df8c: 3c018006 lui r1,0x8006 0017df90: 00220821 addu r1,r1,r2 0017df94: 90255cb4 lbu r5,0x5cb4(r1) 0017df98: 00000000 nop 0017df9c: 30a300ff andi r3,r5,0x00ff 0017dfa0: 10600004 beq r3,r0,0x0017dfb4 0017dfa4: 00003021 addu r6,r0,r0 0017dfa8: 34020006 ori r2,r0,0x0006 0017dfac: 1462000d bne r3,r2,0x0017dfe4 0017dfb0: 34020008 ori r2,r0,0x0008 0017dfb4: 96230170 lhu r3,0x0170(r17) 0017dfb8: 00000000 nop 0017dfbc: 2c620170 sltiu r2,r3,0x0170 0017dfc0: 10400006 beq r2,r0,0x0017dfdc 0017dfc4: 000310c0 sll r2,r3,0x03 0017dfc8: 00431023 subu r2,r2,r3 0017dfcc: 00021040 sll r2,r2,0x01 0017dfd0: 3c018006 lui r1,0x8006 0017dfd4: 00220821 addu r1,r1,r2 0017dfd8: 9026fbf3 lbu r6,-0x040d(r1) 0017dfdc: 30a300ff andi r3,r5,0x00ff 0017dfe0: 34020008 ori r2,r0,0x0008 0017dfe4: 10620008 beq r3,r2,0x0017e008 0017dfe8: 2404ffff addiu r4,r0,0xffff 0017dfec: 3402000a ori r2,r0,0x000a 0017dff0: 10620005 beq r3,r2,0x0017e008 0017dff4: 34020002 ori r2,r0,0x0002 0017dff8: 10620003 beq r3,r2,0x0017e008 0017dffc: 30c20020 andi r2,r6,0x0020 0017e000: 10400005 beq r2,r0,0x0017e018 0017e004: 2402ffff addiu r2,r0,0xffff 0017e008: 0c05eb24 jal 0x0017ac90 0017e00c: 2624016e addiu r4,r17,0x016e 0017e010: 00402021 addu r4,r2,r0 0017e014: 2402ffff addiu r2,r0,0xffff 0017e018: 1082004c beq r4,r2,0x0017e14c 0017e01c: 27a40010 addiu r4,r29,0x0010 0017e020: 3c018019 lui r1,0x8019 0017e024: ac20f4f8 sw r0,-0x0b08(r1) 0017e028: 0c05f614 jal 0x0017d850 0017e02c: 02202821 addu r5,r17,r0 0017e030: 00409821 addu r19,r2,r0 0017e034: 34020001 ori r2,r0,0x0001 0017e038: 16620043 bne r19,r2,0x0017e148 0017e03c: 00000000 nop 0017e040: 93b20010 lbu r18,0x0010(r29) 0017e044: 00000000 nop 0017e048: 1255003f beq r18,r21,0x0017e148 0017e04c: 001210c0 sll r2,r18,0x03 0017e050: 00521023 subu r2,r2,r18 0017e054: 00021180 sll r2,r2,0x06 0017e058: 3c038019 lui r3,0x8019 0017e05c: 246308cc addiu r3,r3,0x08cc 0017e060: 00438021 addu r16,r2,r3 0017e064: 9202008e lbu r2,0x008e(r16) Load 4th set of Reactions 0017e068: 00000000 nop 0017e06c: 30420001 andi r2,r2,0x0001 0017e070: 10400036 beq r2,r0,0x0017e14c Branch if Hamedo is not equiped 0017e074: 2402ffff addiu r2,r0,0xffff 0017e078: 0c0634e1 jal 0x0018d384 Chance to react 0017e07c: 02002021 addu r4,r16,r0 0017e080: 14400032 bne r2,r0,0x0017e14c 0017e084: 2402ffff addiu r2,r0,0xffff 0017e088: 02002021 addu r4,r16,r0 0017e08c: 0c06325a jal 0x0018c968 0017e090: 2614016e addiu r20,r16,0x016e 0017e094: 1440002d bne r2,r0,0x0017e14c 0017e098: 2402ffff addiu r2,r0,0xffff 0017e09c: 3c058019 lui r5,0x8019 0017e0a0: 24a53848 addiu r5,r5,0x3848 0017e0a4: 3c018019 lui r1,0x8019 0017e0a8: ac33f5f0 sw r19,-0x0a10(r1) 0017e0ac: 0c01788b jal 0x0005e22c 0017e0b0: 02802021 addu r4,r20,r0 0017e0b4: 02002021 addu r4,r16,r0 0017e0b8: 34050001 ori r5,r0,0x0001 0017e0bc: 340201c5 ori r2,r0,0x01c5 0017e0c0: 00003021 addu r6,r0,r0 0017e0c4: 34070001 ori r7,r0,0x0001 0017e0c8: 3c018019 lui r1,0x8019 0017e0cc: a4222d9c sh r2,0x2d9c(r1) 0017e0d0: 3c018019 lui r1,0x8019 0017e0d4: ac35f8c8 sw r21,-0x0738(r1) 0017e0d8: 0c05f994 jal 0x0017e650 0017e0dc: a212016e sb r18,0x016e(r16) 0017e0e0: 14400015 bne r2,r0,0x0017e138 0017e0e4: 00000000 nop 0017e0e8: 0c05f688 jal 0x0017da20 0017e0ec: 02002021 addu r4,r16,r0 0017e0f0: 14400011 bne r2,r0,0x0017e138 0017e0f4: 00000000 nop 0017e0f8: 0c05f528 jal 0x0017d4a0 0017e0fc: 02002021 addu r4,r16,r0 0017e100: 3c028019 lui r2,0x8019 0017e104: 94422d9c lhu r2,0x2d9c(r2) 0017e108: 00000000 nop 0017e10c: a6c20000 sh r2,0x0000(r22) 0017e110: 3c018019 lui r1,0x8019 0017e114: ac3338bc sw r19,0x38bc(r1) 0017e118: 92230003 lbu r3,0x0003(r17) 0017e11c: 3402005d ori r2,r0,0x005d 0017e120: 14620003 bne r3,r2,0x0017e130 0017e124: 340200ff ori r2,r0,0x00ff 0017e128: a222001d sb r2,0x001d(r17) 0017e12c: a222001f sb r2,0x001f(r17) 0017e130: 0805f853 j 0x0017e14c 0017e134: 02401021 addu r2,r18,r0 0017e138: 3c048019 lui r4,0x8019 0017e13c: 24843848 addiu r4,r4,0x3848 0017e140: 0c01788b jal 0x0005e22c 0017e144: 02802821 addu r5,r20,r0 0017e148: 2402ffff addiu r2,r0,0xffff 0017e14c: 8fbf0044 lw r31,0x0044(r29) 0017e150: 8fb60040 lw r22,0x0040(r29) 0017e154: 8fb5003c lw r21,0x003c(r29) 0017e158: 8fb40038 lw r20,0x0038(r29) 0017e15c: 8fb30034 lw r19,0x0034(r29) 0017e160: 8fb20030 lw r18,0x0030(r29) 0017e164: 8fb1002c lw r17,0x002c(r29) 0017e168: 8fb00028 lw r16,0x0028(r29) 0017e16c: 27bd0048 addiu r29,r29,0x0048 0017e170: 03e00008 jr r31 0017e174: 00000000 nop Auto Potion? 0017e780: 908201ba lbu r2,0x01ba(r4) 0017e784: 00000000 nop 0017e788: 30420030 andi r2,r2,0x0030 0017e78c: 14400013 bne r2,r0,0x0017e7dc 0017e790: 340200f0 ori r2,r0,0x00f0 0017e794: 3c028006 lui r2,0x8006 0017e798: 904297d0 lbu r2,-0x6830(r2) 0017e79c: 00000000 nop 0017e7a0: 1440000e bne r2,r0,0x0017e7dc 0017e7a4: 340200f0 ori r2,r0,0x00f0 0017e7a8: 3c028006 lui r2,0x8006 0017e7ac: 904297d1 lbu r2,-0x682f(r2) 0017e7b0: 00000000 nop 0017e7b4: 10400003 beq r2,r0,0x0017e7c4 0017e7b8: 00000000 nop 0017e7bc: 0805f9f7 j 0x0017e7dc 0017e7c0: 340200f1 ori r2,r0,0x00f1 0017e7c4: 3c038006 lui r3,0x8006 0017e7c8: 906397d2 lbu r3,-0x682e(r3) 0017e7cc: 00000000 nop 0017e7d0: 14600002 bne r3,r0,0x0017e7dc 0017e7d4: 340200f2 ori r2,r0,0x00f2 0017e7d8: 2402ffff addiu r2,r0,0xffff 0017e7dc: 03e00008 jr r31 0017e7e0: 00000000 nop Gained JP Up Section... And other stuff 0017e7e4: 27bdffc0 addiu r29,r29,0xffc0 0017e7e8: afb40028 sw r20,0x0028(r29) 0017e7ec: 00a0a021 addu r20,r5,r0 0017e7f0: afbf0038 sw r31,0x0038(r29) 0017e7f4: afb70034 sw r23,0x0034(r29) 0017e7f8: afb60030 sw r22,0x0030(r29) 0017e7fc: afb5002c sw r21,0x002c(r29) 0017e800: afb30024 sw r19,0x0024(r29) 0017e804: afb20020 sw r18,0x0020(r29) 0017e808: afb1001c sw r17,0x001c(r29) 0017e80c: afb00018 sw r16,0x0018(r29) 0017e810: a2800000 sb r0,0x0000(r20) 0017e814: a2800001 sb r0,0x0001(r20) 0017e818: a2800002 sb r0,0x0002(r20) 0017e81c: a2800003 sb r0,0x0003(r20) 0017e820: 3c028019 lui r2,0x8019 0017e824: 8c4238bc lw r2,0x38bc(r2) Load ??? 0017e828: 00000000 nop 0017e82c: 14400019 bne r2,r0,0x0017e894 0017e830: 0080a821 addu r21,r4,r0 0017e834: 3c028019 lui r2,0x8019 0017e838: 904238e8 lbu r2,0x38e8(r2) Load ??? 0017e83c: 00000000 nop 0017e840: 1040006c beq r2,r0,0x0017e9f4 0017e844: 001510c0 sll r2,r21,0x03 0017e848: 00551023 subu r2,r2,r21 0017e84c: 00021180 sll r2,r2,0x06 0017e850: 3c038019 lui r3,0x8019 0017e854: 246308cc addiu r3,r3,0x08cc Load Unit's Data 0017e858: 00439021 addu r18,r2,r3 0017e85c: 92430001 lbu r3,0x0001(r18) 0017e860: 340200ff ori r2,r0,0x00ff 0017e864: 10620064 beq r3,r2,0x0017e9f8 Branch if unit doesn't exist 0017e868: 2402ffff addiu r2,r0,0xffff 0017e86c: 92420058 lbu r2,0x0058(r18) Load first set of status 0017e870: 00000000 nop 0017e874: 30420060 andi r2,r2,0x0060 0017e878: 1440005f bne r2,r0,0x0017e9f8 Branch if unit is Dead/Crystal 0017e87c: 2402ffff addiu r2,r0,0xffff 0017e880: 92420059 lbu r2,0x0059(r18) Load second set of status 0017e884: 00000000 nop 0017e888: 30420081 andi r2,r2,0x0081 0017e88c: 10400003 beq r2,r0,0x0017e89c 0017e890: 00000000 nop 0017e894: 0805fa7e j 0x0017e9f8 0017e898: 2402ffff addiu r2,r0,0xffff 0017e89c: 92420021 lbu r2,0x0021(r18) 0017e8a0: 3c038019 lui r3,0x8019 0017e8a4: 906338e7 lbu r3,0x38e7(r3) Load Earned Experience 0017e8a8: 92510022 lbu r17,0x0022(r18) Load unit's Level 0017e8ac: 00431821 addu r3,r2,r3 0017e8b0: 28620100 slti r2,r3,0x0100 0017e8b4: 14400002 bne r2,r0,0x0017e8c0 0017e8b8: 00000000 nop 0017e8bc: 340300ff ori r3,r0,0x00ff 0017e8c0: a2430021 sb r3,0x0021(r18) Store unit's new Experience 0017e8c4: 0c017620 jal 0x0005d880 0017e8c8: 02402021 addu r4,r18,r0 0017e8cc: 14400006 bne r2,r0,0x0017e8e8 0017e8d0: 00000000 nop 0017e8d4: 3c028019 lui r2,0x8019 0017e8d8: 9042390c lbu r2,0x390c(r2) Load Ability type 0017e8dc: 00000000 nop 0017e8e0: 10400004 beq r2,r0,0x0017e8f4 0017e8e4: 00000000 nop 0017e8e8: 92420022 lbu r2,0x0022(r18) Load Unit Level 0017e8ec: 00000000 nop 0017e8f0: a2820002 sb r2,0x0002(r20) Store Level into ??? 0017e8f4: 3c108019 lui r16,0x8019 0017e8f8: 261038e7 addiu r16,r16,0x38e7 Load Earned Experience 0017e8fc: 92020000 lbu r2,0x0000(r16) 0017e900: 00000000 nop 0017e904: a2820000 sb r2,0x0000(r20) 0017e908: 92420006 lbu r2,0x0006(r18) Load Unit's Gender 0017e90c: 00000000 nop 0017e910: 30420020 andi r2,r2,0x0020 0017e914: 14400038 bne r2,r0,0x0017e9f8 Branch if unit is a Monster 0017e918: 00001021 addu r2,r0,r0 0017e91c: 02402021 addu r4,r18,r0 R4 = Unit Data 0017e920: 92560003 lbu r22,0x0003(r18) Load Unit Job ID 0017e924: 27a60010 addiu r6,r29,0x0010 0017e928: 0c05fa8a jal 0x0017ea28 0017e92c: 02c02821 addu r5,r22,r0 0017e930: 0040b821 addu r23,r2,r0 0017e934: 00171040 sll r2,r23,0x01 0017e938: 00111882 srl r3,r17,0x02 0017e93c: 24630008 addiu r3,r3,0x0008 0017e940: 92040000 lbu r4,0x0000(r16) 0017e944: 00000000 nop 0017e948: 14800002 bne r4,r0,0x0017e954 0017e94c: 00438821 addu r17,r2,r3 0017e950: 00008821 addu r17,r0,r0 0017e954: 92420005 lbu r2,0x0005(r18) Load Unit's Team 0017e958: 00008021 addu r16,r0,r0 0017e95c: 30530030 andi r19,r2,0x0030 0017e960: 12150009 beq r16,r21,0x0017e988 0017e964: 00000000 nop 0017e968: 06210002 bgez r17,0x0017e974 0017e96c: 02202821 addu r5,r17,r0 0017e970: 26250003 addiu r5,r17,0x0003 0017e974: 02002021 addu r4,r16,r0 0017e978: 00052883 sra r5,r5,0x02 Gained JP / 4 0017e97c: 8fa70010 lw r7,0x0010(r29) 0017e980: 0c05faa0 jal 0x0017ea80 Calculate earned JP/Job Level 0017e984: 326600ff andi r6,r19,0x00ff 0017e988: 26100001 addiu r16,r16,0x0001 0017e98c: 2a020015 slti r2,r16,0x0015 0017e990: 1440fff3 bne r2,r0,0x0017e960 0017e994: 00000000 nop 0017e998: 92420090 lbu r2,0x0090(r18) Load Second Set of Supports 0017e99c: 00000000 nop 0017e9a0: 30420040 andi r2,r2,0x0040 0017e9a4: 10400006 beq r2,r0,0x0017e9c0 Branch if Unit doesn't have Gained JP Up 0017e9a8: 02a02021 addu r4,r21,r0 0017e9ac: 00111040 sll r2,r17,0x01 0017e9b0: 00511021 addu r2,r2,r17 0017e9b4: 00021fc2 srl r3,r2,0x1f 0017e9b8: 00431021 addu r2,r2,r3 0017e9bc: 00028843 sra r17,r2,0x01 0017e9c0: 02202821 addu r5,r17,r0 0017e9c4: 924601ba lbu r6,0x01ba(r18) 0017e9c8: 8fa70010 lw r7,0x0010(r29) 0017e9cc: 0c05faa0 jal 0x0017ea80 Calculate earned JP/Job Level 0017e9d0: 30c60030 andi r6,r6,0x0030 0017e9d4: 02402021 addu r4,r18,r0 0017e9d8: 02c02821 addu r5,r22,r0 0017e9dc: 0c05fa8a jal 0x0017ea28 0017e9e0: 27a60010 addiu r6,r29,0x0010 0017e9e4: 10570002 beq r2,r23,0x0017e9f0 0017e9e8: 00000000 nop 0017e9ec: a2820003 sb r2,0x0003(r20) 0017e9f0: a2910001 sb r17,0x0001(r20) 0017e9f4: 00001021 addu r2,r0,r0 0017e9f8: 8fbf0038 lw r31,0x0038(r29) 0017e9fc: 8fb70034 lw r23,0x0034(r29) 0017ea00: 8fb60030 lw r22,0x0030(r29) 0017ea04: 8fb5002c lw r21,0x002c(r29) 0017ea08: 8fb40028 lw r20,0x0028(r29) 0017ea0c: 8fb30024 lw r19,0x0024(r29) 0017ea10: 8fb20020 lw r18,0x0020(r29) 0017ea14: 8fb1001c lw r17,0x001c(r29) 0017ea18: 8fb00018 lw r16,0x0018(r29) 0017ea1c: 27bd0040 addiu r29,r29,0x0040 0017ea20: 03e00008 jr r31 0017ea24: 00000000 nop Float/Float/Fly movements (and some other stuff) 0017f020: 9086005a lbu r6,0x005a(r4) Load 3rd set of Current Status 0017f024: 90850095 lbu r5,0x0095(r4) Load 3rd set of Movements 0017f028: 90840094 lbu r4,0x0094(r4) Load 2nd set of Movements 0017f02c: 30c20040 andi r2,r6,0x0040 0017f030: 10400002 beq r2,r0,0x0017f03c Branch if Unit doesn't have Float 0017f034: 00001821 addu r3,r0,r0 R3 = 0 0017f038: 34a50008 ori r5,r5,0x0008 0017f03c: 30c20006 andi r2,r6,0x0006 0017f040: 10400003 beq r2,r0,0x0017f050 Branch if unit doesn't have Frog or Chicken 0017f044: 30a20080 andi r2,r5,0x0080 0017f048: 30a500fb andi r5,r5,0x00fb 0017f04c: 30a20080 andi r2,r5,0x0080 0017f050: 10400003 beq r2,r0,0x0017f060 0017f054: 30a20040 andi r2,r5,0x0040 0017f058: 0805fc1b j 0x0017f06c 0017f05c: 34030020 ori r3,r0,0x0020 0017f060: 10400003 beq r2,r0,0x0017f070 0017f064: 30a20002 andi r2,r5,0x0002 0017f068: 34030010 ori r3,r0,0x0010 0017f06c: 30a20002 andi r2,r5,0x0002 0017f070: 10400002 beq r2,r0,0x0017f07c 0017f074: 30a20004 andi r2,r5,0x0004 0017f078: 34630002 ori r3,r3,0x0002 0017f07c: 10400003 beq r2,r0,0x0017f08c 0017f080: 3082000c andi r2,r4,0x000c 0017f084: 0805fc25 j 0x0017f094 0017f088: 34640080 ori r4,r3,0x0080 0017f08c: 10400007 beq r2,r0,0x0017f0ac 0017f090: 34640008 ori r4,r3,0x0008 0017f094: 30a20008 andi r2,r5,0x0008 0017f098: 10400012 beq r2,r0,0x0017f0e4 0017f09c: 00801821 addu r3,r4,r0 0017f0a0: 3082008e andi r2,r4,0x008e 0017f0a4: 0805fc39 j 0x0017f0e4 0017f0a8: 34430040 ori r3,r2,0x0040 0017f0ac: 30a20008 andi r2,r5,0x0008 0017f0b0: 10400003 beq r2,r0,0x0017f0c0 0017f0b4: 30620006 andi r2,r3,0x0006 0017f0b8: 0805fc39 j 0x0017f0e4 0017f0bc: 34430040 ori r3,r2,0x0040 0017f0c0: 30a20080 andi r2,r5,0x0080 0017f0c4: 10400003 beq r2,r0,0x0017f0d4 0017f0c8: 00000000 nop 0017f0cc: 0805fc39 j 0x0017f0e4 0017f0d0: 34630020 ori r3,r3,0x0020 0017f0d4: 30a20040 andi r2,r5,0x0040 0017f0d8: 10400002 beq r2,r0,0x0017f0e4 0017f0dc: 00000000 nop 0017f0e0: 34630010 ori r3,r3,0x0010 0017f0e4: 03e00008 jr r31 0017f0e8: 306200ff andi r2,r3,0x00ff Move HP / MP Up? 00180134: 90820093 lbu r2,0x0093(r4) Load 1st set of Movements 00180138: 90840094 lbu r4,0x0094(r4) Load 2nd set of Movements 0018013c: 30420001 andi r2,r2,0x0001 00180140: 00021023 subu r2,r0,r2 ..... 00180144: 30430022 andi r3,r2,0x0022 00180148: 30820080 andi r2,r4,0x0080 0018014c: 10400002 beq r2,r0,0x00180158 00180150: 30820040 andi r2,r4,0x0040 00180154: 34630042 ori r3,r3,0x0042 00180158: 10400002 beq r2,r0,0x00180164 0018015c: 30820020 andi r2,r4,0x0020 00180160: 34630082 ori r3,r3,0x0082 00180164: 10400002 beq r2,r0,0x00180170 00180168: 00000000 nop 0018016c: 34630102 ori r3,r3,0x0102 00180170: 03e00008 jr r31 Ramza Causes Game Over? 00180b2c: 27bdffe0 addiu r29,r29,0xffe0 00180b30: 2c820080 sltiu r2,r4,0x0080 00180b34: afbf001c sw r31,0x001c(r29) 00180b38: afb20018 sw r18,0x0018(r29) 00180b3c: afb10014 sw r17,0x0014(r29) 00180b40: 14400005 bne r2,r0,0x00180b58 00180b44: afb00010 sw r16,0x0010(r29) 00180b48: 0806031d j 0x00180c74 00180b4c: 2402ffff addiu r2,r0,0xffff 00180b50: 0806031d j 0x00180c74 00180b54: 2402fffe addiu r2,r0,0xfffe 00180b58: 00008021 addu r16,r0,r0 00180b5c: 340600ff ori r6,r0,0x00ff R6 = FF 00180b60: 308500ff andi r5,r4,0x00ff 00180b64: 3c038019 lui r3,0x8019 00180b68: 246308cc addiu r3,r3,0x08cc Load Unit Data 00180b6c: 90620001 lbu r2,0x0001(r3) Unit ID 00180b70: 00000000 nop 00180b74: 10460011 beq r2,r6,0x00180bbc Branch if unit ID is FF (doesn't exist)? 00180b78: 00000000 nop 00180b7c: 90620000 lbu r2,0x0000(r3) Load Sprite Set 00180b80: 00000000 nop 00180b84: 1445000d bne r2,r5,0x00180bbc Branch if Sprite set isn't Ramza (01 - 03)? 00180b88: 00000000 nop 00180b8c: 90620058 lbu r2,0x0058(r3) Load 1st Set of Current Status 00180b90: 00000000 nop 00180b94: 30420040 andi r2,r2,0x0040 00180b98: 14400006 bne r2,r0,0x00180bb4 Branch if in Crystal Status 00180b9c: 00000000 nop 00180ba0: 90630059 lbu r3,0x0059(r3) Load 2nd Set of Current Status 00180ba4: 00000000 nop 00180ba8: 30630001 andi r3,r3,0x0001 00180bac: 10600031 beq r3,r0,0x00180c74 Branch to end if not in Treasure Status 00180bb0: 02001021 addu r2,r16,r0 00180bb4: 0806031d j 0x00180c74 00180bb8: 2402fffd addiu r2,r0,0xfffd 00180bbc: 26100001 addiu r16,r16,0x0001 00180bc0: 2a020015 slti r2,r16,0x0015 00180bc4: 1440ffe9 bne r2,r0,0x00180b6c 00180bc8: 246301c0 addiu r3,r3,0x01c0 00180bcc: 00008021 addu r16,r0,r0 00180bd0: 340800ff ori r8,r0,0x00ff R8 = FF 00180bd4: 308600ff andi r6,r4,0x00ff 00180bd8: 34070080 ori r7,r0,0x0080 00180bdc: 3c038019 lui r3,0x8019 00180be0: 246308cc addiu r3,r3,0x08cc Load Unit Data 00180be4: 90650001 lbu r5,0x0001(r3) Load Unit ID 00180be8: 00000000 nop 00180bec: 14a8000d bne r5,r8,0x00180c24 00180bf0: 26100001 addiu r16,r16,0x0001 00180bf4: 90620000 lbu r2,0x0000(r3) Load Sprite Set 00180bf8: 00000000 nop 00180bfc: 1446000a bne r2,r6,0x00180c28 00180c00: 2a020015 slti r2,r16,0x0015 00180c04: 90620183 lbu r2,0x0183(r3) 00180c08: 00000000 nop 00180c0c: 10450005 beq r2,r5,0x00180c24 00180c10: 00000000 nop 00180c14: 1040ffce beq r2,r0,0x00180b50 00180c18: 00000000 nop 00180c1c: 10470015 beq r2,r7,0x00180c74 00180c20: 2402fffd addiu r2,r0,0xfffd 00180c24: 2a020015 slti r2,r16,0x0015 00180c28: 1440ffee bne r2,r0,0x00180be4 00180c2c: 246301c0 addiu r3,r3,0x01c0 00180c30: 00008021 addu r16,r0,r0 00180c34: 341200ff ori r18,r0,0x00ff 00180c38: 309100ff andi r17,r4,0x00ff 00180c3c: 0c0166bc jal 0x00059af0 00180c40: 02002021 addu r4,r16,r0 00180c44: 00401821 addu r3,r2,r0 00180c48: 90620001 lbu r2,0x0001(r3) Load Unit ID 00180c4c: 00000000 nop 00180c50: 10520005 beq r2,r18,0x00180c68 00180c54: 26100001 addiu r16,r16,0x0001 00180c58: 90620000 lbu r2,0x0000(r3) Load Sprite Set 00180c5c: 00000000 nop 00180c60: 10510004 beq r2,r17,0x00180c74 00180c64: 2402fffc addiu r2,r0,0xfffc 00180c68: 2a020014 slti r2,r16,0x0014 00180c6c: 1440fff3 bne r2,r0,0x00180c3c 00180c70: 2402fffb addiu r2,r0,0xfffb 00180c74: 8fbf001c lw r31,0x001c(r29) 00180c78: 8fb20018 lw r18,0x0018(r29) 00180c7c: 8fb10014 lw r17,0x0014(r29) 00180c80: 8fb00010 lw r16,0x0010(r29) 00180c84: 27bd0020 addiu r29,r29,0x0020 00180c88: 03e00008 jr r31 00180c8c: 00000000 nop Map Location Calculation (requires r4 = Target Data Pointer) 001810a0: 90830048 lbu r3,0x0048(r4) Target Y Coordinate 001810a4: 3c02800e lui r2,0x800e 001810a8: 90424e9c lbu r2,0x4e9c(r2) Map Max X Coordinate 001810ac: 00000000 nop 001810b0: 00620018 mult r3,r2 Y * Max X 001810b4: 94820048 lhu r2,0x0048(r4) Y Coordinate + Elevation/Facing Flags 001810b8: 90840047 lbu r4,0x0047(r4) X Coordinate 001810bc: 000213c2 srl r2,r2,0x0f Checks for Higher Elevation 001810c0: 00021200 sll r2,r2,0x08 r2 = 0 or 256 (if at a Higher Elevation) 001810c4: 00001812 mflo r3 001810c8: 00431021 addu r2,r2,r3 Y * Max X + 0 or 256 001810cc: 03e00008 jr r31 001810d0: 00441021 addu r2,r2,r4 r2 = X + Y * Max X + 0 or 256 (Target's Tile ID) Weapon Guard Usability (requires r4 = Target's Data Pointer) 0018130c: 27bdffe8 addiu r29,r29,0xffe8 00181310: afb00010 sw r16,0x0010(r29) 00181314: 00808021 addu r16,r4,r0 r16 = Target's Data Pointer 00181318: afbf0014 sw r31,0x0014(r29) 0018131c: 9202005c lbu r2,0x005c(r16) Load 5th set of statuses 00181320: 00000000 nop 00181324: 30420004 andi r2,r2,0x0004 00181328: 14400020 bne r2,r0,0x001813ac Branch if Target has Don't Act 0018132c: 34020001 ori r2,r0,0x0001 r2 = 1 00181330: 92020182 lbu r2,0x0182(r16) Load Chocobo/? Flags 00181334: 00000000 nop 00181338: 30420040 andi r2,r2,0x0040 0018133c: 1440001b bne r2,r0,0x001813ac Branch if Target is ? 00181340: 34020001 ori r2,r0,0x0001 r2 = 1 00181344: 0c060428 jal 0x001810a0 Map Location Calculation 00181348: 02002021 addu r4,r16,r0 0018134c: 000210c0 sll r2,r2,0x03 Tile ID * 8 00181350: 3c018019 lui r1,0x8019 00181354: 00220821 addu r1,r1,r2 00181358: 9022f8cf lbu r2,-0x0731(r1) Load Height (halves) + Water Depth Flags 0018135c: 00000000 nop 00181360: 00021142 srl r2,r2,0x05 Remove Height aspect (leave Depth) 00181364: 28420002 slti r2,r2,0x0002 00181368: 14400010 bne r2,r0,0x001813ac Branch if Depth is less than 2 0018136c: 00001021 addu r2,r0,r0 r2 = 0 00181370: 9202005a lbu r2,0x005a(r16) Load Target's 3rd set of statuses 00181374: 00000000 nop 00181378: 30420046 andi r2,r2,0x0046 0018137c: 1440000b bne r2,r0,0x001813ac Branch if Target has Chicken/Frog/Float 00181380: 00001021 addu r2,r0,r0 r2 = 0 00181384: 92020095 lbu r2,0x0095(r16) Load Target's 3rd set of Movements 00181388: 00000000 nop 0018138c: 304200c8 andi r2,r2,0x00c8 00181390: 14400006 bne r2,r0,0x001813ac Branch if Target has Move in/Walk on Water/Float 00181394: 00001021 addu r2,r0,r0 r2 = 0 00181398: 92020182 lbu r2,0x0182(r16) Load Target's Chocobo/? Flags 0018139c: 00000000 nop 001813a0: 30420080 andi r2,r2,0x0080 Check for Riding Chocobo Flag 001813a4: 2c420001 sltiu r2,r2,0x0001 r2 = 1 if not riding a chocobo 001813a8: 00021040 sll r2,r2,0x01 r2 * 2 001813ac: 8fbf0014 lw r31,0x0014(r29) 001813b0: 8fb00010 lw r16,0x0010(r29) 001813b4: 27bd0018 addiu r29,r29,0x0018 001813b8: 03e00008 jr r31 001813bc: 00000000 nop Player Skill Set: 001813c0: 27bdffd0 addiu r29,r29,0xffd0 001813c4: afb40020 sw r20,0x0020(r29) 001813c8: 0080a021 addu r20,r4,r0 001813cc: afb00010 sw r16,0x0010(r29) 001813d0: 00a08021 addu r16,r5,r0 001813d4: afb10014 sw r17,0x0014(r29) 001813d8: 00c08821 addu r17,r6,r0 001813dc: afb20018 sw r18,0x0018(r29) 001813e0: 00e09021 addu r18,r7,r0 001813e4: afbf0028 sw r31,0x0028(r29) 001813e8: afb50024 sw r21,0x0024(r29) 001813ec: 0c060435 jal 0x001810d4 001813f0: afb3001c sw r19,0x001c(r29) 001813f4: 00401821 addu r3,r2,r0 001813f8: 10600058 beq r3,r0,0x0018155c 001813fc: 2402ffff addiu r2,r0,0xffff 00181400: 90670012 lbu r7,0x0012(r3) Load Primary Skill Set? 00181404: 90650013 lbu r5,0x0013(r3) Load Secondary Skill Set? 00181408: 30e400ff andi r4,r7,0x00ff 0018140c: 2c8200b0 sltiu r2,r4,0x00b0 00181410: 10400004 beq r2,r0,0x00181424 Branch if using a Monster Skill Set? 00181414: 02004021 addu r8,r16,r0 00181418: 2ca200b0 sltiu r2,r5,0x00b0 0018141c: 1440000b bne r2,r0,0x0018144c Branch if using a Monster Skill Set? 00181420: 00000000 nop 00181424: a2070000 sb r7,0x0000(r16) 00181428: a2200000 sb r0,0x0000(r17) 0018142c: 3c018006 lui r1,0x8006 00181430: 00240821 addu r1,r1,r4 00181434: 90235cb4 lbu r3,0x5cb4(r1) Load Action Menu 00181438: 34020001 ori r2,r0,0x0001 0018143c: a2430000 sb r3,0x0000(r18) 00181440: 340300ff ori r3,r0,0x00ff 00181444: 08060557 j 0x0018155c 00181448: a2030001 sb r3,0x0001(r16) 0018144c: 9062005a lbu r2,0x005a(r3) Load 3rd set of Current Status 00181450: 90660092 lbu r6,0x0092(r3) Load 4th set of Support 00181454: 30420002 andi r2,r2,0x0002 00181458: 10400002 beq r2,r0,0x00181464 Branch if Unit is a Frog 0018145c: 00000000 nop 00181460: 00003021 addu r6,r0,r0 00181464: 9062005c lbu r2,0x005c(r3) Load 5th set of Current Status 00181468: 00000000 nop 0018146c: 30420004 andi r2,r2,0x0004 00181470: 14400006 bne r2,r0,0x0018148c Branch if the unit is not under Don't Act 00181474: 340200ff ori r2,r0,0x00ff R2 = FF 00181478: 90620182 lbu r2,0x0182(r3) Load Usability Pointers 0018147c: 00000000 nop 00181480: 30420040 andi r2,r2,0x0040 00181484: 10400003 beq r2,r0,0x00181494 Branch if unit is in "Deep Water" 00181488: 340200ff ori r2,r0,0x00ff R2 = FF 0018148c: 08060556 j 0x00181558 00181490: a2020000 sb r2,0x0000(r16) 00181494: 34020001 ori r2,r0,0x0001 R2 = 1 00181498: a2020000 sb r2,0x0000(r16) 0018149c: 10800006 beq r4,r0,0x001814b8 001814a0: 26100001 addiu r16,r16,0x0001 001814a4: 34020018 ori r2,r0,0x0018 001814a8: 10820003 beq r4,r2,0x001814b8 001814ac: 00000000 nop 001814b0: a2070000 sb r7,0x0000(r16) 001814b4: 26100001 addiu r16,r16,0x0001 001814b8: 10a00003 beq r5,r0,0x001814c8 001814bc: 30c20040 andi r2,r6,0x0040 001814c0: a2050000 sb r5,0x0000(r16) 001814c4: 26100001 addiu r16,r16,0x0001 001814c8: 10400003 beq r2,r0,0x001814d8 001814cc: 34020002 ori r2,r0,0x0002 001814d0: a2020000 sb r2,0x0000(r16) 001814d4: 26100001 addiu r16,r16,0x0001 001814d8: 30c20020 andi r2,r6,0x0020 001814dc: 10400004 beq r2,r0,0x001814f0 001814e0: 341500ff ori r21,r0,0x00ff 001814e4: 34020003 ori r2,r0,0x0003 001814e8: a2020000 sb r2,0x0000(r16) 001814ec: 26100001 addiu r16,r16,0x0001 001814f0: 340200ff ori r2,r0,0x00ff 001814f4: a2020000 sb r2,0x0000(r16) 001814f8: 02208021 addu r16,r17,r0 001814fc: 01008821 addu r17,r8,r0 00181500: 26130006 addiu r19,r16,0x0006 00181504: 92250000 lbu r5,0x0000(r17) 00181508: 00000000 nop 0018150c: 10b50012 beq r5,r21,0x00181558 00181510: 02802021 addu r4,r20,r0 00181514: 3c018006 lui r1,0x8006 00181518: 00250821 addu r1,r1,r5 0018151c: 90265cb4 lbu r6,0x5cb4(r1) Load Action Menus 00181520: 00000000 nop 00181524: 30c6000f andi r6,r6,0x000f 00181528: 0c060561 jal 0x00181584 0018152c: a2460000 sb r6,0x0000(r18) 00181530: 14400003 bne r2,r0,0x00181540 00181534: 34020001 ori r2,r0,0x0001 00181538: 08060551 j 0x00181544 0018153c: a2020000 sb r2,0x0000(r16) 00181540: a2000000 sb r0,0x0000(r16) 00181544: 26100001 addiu r16,r16,0x0001 00181548: 26520001 addiu r18,r18,0x0001 0018154c: 0213102a slt r2,r16,r19 00181550: 1440ffec bne r2,r0,0x00181504 00181554: 26310001 addiu r17,r17,0x0001 00181558: 00001021 addu r2,r0,r0 0018155c: 8fbf0028 lw r31,0x0028(r29) 00181560: 8fb50024 lw r21,0x0024(r29) 00181564: 8fb40020 lw r20,0x0020(r29) 00181568: 8fb3001c lw r19,0x001c(r29) 0018156c: 8fb20018 lw r18,0x0018(r29) 00181570: 8fb10014 lw r17,0x0014(r29) 00181574: 8fb00010 lw r16,0x0010(r29) 00181578: 27bd0030 addiu r29,r29,0x0030 0018157c: 03e00008 jr r31 00181580: 00000000 nop Force Attack Miss (Used in Formula 0x0E) 0018430c: 3c028019 lui r2,0x8019 00184310: 8c422d90 lw r2,0x2d90(r2) Current Action Data Pointer 00184314: 00000000 nop 00184318: a0400000 sb r0,0x0000(r2) Store Attack miss ? 0018431c: 3c038019 lui r3,0x8019 00184320: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 00184324: 34020007 ori r2,r0,0x0007 r2 = 0x7 00184328: a0620002 sb r2,0x0002(r3) Store if attack was Guarded or missed 0018432c: 3c028019 lui r2,0x8019 00184330: 8c422d90 lw r2,0x2d90(r2) Current Action Datat Pointer 00184334: 03e00008 jr r31 00184338: a440002a sh r0,0x002a(r2) 0% Chance to hitself Force Attack Miss? 0018433c: 3c028019 lui r2,0x8019 00184340: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 00184344: 00000000 nop 00184348: a0400000 sb r0,0x0000(r2) Store Attack miss ? 0018434c: 3c038019 lui r3,0x8019 00184350: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00184354: 34020006 ori r2,r0,0x0006 00184358: 03e00008 jr r31 0018435c: a0620002 sb r2,0x0002(r3) Store Attack as missed? Knockback Calculation: 001843ec: 27bdffe0 addiu r29,r29,0xffe0 001843f0: 3c038019 lui r3,0x8019 001843f4: 906338ec lbu r3,0x38ec(r3) Knockback flag? 001843f8: 34020001 ori r2,r0,0x0001 r2 = 1 001843fc: afbf001c sw r31,0x001c(r29) 00184400: afb20018 sw r18,0x0018(r29) 00184404: afb10014 sw r17,0x0014(r29) 00184408: 1462007a bne r3,r2,0x001845f4 Branch if Knockback Flag? is not 1 (Can't be knocked back) 0018440c: afb00010 sw r16,0x0010(r29) 00184410: 3c058019 lui r5,0x8019 00184414: 8ca52d98 lw r5,0x2d98(r5) Load Target's Data Pointer 00184418: 00000000 nop 0018441c: 90a30005 lbu r3,0x0005(r5) Load Target's Battle-Specific Flags 00184420: 00000000 nop 00184424: 30620004 andi r2,r3,0x0004 00184428: 14400072 bne r2,r0,0x001845f4 Branch if Target is Immortal 0018442c: 30630003 andi r3,r3,0x0003 00184430: 34020003 ori r2,r0,0x0003 r2 = 3 00184434: 1062006f beq r3,r2,0x001845f4 Branch if ? = 3 00184438: 00000000 nop 0018443c: 3c048019 lui r4,0x8019 00184440: 8c842d94 lw r4,0x2d94(r4) Load Attacker's Data Pointer 00184444: 00000000 nop 00184448: 10a4006a beq r5,r4,0x001845f4 Branch if Target is Attacker 0018444c: 00000000 nop 00184450: 90a20182 lbu r2,0x0182(r5) Load Chocobo Byte 00184454: 00000000 nop 00184458: 14400066 bne r2,r0,0x001845f4 Branch if Riding a Chocobo/in Deep Water 0018445c: 00000000 nop 00184460: 90a90047 lbu r9,0x0047(r5) Load Target's X 00184464: 90830047 lbu r3,0x0047(r4) Load Attacker's X 00184468: 90a60048 lbu r6,0x0048(r5) Load Target's Y + Facing 0018446c: 90820048 lbu r2,0x0048(r4) Load Attacker's Y + Facing 00184470: 01234023 subu r8,r9,r3 r8 = TX - AX 00184474: 00c23823 subu r7,r6,r2 r7 = TY - AY 00184478: 05010002 bgez r8,0x00184484 Branch if TX >= AX 0018447c: 01002021 addu r4,r8,r0 r4 = TX - AX 00184480: 00042023 subu r4,r0,r4 r4 = -(TX - AX) (makes it positive) 00184484: 04e10002 bgez r7,0x00184490 Branch if TY >= AY 00184488: 00e01821 addu r3,r7,r0 r3 = TY - AY 0018448c: 00031823 subu r3,r0,r3 r3 = -(TY - AY) (makes it positive) 00184490: 00831021 addu r2,r4,r3 r2 = (TX - AX) + (TY - AY) 00184494: 10400057 beq r2,r0,0x001845f4 Branch if Target is on the same X/Y (above or below) 00184498: 01208021 addu r16,r9,r0 r16 = TX 0018449c: 0064102a slt r2,r3,r4 001844a0: 10400008 beq r2,r0,0x001844c4 Branch if Y Diff < X Diff 001844a4: 00c08821 addu r17,r6,r0 r17 = TY 001844a8: 19000003 blez r8,0x001844b8 Branch if TX <= AX 001844ac: 34040003 ori r4,r0,0x0003 r4 = 3 (Knocked Right) 001844b0: 08061137 j 0x001844dc 001844b4: 26100001 addiu r16,r16,0x0001 TX += 1 001844b8: 34040001 ori r4,r0,0x0001 r4 = 1 (Knocked Left) 001844bc: 08061137 j 0x001844dc 001844c0: 2610ffff addiu r16,r16,0xffff TX -= 1 001844c4: 18e00003 blez r7,0x001844d4 Branch if TY <= AY 001844c8: 34040002 ori r4,r0,0x0002 r4 = 2 (Knocked Up :3) 001844cc: 08061137 j 0x001844dc 001844d0: 26310001 addiu r17,r17,0x0001 TY += 1 001844d4: 00002021 addu r4,r0,r0 r4 = 0 (Knocked Down) 001844d8: 2631ffff addiu r17,r17,0xffff TY -= 1 001844dc: 02002821 addu r5,r16,r0 r5 = new TX 001844e0: 0c061184 jal 0x00184610 001844e4: 02203021 addu r6,r17,r0 r6 = new TY 001844e8: 00409021 addu r18,r2,r0 001844ec: 06400041 bltz r18,0x001845f4 001844f0: 00000000 nop 001844f4: 3c02800e lui r2,0x800e 001844f8: 90424e9c lbu r2,0x4e9c(r2) 001844fc: 00000000 nop 00184500: 02220018 mult r17,r2 00184504: 00121200 sll r2,r18,0x08 00184508: 00001812 mflo r3 0018450c: 00431021 addu r2,r2,r3 00184510: 00501021 addu r2,r2,r16 00184514: 000210c0 sll r2,r2,0x03 00184518: 3c038019 lui r3,0x8019 0018451c: 2463f8cc addiu r3,r3,0xf8cc 00184520: 00432021 addu r4,r2,r3 00184524: 90830000 lbu r3,0x0000(r4) 00184528: 90820006 lbu r2,0x0006(r4) 0018452c: 00000000 nop 00184530: 30420002 andi r2,r2,0x0002 00184534: 1440002f bne r2,r0,0x001845f4 00184538: 3063003f andi r3,r3,0x003f 0018453c: 90820003 lbu r2,0x0003(r4) 00184540: 00000000 nop 00184544: 304200e0 andi r2,r2,0x00e0 00184548: 1440002a bne r2,r0,0x001845f4 0018454c: 00000000 nop 00184550: 90820003 lbu r2,0x0003(r4) 00184554: 00000000 nop 00184558: 3042001f andi r2,r2,0x001f 0018455c: 28420003 slti r2,r2,0x0003 00184560: 10400024 beq r2,r0,0x001845f4 00184564: 306300ff andi r3,r3,0x00ff 00184568: 34020012 ori r2,r0,0x0012 0018456c: 10620021 beq r3,r2,0x001845f4 00184570: 3402001c ori r2,r0,0x001c 00184574: 1062001f beq r3,r2,0x001845f4 00184578: 00000000 nop 0018457c: 3c048019 lui r4,0x8019 00184580: 8c842d98 lw r4,0x2d98(r4) 00184584: 0c05fc08 jal 0x0017f020 00184588: 00000000 nop 0018458c: 30420080 andi r2,r2,0x0080 00184590: 1040000a beq r2,r0,0x001845bc 00184594: 34020081 ori r2,r0,0x0081 00184598: 3c028019 lui r2,0x8019 0018459c: 8c422d98 lw r2,0x2d98(r2) 001845a0: 00000000 nop 001845a4: 9042005a lbu r2,0x005a(r2) 001845a8: 00000000 nop 001845ac: 30420006 andi r2,r2,0x0006 001845b0: 14400002 bne r2,r0,0x001845bc 001845b4: 34020081 ori r2,r0,0x0081 001845b8: 34020082 ori r2,r0,0x0082 001845bc: 3c018019 lui r1,0x8019 001845c0: a02238ed sb r2,0x38ed(r1) 001845c4: 3c038019 lui r3,0x8019 001845c8: 8c632d90 lw r3,0x2d90(r3) 001845cc: 3c018019 lui r1,0x8019 001845d0: a03038ca sb r16,0x38ca(r1) 001845d4: 3c018019 lui r1,0x8019 001845d8: a03138cb sb r17,0x38cb(r1) 001845dc: 3c018019 lui r1,0x8019 001845e0: a03238cc sb r18,0x38cc(r1) 001845e4: 94620010 lhu r2,0x0010(r3) 001845e8: 00000000 nop 001845ec: 34424000 ori r2,r2,0x4000 001845f0: a4620010 sh r2,0x0010(r3) 001845f4: 8fbf001c lw r31,0x001c(r29) 001845f8: 8fb20018 lw r18,0x0018(r29) 001845fc: 8fb10014 lw r17,0x0014(r29) 00184600: 8fb00010 lw r16,0x0010(r29) 00184604: 27bd0020 addiu r29,r29,0x0020 00184608: 03e00008 jr r31 0018460c: 00000000 nop (r5 = TX, r6 = TY) 00184610: 27bdffd8 addiu r29,r29,0xffd8 00184614: afb20018 sw r18,0x0018(r29) 00184618: 00a09021 addu r18,r5,r0 r18 = TX 0018461c: afb3001c sw r19,0x001c(r29) 00184620: 00c09821 addu r19,r6,r0 r19 = TY 00184624: afbf0020 sw r31,0x0020(r29) 00184628: afb10014 sw r17,0x0014(r29) 0018462c: 064000a1 bltz r18,0x001848b4 Branch if TX is negative (off the map) 00184630: afb00010 sw r16,0x0010(r29) 00184634: 066000a0 bltz r19,0x001848b8 Branch if TY is negative (off the map) 00184638: 2402ffff addiu r2,r0,0xffff r2 = FFFF 0018463c: 3c02800e lui r2,0x800e 00184640: 90424e9c lbu r2,0x4e9c(r2) Load Map's Max X 00184644: 00000000 nop 00184648: 0242102a slt r2,r18,r2 0018464c: 1040009a beq r2,r0,0x001848b8 Branch if TX >= Max X (off the map) 00184650: 2402ffff addiu r2,r0,0xffff r2 = FFFF 00184654: 3c02800e lui r2,0x800e 00184658: 90424ea0 lbu r2,0x4ea0(r2) Load Map's Max Y 0018465c: 00000000 nop 00184660: 0262102a slt r2,r19,r2 00184664: 10400093 beq r2,r0,0x001848b4 Branch if TY >= Max Y (off the map) 00184668: 34020001 ori r2,r0,0x0001 r2 = 1 (Knocked Left) 0018466c: 10820012 beq r4,r2,0x001846b8 Branch if Target was Knocked Left 00184670: 28820002 slti r2,r4,0x0002 00184674: 10400005 beq r2,r0,0x0018468c Branch if Target was Knocked Up/Right 00184678: 00000000 nop 0018467c: 10800011 beq r4,r0,0x001846c4 Branch if Target was Knocked Down 00184680: 00000000 nop 00184684: 080611b3 j 0x001846cc (jump if value was negative?) 00184688: 00000000 nop 0018468c: 34020002 ori r2,r0,0x0002 r2 = 2 00184690: 10820006 beq r4,r2,0x001846ac Branch if Target was Knocked Up 00184694: 34020003 ori r2,r0,0x0003 r2 = 3 00184698: 1482000c bne r4,r2,0x001846cc Branch if Target was not Knocked Right 0018469c: 00000000 nop 001846a0: 00008021 addu r16,r0,r0 001846a4: 080611b3 j 0x001846cc Knocked Right, r16 = 0, r17 = 2 001846a8: 34110002 ori r17,r0,0x0002 001846ac: 34100006 ori r16,r0,0x0006 001846b0: 080611b3 j 0x001846cc Knocked Up, r16 = 6, r17 = 4 001846b4: 34110004 ori r17,r0,0x0004 001846b8: 34100002 ori r16,r0,0x0002 001846bc: 080611b3 j 0x001846cc Knocked Left, r16 = 2, r17 = 0 001846c0: 00008821 addu r17,r0,r0 001846c4: 34100004 ori r16,r0,0x0004 001846c8: 34110006 ori r17,r0,0x0006 Knocked Down, r16 = 4, r17 = 6 001846cc: 3c048019 lui r4,0x8019 001846d0: 8c842d98 lw r4,0x2d98(r4) Load Target's Data Pointer 001846d4: 0c060428 jal 0x001810a0 Map Location Calculation 001846d8: 00000000 nop 001846dc: 000210c0 sll r2,r2,0x03 Tile ID * 8 001846e0: 3c058019 lui r5,0x8019 001846e4: 24a5f8cc addiu r5,r5,0xf8cc 001846e8: 00451021 addu r2,r2,r5 001846ec: 90440003 lbu r4,0x0003(r2) Load Tile's Height (halves) + Depth 001846f0: 90430004 lbu r3,0x0004(r2) Load Tile's slope height? 001846f4: 3084001f andi r4,r4,0x001f r4 = Tile's Height (halves) 001846f8: 02031807 srav r3,r3,r16 Tile's Slope Height? / 4 OR 16 OR 64 (OR no change) 001846fc: 30630003 andi r3,r3,0x0003 Tile's Slope Mod? (0->3) 00184700: 00830018 mult r4,r3 Tile's Height (halves) * Slope Height? 00184704: 00002012 mflo r4 r4 = Tile's Height (halves) * Slope Height? 00184708: 3c03800e lui r3,0x800e 0018470c: 90634e9c lbu r3,0x4e9c(r3) Load Map's Max X 00184710: 00000000 nop 00184714: 02630018 mult r19,r3 TY * Max X 00184718: 90420002 lbu r2,0x0002(r2) Load Tile's Height 0018471c: 00000000 nop 00184720: 00021040 sll r2,r2,0x01 Height * 2 00184724: 00443021 addu r6,r2,r4 Height * 2 + Height (halves) * Slope Mod? (total height?) 00184728: 00001012 mflo r2 TY * Max X 0018472c: 00521021 addu r2,r2,r18 TY * Max X + TX 00184730: 24430100 addiu r3,r2,0x0100 TY * Max X + TX + 100h 00184734: 000210c0 sll r2,r2,0x03 (TY * Max X + TX) * 8 00184738: 00454021 addu r8,r2,r5 (TY * Max X + TX) * 8 + Current Tile Pointer 0018473c: 000318c0 sll r3,r3,0x03 (TY * Max X + TX + 100h) * 8 (new Tile ID) 00184740: 91020006 lbu r2,0x0006(r8) Load New Tile's Misc. Flags 00184744: 00000000 nop 00184748: 30420001 andi r2,r2,0x0001 0018474c: 10400003 beq r2,r0,0x0018475c Branch if tile is able to be selected 00184750: 00653821 addu r7,r3,r5 (TY * Max X + TX + 100h) * 8 + Current Tile Pointer 00184754: 080611e2 j 0x00184788 00184758: 340400ff ori r4,r0,0x00ff r4 = FF (Max Height) 0018475c: 91030003 lbu r3,0x0003(r8) Load New Tile's Height (halves) + Depth 00184760: 91020004 lbu r2,0x0004(r8) Load New Tile's Slope Height? 00184764: 3063001f andi r3,r3,0x001f Leave only Height (halves) 00184768: 02221007 srav r2,r2,r17 Slope Height? / 4 OR 16 OR 64 (OR no change) 0018476c: 30420003 andi r2,r2,0x0003 Slope Mod? (0->3) 00184770: 00620018 mult r3,r2 Height (halves) * Slope Mod? 00184774: 91020002 lbu r2,0x0002(r8) Load Height 00184778: 00000000 nop 0018477c: 00021040 sll r2,r2,0x01 Height * 2 00184780: 00001812 mflo r3 r3 = Height (halves) * Slope Mod? 00184784: 00432021 addu r4,r2,r3 Height * 2 + Height (halves) * Slope Mod? (total height?) 00184788: 90e20006 lbu r2,0x0006(r7) Load Higher Elevation Tile's Misc Flags 0018478c: 00000000 nop 00184790: 30420001 andi r2,r2,0x0001 00184794: 1440000c bne r2,r0,0x001847c8 Branch if tile is unable to be selected 00184798: 340300ff ori r3,r0,0x00ff r3 = FF (max Height) 0018479c: 90e30003 lbu r3,0x0003(r7) Load Higher Elevation Tile's Height (halves) + Depth 001847a0: 90e20004 lbu r2,0x0004(r7) Load Higher Elevation Tile's Slope Height? 001847a4: 3063001f andi r3,r3,0x001f 001847a8: 02221007 srav r2,r2,r17 Slope Height? / 4 OR 16 OR 64 (OR no change) 001847ac: 30420003 andi r2,r2,0x0003 Slope Mod? (0->3) 001847b0: 00620018 mult r3,r2 Height (halves) * Slope Mod? 001847b4: 90e20002 lbu r2,0x0002(r7) Load Height 001847b8: 00000000 nop 001847bc: 00021040 sll r2,r2,0x01 Height * 2 001847c0: 00001812 mflo r3 r3 = Height (halves) * Slope Mod? 001847c4: 00431821 addu r3,r2,r3 Height * 2 + Height (halves) * Slope Mod? (total height?) 001847c8: 00c4282a slt r5,r6,r4 001847cc: 10a00005 beq r5,r0,0x001847e4 Branch if Knockback Total Height >= Current Total Height 001847d0: 00c3102a slt r2,r6,r3 001847d4: 10400012 beq r2,r0,0x00184820 Branch if Higher KB Total Height >= Current Total Height 001847d8: 00c4102a slt r2,r6,r4 001847dc: 0806122e j 0x001848b8 001847e0: 2402ffff addiu r2,r0,0xffff r2 = FFFF 001847e4: 1040000d beq r2,r0,0x0018481c Branch if Higher KB Total Height >= Current Total Height 001847e8: 00000000 nop 001847ec: 14a0000e bne r5,r0,0x00184828 Branch if Knockback Total Height < Current Total Height 001847f0: 00000000 nop 001847f4: 90e20005 lbu r2,0x0005(r7) Load Higher Elevation's ? 001847f8: 00000000 nop 001847fc: 3042001f andi r2,r2,0x001f Leave only ? 00184800: 00621823 subu r3,r3,r2 Higher Elevation Total Height - ? 00184804: 24c20004 addiu r2,r6,0x0004 Current height + 4 00184808: 0062102a slt r2,r3,r2 0018480c: 1440002a bne r2,r0,0x001848b8 (to be continued) 00184810: 2402ffff addiu r2,r0,0xffff 00184814: 0806121a j 0x00184868 00184818: 00008821 addu r17,r0,r0 0018481c: 00c4102a slt r2,r6,r4 00184820: 1040000d beq r2,r0,0x00184858 00184824: 00c3102a slt r2,r6,r3 00184828: 1440000c bne r2,r0,0x0018485c 0018482c: 0083102a slt r2,r4,r3 00184830: 91020005 lbu r2,0x0005(r8) 00184834: 00000000 nop 00184838: 3042001f andi r2,r2,0x001f 0018483c: 00822023 subu r4,r4,r2 00184840: 24c20004 addiu r2,r6,0x0004 00184844: 0082102a slt r2,r4,r2 00184848: 1440001b bne r2,r0,0x001848b8 0018484c: 2402ffff addiu r2,r0,0xffff 00184850: 0806121c j 0x00184870 00184854: 34110001 ori r17,r0,0x0001 00184858: 0083102a slt r2,r4,r3 0018485c: 14400004 bne r2,r0,0x00184870 00184860: 34110001 ori r17,r0,0x0001 00184864: 00008821 addu r17,r0,r0 00184868: 0806121d j 0x00184874 0018486c: 00c48023 subu r16,r6,r4 00184870: 00c38023 subu r16,r6,r3 00184874: 0600000f bltz r16,0x001848b4 00184878: 02402021 addu r4,r18,r0 0018487c: 02602821 addu r5,r19,r0 00184880: 0c05f722 jal 0x0017dc88 00184884: 02203021 addu r6,r17,r0 00184888: 2403ffff addiu r3,r0,0xffff 0018488c: 1443000a bne r2,r3,0x001848b8 00184890: 2402ffff addiu r2,r0,0xffff 00184894: 3c038019 lui r3,0x8019 00184898: 906338c1 lbu r3,0x38c1(r3) 0018489c: 3c018019 lui r1,0x8019 001848a0: a03038ee sb r16,0x38ee(r1) 001848a4: 3c018019 lui r1,0x8019 001848a8: a02338ef sb r3,0x38ef(r1) 001848ac: 0806122e j 0x001848b8 001848b0: 02201021 addu r2,r17,r0 001848b4: 2402ffff addiu r2,r0,0xffff 001848b8: 8fbf0020 lw r31,0x0020(r29) 001848bc: 8fb3001c lw r19,0x001c(r29) 001848c0: 8fb20018 lw r18,0x0018(r29) 001848c4: 8fb10014 lw r17,0x0014(r29) 001848c8: 8fb00010 lw r16,0x0010(r29) 001848cc: 27bd0028 addiu r29,r29,0x0028 001848d0: 03e00008 jr r31 001848d4: 00000000 nop Attack Evaded Calculations 001848d8: 27bdffe0 addiu r29,r29,0xffe0 001848dc: afb00010 sw r16,0x0010(r29) 001848e0: 00c08021 addu r16,r6,r0 r16 = Evade Type 001848e4: afb10014 sw r17,0x0014(r29) 001848e8: 00e08821 addu r17,r7,r0 r17 = Equipment ID 001848ec: 3082ffff andi r2,r4,0xffff r2 = Evade Type's Evade% 001848f0: 30a4ffff andi r4,r5,0xffff r4 = Base Hit 001848f4: afbf0018 sw r31,0x0018(r29) 001848f8: 0c017833 jal 0x0005e0cc Check if Attack Hits? 001848fc: 00402821 addu r5,r2,r0 r5 = Evade Type's Evade 00184900: 14400012 bne r2,r0,0x0018494c Branch if Attack Hits? 00184904: 00001021 addu r2,r0,r0 00184908: 3c028019 lui r2,0x8019 0018490c: 8c42f5fc lw r2,-0x0a04(r2) Load ? 00184910: 00000000 nop 00184914: 1440000d bne r2,r0,0x0018494c Branch if ? != 0 00184918: 00001021 addu r2,r0,r0 0018491c: 3c028019 lui r2,0x8019 00184920: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 00184924: 00000000 nop 00184928: a0400000 sb r0,0x0000(r2) Attack was Evaded 0018492c: 3c028019 lui r2,0x8019 00184930: 8c422d90 lw r2,0x2d90(r2) Reload Current Action Data Pointer 00184934: 00000000 nop 00184938: a0500002 sb r16,0x0002(r2) Store Evade Type? 0018493c: 3c038019 lui r3,0x8019 00184940: 8c632d90 lw r3,0x2d90(r3) Re-Reload Current Action Data Pointer 00184944: 34020001 ori r2,r0,0x0001 r2 = 1 00184948: a0710003 sb r17,0x0003(r3) ? = Equipment ID (maybe for evade message/anim? 0018494c: 8fbf0018 lw r31,0x0018(r29) 00184950: 8fb10014 lw r17,0x0014(r29) 00184954: 8fb00010 lw r16,0x0010(r29) 00184958: 27bd0020 addiu r29,r29,0x0020 0018495c: 03e00008 jr r31 00184960: 00000000 nop Compatibility: 00184964: 27bdfff8 addiu r29,r29,0xfff8 00184968: 3406000c ori r6,r0,0x000c r6 = c 0018496c: 3c028019 lui r2,0x8019 00184970: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 00184974: 3c038019 lui r3,0x8019 00184978: 8c632d98 lw r3,0x2d98(r3) Load Target's Data Pointer 0018497c: 94420008 lhu r2,0x0008(r2) Load Attacker's Zodiac + 1 byte 00184980: 94630008 lhu r3,0x0008(r3) Load Target's Zodiac + 1 byte 00184984: 00022302 srl r4,r2,0x0c r4 = Attacker's Zodiac 00184988: 00031b02 srl r3,r3,0x0c r3 = Target's Zodiac 0018498c: 00802821 addu r5,r4,r0 r5 = Attacker's Zodiac 00184990: 10a60061 beq r5,r6,0x00184b18 Branch if Attacker is Serpentarius 00184994: 00601021 addu r2,r3,r0 r2 = Target's Zodiac 00184998: 3042ffff andi r2,r2,0xffff 0018499c: 1046005e beq r2,r6,0x00184b18 Branch if Target is Serpentarius 001849a0: 0045102b sltu r2,r2,r5 001849a4: 14400002 bne r2,r0,0x001849b0 Branch if Target's Sign is lower than Attacker's 001849a8: 00831023 subu r2,r4,r3 r2 = AZ - TZ 001849ac: 00641023 subu r2,r3,r4 r2 = TZ - AZ 001849b0: 3042ffff andi r2,r2,0xffff 001849b4: 3c018019 lui r1,0x8019 001849b8: 00220821 addu r1,r1,r2 001849bc: 9024f600 lbu r4,-0x0a00(r1) Load Compat Modifier 001849c0: 34020003 ori r2,r0,0x0003 r2 = 3 (Opposing) 001849c4: 308300ff andi r3,r4,0x00ff r3 = Compat Modifier 001849c8: 14620015 bne r3,r2,0x00184a20 Branch if Compat Mod is not Opposing 001849cc: 00000000 nop 001849d0: 3c028019 lui r2,0x8019 001849d4: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 001849d8: 00000000 nop 001849dc: 90430006 lbu r3,0x0006(r2) Load Attacker's Gender byte 001849e0: 00000000 nop 001849e4: 30620020 andi r2,r3,0x0020 001849e8: 1440000d bne r2,r0,0x00184a20 Branch if Attacker is a Monster 001849ec: 34040001 ori r4,r0,0x0001 r4 = 1 (Bad) 001849f0: 3c028019 lui r2,0x8019 001849f4: 8c422d98 lw r2,0x2d98(r2) Load Target's Data Pointer 001849f8: 00000000 nop 001849fc: 90450006 lbu r5,0x0006(r2) Load Target's Gender byte 00184a00: 00000000 nop 00184a04: 30a20020 andi r2,r5,0x0020 00184a08: 14400005 bne r2,r0,0x00184a20 Branch if Target is a Monster 00184a0c: 306300c0 andi r3,r3,0x00c0 r3 = Attacker's Gender 00184a10: 30a200c0 andi r2,r5,0x00c0 r2 = Target's Gender 00184a14: 14620002 bne r3,r2,0x00184a20 Branch if Genders are Different 00184a18: 34040005 ori r4,r0,0x0005 r4 = 5 (Best) 00184a1c: 34040004 ori r4,r0,0x0004 r4 = 4 (Worst) 00184a20: 3c078019 lui r7,0x8019 00184a24: 24e738ce addiu r7,r7,0x38ce 00184a28: 84e20000 lh r2,0x0000(r7) Load XA 00184a2c: 00000000 nop 00184a30: 00021840 sll r3,r2,0x01 XA * 2 00184a34: 00621821 addu r3,r3,r2 XA * 3 00184a38: 000318c0 sll r3,r3,0x03 XA * 24 00184a3c: 00622821 addu r5,r3,r2 XA * 25 00184a40: 00403021 addu r6,r2,r0 r6 = XA 00184a44: 308300ff andi r3,r4,0x00ff r3 = 4 OR 5 00184a48: 34020002 ori r2,r0,0x0002 r2 = 2 00184a4c: 1062000f beq r3,r2,0x00184a8c Branch if they have Good compat 00184a50: 30a2ffff andi r2,r5,0xffff r2 = XA * 25 00184a54: 28620003 slti r2,r3,0x0003 00184a58: 10400005 beq r2,r0,0x00184a70 Branch if they have Best/Worst compat 00184a5c: 34020001 ori r2,r0,0x0001 r2 = 1 00184a60: 10620018 beq r3,r2,0x00184ac4 Branch if they have Bad compat 00184a64: 3c0351eb lui r3,0x51eb 00184a68: 080612bf j 0x00184afc 00184a6c: 00000000 nop 00184a70: 34020004 ori r2,r0,0x0004 r2 = 4 00184a74: 10620019 beq r3,r2,0x00184adc Branch if they have Worst compat 00184a78: 34020005 ori r2,r0,0x0005 r2 = 5 00184a7c: 1062000a beq r3,r2,0x00184aa8 Branch if they have Best compat 00184a80: 3c0351eb lui r3,0x51eb 00184a84: 080612bf j 0x00184afc 00184a88: 00000000 nop 00184a8c: 3c0351eb lui r3,0x51eb 00184a90: 3463851f ori r3,r3,0x851f 00184a94: 00430019 multu r2,r3 XA * 25 * 0.32 00184a98: 00001010 mfhi r2 r2 = XA * 25 * 0.32 (XA * 8) 00184a9c: 00021142 srl r2,r2,0x05 XA * 8 / 32 (XA * 25 / 100, or XA / 4) 00184aa0: 080612be j 0x00184af8 00184aa4: 00c21021 addu r2,r6,r2 r2 = XA + XA / 4 00184aa8: 3463851f ori r3,r3,0x851f 00184aac: 30a2ffff andi r2,r5,0xffff 00184ab0: 00430019 multu r2,r3 XA * 25 * 0.32 00184ab4: 00001010 mfhi r2 r2 = XA * 25 * 0.32 (XA * 8) 00184ab8: 00021102 srl r2,r2,0x04 XA * 8 / 16 (XA * 25 / 50, or XA / 2) 00184abc: 080612be j 0x00184af8 00184ac0: 00c21021 addu r2,r6,r2 r2 = XA + XA / 2 00184ac4: 3463851f ori r3,r3,0x851f 00184ac8: 30a2ffff andi r2,r5,0xffff 00184acc: 00430019 multu r2,r3 XA * 25 * 0.32 00184ad0: 00001010 mfhi r2 r2 = XA * 25 * 0.32 (XA * 8) 00184ad4: 080612bd j 0x00184af4 00184ad8: 00021142 srl r2,r2,0x05 XA * 8 / 32 (XA * 25 / 100, or XA / 4) 00184adc: 3c0351eb lui r3,0x51eb 00184ae0: 3463851f ori r3,r3,0x851f 00184ae4: 30a2ffff andi r2,r5,0xffff 00184ae8: 00430019 multu r2,r3 XA * 25 * 0.32 00184aec: 00001010 mfhi r2 r2 = XA * 25 * 0.32 (XA * 8) 00184af0: 00021102 srl r2,r2,0x04 XA * 8 / 16 (XA * 25 / 50, or XA / 2) 00184af4: 00c21023 subu r2,r6,r2 XA - XA / 4 OR 2 00184af8: a4e20000 sh r2,0x0000(r7) Store new XA 00184afc: 3c038019 lui r3,0x8019 00184b00: 246338ce addiu r3,r3,0x38ce 00184b04: 84620000 lh r2,0x0000(r3) Load XA 00184b08: 00000000 nop 00184b0c: 1c400002 bgtz r2,0x00184b18 Branch if XA is positive 00184b10: 34020001 ori r2,r0,0x0001 r2 = 1 00184b14: a4620000 sh r2,0x0000(r3) Store XA = 1 00184b18: 27bd0008 addiu r29,r29,0x0008 00184b1c: 03e00008 jr r31 00184b20: 00000000 nop Elemental Nullification 00184e40: 3c028019 lui r2,0x8019 00184e44: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 00184e48: 27bdffe8 addiu r29,r29,0xffe8 00184e4c: afbf0010 sw r31,0x0010(r29) 00184e50: a0400000 sb r0,0x0000(r2) Store Unable to Hit Flag 00184e54: 3c038019 lui r3,0x8019 00184e58: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00184e5c: 34020005 ori r2,r0,0x0005 r2 = 5 00184e60: a0620002 sb r2,0x0002(r3) Store ? 00184e64: 3c028019 lui r2,0x8019 00184e68: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 00184e6c: a4600004 sh r0,0x0004(r3) Store HP Damage = 0 00184e70: a460002a sh r0,0x002a(r3) Store Hit% = 0 00184e74: a4600010 sh r0,0x0010(r3) Store ? = 0 00184e78: 0c062f3c jal 0x0018bcf0 Nullification Process? 00184e7c: a0400025 sb r0,0x0025(r2) Store cleared Attack Type Flags 00184e80: 0c062f4d jal 0x0018bd34 ? (checks something to prevent attacking) 00184e84: 00000000 nop 00184e88: 8fbf0010 lw r31,0x0010(r29) 00184e8c: 27bd0018 addiu r29,r29,0x0018 00184e90: 03e00008 jr r31 00184e94: 00000000 nop Elemental Damage Modification (Halve, Null, Absorb, Weak) (r4 = Weapon's Element) 00184e98: 3c028019 lui r2,0x8019 00184e9c: 8c422d98 lw r2,0x2d98(r2) Load Target Data Pointer 00184ea0: 27bdffe8 addiu r29,r29,0xffe8 00184ea4: afbf0010 sw r31,0x0010(r29) 00184ea8: 9042006d lbu r2,0x006d(r2) Load Target's Elemental Absorption 00184eac: 00802821 addu r5,r4,r0 r5 = Weapon's Element 00184eb0: 00451024 and r2,r2,r5 00184eb4: 10400008 beq r2,r0,0x00184ed8 Branch if Weapon's Element is not absorbed 00184eb8: 00000000 nop 00184ebc: 3c038019 lui r3,0x8019 00184ec0: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00184ec4: 00000000 nop 00184ec8: 94620010 lhu r2,0x0010(r3) Load ? 00184ecc: 00000000 nop 00184ed0: 34420400 ori r2,r2,0x0400 Enable 0x04 Flag 00184ed4: a4620010 sh r2,0x0010(r3) Store ? 00184ed8: 3c038019 lui r3,0x8019 00184edc: 8c632d98 lw r3,0x2d98(r3) Load Target Data Pointer 00184ee0: 00000000 nop 00184ee4: 9062006e lbu r2,0x006e(r3) Load Target's Elemental Nullification 00184ee8: 00000000 nop 00184eec: 00451024 and r2,r2,r5 00184ef0: 10400005 beq r2,r0,0x00184f08 Branch if Weapon's Element is not Nullified 00184ef4: 00000000 nop 00184ef8: 0c061390 jal 0x00184e40 Element Nullification 00184efc: 00000000 nop 00184f00: 080613e3 j 0x00184f8c 00184f04: 00000000 nop 00184f08: 9062006f lbu r2,0x006f(r3) Load Target's Elemental Halving 00184f0c: 00000000 nop 00184f10: 00451024 and r2,r2,r5 00184f14: 1040000c beq r2,r0,0x00184f48 Branch if Weapon's Element is not Halved 00184f18: 00000000 nop 00184f1c: 3c028019 lui r2,0x8019 00184f20: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 00184f24: 00000000 nop 00184f28: 94430004 lhu r3,0x0004(r2) Load HP Damage 00184f2c: 00000000 nop 00184f30: 00031c00 sll r3,r3,0x10 HP Damage * 65536 00184f34: 00032403 sra r4,r3,0x10 HP Damage * 65536 / 65536... 00184f38: 00031fc2 srl r3,r3,0x1f 00184f3c: 00832021 addu r4,r4,r3 00184f40: 00042043 sra r4,r4,0x01 HP Damage / 2 00184f44: a4440004 sh r4,0x0004(r2) Store new HP Damage 00184f48: 3c028019 lui r2,0x8019 00184f4c: 8c422d98 lw r2,0x2d98(r2) Load Target Data Pointer 00184f50: 00000000 nop 00184f54: 90420070 lbu r2,0x0070(r2) Load Target's Elemental Weakness 00184f58: 00000000 nop 00184f5c: 00451024 and r2,r2,r5 00184f60: 1040000a beq r2,r0,0x00184f8c Branch if Weapon's Element is not a Weakness 00184f64: 00000000 nop 00184f68: 3c028019 lui r2,0x8019 00184f6c: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 00184f70: 00000000 nop 00184f74: 94430010 lhu r3,0x0010(r2) Load ? 00184f78: 84440004 lh r4,0x0004(r2) Load HP Damage 00184f7c: 34630800 ori r3,r3,0x0800 Enable 0x08 Flag 00184f80: 00042040 sll r4,r4,0x01 HP Damage * 2 00184f84: a4430010 sh r3,0x0010(r2) Store ? 00184f88: a4440004 sh r4,0x0004(r2) Store new HP Damage 00184f8c: 8fbf0010 lw r31,0x0010(r29) 00184f90: 27bd0018 addiu r29,r29,0x0018 00184f94: 03e00008 jr r31 00184f98: 00000000 nop Equipment Evasion Setting (Physical) 00184f9c: 3c048019 lui r4,0x8019 00184fa0: 8c842d98 lw r4,0x2d98(r4) Load Target Data Pointer 00184fa4: 27bdffe8 addiu r29,r29,0xffe8 00184fa8: afbf0010 sw r31,0x0010(r29) 00184fac: 9082008e lbu r2,0x008e(r4) Load 4th set of Reactions (Target) 00184fb0: 00000000 nop 00184fb4: 30420040 andi r2,r2,0x0040 00184fb8: 10400004 beq r2,r0,0x00184fcc Branch if No Weapon Guard 00184fbc: 00003821 addu r7,r0,r0 00184fc0: 0c0604c3 jal 0x0018130c Weapon Guard Usability 00184fc4: 00000000 nop 00184fc8: 2c470001 sltiu r7,r2,0x0001 r7 = 1 if able to use WG 00184fcc: 3c048019 lui r4,0x8019 00184fd0: 8c842d98 lw r4,0x2d98(r4) Load Target Data Pointer 00184fd4: 34020064 ori r2,r0,0x0064 r2 = 100 (Base Hit) 00184fd8: 3c018019 lui r1,0x8019 00184fdc: a02238dc sb r2,0x38dc(r1) Base Hit Rate = 100 00184fe0: 3c018019 lui r1,0x8019 00184fe4: a02038de sb r0,0x38de(r1) Accessory Evade = 0 00184fe8: 3c018019 lui r1,0x8019 00184fec: a02038df sb r0,0x38df(r1) Weapon Evade = 0 00184ff0: 3c018019 lui r1,0x8019 00184ff4: a02038e0 sb r0,0x38e0(r1) Shield Evade = 0 00184ff8: 90820043 lbu r2,0x0043(r4) Load Character's Class Evade 00184ffc: 3c018019 lui r1,0x8019 00185000: a02238e1 sb r2,0x38e1(r1) Store Class Evade 00185004: 90820006 lbu r2,0x0006(r4) Load Target's Gender 00185008: 00000000 nop 0018500c: 30420020 andi r2,r2,0x0020 00185010: 14400068 bne r2,r0,0x001851b4 Branch if Target is a Monster 00185014: 00000000 nop 00185018: 9082001c lbu r2,0x001c(r4) Load Target's Accessory ID 0018501c: 00000000 nop 00185020: 00021840 sll r3,r2,0x01 Acc. ID * 2 00185024: 00621821 addu r3,r3,r2 Acc. ID * 3 00185028: 00031880 sll r3,r3,0x02 Acc. ID * 12 0018502c: 3c018006 lui r1,0x8006 00185030: 00230821 addu r1,r1,r3 00185034: 90252ebb lbu r5,0x2ebb(r1) Load Accessory's Equipment Type 00185038: 00000000 nop 0018503c: 30a20008 andi r2,r5,0x0008 00185040: 1040000b beq r2,r0,0x00185070 Branch if Accessory isn't an Accessory 00185044: 00000000 nop 00185048: 3c018006 lui r1,0x8006 0018504c: 00230821 addu r1,r1,r3 00185050: 90222ebc lbu r2,0x2ebc(r1) Load Accessory's Second Table ID 00185054: 00000000 nop 00185058: 00021040 sll r2,r2,0x01 Acc. ID * 2 0018505c: 3c018006 lui r1,0x8006 00185060: 00220821 addu r1,r1,r2 00185064: 90223f58 lbu r2,0x3f58(r1) Load Accessory's Evade 00185068: 3c018019 lui r1,0x8019 0018506c: a02238de sb r2,0x38de(r1) Store Accessory's Evade 00185070: 9083001d lbu r3,0x001d(r4) Load Target's RH Weapon 00185074: 00000000 nop 00185078: 00031040 sll r2,r3,0x01 RHW ID * 2 0018507c: 00431021 addu r2,r2,r3 RHW ID * 3 00185080: 00021080 sll r2,r2,0x02 RHW ID * 12 00185084: 3c018006 lui r1,0x8006 00185088: 00220821 addu r1,r1,r2 0018508c: 90252ebb lbu r5,0x2ebb(r1) Load RH Weapon's Equipment Type 00185090: 9083001e lbu r3,0x001e(r4) Load Target's RH Shield ID 00185094: 3c018006 lui r1,0x8006 00185098: 00220821 addu r1,r1,r2 0018509c: 90242ebc lbu r4,0x2ebc(r1) Load RH Weapon's Second Table ID 001850a0: 00031040 sll r2,r3,0x01 RHS ID * 2 001850a4: 00431021 addu r2,r2,r3 RHS ID * 3 001850a8: 00021080 sll r2,r2,0x02 RHS ID * 12 001850ac: 3c018006 lui r1,0x8006 001850b0: 00220821 addu r1,r1,r2 001850b4: 90232ebb lbu r3,0x2ebb(r1) Load RH Shield's Equipment Type 001850b8: 3c018006 lui r1,0x8006 001850bc: 00220821 addu r1,r1,r2 001850c0: 90262ebc lbu r6,0x2ebc(r1) Load RH Shield's Second Table ID 001850c4: 30a20080 andi r2,r5,0x0080 001850c8: 10400008 beq r2,r0,0x001850ec Branch if RH Weapon is not a Weapon 001850cc: 00000000 nop 001850d0: 10e00006 beq r7,r0,0x001850ec Branch if unable to use Weapon Guard 001850d4: 000410c0 sll r2,r4,0x03 RHW ID * 8 001850d8: 3c018006 lui r1,0x8006 001850dc: 00220821 addu r1,r1,r2 001850e0: 90223abd lbu r2,0x3abd(r1) Load RH Weapon's Evade 001850e4: 08061441 j 0x00185104 Jumps past RH Shield section 001850e8: 00000000 nop 001850ec: 30620040 andi r2,r3,0x0040 001850f0: 10400006 beq r2,r0,0x0018510c Branch if RH Shield is not a Shield 001850f4: 00061040 sll r2,r6,0x01 RHS ID * 2 001850f8: 3c018006 lui r1,0x8006 001850fc: 00220821 addu r1,r1,r2 00185100: 90223eb8 lbu r2,0x3eb8(r1) Load RH Shield's Evade 00185104: 3c018019 lui r1,0x8019 00185108: a02238df sb r2,0x38df(r1) Store RH Equipment's Evade 0018510c: 3c048019 lui r4,0x8019 00185110: 8c842d98 lw r4,0x2d98(r4) Load Target's Data Pointer 00185114: 00000000 nop 00185118: 9083001f lbu r3,0x001f(r4) Load LH Weapon ID 0018511c: 00000000 nop 00185120: 00031040 sll r2,r3,0x01 LHW ID * 2 00185124: 00431021 addu r2,r2,r3 LHW ID * 3 00185128: 00021080 sll r2,r2,0x02 LHW ID * 12 0018512c: 3c018006 lui r1,0x8006 00185130: 00220821 addu r1,r1,r2 00185134: 90252ebb lbu r5,0x2ebb(r1) Load LH Weapon's Equipment Type 00185138: 90830020 lbu r3,0x0020(r4) Load LH Shield ID 0018513c: 3c018006 lui r1,0x8006 00185140: 00220821 addu r1,r1,r2 00185144: 90242ebc lbu r4,0x2ebc(r1) Load LH Weapon's Second Table ID 00185148: 00031040 sll r2,r3,0x01 LHS ID * 2 0018514c: 00431021 addu r2,r2,r3 LHS ID * 3 00185150: 00021080 sll r2,r2,0x02 LHS ID * 12 00185154: 3c018006 lui r1,0x8006 00185158: 00220821 addu r1,r1,r2 0018515c: 90232ebb lbu r3,0x2ebb(r1) Load LH Shield's Equipment Type 00185160: 3c018006 lui r1,0x8006 00185164: 00220821 addu r1,r1,r2 00185168: 90262ebc lbu r6,0x2ebc(r1) Load LH Shield's Second Table ID 0018516c: 30a20080 andi r2,r5,0x0080 00185170: 10400008 beq r2,r0,0x00185194 Branch if LH Weapon is not a Weapon 00185174: 00000000 nop 00185178: 10e00006 beq r7,r0,0x00185194 Branch if unable to use Weapon Guard 0018517c: 000410c0 sll r2,r4,0x03 LHW ID * 8 00185180: 3c018006 lui r1,0x8006 00185184: 00220821 addu r1,r1,r2 00185188: 90223abd lbu r2,0x3abd(r1) Load LH Weapon's Evade 0018518c: 0806146b j 0x001851ac Jumps past LH Shield section 00185190: 00000000 nop 00185194: 30620040 andi r2,r3,0x0040 00185198: 10400006 beq r2,r0,0x001851b4 Branch if LH Shield is not a Shield 0018519c: 00061040 sll r2,r6,0x01 LHS ID * 2 001851a0: 3c018006 lui r1,0x8006 001851a4: 00220821 addu r1,r1,r2 001851a8: 90223eb8 lbu r2,0x3eb8(r1) Load LH Sheild Evade 001851ac: 3c018019 lui r1,0x8019 001851b0: a02238e0 sb r2,0x38e0(r1) Store LH Equipment's Evade 001851b4: 8fbf0010 lw r31,0x0010(r29) 001851b8: 27bd0018 addiu r29,r29,0x0018 001851bc: 03e00008 jr r31 001851c0: 00000000 nop Equipment Evasion Setting (Magical): 001851c4: 3c048019 lui r4,0x8019 001851c8: 8c842d98 lw r4,0x2d98(r4) 001851cc: 34020064 ori r2,r0,0x0064 r2 = 100 001851d0: 3c018019 lui r1,0x8019 001851d4: a02238dc sb r2,0x38dc(r1) 001851d8: 3c018019 lui r1,0x8019 001851dc: a02038de sb r0,0x38de(r1) 001851e0: 3c018019 lui r1,0x8019 001851e4: a02038df sb r0,0x38df(r1) 001851e8: 3c018019 lui r1,0x8019 001851ec: a02038e0 sb r0,0x38e0(r1) 001851f0: 3c018019 lui r1,0x8019 001851f4: a02038e1 sb r0,0x38e1(r1) 001851f8: 90820006 lbu r2,0x0006(r4) Load Defender's Gender 001851fc: 00000000 nop 00185200: 30420020 andi r2,r2,0x0020 00185204: 14400035 bne r2,r0,0x001852dc Branch if a Monster 00185208: 00000000 nop 0018520c: 9082001c lbu r2,0x001c(r4) Load Defender's Accessory 00185210: 3c058006 lui r5,0x8006 00185214: 24a52eb8 addiu r5,r5,0x2eb8 00185218: 00021840 sll r3,r2,0x01 0018521c: 00621821 addu r3,r3,r2 00185220: 00031880 sll r3,r3,0x02 00185224: 00651821 addu r3,r3,r5 00185228: 90620003 lbu r2,0x0003(r3) Load Equipped Item's Item Type 0018522c: 00000000 nop 00185230: 30420008 andi r2,r2,0x0008 00185234: 10400009 beq r2,r0,0x0018525c Branch if Accessory isn't an accessory 00185238: 00000000 nop 0018523c: 90620004 lbu r2,0x0004(r3) Load Accessory's Second Table ID 00185240: 00000000 nop 00185244: 00021040 sll r2,r2,0x01 00185248: 3c018006 lui r1,0x8006 0018524c: 00220821 addu r1,r1,r2 00185250: 90223f59 lbu r2,0x3f59(r1) Load Accessory Magic Evade 00185254: 3c018019 lui r1,0x8019 00185258: a02238de sb r2,0x38de(r1) 0018525c: 9082001e lbu r2,0x001e(r4) Load Right Hand Shield 00185260: 00000000 nop 00185264: 00021840 sll r3,r2,0x01 00185268: 00621821 addu r3,r3,r2 0018526c: 00031880 sll r3,r3,0x02 00185270: 00651821 addu r3,r3,r5 00185274: 90620003 lbu r2,0x0003(r3) Load Equipped Item's Item Type 00185278: 90630004 lbu r3,0x0004(r3) Load Item's Second Table 0018527c: 30420040 andi r2,r2,0x0040 00185280: 10400006 beq r2,r0,0x0018529c Branch if Equipped Item isn't a Shield 00185284: 00031040 sll r2,r3,0x01 00185288: 3c018006 lui r1,0x8006 0018528c: 00220821 addu r1,r1,r2 00185290: 90223eb9 lbu r2,0x3eb9(r1) Load Shield's Magical Evade 00185294: 3c018019 lui r1,0x8019 00185298: a02238df sb r2,0x38df(r1) 0018529c: 90820020 lbu r2,0x0020(r4) Load Left Hand Shield 001852a0: 00000000 nop 001852a4: 00021840 sll r3,r2,0x01 001852a8: 00621821 addu r3,r3,r2 001852ac: 00031880 sll r3,r3,0x02 001852b0: 00651821 addu r3,r3,r5 001852b4: 90620003 lbu r2,0x0003(r3) Load Equipped Item's Item Type 001852b8: 90630004 lbu r3,0x0004(r3) Load Item's Second Table 001852bc: 30420040 andi r2,r2,0x0040 001852c0: 10400006 beq r2,r0,0x001852dc Branch if equipped item is not a Shield 001852c4: 00031040 sll r2,r3,0x01 001852c8: 3c018006 lui r1,0x8006 001852cc: 00220821 addu r1,r1,r2 001852d0: 90223eb9 lbu r2,0x3eb9(r1) Load Shield's Magical Evade 001852d4: 3c018019 lui r1,0x8019 001852d8: a02238e0 sb r2,0x38e0(r1) 001852dc: 03e00008 jr r31 001852e0: 00000000 nop Concentrate Calculation 001852e4: 3c028019 lui r2,0x8019 001852e8: 8c422d94 lw r2,0x2d94(r2) Load Attacker Data Pointer 001852ec: 27bdffe8 addiu r29,r29,0xffe8 001852f0: afbf0010 sw r31,0x0010(r29) 001852f4: 90420090 lbu r2,0x0090(r2) Load Attacker's 2nd set of Support 001852f8: 00000000 nop 001852fc: 30420001 andi r2,r2,0x0001 00185300: 10400005 beq r2,r0,0x00185318 Branch if Attacker Doesn't have Concentrate 00185304: 00000000 nop 00185308: 3c048019 lui r4,0x8019 0018530c: 248438de addiu r4,r4,0x38de prep Evade Pointer 00185310: 0c017991 jal 0x0005e644 Data Nullifying (Evade) 00185314: 34050004 ori r5,r0,0x0004 r5 = 4 (all 4 evades) 00185318: 8fbf0010 lw r31,0x0010(r29) 0018531c: 27bd0018 addiu r29,r29,0x0018 00185320: 03e00008 jr r31 00185324: 00000000 nop Dark/Confuse Caclulation 00185328: 3c028019 lui r2,0x8019 0018532c: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 00185330: 27bdffe8 addiu r29,r29,0xffe8 00185334: afbf0010 sw r31,0x0010(r29) 00185338: 90420059 lbu r2,0x0059(r2) Load Attacker's 2nd set of statuses 0018533c: 00000000 nop 00185340: 30420030 andi r2,r2,0x0030 00185344: 10400007 beq r2,r0,0x00185364 Branch if Attacker isn't Confused/Blind 00185348: 00000000 nop 0018534c: 3c038019 lui r3,0x8019 00185350: 246338dc addiu r3,r3,0x38dc 00185354: 90620000 lbu r2,0x0000(r3) Load Base Hit 00185358: 00000000 nop 0018535c: 00021042 srl r2,r2,0x01 Base Hit / 2 00185360: a0620000 sb r2,0x0000(r3) Store new Hit % 00185364: 0c06152e jal 0x001854b8 Transparent Calculation 00185368: 00000000 nop 0018536c: 8fbf0010 lw r31,0x0010(r29) 00185370: 27bd0018 addiu r29,r29,0x0018 00185374: 03e00008 jr r31 00185378: 00000000 nop Abandon Calculation 0018537c: 3c048019 lui r4,0x8019 00185380: 8c842d98 lw r4,0x2d98(r4) Load Target's Data Pointer 00185384: 27bdffe8 addiu r29,r29,0xffe8 00185388: afbf0010 sw r31,0x0010(r29) 0018538c: 0c0604c3 jal 0x0018130c Weapon Guard Usability 00185390: 00000000 nop 00185394: 14400013 bne r2,r0,0x001853e4 Branch if Target can't use Weapon Guard 00185398: 00000000 nop 0018539c: 3c028019 lui r2,0x8019 001853a0: 8c422d98 lw r2,0x2d98(r2) Load Target's Data Pointer 001853a4: 00000000 nop 001853a8: 9042008e lbu r2,0x008e(r2) Load Target's 4th set of Reactions 001853ac: 00000000 nop 001853b0: 30420010 andi r2,r2,0x0010 001853b4: 1040000b beq r2,r0,0x001853e4 Branch if Target doesn't have Abandon 001853b8: 00000000 nop 001853bc: 3c038019 lui r3,0x8019 001853c0: 246338dc addiu r3,r3,0x38dc 001853c4: 90620000 lbu r2,0x0000(r3) Load Base Hit 001853c8: 00000000 nop 001853cc: 00021042 srl r2,r2,0x01 Base Hit / 2 001853d0: a0620000 sb r2,0x0000(r3) Store new Hit% 001853d4: 3c038019 lui r3,0x8019 001853d8: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 001853dc: 340201c1 ori r2,r0,0x01c1 001853e0: a462000e sh r2,0x000e(r3) Store Reaction = Abandon 001853e4: 8fbf0010 lw r31,0x0010(r29) 001853e8: 27bd0018 addiu r29,r29,0x0018 001853ec: 03e00008 jr r31 001853f0: 00000000 nop Evasion Changes due to Statuses 001853f4: 3c058019 lui r5,0x8019 001853f8: 8ca52d98 lw r5,0x2d98(r5) Load Target's Data Pointer 001853fc: 27bdffe8 addiu r29,r29,0xffe8 00185400: afbf0010 sw r31,0x0010(r29) 00185404: 90a2005c lbu r2,0x005c(r5) Load Target's 5th set of statuses 00185408: 90a3005b lbu r3,0x005b(r5) Load Target's 4th set of statuses 0018540c: 30420014 andi r2,r2,0x0014 Check for Don't Act/Sleep 00185410: 0002102b sltu r2,r0,r2 r2 = 1 if Target has either 00185414: 30630002 andi r3,r3,0x0002 00185418: 10600002 beq r3,r0,0x00185424 Branch if Target doesn't have Stop 0018541c: 00402021 addu r4,r2,r0 r4 = DA/Sleep check result 00185420: 34040001 ori r4,r0,0x0001 r4 = 1 00185424: 90a20059 lbu r2,0x0059(r5) Load Target's 2nd set of statuses 00185428: 00000000 nop 0018542c: 30420010 andi r2,r2,0x0010 00185430: 10400002 beq r2,r0,0x0018543c Branch if Target doesn't have Confuse 00185434: 00000000 nop 00185438: 34040001 ori r4,r0,0x0001 r4 = 1 0018543c: 90a20058 lbu r2,0x0058(r5) Load Target's 1st set of statuses 00185440: 00000000 nop 00185444: 30420009 andi r2,r2,0x0009 00185448: 10400003 beq r2,r0,0x00185458 Branch if Target doesn't have Perform/Charging 0018544c: 308200ff andi r2,r4,0x00ff 00185450: 34040001 ori r4,r0,0x0001 r4 = 1 00185454: 308200ff andi r2,r4,0x00ff r2 = status checking result 00185458: 10400005 beq r2,r0,0x00185470 Branch if Target doesn't have the above statuses 0018545c: 00000000 nop 00185460: 3c048019 lui r4,0x8019 00185464: 248438de addiu r4,r4,0x38de prep Evade Pointer 00185468: 0c017991 jal 0x0005e644 Data Nullification (Evade) 0018546c: 34050004 ori r5,r0,0x0004 r5 = 4 (all 4 evades) 00185470: 3c028019 lui r2,0x8019 00185474: 8c422d98 lw r2,0x2d98(r2) Load Target's Data Pointer 00185478: 00000000 nop 0018547c: 90420058 lbu r2,0x0058(r2) Load Target's 1st set of statuses 00185480: 00000000 nop 00185484: 30420002 andi r2,r2,0x0002 00185488: 10400007 beq r2,r0,0x001854a8 Branch if Target is not Defending 0018548c: 00000000 nop 00185490: 3c038019 lui r3,0x8019 00185494: 246338dc addiu r3,r3,0x38dc 00185498: 90620000 lbu r2,0x0000(r3) Load Base Hit 0018549c: 00000000 nop 001854a0: 00021042 srl r2,r2,0x01 Base Hit / 2 001854a4: a0620000 sb r2,0x0000(r3) Store new Hit% 001854a8: 8fbf0010 lw r31,0x0010(r29) 001854ac: 27bd0018 addiu r29,r29,0x0018 001854b0: 03e00008 jr r31 001854b4: 00000000 nop Transparent Calculation 001854b8: 3c028019 lui r2,0x8019 001854bc: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 001854c0: 27bdffe8 addiu r29,r29,0xffe8 001854c4: afbf0010 sw r31,0x0010(r29) 001854c8: 9042005a lbu r2,0x005a(r2) Load Attacker's 3rd set of statuses 001854cc: 00000000 nop 001854d0: 30420010 andi r2,r2,0x0010 001854d4: 10400005 beq r2,r0,0x001854ec Branch if Attacker isn't Transparent 001854d8: 00000000 nop 001854dc: 3c048019 lui r4,0x8019 001854e0: 248438de addiu r4,r4,0x38de Prep Evade Pointer 001854e4: 0c017991 jal 0x0005e644 Data Nulling (evade) 001854e8: 34050004 ori r5,r0,0x0004 r5 = 4 (all 4 evades) 001854ec: 8fbf0010 lw r31,0x0010(r29) 001854f0: 27bd0018 addiu r29,r29,0x0018 001854f4: 03e00008 jr r31 001854f8: 00000000 nop Facing Evade Calculation 001854fc: 3c058019 lui r5,0x8019 00185500: 8ca52d98 lw r5,0x2d98(r5) Load Target's Data Pointer 00185504: 3c048019 lui r4,0x8019 00185508: 8c842d94 lw r4,0x2d94(r4) Load Attacker's Data Pointer 0018550c: 90a30047 lbu r3,0x0047(r5) Load Target's X Coordinate 00185510: 90820047 lbu r2,0x0047(r4) Load Attacker's X Coordinate 00185514: 00000000 nop 00185518: 00624023 subu r8,r3,r2 r8 = TX - AX 0018551c: 90820048 lbu r2,0x0048(r4) Load Attacker's Y Coordinate 00185520: 05010002 bgez r8,0x0018552c Branch if TX >= AX 00185524: 01002021 addu r4,r8,r0 r4 = TX - AX 00185528: 00042023 subu r4,r0,r4 r4 = AX - TX 0018552c: 90a30048 lbu r3,0x0048(r5) Load Target's Y Coordinate 00185530: 308400ff andi r4,r4,0x00ff r4 = X Difference 00185534: 00623823 subu r7,r3,r2 r7 = TY - AY 00185538: 04e10002 bgez r7,0x00185544 Branch if TY > AY 0018553c: 00e01021 addu r2,r7,r0 r2 = TY - AY 00185540: 00021023 subu r2,r0,r2 r2 = AY - TY 00185544: 304300ff andi r3,r2,0x00ff r3 = Y Difference 00185548: 0064102b sltu r2,r3,r4 0018554c: 1040001d beq r2,r0,0x001855c4 Branch if Y Difference >= X Difference 00185550: 34060001 ori r6,r0,0x0001 r6 = 1 (Side) 00185554: 1900000c blez r8,0x00185588 Branch if TX <= AX 00185558: 00000000 nop 0018555c: 94a20048 lhu r2,0x0048(r5) Load Target's Y + Facing 00185560: 00000000 nop 00185564: 30430f00 andi r3,r2,0x0f00 Leave only Target's Facing 00185568: 34020100 ori r2,r0,0x0100 0018556c: 14620003 bne r3,r2,0x0018557c Branch if Target isn't facing West 00185570: 34020300 ori r2,r0,0x0300 00185574: 08061562 j 0x00185588 Jump past remaining direction checks 00185578: 00003021 addu r6,r0,r0 r6 = 0 (Front) 0018557c: 14620002 bne r3,r2,0x00185588 Branch if Target isn't facing East 00185580: 00000000 nop 00185584: 34060002 ori r6,r0,0x0002 r6 = 2 (Back) 00185588: 05010058 bgez r8,0x001856ec Branch if TX >= AX (TX = AX) 0018558c: 00000000 nop 00185590: 3c028019 lui r2,0x8019 00185594: 8c422d98 lw r2,0x2d98(r2) Load Target's Data Pointer 00185598: 00000000 nop 0018559c: 94420048 lhu r2,0x0048(r2) Load Target's Y + Facing 001855a0: 00000000 nop 001855a4: 30430f00 andi r3,r2,0x0f00 Leave only Facing 001855a8: 34020300 ori r2,r0,0x0300 001855ac: 10620048 beq r3,r2,0x001856d0 Branch if Target is facing East 001855b0: 34020100 ori r2,r0,0x0100 001855b4: 1462004d bne r3,r2,0x001856ec Branch if Target is not facing West 001855b8: 00000000 nop 001855bc: 080615bb j 0x001856ec Jump past Y direction checks 001855c0: 34060002 ori r6,r0,0x0002 r6 = 2 (Back) 001855c4: 0083102b sltu r2,r4,r3 001855c8: 1040001c beq r2,r0,0x0018563c Branch if X Difference >= Y Difference (X = Y) 001855cc: 00000000 nop 001855d0: 18e0000b blez r7,0x00185600 Branch if TY <= AY 001855d4: 00000000 nop 001855d8: 94a20048 lhu r2,0x0048(r5) Load Target's Y + Facing 001855dc: 00000000 nop 001855e0: 30430f00 andi r3,r2,0x0f00 Leave only Facing 001855e4: 14600003 bne r3,r0,0x001855f4 Branch if Target is not facing South 001855e8: 34020200 ori r2,r0,0x0200 001855ec: 08061580 j 0x00185600 Jump past remaining facing checks 001855f0: 00003021 addu r6,r0,r0 r6 = 0 (Front) 001855f4: 14620002 bne r3,r2,0x00185600 Branch if Target is not facing North 001855f8: 00000000 nop 001855fc: 34060002 ori r6,r0,0x0002 r6 = 2 (Back) 00185600: 04e1003a bgez r7,0x001856ec Branch if TY >= AY (TY = AY) 00185604: 00000000 nop 00185608: 3c028019 lui r2,0x8019 0018560c: 8c422d98 lw r2,0x2d98(r2) Load Target's Data Pointer 00185610: 00000000 nop 00185614: 94420048 lhu r2,0x0048(r2) Load Target's Y + Facing 00185618: 00000000 nop 0018561c: 30430f00 andi r3,r2,0x0f00 Leave only Facing 00185620: 34020200 ori r2,r0,0x0200 00185624: 1062002a beq r3,r2,0x001856d0 Branch if Target is facing North 00185628: 00000000 nop 0018562c: 1460002f bne r3,r0,0x001856ec Branch if Target is not facing South 00185630: 00000000 nop 00185634: 080615bb j 0x001856ec 00185638: 34060002 ori r6,r0,0x0002 r6 = 2 (Back) 0018563c: 19000006 blez r8,0x00185658 Branch if TX <= AX 00185640: 34030100 ori r3,r0,0x0100 00185644: 94a20048 lhu r2,0x0048(r5) Load Target's Y + Facing 00185648: 00000000 nop 0018564c: 30420f00 andi r2,r2,0x0f00 Leave only Facing 00185650: 1043001f beq r2,r3,0x001856d0 Branch if Target is facing West 00185654: 00000000 nop 00185658: 05010009 bgez r8,0x00185680 Branch if TX >= AX 0018565c: 34030300 ori r3,r0,0x0300 00185660: 3c028019 lui r2,0x8019 00185664: 8c422d98 lw r2,0x2d98(r2) Load Target Pointer 00185668: 00000000 nop 0018566c: 94420048 lhu r2,0x0048(r2) Load Target's Y + Facing 00185670: 00000000 nop 00185674: 30420f00 andi r2,r2,0x0f00 Leave only Facing 00185678: 10430015 beq r2,r3,0x001856d0 Branch if Target is facing East 0018567c: 00000000 nop 00185680: 18e00009 blez r7,0x001856a8 Branch if TY <= AY 00185684: 00000000 nop 00185688: 3c028019 lui r2,0x8019 0018568c: 8c422d98 lw r2,0x2d98(r2) Load Target Pointer 00185690: 00000000 nop 00185694: 94420048 lhu r2,0x0048(r2) Load Target's Y + Facing 00185698: 00000000 nop 0018569c: 30420f00 andi r2,r2,0x0f00 Leave only Facing 001856a0: 1040000b beq r2,r0,0x001856d0 Branch if Facing South 001856a4: 00000000 nop 001856a8: 04e1000b bgez r7,0x001856d8 Branch if TY >= AY 001856ac: 34030200 ori r3,r0,0x0200 001856b0: 3c028019 lui r2,0x8019 001856b4: 8c422d98 lw r2,0x2d98(r2) Load Target Pointer 001856b8: 00000000 nop 001856bc: 94420048 lhu r2,0x0048(r2) Load Target's Y + Facing 001856c0: 00000000 nop 001856c4: 30420f00 andi r2,r2,0x0f00 Leave only Facing 001856c8: 14430003 bne r2,r3,0x001856d8 Branch if Target is not facing North 001856cc: 00000000 nop 001856d0: 080615bb j 0x001856ec 001856d4: 00003021 addu r6,r0,r0 r6 = 0 (Front) 001856d8: 15000004 bne r8,r0,0x001856ec Branch if TX - AX is not 0 001856dc: 00000000 nop 001856e0: 14e00002 bne r7,r0,0x001856ec Branch if TY - AY is not 0 001856e4: 00000000 nop 001856e8: 34060002 ori r6,r0,0x0002 r6 = 2 (Back) 001856ec: 3c038019 lui r3,0x8019 001856f0: 246338e2 addiu r3,r3,0x38e2 001856f4: a0660000 sb r6,0x0000(r3) Store Facing Mod 001856f8: 90620000 lbu r2,0x0000(r3) Load Facing Mod >_> 001856fc: 00000000 nop 00185700: 10400003 beq r2,r0,0x00185710 Branch if Facing Mod = 0 (Facing Front) 00185704: 00000000 nop 00185708: 3c018019 lui r1,0x8019 0018570c: a02038e1 sb r0,0x38e1(r1) Class Evade = 0 00185710: 90630000 lbu r3,0x0000(r3) Load Facing Mod 00185714: 34020002 ori r2,r0,0x0002 00185718: 14620005 bne r3,r2,0x00185730 Branch if Facing Mod != 2 (not facing Back) 0018571c: 00000000 nop 00185720: 3c018019 lui r1,0x8019 00185724: a02038df sb r0,0x38df(r1) Weapon Evade = 0 00185728: 3c018019 lui r1,0x8019 0018572c: a02038e0 sb r0,0x38e0(r1) Shield Evade = 0 00185730: 03e00008 jr r31 00185734: 00000000 nop Weather effects on Bows/Crossbows 00185738: 3c028019 lui r2,0x8019 0018573c: 904238d8 lbu r2,0x38d8(r2) Load Used Weapon ID 00185740: 27bdffe8 addiu r29,r29,0xffe8 00185744: afbf0014 sw r31,0x0014(r29) 00185748: afb00010 sw r16,0x0010(r29) 0018574c: 00021840 sll r3,r2,0x01 ID * 2 00185750: 00621821 addu r3,r3,r2 ID * 3 00185754: 00031880 sll r3,r3,0x02 ID * 12 00185758: 3c018006 lui r1,0x8006 0018575c: 00230821 addu r1,r1,r3 00185760: 90222ebd lbu r2,0x2ebd(r1) Load Used Weapon Item Type 00185764: 00000000 nop 00185768: 2442fff5 addiu r2,r2,0xfff5 Type - 11 (0xfff6 and below 0x0003 for guns) 0018576c: 2c420002 sltiu r2,r2,0x0002 Check for Crossbows/Bows 00185770: 10400023 beq r2,r0,0x00185800 Branch if weapon is not a Crossbow/Bow 00185774: 00000000 nop 00185778: 0c04ed64 jal 0x0013b590 ? 0018577c: 34040023 ori r4,r0,0x0023 r4 = 0x23 00185780: 34040024 ori r4,r0,0x0024 r4 = 0x24 00185784: 0c04ed64 jal 0x0013b590 ? 00185788: 00408021 addu r16,r2,r0 Weather ID? 0018578c: 34030001 ori r3,r0,0x0001 00185790: 1443000d bne r2,r3,0x001857c8 Branch if not night time? 00185794: 2602fffd addiu r2,r16,0xfffd Weather ID? - 3 00185798: 3c038019 lui r3,0x8019 0018579c: 906338dc lbu r3,0x38dc(r3) Load Base Hit 001857a0: 00000000 nop 001857a4: 00031040 sll r2,r3,0x01 Base hit * 2 001857a8: 00431021 addu r2,r2,r3 Base hit * 3 001857ac: 04410002 bgez r2,0x001857b8 Branch if Hit % is positive 001857b0: 00000000 nop 001857b4: 24420003 addiu r2,r2,0x0003 Hit % + 3 001857b8: 00021083 sra r2,r2,0x02 Base hit * 3 / 4 001857bc: 3c018019 lui r1,0x8019 001857c0: a02238dc sb r2,0x38dc(r1) Store new hit % 001857c4: 2602fffd addiu r2,r16,0xfffd Weather ID? - 3 001857c8: 2c420002 sltiu r2,r2,0x0002 001857cc: 1040000c beq r2,r0,0x00185800 Branch if Weather? is not a thunderstorm? 001857d0: 00000000 nop 001857d4: 3c048019 lui r4,0x8019 001857d8: 248438dc addiu r4,r4,0x38dc 001857dc: 90830000 lbu r3,0x0000(r4) Load Base Hit 001857e0: 00000000 nop 001857e4: 00031040 sll r2,r3,0x01 Hit * 2 001857e8: 00431021 addu r2,r2,r3 Hit * 3 001857ec: 04410002 bgez r2,0x001857f8 Branch if Hit% is positive 001857f0: 00000000 nop 001857f4: 24420003 addiu r2,r2,0x0003 Hit% + 3 001857f8: 00021083 sra r2,r2,0x02 Hit * 3 / 4 001857fc: a0820000 sb r2,0x0000(r4) Store new Hit% 00185800: 8fbf0014 lw r31,0x0014(r29) 00185804: 8fb00010 lw r16,0x0010(r29) 00185808: 27bd0018 addiu r29,r29,0x0018 0018580c: 03e00008 jr r31 00185810: 00000000 nop Calculate Final Hit % 00185814: 3c028019 lui r2,0x8019 00185818: 944238d6 lhu r2,0x38d6(r2) Load Used Ability ID 0018581c: 27bdffe0 addiu r29,r29,0xffe0 00185820: afbf0018 sw r31,0x0018(r29) 00185824: afb10014 sw r17,0x0014(r29) 00185828: 10400007 beq r2,r0,0x00185848 Branch if Not Attack? 0018582c: afb00010 sw r16,0x0010(r29) 00185830: 3c028019 lui r2,0x8019 00185834: 904238f6 lbu r2,0x38f6(r2) Load 4th set of Ability Flags 00185838: 00000000 nop 0018583c: 30420002 andi r2,r2,0x0002 00185840: 10400090 beq r2,r0,0x00185a84 Branch if Not Evadeable 00185844: 00000000 nop 00185848: 3c088019 lui r8,0x8019 0018584c: 910838dc lbu r8,0x38dc(r8) Load Hit % 00185850: 3c038019 lui r3,0x8019 00185854: 906338de lbu r3,0x38de(r3) Load Accessory Evade 00185858: 310500ff andi r5,r8,0x00ff 0018585c: 0065102b sltu r2,r3,r5 00185860: 10400013 beq r2,r0,0x001858b0 Branch if Accessory Evade >= Hit % 00185864: 01008021 addu r16,r8,r0 00185868: 3c048019 lui r4,0x8019 0018586c: 908438df lbu r4,0x38df(r4) Load RH Evade 00185870: 00000000 nop 00185874: 0085102b sltu r2,r4,r5 00185878: 1040000d beq r2,r0,0x001858b0 Branch if RH Evade >= Hit % 0018587c: 00000000 nop 00185880: 3c068019 lui r6,0x8019 00185884: 90c638e0 lbu r6,0x38e0(r6) Load LH Evade 00185888: 00000000 nop 0018588c: 00c5102b sltu r2,r6,r5 00185890: 10400007 beq r2,r0,0x001858b0 Branch if LH Evade >= Hit % 00185894: 00000000 nop 00185898: 3c078019 lui r7,0x8019 0018589c: 90e738e1 lbu r7,0x38e1(r7) Load Class Evade 001858a0: 00000000 nop 001858a4: 00e5102b sltu r2,r7,r5 001858a8: 14400009 bne r2,r0,0x001858d0 Branch if Class Evade < Hit % 001858ac: 00a31023 subu r2,r5,r3 Base Hit - Accessory Evade 001858b0: 3c028019 lui r2,0x8019 001858b4: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 001858b8: 00000000 nop 001858bc: a0400000 sb r0,0x0000(r2) Attack Evaded 001858c0: 3c028019 lui r2,0x8019 001858c4: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 001858c8: 08061675 j 0x001859d4 001858cc: a440002a sh r0,0x002a(r2) Store Hit % = 0 001858d0: 00021840 sll r3,r2,0x01 Hit * 2 001858d4: 00621821 addu r3,r3,r2 Hit * 3 001858d8: 000318c0 sll r3,r3,0x03 Hit * 24 001858dc: 00621821 addu r3,r3,r2 Hit * 25 001858e0: 00031880 sll r3,r3,0x02 Hit * 100 001858e4: 0065001a div r3,r5 Modified Hit % / Original Hit % 001858e8: 00001812 mflo r3 Accessory Hit % 001858ec: 00a42023 subu r4,r5,r4 Original Hit % - RH Evade 001858f0: 00041040 sll r2,r4,0x01 Hit * 2 001858f4: 00441021 addu r2,r2,r4 Hit * 3 001858f8: 000210c0 sll r2,r2,0x03 Hit * 24 001858fc: 00441021 addu r2,r2,r4 Hit * 25 00185900: 00021080 sll r2,r2,0x02 Hit * 100 00185904: 0045001a div r2,r5 Modified Hit % / Original Hit % 00185908: 00001012 mflo r2 RH Hit % 0018590c: 00000000 nop 00185910: 00000000 nop 00185914: 00620018 mult r3,r2 Accessory Hit % * RH Hit % 00185918: 00a61823 subu r3,r5,r6 Original Hit - LH Evade 0018591c: 00031040 sll r2,r3,0x01 Hit * 2 00185920: 00431021 addu r2,r2,r3 Hit * 3 00185924: 000210c0 sll r2,r2,0x03 Hit * 24 00185928: 00002012 mflo r4 r4 = New Hit % 0018592c: 00431021 addu r2,r2,r3 Hit * 25 00185930: 00021080 sll r2,r2,0x02 Hit * 100 00185934: 0045001a div r2,r5 Modified Hit % / Original Hit % 00185938: 00001012 mflo r2 LH Hit % 0018593c: 00000000 nop 00185940: 00000000 nop 00185944: 00820018 mult r4,r2 New Hit % * LH Hit % 00185948: 00a71823 subu r3,r5,r7 Original Hit % - Class Evade 0018594c: 00031040 sll r2,r3,0x01 Hit * 2 00185950: 00431021 addu r2,r2,r3 Hit * 3 00185954: 000210c0 sll r2,r2,0x03 Hit * 24 00185958: 00002012 mflo r4 r4 = Newer Hit % 0018595c: 00431021 addu r2,r2,r3 Hit * 25 00185960: 00021080 sll r2,r2,0x02 Hit * 100 00185964: 0045001a div r2,r5 Modified Hit % / Original Hit % 00185968: 00001012 mflo r2 Class Hit % 0018596c: 00000000 nop 00185970: 00000000 nop 00185974: 00820018 mult r4,r2 Newer Hit % * Class Hit % 00185978: 00001812 mflo r3 r3 = Almost Final Hit % 0018597c: 3c02431b lui r2,0x431b 00185980: 3442de83 ori r2,r2,0xde83 00185984: 00620018 mult r3,r2 Almost Final Hit % * .262144 00185988: 3c058019 lui r5,0x8019 0018598c: 8ca52d90 lw r5,0x2d90(r5) Load Current Action Data Pointer 00185990: 00000000 nop 00185994: 84a4002a lh r4,0x002a(r5) Load Original Hit % 00185998: 00031fc3 sra r3,r3,0x1f 0018599c: 00001010 mfhi r2 r2 = Hit(1)% 001859a0: 00021483 sra r2,r2,0x12 Hit(1) % / 262144 (Hit % / 100000000) 001859a4: 00431023 subu r2,r2,r3 001859a8: 00440018 mult r2,r4 Hit(1) % * Origina Hit % 001859ac: 00001812 mflo r3 r3 = Hit(2)% 001859b0: 3c0251eb lui r2,0x51eb 001859b4: 3442851f ori r2,r2,0x851f 001859b8: 00620018 mult r3,r2 Hit(2) % * 0.32 001859bc: 00031fc3 sra r3,r3,0x1f 001859c0: 00001010 mfhi r2 r2 = Final Hit% 001859c4: 00021143 sra r2,r2,0x05 Final Hit % / 32 (Final Hit % = Hit(2) % / 100) 001859c8: 00431023 subu r2,r2,r3 001859cc: a4a2002a sh r2,0x002a(r5) Store Final Hit% 001859d0: 01008021 addu r16,r8,r0 r16 = Original Hit % 001859d4: 02002821 addu r5,r16,r0 r5 = Original Hit % 001859d8: 3c028019 lui r2,0x8019 001859dc: 8c422d98 lw r2,0x2d98(r2) Load Target Data Pointer 001859e0: 3c048019 lui r4,0x8019 001859e4: 908438de lbu r4,0x38de(r4) Load Accessory Evade 001859e8: 9047001c lbu r7,0x001c(r2) Load Target's Accessory ID 001859ec: 0c061236 jal 0x001848d8 Attack Evaded Calculation 001859f0: 34060001 ori r6,r0,0x0001 Type = Accessory? 001859f4: 14400023 bne r2,r0,0x00185a84 Branch if Attack was evaded 001859f8: 341100ff ori r17,r0,0x00ff r17 = 255 001859fc: 3c038019 lui r3,0x8019 00185a00: 8c632d98 lw r3,0x2d98(r3) Load Target Data Pointer 00185a04: 00000000 nop 00185a08: 9067001d lbu r7,0x001d(r3) Load Target's RH Weapon ID 00185a0c: 00000000 nop 00185a10: 30e200ff andi r2,r7,0x00ff 00185a14: 14510002 bne r2,r17,0x00185a20 Branch if RH has a weapon 00185a18: 02002821 addu r5,r16,r0 r5 = Original Hit % 00185a1c: 9067001e lbu r7,0x001e(r3) Load Target's RH Shield ID 00185a20: 3c048019 lui r4,0x8019 00185a24: 908438df lbu r4,0x38df(r4) Load RH Evade 00185a28: 0c061236 jal 0x001848d8 Attack Evaded Calculation 00185a2c: 34060002 ori r6,r0,0x0002 Type = RH Equip? 00185a30: 14400014 bne r2,r0,0x00185a84 Branch if Attack was evaded 00185a34: 00000000 nop 00185a38: 3c028019 lui r2,0x8019 00185a3c: 8c422d98 lw r2,0x2d98(r2) Load Target Data Pointer 00185a40: 00000000 nop 00185a44: 9047001f lbu r7,0x001f(r2) Load Target's LH Weapon ID 00185a48: 00000000 nop 00185a4c: 14f10002 bne r7,r17,0x00185a58 Branch if LH has a weapon 00185a50: 02002821 addu r5,r16,r0 r5 = Original Hit % 00185a54: 90470020 lbu r7,0x0020(r2) Load Target's LH Shield 00185a58: 3c048019 lui r4,0x8019 00185a5c: 908438e0 lbu r4,0x38e0(r4) Load LH Evade 00185a60: 0c061236 jal 0x001848d8 Attack Evaded Calculation 00185a64: 34060003 ori r6,r0,0x0003 Type = LH Equip? 00185a68: 14400006 bne r2,r0,0x00185a84 Branch if Attack was evaded 00185a6c: 02002821 addu r5,r16,r0 r5 = Original Hit % 00185a70: 3c048019 lui r4,0x8019 00185a74: 908438e1 lbu r4,0x38e1(r4) Load Class Evade 00185a78: 34060004 ori r6,r0,0x0004 Type = Class Evade 00185a7c: 0c061236 jal 0x001848d8 Attack Evaded Calculation 00185a80: 340700ff ori r7,r0,0x00ff r7 = 255 (no equipment possible here) 00185a84: 8fbf0018 lw r31,0x0018(r29) 00185a88: 8fb10014 lw r17,0x0014(r29) 00185a8c: 8fb00010 lw r16,0x0010(r29) 00185a90: 27bd0020 addiu r29,r29,0x0020 00185a94: 03e00008 jr r31 00185a98: 00000000 nop Base XA Calculation (Weapons) 00185a9c: 3c028019 lui r2,0x8019 00185aa0: 904238d8 lbu r2,0x38d8(r2) Load Used Weapon ID 00185aa4: 27bdffe8 addiu r29,r29,0xffe8 00185aa8: afbf0014 sw r31,0x0014(r29) 00185aac: afb00010 sw r16,0x0010(r29) 00185ab0: 00021840 sll r3,r2,0x01 ID * 2 00185ab4: 00621821 addu r3,r3,r2 ID * 3 00185ab8: 00031880 sll r3,r3,0x02 ID * 12 00185abc: 3c018006 lui r1,0x8006 00185ac0: 00230821 addu r1,r1,r3 80060000 + ID * 12 00185ac4: 90242ebd lbu r4,0x2ebd(r1) Load Used Weapon Item Type 00185ac8: 3c028019 lui r2,0x8019 00185acc: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 00185ad0: 308300ff andi r3,r4,0x00ff r3 = Used Weapon Item Type 00185ad4: 90500036 lbu r16,0x0036(r2) Load Attacker's PA 00185ad8: 90460037 lbu r6,0x0037(r2) Load Attacker's MA 00185adc: 90450024 lbu r5,0x0024(r2) Load Attacker's Brave 00185ae0: 14600014 bne r3,r0,0x00185b34 Branch if a weapon is equipped 00185ae4: 00b00018 mult r5,r16 Brave * PA 00185ae8: 00001812 mflo r3 r3 = Brave * PA 00185aec: 3c0251eb lui r2,0x51eb 00185af0: 3442851f ori r2,r2,0x851f 00185af4: 00620018 mult r3,r2 Brave * PA * 0.32 00185af8: 3c018019 lui r1,0x8019 00185afc: a43038ce sh r16,0x38ce(r1) Store XA = PA 00185b00: 00031fc3 sra r3,r3,0x1f 00185b04: 00001010 mfhi r2 r2 = Brave * PA * 0.32 00185b08: 00021143 sra r2,r2,0x05 Brave * PA * 0.32 / 32 (or Brave * PA / 100) 00185b0c: 00431823 subu r3,r2,r3 00185b10: 00031400 sll r2,r3,0x10 Brave * PA / 100 * 65536 00185b14: 3c018019 lui r1,0x8019 00185b18: a42338d0 sh r3,0x38d0(r1) Store YA = Brave * PA / 100 00185b1c: 14400058 bne r2,r0,0x00185c80 Branch if YA > 0 00185b20: 24620001 addiu r2,r3,0x0001 r2 = YA + 1 (minimum of 1 YA) 00185b24: 3c018019 lui r1,0x8019 00185b28: a42238d0 sh r2,0x38d0(r1) Store YA = 1 00185b2c: 08061720 j 0x00185c80 Jump to end 00185b30: 00000000 nop 00185b34: 3c028019 lui r2,0x8019 00185b38: 90423902 lbu r2,0x3902(r2) Load WP 00185b3c: 3c018019 lui r1,0x8019 00185b40: a42238d0 sh r2,0x38d0(r1) YA = WP 00185b44: 34020003 ori r2,r0,0x0003 r2 = 3 00185b48: 10620007 beq r3,r2,0x00185b68 Branch if Used Weapon is a Sword 00185b4c: 3402000b ori r2,r0,0x000b r2 = b 00185b50: 10620005 beq r3,r2,0x00185b68 Branch if Used Weapon is a Crossbow 00185b54: 34020007 ori r2,r0,0x0007 r2 = 7 00185b58: 10620003 beq r3,r2,0x00185b68 Branch if Used Weapon is a Rod 00185b5c: 3402000f ori r2,r0,0x000f r2 = f 00185b60: 14620005 bne r3,r2,0x00185b78 Branch if Used Weapon is not a Polearm 00185b64: 2482ffff addiu r2,r4,0xffff Used Weapon Type - 1 00185b68: 3c018019 lui r1,0x8019 00185b6c: a43038ce sh r16,0x38ce(r1) Store XA = PA 00185b70: 08061720 j 0x00185c80 Jump to End 00185b74: 00000000 nop 00185b78: 2c420002 sltiu r2,r2,0x0002 00185b7c: 14400005 bne r2,r0,0x00185b94 Branch if Used Weapon is a Knife/Ninja Blade 00185b80: 3402000c ori r2,r0,0x000c r2 = c 00185b84: 10620003 beq r3,r2,0x00185b94 Branch if Used Weapon is a Bow 00185b88: 34020020 ori r2,r0,0x0020 r2 = 20 00185b8c: 14620007 bne r3,r2,0x00185bac Branch if Used Weapon is not a Thrown Weapon 00185b90: 2482fffc addiu r2,r4,0xfffc Used Weapon Type - 4 00185b94: 3c028019 lui r2,0x8019 00185b98: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 00185b9c: 00000000 nop 00185ba0: 90420038 lbu r2,0x0038(r2) Load Target's SP 00185ba4: 0806171d j 0x00185c74 00185ba8: 02021021 addu r2,r16,r2 PA + SP 00185bac: 2c420002 sltiu r2,r2,0x0002 00185bb0: 10400010 beq r2,r0,0x00185bf4 Branch if Used Weapon is a Knight Sword/Katana 00185bb4: 00b00018 mult r5,r16 Brave * PA 00185bb8: 00001812 mflo r3 r3 = Brave * PA 00185bbc: 3c0251eb lui r2,0x51eb 00185bc0: 3442851f ori r2,r2,0x851f 00185bc4: 00620018 mult r3,r2 Brave * PA * 0.32 00185bc8: 00031fc3 sra r3,r3,0x1f 00185bcc: 00001010 mfhi r2 r2 = Brave * PA * 0.32 00185bd0: 00021143 sra r2,r2,0x05 Brave * PA * 0.32 / 32 (or Brave * PA / 100) 00185bd4: 00431823 subu r3,r2,r3 00185bd8: 3c018019 lui r1,0x8019 00185bdc: a42338ce sh r3,0x38ce(r1) Store XA = Brave * PA / 100 00185be0: 00031400 sll r2,r3,0x10 Brave * PA / 100 * 65536 00185be4: 14400026 bne r2,r0,0x00185c80 Branch if XA > 0 00185be8: 24620001 addiu r2,r3,0x0001 r2 = XA + 1 (min XA of 1) 00185bec: 0806171e j 0x00185c78 00185bf0: 00000000 nop 00185bf4: 34020008 ori r2,r0,0x0008 r2 = 8 00185bf8: 10620003 beq r3,r2,0x00185c08 Branch if Used Weapon is a Staff 00185bfc: 34020010 ori r2,r0,0x0010 r2 = 10 00185c00: 14620005 bne r3,r2,0x00185c18 Branch if Used Weapon is not a Pole 00185c04: 34020006 ori r2,r0,0x0006 r2 = 6 00185c08: 3c018019 lui r1,0x8019 00185c0c: a42638ce sh r6,0x38ce(r1) Store XA = MA 00185c10: 08061720 j 0x00185c80 00185c14: 00000000 nop 00185c18: 10620005 beq r3,r2,0x00185c30 Branch if Used Weapon is an Axe 00185c1c: 34020009 ori r2,r0,0x0009 r2 = 9 00185c20: 10620003 beq r3,r2,0x00185c30 Branch if Used Weapon is a Flail 00185c24: 34020011 ori r2,r0,0x0011 r2 = 11 00185c28: 1462000b bne r3,r2,0x00185c58 Branch if Used Weapon is not a Bag 00185c2c: 2482fff3 addiu r2,r4,0xfff3 r2 = Used Weapon Type - 13 (d) 00185c30: 0c063ba8 jal 0x0018eea0 Random Process 00185c34: 00000000 nop 00185c38: 02020018 mult r16,r2 PA * 0->7fff 00185c3c: 00001012 mflo r2 r2 = PA * Random 00185c40: 04410002 bgez r2,0x00185c4c Branch if PA * Random >= 0 00185c44: 00000000 nop 00185c48: 24427fff addiu r2,r2,0x7fff Make result positive 00185c4c: 000213c3 sra r2,r2,0x0f PA * 0->7fff / 8000h (0->PA - 1) 00185c50: 0806171e j 0x00185c78 00185c54: 24420001 addiu r2,r2,0x0001 r2 += 1 (1->PA) 00185c58: 2c420002 sltiu r2,r2,0x0002 00185c5c: 14400004 bne r2,r0,0x00185c70 Branch if Used Weapon is not an Instrument/Book 00185c60: 30c200ff andi r2,r6,0x00ff r2 = MA 00185c64: 34020012 ori r2,r0,0x0012 r2 = 12 00185c68: 14620005 bne r3,r2,0x00185c80 Branch if Used Weapon is not a Cloth 00185c6c: 30c200ff andi r2,r6,0x00ff r2 = MA 00185c70: 02021021 addu r2,r16,r2 PA * MA 00185c74: 00021043 sra r2,r2,0x01 PA * ?? / 2 (MA or SP, depending on Weapon) 00185c78: 3c018019 lui r1,0x8019 00185c7c: a42238ce sh r2,0x38ce(r1) Store XA = PA * ?? / 2 00185c80: 8fbf0014 lw r31,0x0014(r29) 00185c84: 8fb00010 lw r16,0x0010(r29) 00185c88: 27bd0018 addiu r29,r29,0x0018 00185c8c: 03e00008 jr r31 00185c90: 00000000 nop Store MA and Y 00185c94: 3c028019 lui r2,0x8019 00185c98: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00185c9c: 3c038019 lui r3,0x8019 00185ca0: 906338fa lbu r3,0x38fa(r3) Load Ability Y 00185ca4: 90420037 lbu r2,0x0037(r2) Load Attacker's MA 00185ca8: 3c018019 lui r1,0x8019 00185cac: a42338d0 sh r3,0x38d0(r1) Store Ability Y as YA 00185cb0: 3c018019 lui r1,0x8019 00185cb4: a42238ce sh r2,0x38ce(r1) Store MA as XA 00185cb8: 03e00008 jr r31 00185cbc: 00000000 nop Base XA and YA for MA + Y / 2 used for Truth and Hydra Formula: 00185cc0: 3c038019 lui r3,0x8019 00185cc4: 8c632d94 lw r3,0x2d94(r3) Load Attacker's Stats 00185cc8: 00000000 nop 00185ccc: 90620037 lbu r2,0x0037(r3) Load Attacker's MA 00185cd0: 3c018019 lui r1,0x8019 00185cd4: a42238ce sh r2,0x38ce(r1) Store XA 00185cd8: 90620037 lbu r2,0x0037(r3) Load Attacker's MA >_> 00185cdc: 3c038019 lui r3,0x8019 00185ce0: 906338fa lbu r3,0x38fa(r3) Load Y 00185ce4: 00000000 nop 00185ce8: 00431021 addu r2,r2,r3 MA + Y 00185cec: 00021043 sra r2,r2,0x01 MA + Y / 2 00185cf0: 3c018019 lui r1,0x8019 00185cf4: a42238d0 sh r2,0x38d0(r1) Store YA 00185cf8: 03e00008 jr r31 00185cfc: 00000000 nop Store PA and PA + Y / 2 00185d00: 3c038019 lui r3,0x8019 00185d04: 8c632d94 lw r3,0x2d94(r3) Load Attacker' Stats 00185d08: 00000000 nop 00185d0c: 90620036 lbu r2,0x0036(r3) Load Attacker's PA 00185d10: 3c018019 lui r1,0x8019 00185d14: a42238ce sh r2,0x38ce(r1) Store Attacker's PA as XA 00185d18: 90620036 lbu r2,0x0036(r3) Load Attacker's PA (...) 00185d1c: 3c038019 lui r3,0x8019 00185d20: 906338fa lbu r3,0x38fa(r3) Load Ability Y 00185d24: 00000000 nop 00185d28: 00431021 addu r2,r2,r3 PA + Y 00185d2c: 00021043 sra r2,r2,0x01 PA + Y / 2 00185d30: 3c018019 lui r1,0x8019 00185d34: a42238d0 sh r2,0x38d0(r1) Store PA + Y / 2 as YA 00185d38: 03e00008 jr r31 00185d3c: 00000000 nop Store MA and PA + Y / 2 00185d40: 3c038019 lui r3,0x8019 00185d44: 8c632d94 lw r3,0x2d94(r3) Load Attacker's Stats 00185d48: 00000000 nop 00185d4c: 90620037 lbu r2,0x0037(r3) Load Attacker's MA 00185d50: 3c018019 lui r1,0x8019 00185d54: a42238ce sh r2,0x38ce(r1) Store MA as XA 00185d58: 90620036 lbu r2,0x0036(r3) Load Attacker's PA 00185d5c: 3c038019 lui r3,0x8019 00185d60: 906338fa lbu r3,0x38fa(r3) Load Ability Y 00185d64: 00000000 nop 00185d68: 00431021 addu r2,r2,r3 PA + Y 00185d6c: 00021043 sra r2,r2,0x01 PA + Y / 2 00185d70: 3c018019 lui r1,0x8019 00185d74: a42238d0 sh r2,0x38d0(r1) Store PA + Y / 2 as YA 00185d78: 03e00008 jr r31 00185d7c: 00000000 nop Store MA and X 00185d80: 3c028019 lui r2,0x8019 00185d84: 8c422d94 lw r2,0x2d94(r2) Load Attacker's data 00185d88: 3c038019 lui r3,0x8019 00185d8c: 906338f9 lbu r3,0x38f9(r3) Load X 00185d90: 90420037 lbu r2,0x0037(r2) Load Attacker's MA 00185d94: 3c018019 lui r1,0x8019 00185d98: a42338d0 sh r3,0x38d0(r1) Store X as YA 00185d9c: 3c018019 lui r1,0x8019 00185da0: a42238ce sh r2,0x38ce(r1) Store MA as XA 00185da4: 03e00008 jr r31 00185da8: 00000000 nop Store PA and X 00185dac: 3c028019 lui r2,0x8019 00185db0: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00185db4: 3c038019 lui r3,0x8019 00185db8: 906338f9 lbu r3,0x38f9(r3) Load Ability X 00185dbc: 90420036 lbu r2,0x0036(r2) Load Attacker's PA 00185dc0: 3c018019 lui r1,0x8019 00185dc4: a42338d0 sh r3,0x38d0(r1) Store X as YA 00185dc8: 3c018019 lui r1,0x8019 00185dcc: a42238ce sh r2,0x38ce(r1) Store PA as XA 00185dd0: 03e00008 jr r31 00185dd4: 00000000 nop Store PA and WP 00185dd8: 3c028019 lui r2,0x8019 00185ddc: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00185de0: 3c038019 lui r3,0x8019 00185de4: 90633902 lbu r3,0x3902(r3) Load Weapon Power 00185de8: 90420036 lbu r2,0x0036(r2) Load PA 00185dec: 3c018019 lui r1,0x8019 00185df0: a42338d0 sh r3,0x38d0(r1) Store WP as YA 00185df4: 3c018019 lui r1,0x8019 00185df8: a42238ce sh r2,0x38ce(r1) Store PA as XA 00185dfc: 03e00008 jr r31 00185e00: 00000000 nop Store PA and Y 00185e04: 3c028019 lui r2,0x8019 00185e08: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00185e0c: 3c038019 lui r3,0x8019 00185e10: 906338fa lbu r3,0x38fa(r3) Load Ability Y 00185e14: 90420036 lbu r2,0x0036(r2) Load Attacker's PA 00185e18: 3c018019 lui r1,0x8019 00185e1c: a42338d0 sh r3,0x38d0(r1) Store Y as YA 00185e20: 3c018019 lui r1,0x8019 00185e24: a42238ce sh r2,0x38ce(r1) Store PA as XA 00185e28: 03e00008 jr r31 00185e2c: 00000000 nop Store Speed and X 00185e30: 3c028019 lui r2,0x8019 00185e34: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00185e38: 3c038019 lui r3,0x8019 00185e3c: 906338f9 lbu r3,0x38f9(r3) Load Ability X 00185e40: 90420038 lbu r2,0x0038(r2) Load Attacker's Speed 00185e44: 3c018019 lui r1,0x8019 00185e48: a42338d0 sh r3,0x38d0(r1) Store X as YA 00185e4c: 3c018019 lui r1,0x8019 00185e50: a42238ce sh r2,0x38ce(r1) Store Speed as XA 00185e54: 03e00008 jr r31 00185e58: 00000000 nop Store PA and WP + Y 00185e5c: 3c048019 lui r4,0x8019 00185e60: 8c842d94 lw r4,0x2d94(r4) Load Attacker's Stats 00185e64: 3c028019 lui r2,0x8019 00185e68: 90423902 lbu r2,0x3902(r2) Load Weapon Power 00185e6c: 3c038019 lui r3,0x8019 00185e70: 906338fa lbu r3,0x38fa(r3) Load Ability Y 00185e74: 90840036 lbu r4,0x0036(r4) Load Attacker's PA 00185e78: 00431021 addu r2,r2,r3 WP + Y 00185e7c: 3c018019 lui r1,0x8019 00185e80: a42238d0 sh r2,0x38d0(r1) Store WP + Y as YA 00185e84: 3c018019 lui r1,0x8019 00185e88: a42438ce sh r4,0x38ce(r1) Store PA as XA 00185e8c: 03e00008 jr r31 00185e90: 00000000 nop Formula 64 or Jump Base XA / YA 00185e94: 3c038019 lui r3,0x8019 00185e98: 906338d8 lbu r3,0x38d8(r3) Load Used Weapon 00185e9c: 00000000 nop 00185ea0: 00031040 sll r2,r3,0x01 ID * 2 00185ea4: 00431021 addu r2,r2,r3 ID * 3 00185ea8: 00021080 sll r2,r2,0x02 ID * 12 00185eac: 3c018006 lui r1,0x8006 00185eb0: 00220821 addu r1,r1,r2 00185eb4: 90242ebd lbu r4,0x2ebd(r1) Used Weapon Type 00185eb8: 3402000f ori r2,r0,0x000f 00185ebc: 308300ff andi r3,r4,0x00ff 00185ec0: 1462000a bne r3,r2,0x00185eec Branch if not a Spear 00185ec4: 00000000 nop 00185ec8: 3c028019 lui r2,0x8019 00185ecc: 8c422d94 lw r2,0x2d94(r2) Load Attacker's stats 00185ed0: 00000000 nop 00185ed4: 90430036 lbu r3,0x0036(r2) Load PA 00185ed8: 00000000 nop 00185edc: 00031040 sll r2,r3,0x01 PA * 2 00185ee0: 00431021 addu r2,r2,r3 PA * 3 00185ee4: 080617bf j 0x00185efc 00185ee8: 00021043 sra r2,r2,0x01 PA * 3 / 2 00185eec: 3c028019 lui r2,0x8019 00185ef0: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00185ef4: 00000000 nop 00185ef8: 90420036 lbu r2,0x0036(r2) Load PA 00185efc: 3c018019 lui r1,0x8019 00185f00: a42238ce sh r2,0x38ce(r1) Store XA 00185f04: 14800018 bne r4,r0,0x00185f68 Branch if the Attacker is holding a weapon? 00185f08: 00000000 nop 00185f0c: 3c028019 lui r2,0x8019 00185f10: 8c422d94 lw r2,0x2d94(r2) Load Attacker's stats 00185f14: 3c038019 lui r3,0x8019 00185f18: 846338ce lh r3,0x38ce(r3) Load XA 00185f1c: 90420024 lbu r2,0x0024(r2) Load Brave 00185f20: 00000000 nop 00185f24: 00620018 mult r3,r2 Brave * PA 00185f28: 00001812 mflo r3 Move to R3 00185f2c: 3c0251eb lui r2,0x51eb 00185f30: 3442851f ori r2,r2,0x851f 00185f34: 00620018 mult r3,r2 PA * Brave * .33333334 00185f38: 3c048019 lui r4,0x8019 00185f3c: 248438d0 addiu r4,r4,0x38d0 Load XA 00185f40: 00031fc3 sra r3,r3,0x1f 00185f44: 00001010 mfhi r2 Move to R2 00185f48: 00021143 sra r2,r2,0x05 00185f4c: 00431823 subu r3,r2,r3 00185f50: 00031400 sll r2,r3,0x10 00185f54: 14400008 bne r2,r0,0x00185f78 00185f58: a4830000 sh r3,0x0000(r4) Store XA 00185f5c: 24620001 addiu r2,r3,0x0001 00185f60: 080617de j 0x00185f78 00185f64: a4820000 sh r2,0x0000(r4) 00185f68: 3c028019 lui r2,0x8019 00185f6c: 90423902 lbu r2,0x3902(r2) Load WP 00185f70: 3c018019 lui r1,0x8019 00185f74: a42238d0 sh r2,0x38d0(r1) Store YA 00185f78: 03e00008 jr r31 00185f7c: 00000000 nop Charge Calculation 00185f80: 3c028019 lui r2,0x8019 00185f84: 244238ce addiu r2,r2,0x38ce 00185f88: 3c038019 lui r3,0x8019 00185f8c: 906338e4 lbu r3,0x38e4(r3) Load Charge's Power 00185f90: 94440000 lhu r4,0x0000(r2) Load XA 00185f94: 00000000 nop 00185f98: 00641821 addu r3,r3,r4 XA + Charge's Power 00185f9c: 03e00008 jr r31 00185fa0: a4430000 sh r3,0x0000(r2) Store New XA = XA + Charge's Power Weapon Element Strengthen Calculation 00185fa4: 3c028019 lui r2,0x8019 00185fa8: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 00185fac: 3c038019 lui r3,0x8019 00185fb0: 90633904 lbu r3,0x3904(r3) Load Weapon's Element 00185fb4: 90420071 lbu r2,0x0071(r2) Load Attacker's Elements Strengthened 00185fb8: 00000000 nop 00185fbc: 00431024 and r2,r2,r3 00185fc0: 1040000c beq r2,r0,0x00185ff4 Branch if Weapon's Element is not Strengthened 00185fc4: 00000000 nop 00185fc8: 3c038019 lui r3,0x8019 00185fcc: 846338ce lh r3,0x38ce(r3) Load XA 00185fd0: 00000000 nop 00185fd4: 00031080 sll r2,r3,0x02 XA * 4 00185fd8: 00431021 addu r2,r2,r3 XA * 5 00185fdc: 04410002 bgez r2,0x00185fe8 Branch if XA >= 0 00185fe0: 00000000 nop 00185fe4: 24420003 addiu r2,r2,0x0003 XA + 3 00185fe8: 00021083 sra r2,r2,0x02 XA * 5 / 4 00185fec: 3c018019 lui r1,0x8019 00185ff0: a42238ce sh r2,0x38ce(r1) Store new XA 00185ff4: 03e00008 jr r31 00185ff8: 00000000 nop Elemental Strengthen 00185ffc: 3c028019 lui r2,0x8019 00186000: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data 00186004: 3c038019 lui r3,0x8019 00186008: 906338f7 lbu r3,0x38f7(r3) Load Abilities Element 0018600c: 90420071 lbu r2,0x0071(r2) Load Attacker's Elemental Strenghtened 00186010: 00000000 nop 00186014: 00431024 and r2,r2,r3 00186018: 1040000c beq r2,r0,0x0018604c Branch if Abilities Element isn't being powered 0018601c: 00000000 nop 00186020: 3c038019 lui r3,0x8019 00186024: 846338ce lh r3,0x38ce(r3) Load XA 00186028: 00000000 nop 0018602c: 00031080 sll r2,r3,0x02 XA * 4 00186030: 00431021 addu r2,r2,r3 XA * 5 00186034: 04410002 bgez r2,0x00186040 Branch if XA > 0 00186038: 00000000 nop 0018603c: 24420003 addiu r2,r2,0x0003 XA + 3 00186040: 00021083 sra r2,r2,0x02 XA * 5 / 4 (increase XA by 25%) 00186044: 3c018019 lui r1,0x8019 00186048: a42238ce sh r2,0x38ce(r1) Store new XA 0018604c: 03e00008 jr r31 00186050: 00000000 nop Attack UP/Two Hands/Martial Arts 00186054: 3c038019 lui r3,0x8019 00186058: 906338ff lbu r3,0x38ff(r3) Load Weapon Characteristics 0018605c: 00000000 nop 00186060: 30620001 andi r2,r3,0x0001 00186064: 1440000e bne r2,r0,0x001860a0 Branch if weapon has Forced Two hands 00186068: 30620004 andi r2,r3,0x0004 0018606c: 1040000c beq r2,r0,0x001860a0 Branch if weapon cannot use Two hands 00186070: 00000000 nop 00186074: 3c028019 lui r2,0x8019 00186078: 904238d9 lbu r2,0x38d9(r2) Load Two-Hands flag? 0018607c: 00000000 nop 00186080: 10400007 beq r2,r0,0x001860a0 Branch if Weapon is not using Two Hands? 00186084: 00000000 nop 00186088: 3c028019 lui r2,0x8019 0018608c: 844238ce lh r2,0x38ce(r2) Load XA 00186090: 00000000 nop 00186094: 00021040 sll r2,r2,0x01 XA * 2 00186098: 3c018019 lui r1,0x8019 0018609c: a42238ce sh r2,0x38ce(r1) Store new XA 001860a0: 3c028019 lui r2,0x8019 001860a4: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 001860a8: 00000000 nop 001860ac: 90420090 lbu r2,0x0090(r2) Load Attacker's 2nd set of Support 001860b0: 00000000 nop 001860b4: 30420010 andi r2,r2,0x0010 001860b8: 1040000b beq r2,r0,0x001860e8 Branch if Attacker doesn't have Attack UP 001860bc: 3c025555 lui r2,0x5555 001860c0: 3c048019 lui r4,0x8019 001860c4: 248438ce addiu r4,r4,0x38ce 001860c8: 84830000 lh r3,0x0000(r4) Load XA 001860cc: 34425556 ori r2,r2,0x5556 001860d0: 00031880 sll r3,r3,0x02 XA * 4 001860d4: 00620018 mult r3,r2 XA * 4 * 0.33333333 001860d8: 00031fc3 sra r3,r3,0x1f 001860dc: 00001010 mfhi r2 r2 = XA * 4 * 0.33333333 (XA + XA / 3) 001860e0: 00431023 subu r2,r2,r3 001860e4: a4820000 sh r2,0x0000(r4) Store new XA 001860e8: 3c028019 lui r2,0x8019 001860ec: 904238d8 lbu r2,0x38d8(r2) Load used Weapon ID 001860f0: 00000000 nop 001860f4: 14400013 bne r2,r0,0x00186144 Branch if not Unarmed 001860f8: 00000000 nop 001860fc: 3c028019 lui r2,0x8019 00186100: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 00186104: 00000000 nop 00186108: 90420091 lbu r2,0x0091(r2) Load Attacker's 3rd set of Support 0018610c: 00000000 nop 00186110: 30420020 andi r2,r2,0x0020 00186114: 1040000b beq r2,r0,0x00186144 Branch if Attacker doesn't have Martial Arts 00186118: 00000000 nop 0018611c: 3c028019 lui r2,0x8019 00186120: 844238ce lh r2,0x38ce(r2) Load XA 00186124: 00000000 nop 00186128: 00021840 sll r3,r2,0x01 XA * 2 0018612c: 00621821 addu r3,r3,r2 XA * 3 00186130: 000317c2 srl r2,r3,0x1f 00186134: 00621821 addu r3,r3,r2 00186138: 00031843 sra r3,r3,0x01 XA * 3 / 2 0018613c: 3c018019 lui r1,0x8019 00186140: a42338ce sh r3,0x38ce(r1) Store new XA 00186144: 03e00008 jr r31 00186148: 00000000 nop Formula 32, 33, 34, 35 Attack Up and Martial Arts (No Two Hands, also is stupid.) 0018614c: 3c028019 lui r2,0x8019 00186150: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00186154: 00000000 nop 00186158: 90420090 lbu r2,0x0090(r2) Load Attacker's 2nd set of Supports 0018615c: 00000000 nop 00186160: 30420010 andi r2,r2,0x0010 00186164: 1040000b beq r2,r0,0x00186194 Branch if the user doesn't have Attack Up 00186168: 3c025555 lui r2,0x5555 0018616c: 3c048019 lui r4,0x8019 00186170: 248438ce addiu r4,r4,0x38ce 00186174: 84830000 lh r3,0x0000(r4) Load XA 00186178: 34425556 ori r2,r2,0x5556 0018617c: 00031880 sll r3,r3,0x02 XA * 4 00186180: 00620018 mult r3,r2 XA * 4 / 3 00186184: 00031fc3 sra r3,r3,0x1f 00186188: 00001010 mfhi r2 Move to R2 0018618c: 00431023 subu r2,r2,r3 00186190: a4820000 sh r2,0x0000(r4) Store new XA 00186194: 3c038019 lui r3,0x8019 00186198: 906338d8 lbu r3,0x38d8(r3) Load Weapon ID 0018619c: 3c048019 lui r4,0x8019 001861a0: 8c842d94 lw r4,0x2d94(r4) Load Attacker's Stats 001861a4: 00031040 sll r2,r3,0x01 Weapon ID * 2 001861a8: 00431021 addu r2,r2,r3 Weapon ID * 3 001861ac: 00021080 sll r2,r2,0x02 Weapon ID * 12 001861b0: 90830091 lbu r3,0x0091(r4) Load Attacker's 3rd set of Supports 001861b4: 3c018006 lui r1,0x8006 001861b8: 00220821 addu r1,r1,r2 80060000 + Weapon ID * 12 001861bc: 90222ebd lbu r2,0x2ebd(r1) Load Weapon Type 001861c0: 30630020 andi r3,r3,0x0020 001861c4: 1060000d beq r3,r0,0x001861fc Branch if the unit doesn't have Martial Arts 001861c8: 00000000 nop 001861cc: 1440000b bne r2,r0,0x001861fc Branch if the unit is holding a weapon? 001861d0: 00000000 nop 001861d4: 3c028019 lui r2,0x8019 001861d8: 844238ce lh r2,0x38ce(r2) load XA 001861dc: 00000000 nop 001861e0: 00021840 sll r3,r2,0x01 XA * 2 001861e4: 00621821 addu r3,r3,r2 XA * 3 001861e8: 000317c2 srl r2,r3,0x1f 001861ec: 00621821 addu r3,r3,r2 001861f0: 00031843 sra r3,r3,0x01 XA * / 2 001861f4: 3c018019 lui r1,0x8019 001861f8: a42338ce sh r3,0x38ce(r1) Store XA 001861fc: 03e00008 jr r31 00186200: 00000000 nop Magic Attack Up 00186204: 3c028019 lui r2,0x8019 00186208: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 0018620c: 00000000 nop 00186210: 90420090 lbu r2,0x0090(r2) Load Attacker's 2nd set of Supports 00186214: 00000000 nop 00186218: 30420004 andi r2,r2,0x0004 0018621c: 1040000b beq r2,r0,0x0018624c Branch if Attacker doesn't have Magic Attack Up 00186220: 3c025555 lui r2,0x5555 00186224: 3c048019 lui r4,0x8019 00186228: 248438ce addiu r4,r4,0x38ce 0018622c: 84830000 lh r3,0x0000(r4) Load XA 00186230: 34425556 ori r2,r2,0x5556 R2 = 55555556 00186234: 00031880 sll r3,r3,0x02 XA * 4 00186238: 00620018 mult r3,r2 XA * 4 / 3 0018623c: 00031fc3 sra r3,r3,0x1f 00186240: 00001010 mfhi r2 Move to R2 00186244: 00431023 subu r2,r2,r3 00186248: a4820000 sh r2,0x0000(r4) Store new XA 0018624c: 03e00008 jr r31 00186250: 00000000 nop Attacker Berserk/Frog Check 00186254: 3c028019 lui r2,0x8019 00186258: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 0018625c: 00000000 nop 00186260: 9042005a lbu r2,0x005a(r2) Load Attacker's 3rd set of statuses 00186264: 00000000 nop 00186268: 30420008 andi r2,r2,0x0008 0018626c: 1040000b beq r2,r0,0x0018629c Branch if Attacker is not Berserk 00186270: 00000000 nop 00186274: 3c048019 lui r4,0x8019 00186278: 248438ce addiu r4,r4,0x38ce 0018627c: 84830000 lh r3,0x0000(r4) Load XA 00186280: 00000000 nop 00186284: 00031040 sll r2,r3,0x01 XA * 2 00186288: 00431021 addu r2,r2,r3 XA * 3 0018628c: 00021fc2 srl r3,r2,0x1f 00186290: 00431021 addu r2,r2,r3 00186294: 00021043 sra r2,r2,0x01 XA * 3 / 2 00186298: a4820000 sh r2,0x0000(r4) Store new XA 0018629c: 3c028019 lui r2,0x8019 001862a0: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 001862a4: 00000000 nop 001862a8: 9042005a lbu r2,0x005a(r2) Load Attacker's 3rd set of statuses 001862ac: 00000000 nop 001862b0: 30420002 andi r2,r2,0x0002 001862b4: 10400003 beq r2,r0,0x001862c4 Branch if Attacker is not a Frog 001862b8: 34020001 ori r2,r0,0x0001 001862bc: 3c018019 lui r1,0x8019 001862c0: a42238ce sh r2,0x38ce(r1) Store XA = 1 001862c4: 03e00008 jr r31 001862c8: 00000000 nop Defense UP 001862cc: 3c028019 lui r2,0x8019 001862d0: 8c422d98 lw r2,0x2d98(r2) Load Target's Data Pointer 001862d4: 00000000 nop 001862d8: 90420090 lbu r2,0x0090(r2) Load Target's 2nd set of Support 001862dc: 00000000 nop 001862e0: 30420008 andi r2,r2,0x0008 001862e4: 1040000b beq r2,r0,0x00186314 Branch if Target doesn't have Defense UP 001862e8: 3c025555 lui r2,0x5555 001862ec: 3c048019 lui r4,0x8019 001862f0: 248438ce addiu r4,r4,0x38ce 001862f4: 84830000 lh r3,0x0000(r4) Load XA 001862f8: 34425556 ori r2,r2,0x5556 001862fc: 00031840 sll r3,r3,0x01 XA * 2 00186300: 00620018 mult r3,r2 XA * 2 * 0.33333333 00186304: 00031fc3 sra r3,r3,0x1f 00186308: 00001010 mfhi r2 r2 = XA * 2 * 0.33333333 (XA * 2 / 3) 0018630c: 00431023 subu r2,r2,r3 00186310: a4820000 sh r2,0x0000(r4) Store new XA 00186314: 03e00008 jr r31 00186318: 00000000 nop Magic Defense Up 0018631c: 3c028019 lui r2,0x8019 00186320: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00186324: 00000000 nop 00186328: 90420090 lbu r2,0x0090(r2) Defender's 2nd set of Supports 0018632c: 00000000 nop 00186330: 30420002 andi r2,r2,0x0002 00186334: 1040000b beq r2,r0,0x00186364 Branch if the Defender doesn't have Defense Up 00186338: 3c025555 lui r2,0x5555 0018633c: 3c048019 lui r4,0x8019 00186340: 248438ce addiu r4,r4,0x38ce Load XA 00186344: 84830000 lh r3,0x0000(r4) 00186348: 34425556 ori r2,r2,0x5556 R2 = 55555556 or 1/3 when used in multiplication 0018634c: 00031840 sll r3,r3,0x01 XA * 2 00186350: 00620018 mult r3,r2 XA * 2 / 3 00186354: 00031fc3 sra r3,r3,0x1f 00186358: 00001010 mfhi r2 Move "Remainder" to r2 0018635c: 00431023 subu r2,r2,r3 00186360: a4820000 sh r2,0x0000(r4) Store new XA 00186364: 03e00008 jr r31 00186368: 00000000 nop Target XA affecting Statuses (Physical): 0018636c: 3c028019 lui r2,0x8019 00186370: 8c422d98 lw r2,0x2d98(r2) Load Target's Data Pointer 00186374: 00000000 nop 00186378: 9042005b lbu r2,0x005b(r2) Load Target's 4th set of Statuses 0018637c: 00000000 nop 00186380: 30420020 andi r2,r2,0x0020 00186384: 1040000b beq r2,r0,0x001863b4 Branch if Target doesn't have Protect 00186388: 3c025555 lui r2,0x5555 0018638c: 3c048019 lui r4,0x8019 00186390: 248438ce addiu r4,r4,0x38ce 00186394: 84830000 lh r3,0x0000(r4) Load XA 00186398: 34425556 ori r2,r2,0x5556 0018639c: 00031840 sll r3,r3,0x01 XA * 2 001863a0: 00620018 mult r3,r2 XA * 2 * 0.33333333 001863a4: 00031fc3 sra r3,r3,0x1f 001863a8: 00001010 mfhi r2 r2 = XA * 2 * 0.33333333 (XA * 2 / 3) 001863ac: 00431023 subu r2,r2,r3 001863b0: a4820000 sh r2,0x0000(r4) Store XA 001863b4: 3c038019 lui r3,0x8019 001863b8: 8c632d98 lw r3,0x2d98(r3) Load Target's Data Pointer 001863bc: 00000000 nop 001863c0: 9062005c lbu r2,0x005c(r3) Load Target's 5th set of Statuses 001863c4: 00000000 nop 001863c8: 30420010 andi r2,r2,0x0010 001863cc: 14400006 bne r2,r0,0x001863e8 Branch if Target is Sleeping 001863d0: 00000000 nop 001863d4: 90620058 lbu r2,0x0058(r3) Load Target's 1st set of Statuses 001863d8: 00000000 nop 001863dc: 30420008 andi r2,r2,0x0008 001863e0: 1040000b beq r2,r0,0x00186410 Branch if Target is Charging 001863e4: 00000000 nop 001863e8: 3c048019 lui r4,0x8019 001863ec: 248438ce addiu r4,r4,0x38ce 001863f0: 84830000 lh r3,0x0000(r4) Load XA 001863f4: 00000000 nop 001863f8: 00031040 sll r2,r3,0x01 XA * 2 001863fc: 00431021 addu r2,r2,r3 XA * 3 00186400: 00021fc2 srl r3,r2,0x1f 00186404: 00431021 addu r2,r2,r3 00186408: 00021043 sra r2,r2,0x01 XA * 3 / 2 0018640c: a4820000 sh r2,0x0000(r4) Store new XA 00186410: 3c028019 lui r2,0x8019 00186414: 8c422d98 lw r2,0x2d98(r2) Load Target's Data Pointer 00186418: 00000000 nop 0018641c: 9042005a lbu r2,0x005a(r2) Load Target's 3rd set of Statuses 00186420: 00000000 nop 00186424: 30420006 andi r2,r2,0x0006 00186428: 1040000b beq r2,r0,0x00186458 Branch if Target is a Chicken/Frog 0018642c: 00000000 nop 00186430: 3c048019 lui r4,0x8019 00186434: 248438ce addiu r4,r4,0x38ce 00186438: 84830000 lh r3,0x0000(r4) Load XA 0018643c: 00000000 nop 00186440: 00031040 sll r2,r3,0x01 XA * 2 00186444: 00431021 addu r2,r2,r3 XA * 3 00186448: 00021fc2 srl r3,r2,0x1f 0018644c: 00431021 addu r2,r2,r3 00186450: 00021043 sra r2,r2,0x01 XA * 3 / 2 00186454: a4820000 sh r2,0x0000(r4) Store new XA 00186458: 03e00008 jr r31 0018645c: 00000000 nop Target's Status Affecting XA (Magical) 00186460: 3c028019 lui r2,0x8019 00186464: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00186468: 00000000 nop 0018646c: 9042005b lbu r2,0x005b(r2) Load the Defender's 4th set of Status 00186470: 00000000 nop 00186474: 30420010 andi r2,r2,0x0010 00186478: 1040000b beq r2,r0,0x001864a8 Branch if the Target doesn't have Shell 0018647c: 3c025555 lui r2,0x5555 00186480: 3c048019 lui r4,0x8019 00186484: 248438ce addiu r4,r4,0x38ce 00186488: 84830000 lh r3,0x0000(r4) Load xA 0018648c: 34425556 ori r2,r2,0x5556 R2 = 55555556 00186490: 00031840 sll r3,r3,0x01 XA * 2 00186494: 00620018 mult r3,r2 XA * 2 / 3 00186498: 00031fc3 sra r3,r3,0x1f 0018649c: 00001010 mfhi r2 Move "Remainder" to R2 001864a0: 00431023 subu r2,r2,r3 001864a4: a4820000 sh r2,0x0000(r4) Store New XA 001864a8: 3c028019 lui r2,0x8019 001864ac: 8c422d98 lw r2,0x2d98(r2) Load Defender's Status 001864b0: 00000000 nop 001864b4: 9042005a lbu r2,0x005a(r2) Load the Defender's 3rd set of Status 001864b8: 00000000 nop 001864bc: 30420006 andi r2,r2,0x0006 001864c0: 1040000b beq r2,r0,0x001864f0 Branch if the Target doesn't have Frog or Chicken 001864c4: 00000000 nop 001864c8: 3c048019 lui r4,0x8019 001864cc: 248438ce addiu r4,r4,0x38ce 001864d0: 84830000 lh r3,0x0000(r4) Load XA 001864d4: 00000000 nop 001864d8: 00031040 sll r2,r3,0x01 XA * 2 001864dc: 00431021 addu r2,r2,r3 XA * 3 001864e0: 00021fc2 srl r3,r2,0x1f 001864e4: 00431021 addu r2,r2,r3 001864e8: 00021043 sra r2,r2,0x01 XA * 3 / 2 001864ec: a4820000 sh r2,0x0000(r4) Store new XA 001864f0: 03e00008 jr r31 001864f4: 00000000 nop Critical Hit Calculation: 001864f8: 27bdffe0 addiu r29,r29,0xffe0 001864fc: afbf0018 sw r31,0x0018(r29) 00186500: 34040064 ori r4,r0,0x0064 r4 = 100 (creates random number from 0-99) 00186504: 0c063bb6 jal 0x0018eed8 Random Process (returns r2 = 0 or 1) 00186508: 34050004 ori r5,r0,0x0004 r5 = 4 (critical hit chance of 4%) 0018650c: 14400012 bne r2,r0,0x00186558 Branch if Critical did not occur 00186510: 34030001 ori r3,r0,0x0001 r3 = 1 00186514: 3c028019 lui r2,0x8019 00186518: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 0018651c: 0c063ba8 jal 0x0018eea0 Random Process (Returns 0-7FFF) 00186520: a0430001 sb r3,0x0001(r2) Store Critical Hit Flag 00186524: 3c048019 lui r4,0x8019 00186528: 248438ce addiu r4,r4,0x38ce 0018652c: 84830000 lh r3,0x0000(r4) Load XA 00186530: 00000000 nop 00186534: 00430018 mult r2,r3 XA * Random 00186538: 00001012 mflo r2 r2 = XA * Random 0018653c: 04410002 bgez r2,0x00186548 Branch if Random is >= 0 00186540: 00000000 nop 00186544: 24427fff addiu r2,r2,0x7fff XA * Random + 7FFF 00186548: 000213c3 sra r2,r2,0x0f XA * Random / 8000h 0018654c: 00621021 addu r2,r3,r2 XA + XA * Random / 8000h (XA + Rand(0..(XA - 1))) 00186550: 0c0610fb jal 0x001843ec Knockback Calculation 00186554: a4820000 sh r2,0x0000(r4) Store new XA 00186558: 8fbf0018 lw r31,0x0018(r29) 0018655c: 27bd0020 addiu r29,r29,0x0020 00186560: 03e00008 jr r31 00186564: 00000000 nop XA * YA Calculation (Final HP Damage): 00186568: 3c038019 lui r3,0x8019 0018656c: 946338ce lhu r3,0x38ce(r3) Load XA 00186570: 3c028019 lui r2,0x8019 00186574: 944238d0 lhu r2,0x38d0(r2) Load YA 00186578: 00000000 nop 0018657c: 00620018 mult r3,r2 XA * YA 00186580: 3c038019 lui r3,0x8019 00186584: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00186588: 34020080 ori r2,r0,0x0080 r2 = 80 (Attack Type = HP Damage) 0018658c: a0620025 sb r2,0x0025(r3) Store Attack Type 00186590: 00001012 mflo r2 r2 = XA * YA 00186594: 03e00008 jr r31 00186598: a4620004 sh r2,0x0004(r3) Store HP Damage Set XA + YA for Status Formulas (Stupid section) 0018659c: 27bdffe8 addiu r29,r29,0xffe8 001865a0: 3c038019 lui r3,0x8019 001865a4: 946338d6 lhu r3,0x38d6(r3) Used Ability ID 001865a8: 34020041 ori r2,r0,0x0041 R2 = 65 001865ac: afbf0014 sw r31,0x0014(r29) 001865b0: 1062000f beq r3,r2,0x001865f0 Branch if Ability is Golem 001865b4: afb00010 sw r16,0x0010(r29) 001865b8: 3c028019 lui r2,0x8019 001865bc: 944238d0 lhu r2,0x38d0(r2) Load YA 001865c0: 3c108019 lui r16,0x8019 001865c4: 961038ce lhu r16,0x38ce(r16) Load XA 001865c8: 3c018019 lui r1,0x8019 001865cc: a42238ce sh r2,0x38ce(r1) Store YA as XA 001865d0: 0c061259 jal 0x00184964 Compatibility 001865d4: 00000000 nop 001865d8: 3c028019 lui r2,0x8019 001865dc: 944238ce lhu r2,0x38ce(r2) Load XA 001865e0: 3c018019 lui r1,0x8019 001865e4: a43038ce sh r16,0x38ce(r1) 001865e8: 3c018019 lui r1,0x8019 001865ec: a42238d0 sh r2,0x38d0(r1) 001865f0: 3c028019 lui r2,0x8019 001865f4: 944238ce lhu r2,0x38ce(r2) Load XA 001865f8: 3c038019 lui r3,0x8019 001865fc: 946338d0 lhu r3,0x38d0(r3) Load YA 00186600: 3c048019 lui r4,0x8019 00186604: 8c842d90 lw r4,0x2d90(r4) Current Action Data Pointer 00186608: 00431021 addu r2,r2,r3 Add XA + YA 0018660c: a4820004 sh r2,0x0004(r4) Store as Damage 00186610: 8fbf0014 lw r31,0x0014(r29) 00186614: 8fb00010 lw r16,0x0010(r29) 00186618: 27bd0018 addiu r29,r29,0x0018 0018661c: 03e00008 jr r31 00186620: 00000000 nop Calculate % of damage 00186624: 3c028019 lui r2,0x8019 00186628: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 0018662c: 00000000 nop 00186630: 9443002a lhu r3,0x002a(r2) Load Defender's Max HP 00186634: 3c028019 lui r2,0x8019 00186638: 904238fa lbu r2,0x38fa(r2) Load Abilities Y 0018663c: 00000000 nop 00186640: 00620018 mult r3,r2 Max HP * Y 00186644: 3c0351eb lui r3,0x51eb 00186648: 00001012 mflo r2 Move to R2 0018664c: 3463851f ori r3,r3,0x851f 00186650: 24420063 addiu r2,r2,0x0063 00186654: 00430018 mult r2,r3 00186658: 3c038019 lui r3,0x8019 0018665c: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00186660: 00000000 nop 00186664: 90620025 lbu r2,0x0025(r3) Load Attack Flag 00186668: 27bdfff8 addiu r29,r29,0xfff8 0018666c: 34420080 ori r2,r2,0x0080 00186670: a0620025 sb r2,0x0025(r3) Store Attack Flag as HP Damage 00186674: 00001010 mfhi r2 Move Hi to r2 00186678: 00021143 sra r2,r2,0x05 0018667c: a4620004 sh r2,0x0004(r3) Store HP Damage 00186680: 27bd0008 addiu r29,r29,0x0008 00186684: 03e00008 jr r31 00186688: 00000000 nop Elemental Section? 00186ed0: 27bdffe8 addiu r29,r29,0xffe8 00186ed4: afb00010 sw r16,0x0010(r29) 00186ed8: 3c108019 lui r16,0x8019 00186edc: 921038f7 lbu r16,0x38f7(r16) Load Abilities Element 00186ee0: afbf0014 sw r31,0x0014(r29) 00186ee4: 0c063998 jal 0x0018e660 00186ee8: 00000000 nop 00186eec: 00402821 addu r5,r2,r0 00186ef0: 24a2fffd addiu r2,r5,0xfffd 00186ef4: 2c420002 sltiu r2,r2,0x0002 00186ef8: 1040001e beq r2,r0,0x00186f74 00186efc: 32020080 andi r2,r16,0x0080 00186f00: 1040000e beq r2,r0,0x00186f3c 00186f04: 32020040 andi r2,r16,0x0040 00186f08: 3c048019 lui r4,0x8019 00186f0c: 8c842d90 lw r4,0x2d90(r4) 00186f10: 00000000 nop 00186f14: 84830004 lh r3,0x0004(r4) Load HP Damage 00186f18: 00000000 nop 00186f1c: 00031040 sll r2,r3,0x01 HP Damage * 2 00186f20: 00431021 addu r2,r2,r3 HP Damage * 3 00186f24: 04410002 bgez r2,0x00186f30 00186f28: 00000000 nop 00186f2c: 24420003 addiu r2,r2,0x0003 00186f30: 00021083 sra r2,r2,0x02 HP Damage * 3 / 4 00186f34: a4820004 sh r2,0x0004(r4) Store New HP Damage 00186f38: 32020040 andi r2,r16,0x0040 00186f3c: 1040000e beq r2,r0,0x00186f78 00186f40: 24a2fffa addiu r2,r5,0xfffa 00186f44: 3c048019 lui r4,0x8019 00186f48: 8c842d90 lw r4,0x2d90(r4) 00186f4c: 00000000 nop 00186f50: 84830004 lh r3,0x0004(r4) Load HP Damage 00186f54: 00000000 nop 00186f58: 00031080 sll r2,r3,0x02 HP Damage * 4 00186f5c: 00431021 addu r2,r2,r3 HP Damage * 5 00186f60: 04410002 bgez r2,0x00186f6c 00186f64: 00000000 nop 00186f68: 24420003 addiu r2,r2,0x0003 00186f6c: 00021083 sra r2,r2,0x02 HP Damage * 5 /4 00186f70: a4820004 sh r2,0x0004(r4) Store new HP Damage 00186f74: 24a2fffa addiu r2,r5,0xfffa 00186f78: 2c420002 sltiu r2,r2,0x0002 00186f7c: 1040000f beq r2,r0,0x00186fbc 00186f80: 32020020 andi r2,r16,0x0020 00186f84: 1040000d beq r2,r0,0x00186fbc 00186f88: 00000000 nop 00186f8c: 3c048019 lui r4,0x8019 00186f90: 8c842d90 lw r4,0x2d90(r4) 00186f94: 00000000 nop 00186f98: 84830004 lh r3,0x0004(r4) Load HP Damage 00186f9c: 00000000 nop 00186fa0: 00031080 sll r2,r3,0x02 HP Damage * 4 00186fa4: 00431021 addu r2,r2,r3 HP Damage * 5 00186fa8: 04410002 bgez r2,0x00186fb4 00186fac: 00000000 nop 00186fb0: 24420003 addiu r2,r2,0x0003 00186fb4: 00021083 sra r2,r2,0x02 HP Damage * 5 / 4 00186fb8: a4820004 sh r2,0x0004(r4) Store new HP Damage 00186fbc: 8fbf0014 lw r31,0x0014(r29) 00186fc0: 8fb00010 lw r16,0x0010(r29) 00186fc4: 27bd0018 addiu r29,r29,0x0018 00186fc8: 03e00008 jr r31 00186fcc: 00000000 nop Elemental Damage Modification (Prep) 00186fd0: 3c048019 lui r4,0x8019 00186fd4: 90843904 lbu r4,0x3904(r4) Load Weapon's Element 00186fd8: 27bdffe8 addiu r29,r29,0xffe8 00186fdc: afbf0010 sw r31,0x0010(r29) 00186fe0: 0c0613a6 jal 0x00184e98 Elemental Damage Modification (Halve, Null, Absorb, Weak) 00186fe4: 00000000 nop 00186fe8: 8fbf0010 lw r31,0x0010(r29) 00186fec: 27bd0018 addiu r29,r29,0x0018 00186ff0: 03e00008 jr r31 00186ff4: 00000000 nop Ability Elemental?: 00186ff8: 3c028019 lui r2,0x8019 00186ffc: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187000: 27bdffe8 addiu r29,r29,0xffe8 00187004: afbf0014 sw r31,0x0014(r29) 00187008: afb00010 sw r16,0x0010(r29) 0018700c: 9042005a lbu r2,0x005a(r2) Load Defender's 3rd set of Status 00187010: 3c108019 lui r16,0x8019 00187014: 921038f7 lbu r16,0x38f7(r16) Load Abilities Element 00187018: 30420080 andi r2,r2,0x0080 0018701c: 10400015 beq r2,r0,0x00187074 Branch if the unit doesn't have Oil 00187020: 32020080 andi r2,r16,0x0080 00187024: 10400013 beq r2,r0,0x00187074 Branch if the ability isn't fire element 00187028: 00002021 addu r4,r0,r0 R4 = 0 0018702c: 3c028019 lui r2,0x8019 00187030: 844238ce lh r2,0x38ce(r2) Load XA 00187034: 3c038019 lui r3,0x8019 00187038: 8c632d90 lw r3,0x2d90(r3) Load Current Action data Pointer 0018703c: 00021040 sll r2,r2,0x01 XA * 2 00187040: 3c018019 lui r1,0x8019 00187044: a42238ce sh r2,0x38ce(r1) Store new XA 00187048: 90620022 lbu r2,0x0022(r3) Load Status Removal 0018704c: 00000000 nop 00187050: 34420080 ori r2,r2,0x0080 00187054: 0c0612c9 jal 0x00184b24 00187058: a0620022 sb r2,0x0022(r3) Store Status Removal 0018705c: 10400005 beq r2,r0,0x00187074 00187060: 34020008 ori r2,r0,0x0008 R2 = 8 00187064: 3c038019 lui r3,0x8019 00187068: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018706c: 00000000 nop 00187070: a0620025 sb r2,0x0025(r3) Store Status Change 00187074: 3c038019 lui r3,0x8019 00187078: 8c632d98 lw r3,0x2d98(r3) Load Defender's Stats 0018707c: 00000000 nop 00187080: 90640182 lbu r4,0x0182(r3) 00187084: 00000000 nop 00187088: 30820080 andi r2,r4,0x0080 0018708c: 10400007 beq r2,r0,0x001870ac Branch if not riding a chocobo? 00187090: 3082001f andi r2,r4,0x001f 00187094: 000218c0 sll r3,r2,0x03 00187098: 00621823 subu r3,r3,r2 0018709c: 00031980 sll r3,r3,0x06 001870a0: 3c028019 lui r2,0x8019 001870a4: 244208cc addiu r2,r2,0x08cc Load Unit's Data 001870a8: 00621821 addu r3,r3,r2 001870ac: 9062005a lbu r2,0x005a(r3) Load 3rd set of Status 001870b0: 00000000 nop 001870b4: 30420040 andi r2,r2,0x0040 001870b8: 10400009 beq r2,r0,0x001870e0 Branch if unit has float 001870bc: 32020008 andi r2,r16,0x0008 001870c0: 10400007 beq r2,r0,0x001870e0 001870c4: 00000000 nop 001870c8: 0c061390 jal 0x00184e40 001870cc: 00000000 nop 001870d0: 3c038019 lui r3,0x8019 001870d4: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 001870d8: 34020007 ori r2,r0,0x0007 001870dc: a0620002 sb r2,0x0002(r3) 001870e0: 0c0613a6 jal 0x00184e98 001870e4: 02002021 addu r4,r16,r0 001870e8: 8fbf0014 lw r31,0x0014(r29) 001870ec: 8fb00010 lw r16,0x0010(r29) 001870f0: 27bd0018 addiu r29,r29,0x0018 001870f4: 03e00008 jr r31 001870f8: 00000000 nop Elemental Absorption 001870fc: 3c048019 lui r4,0x8019 00187100: 8c842d90 lw r4,0x2d90(r4) Load Current Attack Data Pointer 00187104: 00000000 nop 00187108: 90830002 lbu r3,0x0002(r4) Load ? 0018710c: 34020005 ori r2,r0,0x0005 00187110: 1062000d beq r3,r2,0x00187148 Branch if Element was nullified 00187114: 00000000 nop 00187118: 94820010 lhu r2,0x0010(r4) Load ? 0018711c: 00000000 nop 00187120: 30420400 andi r2,r2,0x0400 00187124: 10400006 beq r2,r0,0x00187140 Branch if element was not absorbed 00187128: 34020040 ori r2,r0,0x0040 0018712c: 94830004 lhu r3,0x0004(r4) Load HP Damage 00187130: a4800004 sh r0,0x0004(r4) Store HP Damage = 0 00187134: a0820025 sb r2,0x0025(r4) Store Attack Type = HP Recovery 00187138: 08061c52 j 0x00187148 0018713c: a4830006 sh r3,0x0006(r4) Store HP Recovery = HP Damage 00187140: 34020080 ori r2,r0,0x0080 00187144: a0820025 sb r2,0x0025(r4) Store Attack Type = HP Damage 00187148: 03e00008 jr r31 0018714c: 00000000 nop Faith Calculation: 00187150: 3c028019 lui r2,0x8019 00187154: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Status 00187158: 00000000 nop 0018715c: 9042005c lbu r2,0x005c(r2) Load Attacker's 5th set of Status 00187160: 00000000 nop 00187164: 30420080 andi r2,r2,0x0080 00187168: 10400003 beq r2,r0,0x00187178 Branch if Attacker doesn't have Faith Status 0018716c: 34020064 ori r2,r0,0x0064 r2 = 100 00187170: 3c018019 lui r1,0x8019 00187174: a02238d3 sb r2,0x38d3(r1) Store Faith as 100 00187178: 3c028019 lui r2,0x8019 0018717c: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00187180: 00000000 nop 00187184: 9042005c lbu r2,0x005c(r2) Load Attacker's 5th set of Status 00187188: 00000000 nop 0018718c: 30420040 andi r2,r2,0x0040 00187190: 10400003 beq r2,r0,0x001871a0 Branch if Attacker doesn't have Innocent 00187194: 00000000 nop 00187198: 3c018019 lui r1,0x8019 0018719c: a02038d3 sb r0,0x38d3(r1) Store Attacker's Faith as 0 001871a0: 3c028019 lui r2,0x8019 001871a4: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 001871a8: 00000000 nop 001871ac: 9042005c lbu r2,0x005c(r2) Load Defender's 5th set of Status 001871b0: 00000000 nop 001871b4: 30420080 andi r2,r2,0x0080 001871b8: 10400003 beq r2,r0,0x001871c8 Branch if Defender doesn't have Faith 001871bc: 34020064 ori r2,r0,0x0064 R2 = 100 001871c0: 3c018019 lui r1,0x8019 001871c4: a02238d2 sb r2,0x38d2(r1) Store Defender's Faith as 100 001871c8: 3c028019 lui r2,0x8019 001871cc: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 001871d0: 00000000 nop 001871d4: 9042005c lbu r2,0x005c(r2) Load Defender's 5th set of Status 001871d8: 00000000 nop 001871dc: 30420040 andi r2,r2,0x0040 001871e0: 10400003 beq r2,r0,0x001871f0 Branch if Defender doesn't have Innocent 001871e4: 00000000 nop 001871e8: 3c018019 lui r1,0x8019 001871ec: a02038d2 sb r0,0x38d2(r1) Store Defender's Faith as 0 001871f0: 3c048019 lui r4,0x8019 001871f4: 8c842d90 lw r4,0x2d90(r4) Current Action Data Pointer 001871f8: 3c028019 lui r2,0x8019 001871fc: 904238d2 lbu r2,0x38d2(r2) Load Defender's Faith 00187200: 84830004 lh r3,0x0004(r4) Load HP Damage (Reverse Undead comes after this to change it to Healing) 00187204: 00000000 nop 00187208: 00620018 mult r3,r2 HP Damage * Defender's Faith 0018720c: 00001812 mflo r3 Move to R3 00187210: 3c028019 lui r2,0x8019 00187214: 904238d3 lbu r2,0x38d3(r2) Load Attacker's Faith 00187218: 00000000 nop 0018721c: 00620018 mult r3,r2 HP Damage * Defender's Faith * Attacker's Faith 00187220: 00001812 mflo r3 Move to R3 00187224: 3c0268db lui r2,0x68db R2 = 68db0000 00187228: 34428bad ori r2,r2,0x8bad R2 = 68db8bad 0018722c: 00620018 mult r3,r2 HP Damage * Defender's Faith * Attacker's Faith * 68db8bad (or /10000) 00187230: 00031fc3 sra r3,r3,0x1f ??? 00187234: 00001010 mfhi r2 Move Hi to R2 00187238: 00021303 sra r2,r2,0x0c ??? 0018723c: 00431023 subu r2,r2,r3 ??? 00187240: 03e00008 jr r31 00187244: a4820004 sh r2,0x0004(r4) Store new HP Damage HP Absorbtion (Seems needlessly complex) 00187248: 3c028019 lui r2,0x8019 0018724c: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187250: 27bdffe8 addiu r29,r29,0xffe8 00187254: afbf0010 sw r31,0x0010(r29) 00187258: 90420058 lbu r2,0x0058(r2) Load 1st set of Current Status 0018725c: 00000000 nop 00187260: 30420010 andi r2,r2,0x0010 00187264: 1040001e beq r2,r0,0x001872e0 Branch if target is undead 00187268: 00000000 nop 0018726c: 0c062e91 jal 0x0018ba44 00187270: 00000000 nop 00187274: 3c048019 lui r4,0x8019 00187278: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 0018727c: 00000000 nop 00187280: 90820000 lbu r2,0x0000(r4) Load Hit Flag 00187284: 00000000 nop 00187288: 1040002d beq r2,r0,0x00187340 Branch to end if Attack missed 0018728c: 00000000 nop 00187290: 3c038019 lui r3,0x8019 00187294: 8c632d8c lw r3,0x2d8c(r3) Load Attacker Current Action Data Pointer 00187298: 94820004 lhu r2,0x0004(r4) Load HP Damage 0018729c: 00000000 nop 001872a0: a4620004 sh r2,0x0004(r3) Store HP Damage into Attacker 001872a4: 34020080 ori r2,r0,0x0080 001872a8: a0620025 sb r2,0x0025(r3) Store Attack Flag as HP Damage 001872ac: 3c038019 lui r3,0x8019 001872b0: 8c632d8c lw r3,0x2d8c(r3) Load Attacker Current Action Data Pointer 001872b4: 34020001 ori r2,r0,0x0001 001872b8: a0620000 sb r2,0x0000(r3) 001872bc: 3c028019 lui r2,0x8019 001872c0: 8c422d90 lw r2,0x2d90(r2) Load Target Current Action Data Pointer 001872c4: 00000000 nop 001872c8: 94440004 lhu r4,0x0004(r2) Load HP Damage 001872cc: 34030040 ori r3,r0,0x0040 001872d0: a4400004 sh r0,0x0004(r2) Store HP Damage Flag as 0 001872d4: a0430025 sb r3,0x0025(r2) Store HP Damage Flag as HP Recovery 001872d8: 08061cd0 j 0x00187340 Branch to end 001872dc: a4440006 sh r4,0x0006(r2) Store HP Damage as Recovery 001872e0: 0c062e91 jal 0x0018ba44 001872e4: 00000000 nop 001872e8: 3c048019 lui r4,0x8019 001872ec: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 001872f0: 00000000 nop 001872f4: 90820000 lbu r2,0x0000(r4) Load Hit Flag 001872f8: 00000000 nop 001872fc: 10400010 beq r2,r0,0x00187340 Branch if Attack missed 00187300: 00000000 nop 00187304: 3c038019 lui r3,0x8019 00187308: 8c632d8c lw r3,0x2d8c(r3) Load Attacker Current Action Data Pointer 0018730c: 94820004 lhu r2,0x0004(r4) Load HP Damage 00187310: 00000000 nop 00187314: a4620006 sh r2,0x0006(r3) 00187318: 34020040 ori r2,r0,0x0040 0018731c: a0620025 sb r2,0x0025(r3) 00187320: 3c038019 lui r3,0x8019 00187324: 8c632d8c lw r3,0x2d8c(r3) 00187328: 34020001 ori r2,r0,0x0001 0018732c: a0620000 sb r2,0x0000(r3) 00187330: 3c038019 lui r3,0x8019 00187334: 8c632d90 lw r3,0x2d90(r3) 00187338: 34020080 ori r2,r0,0x0080 0018733c: a0620025 sb r2,0x0025(r3) 00187340: 8fbf0010 lw r31,0x0010(r29) 00187344: 27bd0018 addiu r29,r29,0x0018 00187348: 03e00008 jr r31 0018734c: 00000000 nop Undead Reversal 00187350: 3c028019 lui r2,0x8019 00187354: 8c422d98 lw r2,0x2d98(r2) Load Target's Data Pointer 00187358: 00000000 nop 0018735c: 90420058 lbu r2,0x0058(r2) Load Target's 1st set of statuses 00187360: 00000000 nop 00187364: 30420010 andi r2,r2,0x0010 00187368: 10400009 beq r2,r0,0x00187390 Branch if Target is not Undead 0018736c: 34020080 ori r2,r0,0x0080 00187370: 3c038019 lui r3,0x8019 00187374: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187378: 00000000 nop 0018737c: a0620025 sb r2,0x0025(r3) Store Attack Type = HP Damage 00187380: 3c018019 lui r1,0x8019 00187384: a0203860 sb r0,0x3860(r1) Store ? = 0 00187388: 08061cf4 j 0x001873d0 0018738c: 00000000 nop 00187390: 3c038019 lui r3,0x8019 00187394: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187398: 00000000 nop 0018739c: 90620025 lbu r2,0x0025(r3) Load Attack Type 001873a0: 00000000 nop 001873a4: 3042007f andi r2,r2,0x007f Remove HP Damage Flag 001873a8: a0620025 sb r2,0x0025(r3) Store Attack Type 001873ac: 94620004 lhu r2,0x0004(r3) Load HP Damage 001873b0: 3c048019 lui r4,0x8019 001873b4: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 001873b8: a4600004 sh r0,0x0004(r3) Store HP Damage = 0 001873bc: a4620006 sh r2,0x0006(r3) Store HP Recovery = HP Damage 001873c0: 90820025 lbu r2,0x0025(r4) Load Attack Type 001873c4: 00000000 nop 001873c8: 34420040 ori r2,r2,0x0040 001873cc: a0820025 sb r2,0x0025(r4) Store Attack Type with HP Recovery enabled 001873d0: 03e00008 jr r31 001873d4: 00000000 nop Undead Absorb Attack: 001873d8: 3c038019 lui r3,0x8019 001873dc: 8c632d98 lw r3,0x2d98(r3) Load Defender's Stats 001873e0: 27bdffe8 addiu r29,r29,0xffe8 001873e4: afbf0010 sw r31,0x0010(r29) 001873e8: 90620058 lbu r2,0x0058(r3) Load Defender's 1st set of Status 001873ec: 00000000 nop 001873f0: 30420010 andi r2,r2,0x0010 001873f4: 1040000c beq r2,r0,0x00187428 Branch if not Undead 001873f8: 34020040 ori r2,r0,0x0040 001873fc: 3c038019 lui r3,0x8019 00187400: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187404: 00000000 nop 00187408: a0620025 sb r2,0x0025(r3) 0018740c: 94620004 lhu r2,0x0004(r3) Load Damage 00187410: 3c048019 lui r4,0x8019 00187414: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer... 00187418: a4600004 sh r0,0x0004(r3) Store 0 HP Damage ? 0018741c: a4620006 sh r2,0x0006(r3) Store HP Recovery 00187420: 08061d17 j 0x0018745c Jump to end 00187424: a080001b sb r0,0x001b(r4) Store 0 Status infliction? 00187428: 90620053 lbu r2,0x0053(r3) Load Defender's 1st set of Status Immunities 0018742c: 00000000 nop 00187430: 30420020 andi r2,r2,0x0020 00187434: 10400005 beq r2,r0,0x0018744c Branch if target is not immune to dead? 00187438: 34020080 ori r2,r0,0x0080 0018743c: 0c0610c3 jal 0x0018430c Force attack miss 00187440: 00000000 nop 00187444: 08061d17 j 0x0018745c Jump to end 00187448: 00000000 nop 0018744c: 3c038019 lui r3,0x8019 00187450: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 00187454: 00000000 nop 00187458: a0620025 sb r2,0x0025(r3) Store HP Damage 0018745c: 8fbf0010 lw r31,0x0010(r29) 00187460: 27bd0018 addiu r29,r29,0x0018 00187464: 03e00008 jr r31 00187468: 00000000 nop MP Recovery Routine (Longer then it needs to be?) 0018746c: 3c028019 lui r2,0x8019 00187470: 8c422d90 lw r2,0x2d90(r2) Current Action Data Pointer 00187474: 27bdffe8 addiu r29,r29,0xffe8 00187478: afbf0010 sw r31,0x0010(r29) 0018747c: 94440004 lhu r4,0x0004(r2) Load HP Damage 00187480: 34030020 ori r3,r0,0x0020 00187484: a4400004 sh r0,0x0004(r2) Store HP Damage as 0 00187488: a0430025 sb r3,0x0025(r2) Store Attack Flag as MP Damage 0018748c: 0c062e91 jal 0x0018ba44 00187490: a4440008 sh r4,0x0008(r2) Store HP Damage as MP Damage 00187494: 3c048019 lui r4,0x8019 00187498: 8c842d90 lw r4,0x2d90(r4) Current Action Data Pointer 0018749c: 00000000 nop 001874a0: 90820000 lbu r2,0x0000(r4) Load Hit Flag 001874a4: 00000000 nop 001874a8: 1040000c beq r2,r0,0x001874dc Branch if attack as evaded 001874ac: 00000000 nop 001874b0: 3c038019 lui r3,0x8019 001874b4: 8c632d8c lw r3,0x2d8c(r3) 001874b8: 94820008 lhu r2,0x0008(r4) Load MP Damage 001874bc: 00000000 nop 001874c0: a462000a sh r2,0x000a(r3) Store MP Damage as MP Recovery? 001874c4: 34020010 ori r2,r0,0x0010 R2 = 10 001874c8: a0620025 sb r2,0x0025(r3) Store Attack Flag as MP Recovery 001874cc: 3c038019 lui r3,0x8019 001874d0: 8c632d8c lw r3,0x2d8c(r3) 001874d4: 34020001 ori r2,r0,0x0001 R2 = 1 001874d8: a0620000 sb r2,0x0000(r3) 001874dc: 8fbf0010 lw r31,0x0010(r29) 001874e0: 27bd0018 addiu r29,r29,0x0018 001874e4: 03e00008 jr r31 001874e8: 00000000 nop Convert HP Damage into MP Recovery (Formula 54) 001874ec: 3c028019 lui r2,0x8019 001874f0: 8c422d90 lw r2,0x2d90(r2) Current Action Data Pointer 001874f4: 00000000 nop 001874f8: 94440004 lhu r4,0x0004(r2) Load HP Damage 001874fc: 34030010 ori r3,r0,0x0010 R3 = 10 00187500: a4400004 sh r0,0x0004(r2) Store HP Damage as 0 00187504: a0430025 sb r3,0x0025(r2) Store HP Damage as MP Recovery 00187508: 03e00008 jr r31 0018750c: a444000a sh r4,0x000a(r2) Store Attack Flag as MP Recovery ??? Routine (Often appears after elemental absorb routine) 00187510: 3c068019 lui r6,0x8019 00187514: 8cc62d90 lw r6,0x2d90(r6) Load Current Action Data Pointer 00187518: 27bdffe8 addiu r29,r29,0xffe8 0018751c: afbf0010 sw r31,0x0010(r29) 00187520: 84c50004 lh r5,0x0004(r6) Load HP Damage 00187524: 00000000 nop 00187528: 28a20064 slti r2,r5,0x0064 0018752c: 14400003 bne r2,r0,0x0018753c Branch if HP Damage is more then 100? 00187530: 00000000 nop 00187534: 08061d6b j 0x001875ac 00187538: a4c00004 sh r0,0x0004(r6) Store HP Damage as 0 0018753c: 84c2002a lh r2,0x002a(r6) Load Hit % for attack on self? 00187540: 00000000 nop 00187544: 00a20018 mult r5,r2 00187548: 00001812 mflo r3 0018754c: 3c0251eb lui r2,0x51eb 00187550: 3442851f ori r2,r2,0x851f R2 = 51eb851f 00187554: 00620018 mult r3,r2 R3 * .33333334 00187558: 3c048019 lui r4,0x8019 0018755c: 8c84f5fc lw r4,-0x0a04(r4) Load ??? 00187560: a4c00004 sh r0,0x0004(r6) Store HP Damage as 0 00187564: 00031fc3 sra r3,r3,0x1f 00187568: 00001010 mfhi r2 0018756c: 00021143 sra r2,r2,0x05 00187570: 00431023 subu r2,r2,r3 00187574: 10800003 beq r4,r0,0x00187584 00187578: a4c2002a sh r2,0x002a(r6) 0018757c: 14a0000b bne r5,r0,0x001875ac 00187580: 00000000 nop 00187584: 0c017833 jal 0x0005e0cc Random Routine 00187588: 34040064 ori r4,r0,0x0064 R4 = 100 0018758c: 10400007 beq r2,r0,0x001875ac 00187590: 00000000 nop 00187594: 0c0610cf jal 0x0018433c Force Attack Miss routine? 00187598: 00000000 nop 0018759c: 3c028019 lui r2,0x8019 001875a0: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 001875a4: 00000000 nop 001875a8: a4400004 sh r0,0x0004(r2) Store HP Damage as 0 001875ac: 8fbf0010 lw r31,0x0010(r29) 001875b0: 27bd0018 addiu r29,r29,0x0018 001875b4: 03e00008 jr r31 001875b8: 00000000 nop Dragon Check: 001875bc: 3c028019 lui r2,0x8019 001875c0: 8c422d98 lw r2,0x2d98(r2) Load Target's stats 001875c4: 27bdffe8 addiu r29,r29,0xffe8 001875c8: afbf0010 sw r31,0x0010(r29) 001875cc: 9042015e lbu r2,0x015e(r2) Load Target's Graphic 001875d0: 00000000 nop 001875d4: 2442fff1 addiu r2,r2,0xfff1 Target's Graphic - E 001875d8: 2c420002 sltiu r2,r2,0x0002 Set to 1 if Target's Graphic is E, F, or 10 001875dc: 14400003 bne r2,r0,0x001875ec Branch to end if target is using Graphic E, F, 10 001875e0: 00000000 nop 001875e4: 0c0610c3 jal 0x0018430c Force Attack Miss 001875e8: 00000000 nop 001875ec: 8fbf0010 lw r31,0x0010(r29) 001875f0: 27bd0018 addiu r29,r29,0x0018 001875f4: 03e00008 jr r31 001875f8: 00000000 nop Sleep Check: 001875fc: 3c028019 lui r2,0x8019 00187600: 8c422d98 lw r2,0x2d98(r2) Load Defenders Stats 00187604: 27bdffe8 addiu r29,r29,0xffe8 00187608: afbf0010 sw r31,0x0010(r29) 0018760c: 9042005c lbu r2,0x005c(r2) Load 5th set of Current Status 00187610: 00000000 nop 00187614: 30420010 andi r2,r2,0x0010 00187618: 10400003 beq r2,r0,0x00187628 Branch to end if unit is not sleep 0018761c: 00000000 nop 00187620: 0c0610c3 jal 0x0018430c Force miss routine 00187624: 00000000 nop 00187628: 8fbf0010 lw r31,0x0010(r29) 0018762c: 27bd0018 addiu r29,r29,0x0018 00187630: 03e00008 jr r31 00187634: 00000000 nop Maintence Check: 00187638: 3c028019 lui r2,0x8019 0018763c: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187640: 00000000 nop 00187644: 90420091 lbu r2,0x0091(r2) Load 3rd set of Supports 00187648: 00000000 nop 0018764c: 30420004 andi r2,r2,0x0004 00187650: 1040000d beq r2,r0,0x00187688 Branch if unit doesn't have Maintance 00187654: 00000000 nop 00187658: 3c028019 lui r2,0x8019 0018765c: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 00187660: 00000000 nop 00187664: a0400000 sb r0,0x0000(r2) Store Attack as missed 00187668: 3c038019 lui r3,0x8019 0018766c: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187670: 34020007 ori r2,r0,0x0007 r2 = 7 00187674: a0620002 sb r2,0x0002(r3) Store Attack as guarded or missed 00187678: 3c028019 lui r2,0x8019 0018767c: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer... 00187680: 00000000 nop 00187684: a440002a sh r0,0x002a(r2) 0% chance to hit self 00187688: 03e00008 jr r31 0018768c: 00000000 nop Magic Gun Ability Decision: 00187730: 27bdffe8 addiu r29,r29,0xffe8 00187734: afb00010 sw r16,0x0010(r29) 00187738: 3c108019 lui r16,0x8019 0018773c: 92103904 lbu r16,0x3904(r16) Load Weapon's Element 00187740: afbf0014 sw r31,0x0014(r29) 00187744: 0c063ba8 jal 0x0018eea0 Random Process 00187748: 00000000 nop 0018774c: 00021840 sll r3,r2,0x01 Random * 2 00187750: 00621821 addu r3,r3,r2 Random * 3 00187754: 000318c0 sll r3,r3,0x03 Random * 24 00187758: 00621821 addu r3,r3,r2 Random * 25 0018775c: 00031880 sll r3,r3,0x02 Random * 100 (or mult r2, r3 with r3 = 64) 00187760: 04610002 bgez r3,0x0018776c Branch if Random is Positive 00187764: 32020080 andi r2,r16,0x0080 00187768: 24637fff addiu r3,r3,0x7fff Random + 7fff 0018776c: 1040000b beq r2,r0,0x0018779c Branch if Weapon doesn't have Fire 00187770: 00031bc2 srl r3,r3,0x0f Random / 8000 (rand 0..99) 00187774: 306400ff andi r4,r3,0x00ff 00187778: 2c82000a sltiu r2,r4,0x000a 0018777c: 10400003 beq r2,r0,0x0018778c Branch if Random > a (90% chance to branch) 00187780: 2c820028 sltiu r2,r4,0x0028 00187784: 08061dfb j 0x001877ec 00187788: 34030012 ori r3,r0,0x0012 r3 = 12 (Firaga, 10% chance) 0018778c: 10400017 beq r2,r0,0x001877ec Branch if Random > 28 (60% chance to branch) 00187790: 34030010 ori r3,r0,0x0010 r3 = 10 (Fire, 60% chance) 00187794: 08061dfb j 0x001877ec 00187798: 34030011 ori r3,r0,0x0011 r3 = 11 (Fira, 30% chance) 0018779c: 32020040 andi r2,r16,0x0040 001877a0: 1040000a beq r2,r0,0x001877cc Branch if Weapon doesn't have Lightning 001877a4: 306400ff andi r4,r3,0x00ff 001877a8: 2c82000a sltiu r2,r4,0x000a 001877ac: 10400003 beq r2,r0,0x001877bc Branch if Ranfom > a 001877b0: 2c820028 sltiu r2,r4,0x0028 001877b4: 08061dfb j 0x001877ec 001877b8: 34030016 ori r3,r0,0x0016 r3 = 16 (Thundaga) 001877bc: 1040000b beq r2,r0,0x001877ec Branch if Random > 28 001877c0: 34030014 ori r3,r0,0x0014 r3 = 14 (Thunder) 001877c4: 08061dfb j 0x001877ec 001877c8: 34030015 ori r3,r0,0x0015 r3 = 15 (Thundara) 001877cc: 2c82000a sltiu r2,r4,0x000a 001877d0: 10400003 beq r2,r0,0x001877e0 Branch if Random > a 001877d4: 2c820028 sltiu r2,r4,0x0028 001877d8: 08061dfb j 0x001877ec 001877dc: 3403001a ori r3,r0,0x001a r3 = 1a (Blizzaga) 001877e0: 10400002 beq r2,r0,0x001877ec Branch if Random > 28 001877e4: 34030018 ori r3,r0,0x0018 r3 = 18 (Blizzard) 001877e8: 34030019 ori r3,r0,0x0019 r3 = 19 (Blizzara) 001877ec: 3c058019 lui r5,0x8019 001877f0: 24a538d6 addiu r5,r5,0x38d6 001877f4: 000320c0 sll r4,r3,0x03 Ability ID * 8 001877f8: 00832023 subu r4,r4,r3 Ability ID * 7 001877fc: 00042040 sll r4,r4,0x01 Ability ID * 14 00187800: a4a30000 sh r3,0x0000(r5) Store Used Ability ID 00187804: 24a5001a addiu r5,r5,0x001a r5 = 801938f0 (Current Action Ability Data start) 00187808: 3c028019 lui r2,0x8019 0018780c: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer 00187810: 3406000e ori r6,r0,0x000e r6 = e (Loop Limit) 00187814: a4430170 sh r3,0x0170(r2) Store Last Attack? = Ability ID 00187818: 3c028006 lui r2,0x8006 0018781c: 2442fbf0 addiu r2,r2,-0x0410 r2 = 5fbf0 (Ability Data) 00187820: 0c017895 jal 0x0005e254 Load X into Y (Ability Data -> Current Action Data) 00187824: 00822021 addu r4,r4,r2 r4 = Ability Data Pointer 00187828: 8fbf0014 lw r31,0x0014(r29) 0018782c: 8fb00010 lw r16,0x0010(r29) 00187830: 27bd0018 addiu r29,r29,0x0018 00187834: 03e00008 jr r31 00187838: 00000000 nop Quick Effect: 0018783c: 3c038019 lui r3,0x8019 00187840: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 00187844: 340200ff ori r2,r0,0x00ff R2 = FF 00187848: a0620013 sb r2,0x0013(r3) Store FF as CT Change 0018784c: 3c038019 lui r3,0x8019 00187850: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 00187854: 34020001 ori r2,r0,0x0001 R2 = 1 00187858: 03e00008 jr r31 0018785c: a0620025 sb r2,0x0025(r3) Store Attack type as Psuedo-Status Determine which stat will be reduced (bunch of hardcoding) 00187860: 3c038019 lui r3,0x8019 00187864: 946338d6 lhu r3,0x38d6(r3) Used Ability ID 00187868: 34020090 ori r2,r0,0x0090 0018786c: 10620003 beq r3,r2,0x0018787c Branch if used ability is 'Power Break' 00187870: 340200c6 ori r2,r0,0x00c6 00187874: 14620008 bne r3,r2,0x00187898 Branch if used ability is not 'Power Ruin' 00187878: 34020091 ori r2,r0,0x0091 0018787c: 3c028019 lui r2,0x8019 00187880: 904238f9 lbu r2,0x38f9(r2) Load Ability X 00187884: 3c038019 lui r3,0x8019 00187888: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018788c: 3042007f andi r2,r2,0x007f 00187890: 08061e3b j 0x001878ec 00187894: a0620014 sb r2,0x0014(r3) Store X as a negative PA change 00187898: 10620003 beq r3,r2,0x001878a8 Branch if used ability is 'Mind Break' 0018789c: 340200c7 ori r2,r0,0x00c7 001878a0: 14620008 bne r3,r2,0x001878c4 Branch if used ability is not 'Mind Ruin' 001878a4: 3402008f ori r2,r0,0x008f 001878a8: 3c028019 lui r2,0x8019 001878ac: 904238f9 lbu r2,0x38f9(r2) Load Ability X 001878b0: 3c038019 lui r3,0x8019 001878b4: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 001878b8: 3042007f andi r2,r2,0x007f 001878bc: 08061e3b j 0x001878ec 001878c0: a0620015 sb r2,0x0015(r3) Store X as a negative MA change 001878c4: 10620003 beq r3,r2,0x001878d4 Branch if used ability is 'Speed Break' 001878c8: 340200c5 ori r2,r0,0x00c5 001878cc: 1462000e bne r3,r2,0x00187908 Branch if used ability not 'Speed Ruin' 001878d0: 00000000 nop 001878d4: 3c028019 lui r2,0x8019 001878d8: 904238f9 lbu r2,0x38f9(r2) Load Ability X 001878dc: 3c038019 lui r3,0x8019 001878e0: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 001878e4: 3042007f andi r2,r2,0x007f 001878e8: a0620012 sb r2,0x0012(r3) Store X as a negative SP change 001878ec: 3c038019 lui r3,0x8019 001878f0: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 001878f4: 00000000 nop 001878f8: 90620025 lbu r2,0x0025(r3) Load Attack type flag 001878fc: 00000000 nop 00187900: 34420001 ori r2,r2,0x0001 00187904: a0620025 sb r2,0x0025(r3) Store Attack as a Psuedo-Status 00187908: 03e00008 jr r31 0018790c: 00000000 nop Katana Break Chance: 00187910: 3c028019 lui r2,0x8019 00187914: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00187918: 27bdffe8 addiu r29,r29,0xffe8 0018791c: afbf0010 sw r31,0x0010(r29) 00187920: 90430003 lbu r3,0x0003(r2) Load Attacker's Job 00187924: 3402005d ori r2,r0,0x005d r2 = 5d 00187928: 10620023 beq r3,r2,0x001879b8 Branch to the end if Attack is a Mime (to prevent them from breaking the katana) 0018792c: 34020001 ori r2,r0,0x0001 R2 = 1 00187930: 3c038019 lui r3,0x8019 00187934: 8c632d8c lw r3,0x2d8c(r3) Load Attacker Current Action Data Pointer 00187938: 00000000 nop 0018793c: a0620000 sb r2,0x0000(r3) 00187940: 3c028019 lui r2,0x8019 00187944: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00187948: 3c038019 lui r3,0x8019 0018794c: 8c632d8c lw r3,0x2d8c(r3) Load Attacker Current Action Data Pointer 00187950: 90420176 lbu r2,0x0176(r2) 00187954: 00000000 nop 00187958: a0620003 sb r2,0x0003(r3) 0018795c: 3c038019 lui r3,0x8019 00187960: 8c632d8c lw r3,0x2d8c(r3) Load Attacker Current Action Data Pointer 00187964: 34020008 ori r2,r0,0x0008 R2 = 8 00187968: a0620002 sb r2,0x0002(r3) 0018796c: 3c028019 lui r2,0x8019 00187970: 8c42f5fc lw r2,-0x0a04(r2) 00187974: 00000000 nop 00187978: 1440000b bne r2,r0,0x001879a8 0018797c: 00000000 nop 00187980: 3c058019 lui r5,0x8019 00187984: 90a53902 lbu r5,0x3902(r5) Load Weapon Power 00187988: 0c017833 jal 0x0005e0cc Random 0018798c: 34040064 ori r4,r0,0x0064 R4 = 100 (break chance equals 100 - WP) 00187990: 10400005 beq r2,r0,0x001879a8 00187994: 34020008 ori r2,r0,0x0008 r2 = 8 00187998: 3c038019 lui r3,0x8019 0018799c: 8c632d8c lw r3,0x2d8c(r3) Load Attacker Current Action Data Pointer 001879a0: 08061e6e j 0x001879b8 001879a4: a4620010 sh r2,0x0010(r3) 001879a8: 3c038019 lui r3,0x8019 001879ac: 8c632d8c lw r3,0x2d8c(r3) Load Attacker Current Action Data Pointer 001879b0: 34021000 ori r2,r0,0x1000 001879b4: a4620010 sh r2,0x0010(r3) 001879b8: 8fbf0010 lw r31,0x0010(r29) 001879bc: 27bd0018 addiu r29,r29,0x0018 001879c0: 03e00008 jr r31 001879c4: 00000000 nop Steal/Break/Might Sword Hard Coding 001879c8: 3c038019 lui r3,0x8019 001879cc: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 001879d0: 340200fe ori r2,r0,0x00fe 001879d4: a0620019 sb r2,0x0019(r3) Store as 0x00FE 001879d8: 3c048019 lui r4,0x8019 001879dc: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 001879e0: 00000000 nop 001879e4: 90820006 lbu r2,0x0006(r4) Load Defender's Gender 001879e8: 00000000 nop 001879ec: 30420020 andi r2,r2,0x0020 001879f0: 144000a5 bne r2,r0,0x00187c88 Branch if Gender is a Monster 001879f4: 3402008a ori r2,r0,0x008a R2 = 8a 001879f8: 3c038019 lui r3,0x8019 001879fc: 946338d6 lhu r3,0x38d6(r3) Load Used Ability ID 00187a00: 00000000 nop 00187a04: 10620005 beq r3,r2,0x00187a1c Branch if used ability is 'Head Break' 00187a08: 340200a1 ori r2,r0,0x00a1 00187a0c: 10620003 beq r3,r2,0x00187a1c Branch if used ability is 'Blastar Punch' 00187a10: 3402006e ori r2,r0,0x006e 00187a14: 14620013 bne r3,r2,0x00187a64 Branch if used ability is not 'Steal Helmet' 00187a18: 3402008b ori r2,r0,0x008b 00187a1c: 3c028019 lui r2,0x8019 00187a20: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187a24: 00000000 nop 00187a28: 9043001a lbu r3,0x001a(r2) Load Defender's Headgear 00187a2c: 340200ff ori r2,r0,0x00ff 00187a30: 10620095 beq r3,r2,0x00187c88 Branch if Headgear ID is FF (Doesn't exist?) 00187a34: 34020080 ori r2,r0,0x0080 R2 = 80 00187a38: 3c038019 lui r3,0x8019 00187a3c: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187a40: 00000000 nop 00187a44: a0620019 sb r2,0x0019(r3) Store as remove helmet 00187a48: 3c028019 lui r2,0x8019 00187a4c: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187a50: 3c048019 lui r4,0x8019 00187a54: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 00187a58: 9043001a lbu r3,0x001a(r2) Load Defender's Headgear 00187a5c: 08061f20 j 0x00187c80 00187a60: 00001021 addu r2,r0,r0 R2 = 0 00187a64: 10620005 beq r3,r2,0x00187a7c Branch if used ability is 'Armor Break' 00187a68: 340200a0 ori r2,r0,0x00a0 00187a6c: 10620003 beq r3,r2,0x00187a7c Branch if used ability is 'Shellbust Stab' 00187a70: 3402006f ori r2,r0,0x006f 00187a74: 14620013 bne r3,r2,0x00187ac4 Branch if used ability is not 'Steal Armor' 00187a78: 3402008c ori r2,r0,0x008c 00187a7c: 3c028019 lui r2,0x8019 00187a80: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187a84: 00000000 nop 00187a88: 9043001b lbu r3,0x001b(r2) Load Defender's Armor 00187a8c: 340200ff ori r2,r0,0x00ff 00187a90: 1062007d beq r3,r2,0x00187c88 Branch if Armor doesn't exist 00187a94: 34020040 ori r2,r0,0x0040 00187a98: 3c038019 lui r3,0x8019 00187a9c: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187aa0: 00000000 nop 00187aa4: a0620019 sb r2,0x0019(r3) Store as remove helmet? 00187aa8: 3c028019 lui r2,0x8019 00187aac: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187ab0: 3c048019 lui r4,0x8019 00187ab4: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 00187ab8: 9043001b lbu r3,0x001b(r2) Load Defender's Armor 00187abc: 08061f20 j 0x00187c80 00187ac0: 00001021 addu r2,r0,r0 R2 = 0 00187ac4: 10620003 beq r3,r2,0x00187ad4 Branch if used ability is 'Shield Break' 00187ac8: 34020070 ori r2,r0,0x0070 00187acc: 1462001f bne r3,r2,0x00187b4c Branch if used ability is not 'Steal Shield' 00187ad0: 340200a3 ori r2,r0,0x00a3 00187ad4: 9083001e lbu r3,0x001e(r4) Load Defender's Right Hand Shield 00187ad8: 340200ff ori r2,r0,0x00ff 00187adc: 1062000c beq r3,r2,0x00187b10 Branch if Right Hand Shield doesn't exist? 00187ae0: 34020008 ori r2,r0,0x0008 R2 = 8 00187ae4: 3c038019 lui r3,0x8019 00187ae8: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187aec: 00000000 nop 00187af0: a0620019 sb r2,0x0019(r3) Store as Remove Right Hand Shield 00187af4: 3c028019 lui r2,0x8019 00187af8: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187afc: 3c048019 lui r4,0x8019 00187b00: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 00187b04: 9043001e lbu r3,0x001e(r2) Load Defender's Shield 00187b08: 08061f20 j 0x00187c80 00187b0c: 00001021 addu r2,r0,r0 R2 = 0 00187b10: 90820020 lbu r2,0x0020(r4) Load Left Hand Shield 00187b14: 00000000 nop 00187b18: 1043005b beq r2,r3,0x00187c88 Branch if Left Hand Shield doesn't exist 00187b1c: 34020002 ori r2,r0,0x0002 00187b20: 3c038019 lui r3,0x8019 00187b24: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187b28: 00000000 nop 00187b2c: a0620019 sb r2,0x0019(r3) Store as remove Left Hand Shield 00187b30: 3c028019 lui r2,0x8019 00187b34: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187b38: 3c048019 lui r4,0x8019 00187b3c: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 00187b40: 90430020 lbu r3,0x0020(r2) Load Left Hand Shield 00187b44: 08061f20 j 0x00187c80 00187b48: 00001021 addu r2,r0,r0 R2 = 0 00187b4c: 10620003 beq r3,r2,0x00187b5c Branch if used ability is 'Icewolf Bite' 00187b50: 34020072 ori r2,r0,0x0072 00187b54: 14620010 bne r3,r2,0x00187b98 Branch if used ability is not 'Steal Accessory' 00187b58: 3402008d ori r2,r0,0x008d 00187b5c: 9083001c lbu r3,0x001c(r4) Load Defender's Accessory 00187b60: 340200ff ori r2,r0,0x00ff 00187b64: 10620048 beq r3,r2,0x00187c88 Branch if Accessory doesn't exist? 00187b68: 34020020 ori r2,r0,0x0020 00187b6c: 3c038019 lui r3,0x8019 00187b70: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187b74: 00000000 nop 00187b78: a0620019 sb r2,0x0019(r3) Store as remove accessory 00187b7c: 3c028019 lui r2,0x8019 00187b80: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187b84: 3c048019 lui r4,0x8019 00187b88: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 00187b8c: 9043001c lbu r3,0x001c(r2) Load Defender's Accessory 00187b90: 08061f20 j 0x00187c80 00187b94: 00001021 addu r2,r0,r0 R2 = 0 00187b98: 10620006 beq r3,r2,0x00187bb4 Branch if used ability is 'Weapon Break' 00187b9c: 2405ffff addiu r5,r0,0xffff R5 = 0xFFFF ? 00187ba0: 340200a2 ori r2,r0,0x00a2 00187ba4: 10620003 beq r3,r2,0x00187bb4 Branch if used ability is 'Hellcry Punch' 00187ba8: 34020071 ori r2,r0,0x0071 00187bac: 14620036 bne r3,r2,0x00187c88 Branch if used ability is 'Steal Weapon' 00187bb0: 00000000 nop 00187bb4: 3c068019 lui r6,0x8019 00187bb8: 8cc62d98 lw r6,0x2d98(r6) Load Defender's Stats 00187bbc: 00000000 nop 00187bc0: 90c3001d lbu r3,0x001d(r6) Load Right Hand Weapon 00187bc4: 340700ff ori r7,r0,0x00ff 00187bc8: 10670007 beq r3,r7,0x00187be8 Branch if Right Hand Weapon doesn't exist 00187bcc: 2404ffff addiu r4,r0,0xffff R4 = FFFF 00187bd0: 00031040 sll r2,r3,0x01 Right Hand Weapon * 2 00187bd4: 00431021 addu r2,r2,r3 Right Hand Weapon * 3 00187bd8: 00021080 sll r2,r2,0x02 Right Hand Weapon * 12 00187bdc: 3c018006 lui r1,0x8006 00187be0: 00220821 addu r1,r1,r2 00187be4: 90242eba lbu r4,0x2eba(r1) 00187be8: 90c3001f lbu r3,0x001f(r6) Load Left Hand Weapon 00187bec: 00000000 nop 00187bf0: 10670006 beq r3,r7,0x00187c0c Branch if Left Hand Weapon doesn't exist 00187bf4: 00031040 sll r2,r3,0x01 Left Hand Weapon * 2 00187bf8: 00431021 addu r2,r2,r3 Left Hand Weapon * 3 00187bfc: 00021080 sll r2,r2,0x02 Left Hand Weapon * 12 00187c00: 3c018006 lui r1,0x8006 00187c04: 00220821 addu r1,r1,r2 00187c08: 90252eba lbu r5,0x2eba(r1) 00187c0c: 2402ffff addiu r2,r0,0xffff R2 = 0xFFFF 00187c10: 14820003 bne r4,r2,0x00187c20 00187c14: 00000000 nop 00187c18: 10a4001b beq r5,r4,0x00187c88 00187c1c: 00000000 nop 00187c20: 0085102a slt r2,r4,r5 00187c24: 1440000c bne r2,r0,0x00187c58 00187c28: 34020004 ori r2,r0,0x0004 00187c2c: 3c038019 lui r3,0x8019 00187c30: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187c34: 34020010 ori r2,r0,0x0010 00187c38: a0620019 sb r2,0x0019(r3) Store as remove right hand weapon 00187c3c: 3c028019 lui r2,0x8019 00187c40: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187c44: 3c048019 lui r4,0x8019 00187c48: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 00187c4c: 9043001d lbu r3,0x001d(r2) Load Right Hand Weapon 00187c50: 08061f20 j 0x00187c80 00187c54: 00001021 addu r2,r0,r0 R2 = 0 00187c58: 3c038019 lui r3,0x8019 00187c5c: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187c60: 00000000 nop 00187c64: a0620019 sb r2,0x0019(r3) Store as remove left hand weapon 00187c68: 3c028019 lui r2,0x8019 00187c6c: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187c70: 3c048019 lui r4,0x8019 00187c74: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 00187c78: 9043001f lbu r3,0x001f(r2) Load Left Hand Weapon 00187c7c: 00001021 addu r2,r0,r0 R2 = 0 00187c80: 08061f26 j 0x00187c98 00187c84: a0830003 sb r3,0x0003(r4) Store Equipment... ? 00187c88: 3c038019 lui r3,0x8019 00187c8c: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 00187c90: 2402ffff addiu r2,r0,0xffff R2 = 0xFFFF 00187c94: a0600019 sb r0,0x0019(r3) Store equipment as 0 ? 00187c98: 03e00008 jr r31 00187c9c: 00000000 nop Formula 01 - 06 Aftermath (Contains Poach and Secret Hunt) 00187ca0: 3c068019 lui r6,0x8019 00187ca4: 8cc62d90 lw r6,0x2d90(r6) Load Current Action Data Pointer 00187ca8: 27bdffe8 addiu r29,r29,0xffe8 00187cac: afbf0010 sw r31,0x0010(r29) 00187cb0: 90c20025 lbu r2,0x0025(r6) Load Attack Flag 00187cb4: 00000000 nop 00187cb8: 30420080 andi r2,r2,0x0080 00187cbc: 10400079 beq r2,r0,0x00187ea4 Branch if Attack Flag is HP Damage 00187cc0: 00000000 nop 00187cc4: 3c058019 lui r5,0x8019 00187cc8: 8ca52d98 lw r5,0x2d98(r5) Load Defender's Stats 00187ccc: 84c20004 lh r2,0x0004(r6) Load HP Damage 00187cd0: 94a30028 lhu r3,0x0028(r5) Load Defender's Current HP 00187cd4: 84c40006 lh r4,0x0006(r6) Load HP Recovery 00187cd8: 00621823 subu r3,r3,r2 Current HP - HP Damage 00187cdc: 90a20006 lbu r2,0x0006(r5) Load Gender 00187ce0: 00000000 nop 00187ce4: 304200c0 andi r2,r2,0x00c0 00187ce8: 1440006e bne r2,r0,0x00187ea4 Branch if unit is not 'Male/Female' 00187cec: 00642021 addu r4,r3,r4 00187cf0: 90a201ba lbu r2,0x01ba(r5) Load... Team? 00187cf4: 00000000 nop 00187cf8: 30420030 andi r2,r2,0x0030 00187cfc: 000210c2 srl r2,r2,0x03 00187d00: 3c018019 lui r1,0x8019 00187d04: 00220821 addu r1,r1,r2 00187d08: 9422f5f4 lhu r2,-0x0a0c(r1) 00187d0c: 00000000 nop 00187d10: 10400007 beq r2,r0,0x00187d30 00187d14: 00000000 nop 00187d18: 3c028019 lui r2,0x8019 00187d1c: 904238f5 lbu r2,0x38f5(r2) Load 3rd set of Ability Flags 00187d20: 00000000 nop 00187d24: 30420008 andi r2,r2,0x0008 00187d28: 1440005e bne r2,r0,0x00187ea4 Branch if 'Normal Attack' Flag is active 00187d2c: 00000000 nop 00187d30: 94a20058 lhu r2,0x0058(r5) Load First set of Current Status 00187d34: 00000000 nop 00187d38: 30428020 andi r2,r2,0x8020 00187d3c: 14400059 bne r2,r0,0x00187ea4 00187d40: 00000000 nop 00187d44: 90a2005b lbu r2,0x005b(r5) Load Second set of Current Status 00187d48: 00000000 nop 00187d4c: 30420001 andi r2,r2,0x0001 00187d50: 14400054 bne r2,r0,0x00187ea4 Branch if Unit is a Treasure 00187d54: 00000000 nop 00187d58: 18800006 blez r4,0x00187d74 00187d5c: 00000000 nop 00187d60: 90c2001b lbu r2,0x001b(r6) Load 1st set of Status Infliction 00187d64: 00000000 nop 00187d68: 30420020 andi r2,r2,0x0020 00187d6c: 10400021 beq r2,r0,0x00187df4 Branch if unit is not dead 00187d70: 00000000 nop 00187d74: 3c028019 lui r2,0x8019 00187d78: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00187d7c: 00000000 nop 00187d80: 90420091 lbu r2,0x0091(r2) Load 3rd set of Support 00187d84: 00000000 nop 00187d88: 30420040 andi r2,r2,0x0040 00187d8c: 10400019 beq r2,r0,0x00187df4 Branch if support is not 'Secret Hunt' 00187d90: 00000000 nop 00187d94: 90a20005 lbu r2,0x0005(r5) Load Defender's Team 00187d98: 00000000 nop 00187d9c: 30420004 andi r2,r2,0x0004 00187da0: 14400014 bne r2,r0,0x00187df4 Branch if unit has 'Immortal' Flag 00187da4: 00000000 nop 00187da8: 90a20003 lbu r2,0x0003(r5) Load Job ID 00187dac: 00000000 nop 00187db0: 2442ffa2 addiu r2,r2,0xffa2 Job ID - 5D 00187db4: 2c420030 sltiu r2,r2,0x0030 00187db8: 1040003a beq r2,r0,0x00187ea4 Branch if Job ID is 5D or lower or if Job ID is over 8D 00187dbc: 00000000 nop 00187dc0: 0c062f4d jal 0x0018bd34 00187dc4: 00000000 nop 00187dc8: 0c062f3c jal 0x0018bcf0 00187dcc: 00000000 nop 00187dd0: 3c028019 lui r2,0x8019 00187dd4: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 00187dd8: 00000000 nop 00187ddc: 94430010 lhu r3,0x0010(r2) Load Half Word ??? 00187de0: 00000000 nop 00187de4: 34630020 ori r3,r3,0x0020 00187de8: a4430010 sh r3,0x0010(r2) Store Half Word ??? 00187dec: 08061fa7 j 0x00187e9c 00187df0: 34020006 ori r2,r0,0x0006 R2 = 6 00187df4: 1880002b blez r4,0x00187ea4 00187df8: 3c03cccc lui r3,0xcccc 00187dfc: 3c028019 lui r2,0x8019 00187e00: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 00187e04: 00000000 nop 00187e08: 9442002a lhu r2,0x002a(r2) Load Defender's Max HP 00187e0c: 3463cccd ori r3,r3,0xcccd R3 = 0xcccccccd 00187e10: 00430019 multu r2,r3 00187e14: 00001010 mfhi r2 00187e18: 00021082 srl r2,r2,0x02 00187e1c: 3042ffff andi r2,r2,0xffff 00187e20: 0044102a slt r2,r2,r4 00187e24: 1440001f bne r2,r0,0x00187ea4 00187e28: 00000000 nop 00187e2c: 3c028019 lui r2,0x8019 00187e30: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 00187e34: 00000000 nop 00187e38: 90420091 lbu r2,0x0091(r2) Load 3rd set of Support 00187e3c: 00000000 nop 00187e40: 30420080 andi r2,r2,0x0080 00187e44: 10400017 beq r2,r0,0x00187ea4 00187e48: 00002021 addu r4,r0,r0 00187e4c: 3c038019 lui r3,0x8019 00187e50: 8c632d90 lw r3,0x2d90(r3) 00187e54: 00000000 nop 00187e58: 9062001c lbu r2,0x001c(r3) 00187e5c: 00000000 nop 00187e60: 34420040 ori r2,r2,0x0040 00187e64: 0c0612c9 jal 0x00184b24 00187e68: a062001c sb r2,0x001c(r3) 00187e6c: 1040000d beq r2,r0,0x00187ea4 00187e70: 00000000 nop 00187e74: 3c048019 lui r4,0x8019 00187e78: 8c842d90 lw r4,0x2d90(r4) 00187e7c: 00000000 nop 00187e80: 94820010 lhu r2,0x0010(r4) 00187e84: 90830025 lbu r3,0x0025(r4) 00187e88: 34420040 ori r2,r2,0x0040 00187e8c: 34630008 ori r3,r3,0x0008 00187e90: a4820010 sh r2,0x0010(r4) 00187e94: 34020009 ori r2,r0,0x0009 00187e98: a0830025 sb r3,0x0025(r4) 00187e9c: 3c018019 lui r1,0x8019 00187ea0: a022390e sb r2,0x390e(r1) 00187ea4: 8fbf0010 lw r31,0x0010(r29) 00187ea8: 27bd0018 addiu r29,r29,0x0018 00187eac: 03e00008 jr r31 00187eb0: 00000000 nop MP Healing Item Formula 00188288: 3c038019 lui r3,0x8019 0018828c: 906338db lbu r3,0x38db(r3) Load Used Item ID 00188290: 3c048019 lui r4,0x8019 00188294: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 00188298: 00031040 sll r2,r3,0x01 ID * 2 0018829c: 00431021 addu r2,r2,r3 ID * 3 001882a0: 3c018006 lui r1,0x8006 001882a4: 00220821 addu r1,r1,r2 80060000 + ID * 3 (Item's Second Table Data) 001882a8: 90233f99 lbu r3,0x3f99(r1) Load Z value 001882ac: 34020010 ori r2,r0,0x0010 001882b0: a0820025 sb r2,0x0025(r4) Store Attack Type = MP Recovery 001882b4: 00031080 sll r2,r3,0x02 Z * 4 001882b8: 00431021 addu r2,r2,r3 Z * 5 001882bc: 00021040 sll r2,r2,0x01 Z * 10 001882c0: 03e00008 jr r31 001882c4: a482000a sh r2,0x000a(r4) Store MP Healing = Z * 10 100% HP/MP Healing (actual) 001882c8: 3c048019 lui r4,0x8019 001882cc: 8c842d98 lw r4,0x2d98(r4) Load Target's Data Pointer 001882d0: 3c038019 lui r3,0x8019 001882d4: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 001882d8: 9482002a lhu r2,0x002a(r4) Load Target's Max HP 001882dc: 00000000 nop 001882e0: a4620004 sh r2,0x0004(r3) Store HP Damage = Max HP 001882e4: 9484002e lhu r4,0x002e(r4) Load Target's Max MP 001882e8: 34020090 ori r2,r0,0x0090 001882ec: a0620025 sb r2,0x0025(r3) Store Attack Type = HP/MP Recovery 001882f0: 03e00008 jr r31 001882f4: a464000a sh r4,0x000a(r3) Store MP Recovery = Max MP Finger Guard: 001882f8: 3c048019 lui r4,0x8019 001882fc: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 00188300: 27bdffe8 addiu r29,r29,0xffe8 00188304: afbf0010 sw r31,0x0010(r29) 00188308: 0c063248 jal 0x0018c920 ??? 0018830c: 00000000 nop 00188310: 14400022 bne r2,r0,0x0018839c 00188314: 00000000 nop 00188318: 3c058019 lui r5,0x8019 0018831c: 8ca52d98 lw r5,0x2d98(r5) Load Defender's Stats.... 00188320: 00000000 nop 00188324: 90a2008e lbu r2,0x008e(r5) Load 4th set of Reactions 00188328: 00000000 nop 0018832c: 30420020 andi r2,r2,0x0020 Branch if not equiped with Finger Guard 00188330: 1040001a beq r2,r0,0x0018839c 00188334: 34020064 ori r2,r0,0x0064 R2=100 00188338: 90a30024 lbu r3,0x0024(r5) 0018833c: 3c048019 lui r4,0x8019 00188340: 8c842d90 lw r4,0x2d90(r4) Load Current Action Data Pointer 00188344: 00431023 subu r2,r2,r3 100 - Brave 00188348: 1040000a beq r2,r0,0x00188374 Branch if Brave > 100? 0018834c: a482002a sh r2,0x002a(r4) Store Hit % 00188350: 0c0634e1 jal 0x0018d384 chance to React 00188354: 00a02021 addu r4,r5,r0 00188358: 14400010 bne r2,r0,0x0018839c 0018835c: 00000000 nop 00188360: 3c028019 lui r2,0x8019 00188364: 8c42f5fc lw r2,-0x0a04(r2) Load Something to do with Damage Display? 00188368: 00000000 nop 0018836c: 1440000b bne r2,r0,0x0018839c 00188370: 00000000 nop 00188374: 3c028019 lui r2,0x8019 00188378: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 0018837c: 00000000 nop 00188380: a0400000 sb r0,0x0000(r2) Change hit flag to miss 00188384: 3c038019 lui r3,0x8019 00188388: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer... 0018838c: 340201c0 ori r2,r0,0x01c0 00188390: a462000e sh r2,0x000e(r3) Store Reaction ID 00188394: 3402000b ori r2,r0,0x000b 00188398: a0620002 sb r2,0x0002(r3) Store Evade type? 0018839c: 8fbf0010 lw r31,0x0010(r29) 001883a0: 27bd0018 addiu r29,r29,0x0018 001883a4: 03e00008 jr r31 001883a8: 00000000 nop Catch: 001883ac: 3c048019 lui r4,0x8019 001883b0: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 001883b4: 27bdffe8 addiu r29,r29,0xffe8 001883b8: afbf0010 sw r31,0x0010(r29) 001883bc: 0c063248 jal 0x0018c920 ??? 001883c0: 00000000 nop 001883c4: 1440002c bne r2,r0,0x00188478 001883c8: 00000000 nop 001883cc: 3c028019 lui r2,0x8019 001883d0: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Stats 001883d4: 00000000 nop 001883d8: 90430003 lbu r3,0x0003(r2) Load Attacker's Job 001883dc: 3402005d ori r2,r0,0x005d 001883e0: 10620025 beq r3,r2,0x00188478 Branch to end if Attacker is a mime? 001883e4: 00000000 nop 001883e8: 3c058019 lui r5,0x8019 001883ec: 8ca52d98 lw r5,0x2d98(r5) Load Defender's Stats 001883f0: 00000000 nop 001883f4: 90a2008e lbu r2,0x008e(r5) Load Defender's 4th set of Reactions 001883f8: 00000000 nop 001883fc: 30420008 andi r2,r2,0x0008 00188400: 1040001d beq r2,r0,0x00188478 Branch to end if user is not equiped with Catch 00188404: 34020064 ori r2,r0,0x0064 R2 = 100 00188408: 90a30024 lbu r3,0x0024(r5) Load Brave 0018840c: 3c048019 lui r4,0x8019 00188410: 8c842d90 lw r4,0x2d90(r4) Current Action Data Pointer 00188414: 00431023 subu r2,r2,r3 100 - Brave 00188418: 1040000a beq r2,r0,0x00188444 Branch if Brave > 100 ? 0018841c: a482002a sh r2,0x002a(r4) Store Hit % for Attack on self? 00188420: 0c0634e1 jal 0x0018d384 Chance to React 00188424: 00a02021 addu r4,r5,r0 00188428: 14400013 bne r2,r0,0x00188478 Branch to end if Reaction failed 0018842c: 00000000 nop 00188430: 3c028019 lui r2,0x8019 00188434: 8c42f5fc lw r2,-0x0a04(r2) Load something to do with Damage Display? 00188438: 00000000 nop 0018843c: 1440000e bne r2,r0,0x00188478 00188440: 00000000 nop 00188444: 3c028019 lui r2,0x8019 00188448: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 0018844c: 00000000 nop 00188450: a0400000 sb r0,0x0000(r2) Change hit flag to miss 00188454: 3c038019 lui r3,0x8019 00188458: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 0018845c: 340201c2 ori r2,r0,0x01c2 00188460: a462000e sh r2,0x000e(r3) Store Reaction ID? 00188464: 3c048019 lui r4,0x8019 00188468: 908438d8 lbu r4,0x38d8(r4) Load Used Weapon ID 0018846c: 3402000d ori r2,r0,0x000d 00188470: a0620002 sb r2,0x0002(r3) Store Miss type? 00188474: a4640026 sh r4,0x0026(r3) Store Used Weapon ID to something? 00188478: 8fbf0010 lw r31,0x0010(r29) 0018847c: 27bd0018 addiu r29,r29,0x0018 00188480: 03e00008 jr r31 00188484: 00000000 nop Calculate Hit % 00188488: 27bdffe8 addiu r29,r29,0xffe8 0018848c: afbf0010 sw r31,0x0010(r29) 00188490: 0c061605 jal 0x00185814 Calculate Final Hit % 00188494: 00000000 nop 00188498: 3c028019 lui r2,0x8019 0018849c: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 001884a0: 00000000 nop 001884a4: 90420000 lbu r2,0x0000(r2) Load Able to hit Flag 001884a8: 00000000 nop 001884ac: 2c420001 sltiu r2,r2,0x0001 r2 = 1 if Attack was Evaded 001884b0: 8fbf0010 lw r31,0x0010(r29) 001884b4: 27bd0018 addiu r29,r29,0x0018 001884b8: 03e00008 jr r31 001884bc: 00000000 nop Physical Evade Calculation: 00188510: 27bdffe8 addiu r29,r29,0xffe8 00188514: afbf0010 sw r31,0x0010(r29) 00188518: 0c0613e7 jal 0x00184f9c Equipment Evasion Setting (Physical) 0018851c: 00000000 nop 00188520: 0c0614b9 jal 0x001852e4 Concentrate Calculation 00188524: 00000000 nop 00188528: 0c0614ca jal 0x00185328 Dark/Confuse Calculation 0018852c: 00000000 nop 00188530: 0c0614df jal 0x0018537c Abandon Calculation 00188534: 00000000 nop 00188538: 0c0614fd jal 0x001853f4 Evasion Changes due to Status 0018853c: 00000000 nop 00188540: 0c0615ce jal 0x00185738 Weather Effects on Bows/Crossbows 00188544: 00000000 nop 00188548: 0c06153f jal 0x001854fc Facing Evade Calculation 0018854c: 00000000 nop 00188550: 0c062122 jal 0x00188488 Calculate Hit % 00188554: 00000000 nop 00188558: 8fbf0010 lw r31,0x0010(r29) 0018855c: 27bd0018 addiu r29,r29,0x0018 00188560: 03e00008 jr r31 00188564: 00000000 nop Physical Evade Calculation (Charge): 00188568: 27bdffe8 addiu r29,r29,0xffe8 0018856c: afbf0010 sw r31,0x0010(r29) 00188570: 0c0613e7 jal 0x00184f9c 00188574: 00000000 nop 00188578: 0c0614b9 jal 0x001852e4 0018857c: 00000000 nop 00188580: 0c0614ca jal 0x00185328 00188584: 00000000 nop 00188588: 0c0614df jal 0x0018537c 0018858c: 00000000 nop 00188590: 0c0614fd jal 0x001853f4 00188594: 00000000 nop 00188598: 0c06153f jal 0x001854fc 0018859c: 00000000 nop 001885a0: 0c062122 jal 0x00188488 001885a4: 00000000 nop 001885a8: 8fbf0010 lw r31,0x0010(r29) 001885ac: 27bd0018 addiu r29,r29,0x0018 001885b0: 03e00008 jr r31 001885b4: 00000000 nop Magical Evade Calculation: 001885b8: 27bdffe8 addiu r29,r29,0xffe8 001885bc: afbf0010 sw r31,0x0010(r29) 001885c0: 0c061471 jal 0x001851c4 #Magical Equipment Settings 001885c4: 00000000 nop 001885c8: 0c06152e jal 0x001854b8 #Transparent Calculation 001885cc: 00000000 nop 001885d0: 0c0614df jal 0x0018537c #Abandon Calculation 001885d4: 00000000 nop 001885d8: 0c0614fd jal 0x001853f4 #Evasion Changes due to Status 001885dc: 00000000 nop 001885e0: 0c062122 jal 0x00188488 #Calculate Hit% 001885e4: 00000000 nop 001885e8: 8fbf0010 lw r31,0x0010(r29) 001885ec: 27bd0018 addiu r29,r29,0x0018 001885f0: 03e00008 jr r31 001885f4: 00000000 nop Physical XA Modifying Statuses/Support (Plus Compat): 001885f8: 27bdffe8 addiu r29,r29,0xffe8 001885fc: afbf0010 sw r31,0x0010(r29) 00188600: 0c061815 jal 0x00186054 Attack UP/Two Hands/Martial Arts 00188604: 00000000 nop 00188608: 0c061895 jal 0x00186254 Attacker Berserk/Frog Check 0018860c: 00000000 nop 00188610: 0c0618b3 jal 0x001862cc Defense UP 00188614: 00000000 nop 00188618: 0c0618db jal 0x0018636c Target XA affecting Statuses 0018861c: 00000000 nop 00188620: 0c061259 jal 0x00184964 Compatibility 00188624: 00000000 nop 00188628: 8fbf0010 lw r31,0x0010(r29) 0018862c: 27bd0018 addiu r29,r29,0x0018 00188630: 03e00008 jr r31 00188634: 00000000 nop Physical Damage Calculation (Weapons): 00188638: 27bdffe8 addiu r29,r29,0xffe8 0018863c: afbf0010 sw r31,0x0010(r29) 00188640: 0c0616a7 jal 0x00185a9c Base XA Calculation for each Weapon 00188644: 00000000 nop 00188648: 0c0617e0 jal 0x00185f80 Charge Calculation 0018864c: 00000000 nop 00188650: 0c0617e9 jal 0x00185fa4 Weapon Element Strengthen Calculation 00188654: 00000000 nop 00188658: 0c0621a9 jal 0x001886a4 Damage Caluclation 0018865c: 00000000 nop 00188660: 0c061bf4 jal 0x00186fd0 Elemental Damage Modification 00188664: 00000000 nop 00188668: 3c028019 lui r2,0x8019 0018866c: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 00188670: 00000000 nop 00188674: 90420000 lbu r2,0x0000(r2) Load Able to hit Flag 00188678: 00000000 nop 0018867c: 10400005 beq r2,r0,0x00188694 Branch if Attack was Evaded/Nulled 00188680: 34020001 ori r2,r0,0x0001 r2 = 1 00188684: 0c061c3f jal 0x001870fc Elemental Absorption 00188688: 00000000 nop 0018868c: 0c062130 jal 0x001884c0 ? 00188690: 00000000 nop 00188694: 8fbf0010 lw r31,0x0010(r29) 00188698: 27bd0018 addiu r29,r29,0x0018 0018869c: 03e00008 jr r31 001886a0: 00000000 nop Damage Calculation 001886a4: 27bdffe8 addiu r29,r29,0xffe8 001886a8: afbf0010 sw r31,0x0010(r29) 001886ac: 0c06217e jal 0x001885f8 XA Modifying Statuses/Support (Plus Compat) 001886b0: 00000000 nop 001886b4: 0c06193e jal 0x001864f8 Critical Hit Calculation (Includes Knockback) 001886b8: 00000000 nop 001886bc: 0c06195a jal 0x00186568 XA * YA Calculation 001886c0: 00000000 nop 001886c4: 8fbf0010 lw r31,0x0010(r29) 001886c8: 27bd0018 addiu r29,r29,0x0018 001886cc: 03e00008 jr r31 001886d0: 00000000 nop Routine used in formula 2B 001886d4: 27bdffe8 addiu r29,r29,0xffe8 001886d8: afbf0010 sw r31,0x0010(r29) 001886dc: 0c06217e jal 0x001885f8 001886e0: 00000000 nop 001886e4: 0c061967 jal 0x0018659c 001886e8: 00000000 nop 001886ec: 0c061d44 jal 0x00187510 001886f0: 00000000 nop 001886f4: 3c028019 lui r2,0x8019 001886f8: 8c422d90 lw r2,0x2d90(r2) 001886fc: 00000000 nop 00188700: 90420000 lbu r2,0x0000(r2) 00188704: 00000000 nop 00188708: 2c420001 sltiu r2,r2,0x0001 0018870c: 8fbf0010 lw r31,0x0010(r29) 00188710: 27bd0018 addiu r29,r29,0x0018 00188714: 03e00008 jr r31 00188718: 00000000 nop Magical Support/Status/Compat: 00188744: 27bdffe8 addiu r29,r29,0xffe8 00188748: afbf0010 sw r31,0x0010(r29) 0018874c: 0c061881 jal 0x00186204 Magic Attack Up 00188750: 00000000 nop 00188754: 0c0618c7 jal 0x0018631c Magic Defense Up 00188758: 00000000 nop 0018875c: 0c061918 jal 0x00186460 Target's Status Affecting XA (Magical) 00188760: 00000000 nop 00188764: 0c061259 jal 0x00184964 Zodiac Compat 00188768: 00000000 nop 0018876c: 8fbf0010 lw r31,0x0010(r29) 00188770: 27bd0018 addiu r29,r29,0x0018 00188774: 03e00008 jr r31 00188778: 00000000 nop Elemental XA * YA (often used in Magic based formulas) 0018877c: 27bdffe8 addiu r29,r29,0xffe8 00188780: afbf0010 sw r31,0x0010(r29) 00188784: 0c06195a jal 0x00186568 XA * YA 00188788: 00000000 nop 0018878c: 0c061bb4 jal 0x00186ed0 Elemental Stuff 00188790: 00000000 nop 00188794: 0c061bfe jal 0x00186ff8 Elemental Cancel 00188798: 00000000 nop 0018879c: 3c028019 lui r2,0x8019 001887a0: 8c422d90 lw r2,0x2d90(r2) Current Action Data Pointer 001887a4: 00000000 nop 001887a8: 90420000 lbu r2,0x0000(r2) 001887ac: 00000000 nop 001887b0: 2c420001 sltiu r2,r2,0x0001 Prep for Elemental Absorb 001887b4: 8fbf0010 lw r31,0x0010(r29) 001887b8: 27bd0018 addiu r29,r29,0x0018 001887bc: 03e00008 jr r31 001887c0: 00000000 nop Elemental Absorb/Status and an odd r2 = 0 001887c4: 27bdffe8 addiu r29,r29,0xffe8 001887c8: afbf0010 sw r31,0x0010(r29) 001887cc: 0c061c3f jal 0x001870fc Elemental Absorb 001887d0: 00000000 nop 001887d4: 0c062130 jal 0x001884c0 ? 001887d8: 00000000 nop 001887dc: 14400004 bne r2,r0,0x001887f0 001887e0: 00000000 nop 001887e4: 0c061fad jal 0x00187eb4 Status 001887e8: 00000000 nop 001887ec: 00001021 addu r2,r0,r0 ... what is this for? 001887f0: 8fbf0010 lw r31,0x0010(r29) 001887f4: 27bd0018 addiu r29,r29,0x0018 001887f8: 03e00008 jr r31 001887fc: 00000000 nop MA + X (For... Only buffs?) 00188800: 27bdffe8 addiu r29,r29,0xffe8 00188804: afbf0010 sw r31,0x0010(r29) 00188808: 0c061881 jal 0x00186204 Magic Attack Up 0018880c: 00000000 nop 00188810: 0c061259 jal 0x00184964 Zodiac Compat 00188814: 00000000 nop 00188818: 0c061967 jal 0x0018659c Calculate MA + X 0018881c: 00000000 nop 00188820: 0c061c54 jal 0x00187150 Faith Calculation 00188824: 00000000 nop 00188828: 0c061d44 jal 0x00187510 ??? 0018882c: 00000000 nop 00188830: 3c028019 lui r2,0x8019 00188834: 8c422d90 lw r2,0x2d90(r2) 00188838: 00000000 nop 0018883c: 90420000 lbu r2,0x0000(r2) 00188840: 00000000 nop 00188844: 2c420001 sltiu r2,r2,0x0001 00188848: 8fbf0010 lw r31,0x0010(r29) 0018884c: 27bd0018 addiu r29,r29,0x0018 00188850: 03e00008 jr r31 00188854: 00000000 nop Magical XA * YA: 00188858: 27bdffe8 addiu r29,r29,0xffe8 0018885c: afbf0010 sw r31,0x0010(r29) 00188860: 0c061881 jal 0x00186204 Magic Attack Up 00188864: 00000000 nop 00188868: 0c061259 jal 0x00184964 Compat 0018886c: 00000000 nop 00188870: 0c06195a jal 0x00186568 XA * YA 00188874: 00000000 nop 00188878: 8fbf0010 lw r31,0x0010(r29) 0018887c: 27bd0018 addiu r29,r29,0x0018 00188880: 03e00008 jr r31 00188884: 00000000 nop Truth/Formula 5E-5F Magical damage: 00188964: 27bdffe8 addiu r29,r29,0xffe8 00188968: afbf0010 sw r31,0x0010(r29) 0018896c: 0c0617ff jal 0x00185ffc Elemental Strenghten 00188970: 00000000 nop 00188974: 0c0621d1 jal 0x00188744 Magical Support/Status/Compat 00188978: 00000000 nop 0018897c: 0c0621df jal 0x0018877c Elemental XA * YA 00188980: 00000000 nop 00188984: 14400003 bne r2,r0,0x00188994 00188988: 00000000 nop 0018898c: 0c0621f1 jal 0x001887c4 Elemental Absorb/Status 00188990: 00000000 nop 00188994: 8fbf0010 lw r31,0x0010(r29) 00188998: 27bd0018 addiu r29,r29,0x0018 0018899c: 03e00008 jr r31 001889a0: 00000000 nop Truth/Formula 5E-5F Calculate damage: 001889a4: 27bdffe8 addiu r29,r29,0xffe8 001889a8: afbf0010 sw r31,0x0010(r29) 001889ac: 0c061730 jal 0x00185cc0 Get XA and YA 001889b0: 00000000 nop 001889b4: 0c062259 jal 0x00188964 Magical Damage (includes... Everything but Faith) 001889b8: 00000000 nop 001889bc: 8fbf0010 lw r31,0x0010(r29) 001889c0: 27bd0018 addiu r29,r29,0x0018 001889c4: 03e00008 jr r31 001889c8: 00000000 nop Calculate Accuracy for Magical Spells (No elemental boost) 001889cc: 27bdffe8 addiu r29,r29,0xffe8 001889d0: afbf0010 sw r31,0x0010(r29) 001889d4: 0c061760 jal 0x00185d80 Load MA + X 001889d8: 00000000 nop 001889dc: 0c0621d1 jal 0x00188744 Magical Support/Status/Compat 001889e0: 00000000 nop 001889e4: 0c061967 jal 0x0018659c XA + YA for Accuracy 001889e8: 00000000 nop 001889ec: 0c061c54 jal 0x00187150 Faith Calculation 001889f0: 00000000 nop 001889f4: 0c061d44 jal 0x00187510 ??? 001889f8: 00000000 nop 001889fc: 3c028019 lui r2,0x8019 00188a00: 8c422d90 lw r2,0x2d90(r2) Current Action Data Pointer 00188a04: 00000000 nop 00188a08: 90420000 lbu r2,0x0000(r2) 00188a0c: 00000000 nop 00188a10: 2c420001 sltiu r2,r2,0x0001 00188a14: 8fbf0010 lw r31,0x0010(r29) 00188a18: 27bd0018 addiu r29,r29,0x0018 00188a1c: 03e00008 jr r31 00188a20: 00000000 nop Calculate Accuracy for Magical Spells 00188a24: 27bdffe8 addiu r29,r29,0xffe8 00188a28: afbf0010 sw r31,0x0010(r29) 00188a2c: 0c061760 jal 0x00185d80 Load MA and X 00188a30: 00000000 nop 00188a34: 0c0617ff jal 0x00185ffc Elemental Strenghten 00188a38: 00000000 nop 00188a3c: 0c0621d1 jal 0x00188744 Magical Support/Status/Compat 00188a40: 00000000 nop 00188a44: 0c061967 jal 0x0018659c XA + YA for Accuracy 00188a48: 00000000 nop 00188a4c: 0c061c54 jal 0x00187150 Faith Calculation 00188a50: 00000000 nop 00188a54: 0c061d44 jal 0x00187510 ??? 00188a58: 00000000 nop 00188a5c: 3c028019 lui r2,0x8019 00188a60: 8c422d90 lw r2,0x2d90(r2) Current Action Data Pointer 00188a64: 00000000 nop 00188a68: 90420000 lbu r2,0x0000(r2) 00188a6c: 00000000 nop 00188a70: 2c420001 sltiu r2,r2,0x0001 00188a74: 8fbf0010 lw r31,0x0010(r29) 00188a78: 27bd0018 addiu r29,r29,0x0018 00188a7c: 03e00008 jr r31 00188a80: 00000000 nop Cluster of Physical Routines that has attacker berserk / frog checks... 00188adc: 27bdffe8 addiu r29,r29,0xffe8 00188ae0: afbf0010 sw r31,0x0010(r29) 00188ae4: 0c061895 jal 0x00186254 Attacker Berserk and Frog 00188ae8: 00000000 nop 00188aec: 0c0618b3 jal 0x001862cc Defense Up 00188af0: 00000000 nop 00188af4: 0c0618db jal 0x0018636c Physical Status effects on XA 00188af8: 00000000 nop 00188afc: 0c061259 jal 0x00184964 Compat 00188b00: 00000000 nop 00188b04: 8fbf0010 lw r31,0x0010(r29) 00188b08: 27bd0018 addiu r29,r29,0x0018 00188b0c: 03e00008 jr r31 00188b10: 00000000 nop Physical Routine for Hit % abilities 00188b14: 27bdffe8 addiu r29,r29,0xffe8 00188b18: afbf0010 sw r31,0x0010(r29) 00188b1c: 0c061853 jal 0x0018614c Attack Up / Martial Arts 00188b20: 00000000 nop 00188b24: 0c0622b7 jal 0x00188adc Berserk/Frog, Defense Up, Status Effects, Compat 00188b28: 00000000 nop 00188b2c: 0c061967 jal 0x0018659c XA + YA for Accuracy 00188b30: 00000000 nop 00188b34: 0c061d44 jal 0x00187510 Total Accuracy Check 00188b38: 00000000 nop 00188b3c: 3c028019 lui r2,0x8019 00188b40: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 00188b44: 00000000 nop 00188b48: 90420000 lbu r2,0x0000(r2) Load Hit Flag 00188b4c: 00000000 nop 00188b50: 2c420001 sltiu r2,r2,0x0001 00188b54: 8fbf0010 lw r31,0x0010(r29) 00188b58: 27bd0018 addiu r29,r29,0x0018 00188b5c: 03e00008 jr r31 00188b60: 00000000 nop Nullification Process? (disables a bunch of stuff) 0018bcf0: 3c048019 lui r4,0x8019 0018bcf4: 248438c8 addiu r4,r4,0x38c8 0018bcf8: 94820000 lhu r2,0x0000(r4) Load ? 0018bcfc: 00000000 nop 0018bd00: 1040000a beq r2,r0,0x0018bd2c Branch if ? = 0 0018bd04: 00000000 nop 0018bd08: 3c038019 lui r3,0x8019 0018bd0c: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 0018bd10: 3c018019 lui r1,0x8019 0018bd14: a42038c6 sh r0,0x38c6(r1) Store ? = 0 0018bd18: a4800000 sh r0,0x0000(r4) Store ? = 0 0018bd1c: 94620010 lhu r2,0x0010(r3) Load ? 0018bd20: 00000000 nop 0018bd24: 3042fdff andi r2,r2,0xfdff Disable 0x02 of ? 0018bd28: a4620010 sh r2,0x0010(r3) Store ? 0018bd2c: 03e00008 jr r31 0018bd30: 00000000 nop ? 0018bd34: 3c048019 lui r4,0x8019 0018bd38: 248438ed addiu r4,r4,0x38ed 0018bd3c: 90820000 lbu r2,0x0000(r4) Load ? 0018bd40: 00000000 nop 0018bd44: 30420080 andi r2,r2,0x0080 0018bd48: 10400008 beq r2,r0,0x0018bd6c Branch if ? = 0x80 0018bd4c: 00000000 nop 0018bd50: 3c038019 lui r3,0x8019 0018bd54: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 0018bd58: a0800000 sb r0,0x0000(r4) Store unable to hit 0018bd5c: 94620010 lhu r2,0x0010(r3) Load ? 0018bd60: 00000000 nop 0018bd64: 3042bfff andi r2,r2,0xbfff Disable 0x40 of ? 0018bd68: a4620010 sh r2,0x0010(r3) Store ? 0018bd6c: 03e00008 jr r31 0018bd70: 00000000 nop 0018be08: 27bdffc8 addiu r29,r29,0xffc8 0018be0c: afb20030 sw r18,0x0030(r29) 0018be10: 00809021 addu r18,r4,r0 0018be14: afb00028 sw r16,0x0028(r29) 0018be18: 00008021 addu r16,r0,r0 0018be1c: 2a420015 slti r2,r18,0x0015 0018be20: afbf0034 sw r31,0x0034(r29) 0018be24: 10400013 beq r2,r0,0x0018be74 0018be28: afb1002c sw r17,0x002c(r29) 0018be2c: 001218c0 sll r3,r18,0x03 0018be30: 00721823 subu r3,r3,r18 0018be34: 00031980 sll r3,r3,0x06 0018be38: 3c028019 lui r2,0x8019 0018be3c: 244208cc addiu r2,r2,0x08cc Unit Data 0018be40: 00622021 addu r4,r3,r2 0018be44: 2442018c addiu r2,r2,0x018c 0018be48: 00622821 addu r5,r3,r2 0018be4c: 3c018019 lui r1,0x8019 0018be50: a03238c1 sb r18,0x38c1(r1) 0018be54: 3c018019 lui r1,0x8019 0018be58: ac242d98 sw r4,0x2d98(r1) 0018be5c: 3c018019 lui r1,0x8019 0018be60: ac252d90 sw r5,0x2d90(r1) 0018be64: 90830001 lbu r3,0x0001(r4) 0018be68: 340200ff ori r2,r0,0x00ff 0018be6c: 14620003 bne r3,r2,0x0018be7c 0018be70: 00000000 nop 0018be74: 08063199 j 0x0018c664 0018be78: 2402ffff addiu r2,r0,0xffff 0018be7c: 90820058 lbu r2,0x0058(r4) Load First Set of Current Status 0018be80: 00000000 nop 0018be84: 30420020 andi r2,r2,0x0020 0018be88: 1040000f beq r2,r0,0x0018bec8 Branch if unit is not dead? 0018be8c: 00000000 nop 0018be90: 90a2001b lbu r2,0x001b(r5) 0018be94: 00000000 nop 0018be98: 30420040 andi r2,r2,0x0040 0018be9c: 14400006 bne r2,r0,0x0018beb8 0018bea0: 02402021 addu r4,r18,r0 0018bea4: 90a2001c lbu r2,0x001c(r5) 0018bea8: 00000000 nop 0018beac: 30420001 andi r2,r2,0x0001 0018beb0: 10400005 beq r2,r0,0x0018bec8 0018beb4: 00000000 nop 0018beb8: 0c06381f jal 0x0018e07c 0018bebc: 00002821 addu r5,r0,r0 0018bec0: 08063199 j 0x0018c664 0018bec4: 00001021 addu r2,r0,r0 0018bec8: 3c028019 lui r2,0x8019 0018becc: 8c42f5f0 lw r2,-0x0a10(r2) 0018bed0: 00000000 nop 0018bed4: 14400005 bne r2,r0,0x0018beec 0018bed8: 34020001 ori r2,r0,0x0001 0018bedc: 3c038019 lui r3,0x8019 0018bee0: 8c632d98 lw r3,0x2d98(r3) Load Defender's Data 0018bee4: 00000000 nop 0018bee8: a0620189 sb r2,0x0189(r3) 0018beec: 0c0632c0 jal 0x0018cb00 Sunken State, Caution, Dragon Spirit, Brave Up, Face Up, Counter Tackle, Counter Flood, Absorb Used MP, Counter, Counter Magic 0018bef0: 00000000 nop 0018bef4: 3c058019 lui r5,0x8019 0018bef8: 8ca52d90 lw r5,0x2d90(r5) Load Defender's Current Action Data 0018befc: 00000000 nop 0018bf00: 84a3000e lh r3,0x000e(r5) Load Reaction ID 0018bf04: 340201c2 ori r2,r0,0x01c2 0018bf08: 14620006 bne r3,r2,0x0018bf24 Branch if Reaction ID isn't Catch 0018bf0c: 00000000 nop 0018bf10: 3c048019 lui r4,0x8019 0018bf14: 8c842d98 lw r4,0x2d98(r4) Load Defender's Data 0018bf18: 90a50026 lbu r5,0x0026(r5) Load Last Attack? 0018bf1c: 0c063a7a jal 0x0018e9e8 Store Caught Item in Inventory 0018bf20: 00000000 nop 0018bf24: 3c048019 lui r4,0x8019 0018bf28: 8c842d90 lw r4,0x2d90(r4) Load Defender's Current Action Data 0018bf2c: 00000000 nop 0018bf30: 90820000 lbu r2,0x0000(r4) Load Hit Flag 0018bf34: 00000000 nop 0018bf38: 104001ca beq r2,r0,0x0018c664 Branch if Attack Missed 0018bf3c: 00001021 addu r2,r0,r0 0018bf40: 94830010 lhu r3,0x0010(r4) 0018bf44: 00000000 nop 0018bf48: 30628000 andi r2,r3,0x8000 0018bf4c: 10400013 beq r2,r0,0x0018bf9c 0018bf50: 30620001 andi r2,r3,0x0001 0018bf54: 3c028019 lui r2,0x8019 0018bf58: 8c422d98 lw r2,0x2d98(r2) Load Defender's Data 0018bf5c: 00000000 nop 0018bf60: 904201ba lbu r2,0x01ba(r2) 0018bf64: 3c038019 lui r3,0x8019 0018bf68: 2463f5f4 addiu r3,r3,0xf5f4 0018bf6c: 30420030 andi r2,r2,0x0030 0018bf70: 000210c2 srl r2,r2,0x03 0018bf74: 00432821 addu r5,r2,r3 0018bf78: 94a30000 lhu r3,0x0000(r5) Load Hit Flag 0018bf7c: 84820004 lh r2,0x0004(r4) Load HP Damage 0018bf80: 00000000 nop 0018bf84: 00628823 subu r17,r3,r2 0018bf88: 06210002 bgez r17,0x0018bf94 0018bf8c: 00001021 addu r2,r0,r0 0018bf90: 00008821 addu r17,r0,r0 0018bf94: 08063199 j 0x0018c664 0018bf98: a4b10000 sh r17,0x0000(r5) 0018bf9c: 1040000b beq r2,r0,0x0018bfcc 0018bfa0: 00000000 nop 0018bfa4: 3c028019 lui r2,0x8019 0018bfa8: 8c422d98 lw r2,0x2d98(r2) Load Defender's Data 0018bfac: 34100001 ori r16,r0,0x0001 0018bfb0: 90430005 lbu r3,0x0005(r2) Load Defender's Team 0018bfb4: 9442002a lhu r2,0x002a(r2) Load Defender's Max HP 0018bfb8: 30630030 andi r3,r3,0x0030 0018bfbc: 000318c2 srl r3,r3,0x03 0018bfc0: 3c018019 lui r1,0x8019 0018bfc4: 00230821 addu r1,r1,r3 0018bfc8: a422f5f4 sh r2,-0x0a0c(r1) 0018bfcc: 0c06330d jal 0x0018cc34 MP Switch, Distribute, Damage Split Check 0018bfd0: 00000000 nop 0018bfd4: 3c058019 lui r5,0x8019 0018bfd8: 8ca52d98 lw r5,0x2d98(r5) Load Defender's Data 0018bfdc: 3c048019 lui r4,0x8019 0018bfe0: 8c842d90 lw r4,0x2d90(r4) Load Defender's Current Action Data 0018bfe4: 94a70028 lhu r7,0x0028(r5) Load Defender's Current HP 0018bfe8: 84820004 lh r2,0x0004(r4) Load HP Damage 0018bfec: 84830006 lh r3,0x0006(r4) Load HP Recovery 0018bff0: 00e21023 subu r2,r7,r2 Defender's Current HP - HP Damage 0018bff4: 00438821 addu r17,r2,r3 Defender's Current HP - HP Damage + HP Recovery 0018bff8: 06210002 bgez r17,0x0018c004 Branch if <0 0018bffc: 00000000 nop 0018c000: 00008821 addu r17,r0,r0 0018c004: 94a3002a lhu r3,0x002a(r5) Load Defender's Max HP 0018c008: 00000000 nop 0018c00c: 0071102a slt r2,r3,r17 If Defender's Max HP < above, r2 = 1;else is 0 0018c010: 10400002 beq r2,r0,0x0018c01c 0018c014: 00000000 nop 0018c018: 00608821 addu r17,r3,r0 0018c01c: 94a6002c lhu r6,0x002c(r5) Load Defender's Current MP 0018c020: 84820008 lh r2,0x0008(r4) Load MP Damage 0018c024: 8483000a lh r3,0x000a(r4) Load MP Recovery 0018c028: 00c21023 subu r2,r6,r2 Defender's Current MP - MP Damage 0018c02c: 00431821 addu r3,r2,r3 Defender's Current MP - MP Damage + MP Recovery 0018c030: 04610002 bgez r3,0x0018c03c Branch if <0 0018c034: 00000000 nop 0018c038: 00001821 addu r3,r0,r0 0018c03c: 94a4002e lhu r4,0x002e(r5) Load Defender's Max MP 0018c040: 00000000 nop 0018c044: 0083102a slt r2,r4,r3 0018c048: 10400002 beq r2,r0,0x0018c054 0018c04c: 00000000 nop 0018c050: 00801821 addu r3,r4,r0 0018c054: 14f10003 bne r7,r17,0x0018c064 0018c058: 00000000 nop 0018c05c: 10c30003 beq r6,r3,0x0018c06c 0018c060: 34060032 ori r6,r0,0x0032 0018c064: 34100001 ori r16,r0,0x0001 0018c068: 34060032 ori r6,r0,0x0032 0018c06c: 3c058019 lui r5,0x8019 0018c070: 8ca52d98 lw r5,0x2d98(r5) 0018c074: 3c028019 lui r2,0x8019 0018c078: 8c422d90 lw r2,0x2d90(r2) 0018c07c: 34070001 ori r7,r0,0x0001 0018c080: a4b10028 sh r17,0x0028(r5) 0018c084: a4a3002c sh r3,0x002c(r5) 0018c088: 90440012 lbu r4,0x0012(r2) 0018c08c: 0c06355c jal 0x0018d570 0018c090: 24a50032 addiu r5,r5,0x0032 0018c094: 02028025 or r16,r16,r2 0018c098: 340600ff ori r6,r0,0x00ff 0018c09c: 00003821 addu r7,r0,r0 0018c0a0: 3c028019 lui r2,0x8019 0018c0a4: 8c422d90 lw r2,0x2d90(r2) 0018c0a8: 3c058019 lui r5,0x8019 0018c0ac: 8ca52d98 lw r5,0x2d98(r5) 0018c0b0: 90440013 lbu r4,0x0013(r2) 0018c0b4: 0c06355c jal 0x0018d570 0018c0b8: 24a50039 addiu r5,r5,0x0039 0018c0bc: 02028025 or r16,r16,r2 0018c0c0: 34060063 ori r6,r0,0x0063 0018c0c4: 34070001 ori r7,r0,0x0001 0018c0c8: 3c028019 lui r2,0x8019 0018c0cc: 8c422d90 lw r2,0x2d90(r2) 0018c0d0: 3c058019 lui r5,0x8019 0018c0d4: 8ca52d98 lw r5,0x2d98(r5) 0018c0d8: 90440014 lbu r4,0x0014(r2) 0018c0dc: 0c06355c jal 0x0018d570 0018c0e0: 24a50030 addiu r5,r5,0x0030 0018c0e4: 02028025 or r16,r16,r2 0018c0e8: 34060063 ori r6,r0,0x0063 0018c0ec: 34070001 ori r7,r0,0x0001 0018c0f0: 3c028019 lui r2,0x8019 0018c0f4: 8c422d90 lw r2,0x2d90(r2) 0018c0f8: 3c058019 lui r5,0x8019 0018c0fc: 8ca52d98 lw r5,0x2d98(r5) 0018c100: 90440015 lbu r4,0x0015(r2) 0018c104: 0c06355c jal 0x0018d570 0018c108: 24a50031 addiu r5,r5,0x0031 0018c10c: 02028025 or r16,r16,r2 0018c110: 34060064 ori r6,r0,0x0064 0018c114: 3c038019 lui r3,0x8019 0018c118: 8c632d98 lw r3,0x2d98(r3) 0018c11c: 3c028019 lui r2,0x8019 0018c120: 8c422d90 lw r2,0x2d90(r2) 0018c124: 24650024 addiu r5,r3,0x0024 0018c128: 90670182 lbu r7,0x0182(r3) 0018c12c: 90440016 lbu r4,0x0016(r2) 0018c130: 000739c2 srl r7,r7,0x07 0018c134: 00073823 subu r7,r0,r7 0018c138: 0c06355c jal 0x0018d570 0018c13c: 30e7000a andi r7,r7,0x000a 0018c140: 02028025 or r16,r16,r2 0018c144: 34060064 ori r6,r0,0x0064 0018c148: 00003821 addu r7,r0,r0 0018c14c: 3c028019 lui r2,0x8019 0018c150: 8c422d90 lw r2,0x2d90(r2) 0018c154: 3c058019 lui r5,0x8019 0018c158: 8ca52d98 lw r5,0x2d98(r5) 0018c15c: 90440017 lbu r4,0x0017(r2) 0018c160: 0c06355c jal 0x0018d570 0018c164: 24a50026 addiu r5,r5,0x0026 0018c168: 0c0634f0 jal 0x0018d3c0 0018c16c: 02028025 or r16,r16,r2 0018c170: 3c038019 lui r3,0x8019 0018c174: 8c632d90 lw r3,0x2d90(r3) 0018c178: 00000000 nop 0018c17c: 94630010 lhu r3,0x0010(r3) 0018c180: 00000000 nop 0018c184: 30630008 andi r3,r3,0x0008 0018c188: 10600007 beq r3,r0,0x0018c1a8 0018c18c: 02028025 or r16,r16,r2 0018c190: 3c048019 lui r4,0x8019 0018c194: 8c842d98 lw r4,0x2d98(r4) 0018c198: 00000000 nop 0018c19c: 90850176 lbu r5,0x0176(r4) 0018c1a0: 0c063a7a jal 0x0018e9e8 0018c1a4: 00000000 nop 0018c1a8: 3c038019 lui r3,0x8019 0018c1ac: 8c632d90 lw r3,0x2d90(r3) 0018c1b0: 00000000 nop 0018c1b4: 8462000c lh r2,0x000c(r3) 0018c1b8: 00000000 nop 0018c1bc: 14400005 bne r2,r0,0x0018c1d4 0018c1c0: 00000000 nop 0018c1c4: 90620028 lbu r2,0x0028(r3) 0018c1c8: 00000000 nop 0018c1cc: 10400002 beq r2,r0,0x0018c1d8 0018c1d0: 00000000 nop 0018c1d4: 36100001 ori r16,r16,0x0001 0018c1d8: 3c028019 lui r2,0x8019 0018c1dc: 8c422d90 lw r2,0x2d90(r2) 0018c1e0: 3c048019 lui r4,0x8019 0018c1e4: 8c842d98 lw r4,0x2d98(r4) 0018c1e8: 8445000c lh r5,0x000c(r2) 0018c1ec: 0c063aa6 jal 0x0018ea98 0018c1f0: 00003021 addu r6,r0,r0 0018c1f4: 3c028019 lui r2,0x8019 0018c1f8: 8c422d90 lw r2,0x2d90(r2) 0018c1fc: 3c048019 lui r4,0x8019 0018c200: 8c842d98 lw r4,0x2d98(r4) 0018c204: 90450028 lbu r5,0x0028(r2) 0018c208: 0c063ad4 jal 0x0018eb50 0018c20c: 00000000 nop 0018c210: 3c028019 lui r2,0x8019 0018c214: 8c422d90 lw r2,0x2d90(r2) 0018c218: 00000000 nop 0018c21c: 90420029 lbu r2,0x0029(r2) 0018c220: 00000000 nop 0018c224: 10400005 beq r2,r0,0x0018c23c 0018c228: 00000000 nop 0018c22c: 3c048019 lui r4,0x8019 0018c230: 8c842d98 lw r4,0x2d98(r4) 0018c234: 0c0637fe jal 0x0018dff8 0018c238: 00000000 nop 0018c23c: 0c063217 jal 0x0018c85c 0018c240: 00000000 nop 0018c244: 0c0631a0 jal 0x0018c680 0018c248: 02028025 or r16,r16,r2 0018c24c: 3c038019 lui r3,0x8019 0018c250: 8c632d90 lw r3,0x2d90(r3) 0018c254: 00000000 nop 0018c258: 94630010 lhu r3,0x0010(r3) 0018c25c: 00000000 nop 0018c260: 30630002 andi r3,r3,0x0002 0018c264: 1060000a beq r3,r0,0x0018c290 0018c268: 02028025 or r16,r16,r2 0018c26c: 3c028019 lui r2,0x8019 0018c270: 8c42f5fc lw r2,-0x0a04(r2) 0018c274: 00000000 nop 0018c278: 14400005 bne r2,r0,0x0018c290 0018c27c: 36100001 ori r16,r16,0x0001 0018c280: 3c048019 lui r4,0x8019 0018c284: 8c842d98 lw r4,0x2d98(r4) 0018c288: 0c0603d0 jal 0x00180f40 0018c28c: 00000000 nop 0018c290: 16200028 bne r17,r0,0x0018c334 0018c294: 00000000 nop 0018c298: 3c028019 lui r2,0x8019 0018c29c: 8c422d98 lw r2,0x2d98(r2) 0018c2a0: 00000000 nop 0018c2a4: 94420058 lhu r2,0x0058(r2) 0018c2a8: 00000000 nop 0018c2ac: 30420160 andi r2,r2,0x0160 0018c2b0: 14400020 bne r2,r0,0x0018c334 0018c2b4: 00000000 nop 0018c2b8: 3c048019 lui r4,0x8019 0018c2bc: 8c842d90 lw r4,0x2d90(r4) 0018c2c0: 0c062f75 jal 0x0018bdd4 0018c2c4: 00000000 nop 0018c2c8: 02402021 addu r4,r18,r0 0018c2cc: 34050001 ori r5,r0,0x0001 0018c2d0: 3c028019 lui r2,0x8019 0018c2d4: 8c422d90 lw r2,0x2d90(r2) 0018c2d8: 34030020 ori r3,r0,0x0020 0018c2dc: 0c06381f jal 0x0018e07c 0018c2e0: a043001b sb r3,0x001b(r2) 0018c2e4: 3c028019 lui r2,0x8019 0018c2e8: 8c42f5fc lw r2,-0x0a04(r2) 0018c2ec: 00000000 nop 0018c2f0: 14400008 bne r2,r0,0x0018c314 0018c2f4: 00000000 nop 0018c2f8: 3c038019 lui r3,0x8019 0018c2fc: 8c632d98 lw r3,0x2d98(r3) 0018c300: 00000000 nop 0018c304: 9062015c lbu r2,0x015c(r3) 0018c308: 00000000 nop 0018c30c: 24420001 addiu r2,r2,0x0001 0018c310: a062015c sb r2,0x015c(r3) 0018c314: 0c063588 jal 0x0018d620 0018c318: 34040002 ori r4,r0,0x0002 0018c31c: 3c028019 lui r2,0x8019 0018c320: 8c422d98 lw r2,0x2d98(r2) 0018c324: 00000000 nop 0018c328: 90420182 lbu r2,0x0182(r2) 0018c32c: 08063198 j 0x0018c660 0018c330: 000211c2 srl r2,r2,0x07 0018c334: 3c028019 lui r2,0x8019 0018c338: 8c422d98 lw r2,0x2d98(r2) 0018c33c: 3c03cccc lui r3,0xcccc 0018c340: 9442002a lhu r2,0x002a(r2) 0018c344: 3463cccd ori r3,r3,0xcccd 0018c348: 00430019 multu r2,r3 0018c34c: 00001010 mfhi r2 0018c350: 00021082 srl r2,r2,0x02 0018c354: 3042ffff andi r2,r2,0xffff 0018c358: 0051102a slt r2,r2,r17 0018c35c: 14400009 bne r2,r0,0x0018c384 0018c360: 00000000 nop 0018c364: 3c038019 lui r3,0x8019 0018c368: 8c632d90 lw r3,0x2d90(r3) 0018c36c: 00000000 nop 0018c370: 9062001d lbu r2,0x001d(r3) 0018c374: 00000000 nop 0018c378: 34420001 ori r2,r2,0x0001 0018c37c: 080630e8 j 0x0018c3a0 0018c380: a062001d sb r2,0x001d(r3) 0018c384: 3c038019 lui r3,0x8019 0018c388: 8c632d90 lw r3,0x2d90(r3) 0018c38c: 00000000 nop 0018c390: 90620022 lbu r2,0x0022(r3) 0018c394: 00000000 nop 0018c398: 34420001 ori r2,r2,0x0001 0018c39c: a0620022 sb r2,0x0022(r3) 0018c3a0: 3c028019 lui r2,0x8019 0018c3a4: 8c422d98 lw r2,0x2d98(r2) 0018c3a8: 00000000 nop 0018c3ac: 90420024 lbu r2,0x0024(r2) 0018c3b0: 00000000 nop 0018c3b4: 2c42000a sltiu r2,r2,0x000a 0018c3b8: 10400009 beq r2,r0,0x0018c3e0 0018c3bc: 00000000 nop 0018c3c0: 3c038019 lui r3,0x8019 0018c3c4: 8c632d90 lw r3,0x2d90(r3) 0018c3c8: 00000000 nop 0018c3cc: 9062001d lbu r2,0x001d(r3) 0018c3d0: 00000000 nop 0018c3d4: 34420004 ori r2,r2,0x0004 0018c3d8: 080630ff j 0x0018c3fc 0018c3dc: a062001d sb r2,0x001d(r3) 0018c3e0: 3c038019 lui r3,0x8019 0018c3e4: 8c632d90 lw r3,0x2d90(r3) 0018c3e8: 00000000 nop 0018c3ec: 90620022 lbu r2,0x0022(r3) 0018c3f0: 00000000 nop 0018c3f4: 34420004 ori r2,r2,0x0004 0018c3f8: a0620022 sb r2,0x0022(r3) 0018c3fc: 3c038019 lui r3,0x8019 0018c400: 8c632d90 lw r3,0x2d90(r3) 0018c404: 00000000 nop 0018c408: 90620025 lbu r2,0x0025(r3) 0018c40c: 00000000 nop 0018c410: 30420080 andi r2,r2,0x0080 0018c414: 10400013 beq r2,r0,0x0018c464 0018c418: 00000000 nop 0018c41c: 90620024 lbu r2,0x0024(r3) 0018c420: 00000000 nop 0018c424: 34420030 ori r2,r2,0x0030 0018c428: a0620024 sb r2,0x0024(r3) 0018c42c: 3c038019 lui r3,0x8019 0018c430: 8c632d90 lw r3,0x2d90(r3) 0018c434: 00000000 nop 0018c438: 90620022 lbu r2,0x0022(r3) 0018c43c: 00000000 nop 0018c440: 34420010 ori r2,r2,0x0010 0018c444: a0620022 sb r2,0x0022(r3) 0018c448: 3c038019 lui r3,0x8019 0018c44c: 8c632d90 lw r3,0x2d90(r3) 0018c450: 00000000 nop 0018c454: 90620021 lbu r2,0x0021(r3) 0018c458: 00000000 nop 0018c45c: 34420010 ori r2,r2,0x0010 0018c460: a0620021 sb r2,0x0021(r3) 0018c464: 3c028019 lui r2,0x8019 0018c468: 8c422d90 lw r2,0x2d90(r2) 0018c46c: 00000000 nop 0018c470: 94420010 lhu r2,0x0010(r2) 0018c474: 00000000 nop 0018c478: 30424000 andi r2,r2,0x4000 0018c47c: 10400012 beq r2,r0,0x0018c4c8 0018c480: 00000000 nop 0018c484: 3c048019 lui r4,0x8019 0018c488: 8c842d98 lw r4,0x2d98(r4) 0018c48c: 0c06005e jal 0x00180178 0018c490: 00002821 addu r5,r0,r0 0018c494: 1040000c beq r2,r0,0x0018c4c8 0018c498: 00000000 nop 0018c49c: 3c038019 lui r3,0x8019 0018c4a0: 8c632d90 lw r3,0x2d90(r3) 0018c4a4: 00000000 nop 0018c4a8: 90620020 lbu r2,0x0020(r3) 0018c4ac: 00000000 nop 0018c4b0: 34420008 ori r2,r2,0x0008 0018c4b4: a0620020 sb r2,0x0020(r3) 0018c4b8: 3c038019 lui r3,0x8019 0018c4bc: 8c632d98 lw r3,0x2d98(r3) 0018c4c0: 340200ff ori r2,r0,0x00ff 0018c4c4: a062015d sb r2,0x015d(r3) 0018c4c8: 0c0612c9 jal 0x00184b24 0018c4cc: 00002021 addu r4,r0,r0 0018c4d0: 00002021 addu r4,r0,r0 0018c4d4: 27a30010 addiu r3,r29,0x0010 0018c4d8: 3c028019 lui r2,0x8019 0018c4dc: 8c422d98 lw r2,0x2d98(r2) 0018c4e0: 00000000 nop 0018c4e4: 00441021 addu r2,r2,r4 0018c4e8: 90420058 lbu r2,0x0058(r2) 0018c4ec: 24840001 addiu r4,r4,0x0001 0018c4f0: a0620000 sb r2,0x0000(r3) 0018c4f4: 28820005 slti r2,r4,0x0005 0018c4f8: 1440fff7 bne r2,r0,0x0018c4d8 0018c4fc: 24630001 addiu r3,r3,0x0001 0018c500: 00002021 addu r4,r0,r0 0018c504: 27a30018 addiu r3,r29,0x0018 0018c508: 3c028019 lui r2,0x8019 0018c50c: 8c422d98 lw r2,0x2d98(r2) 0018c510: 00000000 nop 0018c514: 00441021 addu r2,r2,r4 0018c518: 9042005d lbu r2,0x005d(r2) 0018c51c: 24840001 addiu r4,r4,0x0001 0018c520: a0620000 sb r2,0x0000(r3) 0018c524: 28820010 slti r2,r4,0x0010 0018c528: 1440fff7 bne r2,r0,0x0018c508 0018c52c: 24630001 addiu r3,r3,0x0001 0018c530: 02402021 addu r4,r18,r0 0018c534: 0c06381f jal 0x0018e07c 0018c538: 00002821 addu r5,r0,r0 0018c53c: 3c038019 lui r3,0x8019 0018c540: 8c632d98 lw r3,0x2d98(r3) 0018c544: 00000000 nop 0018c548: 90620058 lbu r2,0x0058(r3) 0018c54c: 00000000 nop 0018c550: 30420020 andi r2,r2,0x0020 0018c554: 10400014 beq r2,r0,0x0018c5a8 0018c558: 00002021 addu r4,r0,r0 0018c55c: 93a20010 lbu r2,0x0010(r29) 0018c560: 00000000 nop 0018c564: 30420020 andi r2,r2,0x0020 0018c568: 1440000f bne r2,r0,0x0018c5a8 0018c56c: 00000000 nop 0018c570: 3c028019 lui r2,0x8019 0018c574: 8c42f5fc lw r2,-0x0a04(r2) 0018c578: 00000000 nop 0018c57c: 14400023 bne r2,r0,0x0018c60c 0018c580: 34100002 ori r16,r0,0x0002 0018c584: 9062015c lbu r2,0x015c(r3) 0018c588: 00000000 nop 0018c58c: 24420001 addiu r2,r2,0x0001 0018c590: 08063183 j 0x0018c60c 0018c594: a062015c sb r2,0x015c(r3) 0018c598: 08063176 j 0x0018c5d8 0018c59c: 34100001 ori r16,r0,0x0001 0018c5a0: 08063183 j 0x0018c60c 0018c5a4: 34100001 ori r16,r0,0x0001 0018c5a8: 3c068019 lui r6,0x8019 0018c5ac: 8cc62d98 lw r6,0x2d98(r6) 0018c5b0: 27a50010 addiu r5,r29,0x0010 0018c5b4: 00c41021 addu r2,r6,r4 0018c5b8: 90430058 lbu r3,0x0058(r2) 0018c5bc: 90a20000 lbu r2,0x0000(r5) 0018c5c0: 00000000 nop 0018c5c4: 1462fff4 bne r3,r2,0x0018c598 0018c5c8: 24840001 addiu r4,r4,0x0001 0018c5cc: 28820005 slti r2,r4,0x0005 0018c5d0: 1440fff8 bne r2,r0,0x0018c5b4 0018c5d4: 24a50001 addiu r5,r5,0x0001 0018c5d8: 00002021 addu r4,r0,r0 0018c5dc: 3c068019 lui r6,0x8019 0018c5e0: 8cc62d98 lw r6,0x2d98(r6) 0018c5e4: 27a50018 addiu r5,r29,0x0018 0018c5e8: 00c41021 addu r2,r6,r4 0018c5ec: 9043005d lbu r3,0x005d(r2) 0018c5f0: 90a20000 lbu r2,0x0000(r5) 0018c5f4: 00000000 nop 0018c5f8: 1462ffe9 bne r3,r2,0x0018c5a0 0018c5fc: 24840001 addiu r4,r4,0x0001 0018c600: 28820010 slti r2,r4,0x0010 0018c604: 1440fff8 bne r2,r0,0x0018c5e8 0018c608: 24a50001 addiu r5,r5,0x0001 0018c60c: 0c063588 jal 0x0018d620 0018c610: 02002021 addu r4,r16,r0 0018c614: 12000005 beq r16,r0,0x0018c62c 0018c618: 34020002 ori r2,r0,0x0002 0018c61c: 3c038019 lui r3,0x8019 0018c620: 8c632d98 lw r3,0x2d98(r3) 0018c624: 00000000 nop 0018c628: a0620189 sb r2,0x0189(r3) 0018c62c: 0c063336 jal 0x0018ccd8 PA Save, MA Save, Speed Save, Regenerator, HP Restore, MP Restore, Critical Quick Meatbone Slash, Auto Potion, Gilgame Heart check 0018c630: 00000000 nop 0018c634: 3c048019 lui r4,0x8019 0018c638: 8c842d98 lw r4,0x2d98(r4) 0018c63c: 00000000 nop 0018c640: 90830058 lbu r3,0x0058(r4) 0018c644: 00000000 nop 0018c648: 30630060 andi r3,r3,0x0060 0018c64c: 10600005 beq r3,r0,0x0018c664 0018c650: 00001021 addu r2,r0,r0 0018c654: 90820182 lbu r2,0x0182(r4) 0018c658: 00000000 nop 0018c65c: 000211c2 srl r2,r2,0x07 0018c660: 00021023 subu r2,r0,r2 0018c664: 8fbf0034 lw r31,0x0034(r29) 0018c668: 8fb20030 lw r18,0x0030(r29) 0018c66c: 8fb1002c lw r17,0x002c(r29) 0018c670: 8fb00028 lw r16,0x0028(r29) 0018c674: 27bd0038 addiu r29,r29,0x0038 0018c678: 03e00008 jr r31 0018c67c: 00000000 nop 'Reflect', Blade Grasp, and Arrow Guard check? 0018c9e4: 3c028019 lui r2,0x8019 0018c9e8: 8c42f5f0 lw r2,-0x0a10(r2) 0018c9ec: 27bdffe8 addiu r29,r29,0xffe8 0018c9f0: 1440003f bne r2,r0,0x0018caf0 0018c9f4: afbf0010 sw r31,0x0010(r29) 0018c9f8: 3c038019 lui r3,0x8019 0018c9fc: 906338e5 lbu r3,0x38e5(r3) 0018ca00: 34020007 ori r2,r0,0x0007 0018ca04: 1062003a beq r3,r2,0x0018caf0 0018ca08: 00000000 nop 0018ca0c: 3c048019 lui r4,0x8019 0018ca10: 8c842d98 lw r4,0x2d98(r4) Load Defender's Data 0018ca14: 0c063268 jal 0x0018c9a0 Checks for two unknown variables, sets r2 to either 1 or 2 0018ca18: 00000000 nop 0018ca1c: 34030001 ori r3,r0,0x0001 0018ca20: 10430033 beq r2,r3,0x0018caf0 0018ca24: 00000000 nop 0018ca28: 3c028019 lui r2,0x8019 0018ca2c: 8c422d98 lw r2,0x2d98(r2) Load Defender's Data 0018ca30: 00000000 nop 0018ca34: 9042005c lbu r2,0x005c(r2) Load Defender's 3rd set of Status 0018ca38: 00000000 nop 0018ca3c: 30420002 andi r2,r2,0x0002 0018ca40: 10400008 beq r2,r0,0x0018ca64 Branch if unit isn't under Reflect 0018ca44: 00000000 nop 0018ca48: 3c028019 lui r2,0x8019 0018ca4c: 944238c6 lhu r2,0x38c6(r2) 0018ca50: 00000000 nop 0018ca54: 14400003 bne r2,r0,0x0018ca64 0018ca58: 00000000 nop 0018ca5c: 0c0633fa jal 0x0018cfe8 Reflect Reaction? 0018ca60: 00000000 nop 0018ca64: 3c028019 lui r2,0x8019 0018ca68: 8c422d90 lw r2,0x2d90(r2) Load Defender's Currect Action Data 0018ca6c: 00000000 nop 0018ca70: 8442000e lh r2,0x000e(r2) Load Defender's Reaction ID 0018ca74: 00000000 nop 0018ca78: 1440001d bne r2,r0,0x0018caf0 Branch if Defender has a reaction 0018ca7c: 00000000 nop 0018ca80: 3c048019 lui r4,0x8019 0018ca84: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018ca88: 0c06325a jal 0x0018c968 0018ca8c: 00000000 nop 0018ca90: 14400017 bne r2,r0,0x0018caf0 0018ca94: 00000000 nop 0018ca98: 3c048019 lui r4,0x8019 0018ca9c: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018caa0: 0c0604c3 jal 0x0018130c Usability Check 0018caa4: 00000000 nop 0018caa8: 14400011 bne r2,r0,0x0018caf0 0018caac: 00000000 nop 0018cab0: 3c028019 lui r2,0x8019 0018cab4: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 0018cab8: 00000000 nop 0018cabc: 9043008e lbu r3,0x008e(r2) Load Defender's 4th set of Stats 0018cac0: 00000000 nop 0018cac4: 30620004 andi r2,r3,0x0004 0018cac8: 10400005 beq r2,r0,0x0018cae0 Branch if Unit doesn't have Blade Grasp 0018cacc: 30620002 andi r2,r3,0x0002 0018cad0: 0c063414 jal 0x0018d050 Blade Grasp Usability 0018cad4: 00000000 nop 0018cad8: 080632bc j 0x0018caf0 End 0018cadc: 00000000 nop 0018cae0: 10400003 beq r2,r0,0x0018caf0 Branch if Unit doesn't have Arrow Guard 0018cae4: 00000000 nop 0018cae8: 0c06343a jal 0x0018d0e8 0018caec: 00000000 nop 0018caf0: 8fbf0010 lw r31,0x0010(r29) 0018caf4: 27bd0018 addiu r29,r29,0x0018 0018caf8: 03e00008 jr r31 0018cafc: 00000000 nop Sunken State, Caution, Dragon Spirit, Brave Up, Face Up, Counter Tackle, Counter Flood, Absorb Used MP, Counter, Counter Magic Check: 0018cb00: 27bdffe8 addiu r29,r29,0xffe8 0018cb04: 3c038019 lui r3,0x8019 0018cb08: 906338e5 lbu r3,0x38e5(r3) Load Attack Formula ? 0018cb0c: 34020007 ori r2,r0,0x0007 0018cb10: 10620044 beq r3,r2,0x0018cc24 Branch if using the "Healing" Weapon Formula ? 0018cb14: afbf0010 sw r31,0x0010(r29) 0018cb18: 3c048019 lui r4,0x8019 0018cb1c: 8c842d98 lw r4,0x2d98(r4) Load Target's Stats 0018cb20: 0c063248 jal 0x0018c920 ??? 0018cb24: 00000000 nop 0018cb28: 1440003e bne r2,r0,0x0018cc24 0018cb2c: 00000000 nop 0018cb30: 3c048019 lui r4,0x8019 0018cb34: 8c842d98 lw r4,0x2d98(r4) Load Target's Stats 0018cb38: 00000000 nop 0018cb3c: 9083008b lbu r3,0x008b(r4) Load first set of Reactions 0018cb40: 00000000 nop 0018cb44: 30620010 andi r2,r3,0x0010 0018cb48: 10400003 beq r2,r0,0x0018cb58 Branch if not using Sunken State 0018cb4c: 34050010 ori r5,r0,0x0010 r5 = 10 0018cb50: 08063307 j 0x0018cc1c 0018cb54: 340401a9 ori r4,r0,0x01a9 Load Attack's Status Inflict 0018cb58: 30620008 andi r2,r3,0x0008 0018cb5c: 10400003 beq r2,r0,0x0018cb6c Branch if not using Caution 0018cb60: 30620004 andi r2,r3,0x0004 r2 = 4 0018cb64: 08063307 j 0x0018cc1c 0018cb68: 340401aa ori r4,r0,0x01aa Load Attack's Status Inflict 0018cb6c: 10400003 beq r2,r0,0x0018cb7c Branch if not using Dragon Spirit 0018cb70: 34050010 ori r5,r0,0x0010 r5 = 10 0018cb74: 08063307 j 0x0018cc1c 0018cb78: 340401ab ori r4,r0,0x01ab Load Attack's Status Inflict 0018cb7c: 30620001 andi r2,r3,0x0001 0018cb80: 10400003 beq r2,r0,0x0018cb90 Branch if not using Brave Up 0018cb84: 00000000 nop 0018cb88: 08063307 j 0x0018cc1c 0018cb8c: 340401ad ori r4,r0,0x01ad Load Attack's Stats Removal 0018cb90: 9083008c lbu r3,0x008c(r4) Load Second set of Reactions 0018cb94: 00000000 nop 0018cb98: 30620080 andi r2,r3,0x0080 0018cb9c: 10400005 beq r2,r0,0x0018cbb4 Branch if not using Faith (Face) up 0018cba0: 30620002 andi r2,r3,0x0002 r2= 2 0018cba4: 0c0633dd jal 0x0018cf74 0018cba8: 340401ae ori r4,r0,0x01ae 0018cbac: 08063309 j 0x0018cc24 0018cbb0: 00000000 nop 0018cbb4: 10400003 beq r2,r0,0x0018cbc4 Branch if not using Counter Tackle 0018cbb8: 34050010 ori r5,r0,0x0010 r5 = 10 0018cbbc: 08063307 j 0x0018cc1c 0018cbc0: 340401b4 ori r4,r0,0x01b4 0018cbc4: 30620001 andi r2,r3,0x0001 0018cbc8: 10400003 beq r2,r0,0x0018cbd8 Branch if not using Counter Flood 0018cbcc: 34050080 ori r5,r0,0x0080 Prepare Counter Flood Flag Check 0018cbd0: 08063307 j 0x0018cc1c 0018cbd4: 340401b5 ori r4,r0,0x01b5 0018cbd8: 9084008d lbu r4,0x008d(r4) Load 3rd set of Reactions 0018cbdc: 00000000 nop 0018cbe0: 30820080 andi r2,r4,0x0080 0018cbe4: 10400005 beq r2,r0,0x0018cbfc Branch if not using Absorb Used Mp 0018cbe8: 30820008 andi r2,r4,0x0008 r2 = 8 0018cbec: 0c0633dd jal 0x0018cf74 0018cbf0: 340401b6 ori r4,r0,0x01b6 Hit % for Attack on Self 0018cbf4: 08063309 j 0x0018cc24 0018cbf8: 00000000 nop 0018cbfc: 10400003 beq r2,r0,0x0018cc0c Branch if not using Counter 0018cc00: 340401ba ori r4,r0,0x01ba 0018cc04: 08063307 j 0x0018cc1c 0018cc08: 34050010 ori r5,r0,0x0010 0018cc0c: 30620004 andi r2,r3,0x0004 0018cc10: 10400004 beq r2,r0,0x0018cc24 Branch if not using Counter Magic?! 0018cc14: 340401b3 ori r4,r0,0x01b3 0018cc18: 34050040 ori r5,r0,0x0040 Prepare for Counter Magic Flag Check 0018cc1c: 0c063381 jal 0x0018ce04 Chance to React 0018cc20: 00000000 nop 0018cc24: 8fbf0010 lw r31,0x0010(r29) 0018cc28: 27bd0018 addiu r29,r29,0x0018 0018cc2c: 03e00008 jr r31 0018cc30: 00000000 nop MP Switch, Distribute, and Damage Split Check: 0018cc34: 27bdffe8 addiu r29,r29,0xffe8 0018cc38: 3c038019 lui r3,0x8019 0018cc3c: 906338e5 lbu r3,0x38e5(r3) 0018cc40: 34020007 ori r2,r0,0x0007 0018cc44: 10620020 beq r3,r2,0x0018ccc8 0018cc48: afbf0010 sw r31,0x0010(r29) 0018cc4c: 3c048019 lui r4,0x8019 0018cc50: 8c842d98 lw r4,0x2d98(r4) 0018cc54: 0c063248 jal 0x0018c920 0018cc58: 00000000 nop 0018cc5c: 1440001a bne r2,r0,0x0018ccc8 0018cc60: 00000000 nop 0018cc64: 3c048019 lui r4,0x8019 0018cc68: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018cc6c: 00000000 nop 0018cc70: 9083008d lbu r3,0x008d(r4) Load 3rd set of Reactions 0018cc74: 00000000 nop 0018cc78: 30620001 andi r2,r3,0x0001 0018cc7c: 10400005 beq r2,r0,0x0018cc94 Branch if not using MP switch 0018cc80: 30620002 andi r2,r3,0x0002 r2 = 2 0018cc84: 0c06346e jal 0x0018d1b8 MP Switch Calc 0018cc88: 00000000 nop 0018cc8c: 08063332 j 0x0018ccc8 End 0018cc90: 00000000 nop 0018cc94: 10400005 beq r2,r0,0x0018ccac Branch if not using Distribute 0018cc98: 00000000 nop 0018cc9c: 0c0634aa jal 0x0018d2a8 Distribute Calc 0018cca0: 00000000 nop 0018cca4: 08063332 j 0x0018ccc8 End 0018cca8: 00000000 nop 0018ccac: 9082008e lbu r2,0x008e(r4) Load 4th set of Reactions 0018ccb0: 00000000 nop 0018ccb4: 30420080 andi r2,r2,0x0080 0018ccb8: 10400003 beq r2,r0,0x0018ccc8 Branch if not using Damage Split 0018ccbc: 00000000 nop 0018ccc0: 0c0634c6 jal 0x0018d318 Damage Split Usability 0018ccc4: 00000000 nop 0018ccc8: 8fbf0010 lw r31,0x0010(r29) 0018cccc: 27bd0018 addiu r29,r29,0x0018 0018ccd0: 03e00008 jr r31 0018ccd4: 00000000 nop PA Save, MA Save, Speed Save, Regenerator, HP Restore, MP Restore, Critical Quick, Meatbone Slash, Auto Potion, Gilgame Heart Check: 0018ccd8: 27bdffe8 addiu r29,r29,0xffe8 0018ccdc: 3c038019 lui r3,0x8019 0018cce0: 906338e5 lbu r3,0x38e5(r3) Load Attack formula ? 0018cce4: 34020007 ori r2,r0,0x0007 0018cce8: 10620042 beq r3,r2,0x0018cdf4 Branch if used Formula is the "Healing" Weapon Formula? 0018ccec: afbf0010 sw r31,0x0010(r29) 0018ccf0: 3c048019 lui r4,0x8019 0018ccf4: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018ccf8: 0c063248 jal 0x0018c920 ??? 0018ccfc: 00000000 nop 0018cd00: 1440003c bne r2,r0,0x0018cdf4 0018cd04: 00000000 nop 0018cd08: 3c048019 lui r4,0x8019 0018cd0c: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018cd10: 00000000 nop 0018cd14: 9083008b lbu r3,0x008b(r4) Load Defender's 1st Set of Reactions 0018cd18: 00000000 nop 0018cd1c: 30620080 andi r2,r3,0x0080 0018cd20: 10400003 beq r2,r0,0x0018cd30 Branch if PA Save is not equiped 0018cd24: 30620040 andi r2,r3,0x0040 R2 = 40 0018cd28: 0806337b j 0x0018cdec 0018cd2c: 340401a6 ori r4,r0,0x01a6 Prepares Reaction ID check? 0018cd30: 10400003 beq r2,r0,0x0018cd40 Branch if MA Save is not equiped 0018cd34: 30620020 andi r2,r3,0x0020 R2 = 20 0018cd38: 0806337b j 0x0018cdec 0018cd3c: 340401a7 ori r4,r0,0x01a7 Prepares Reaction ID check? 0018cd40: 10400003 beq r2,r0,0x0018cd50 Branch if Speed Save is not equiped 0018cd44: 30620002 andi r2,r3,0x0002 R2 = 2 0018cd48: 0806337b j 0x0018cdec 0018cd4c: 340401a8 ori r4,r0,0x01a8 Prepares Reaction ID check? 0018cd50: 10400003 beq r2,r0,0x0018cd60 Branch if Regenerator is not equiped 0018cd54: 00000000 nop 0018cd58: 0806337b j 0x0018cdec 0018cd5c: 340401ac ori r4,r0,0x01ac Prepares Reaction ID Check? 0018cd60: 9083008c lbu r3,0x008c(r4) Load Defender's 2nd set of Reactions 0018cd64: 00000000 nop 0018cd68: 30620040 andi r2,r3,0x0040 0018cd6c: 10400005 beq r2,r0,0x0018cd84 Branch if HP Restore is not equiped 0018cd70: 30620020 andi r2,r3,0x0020 R2 = 20 0018cd74: 0c0633bd jal 0x0018cef4 0018cd78: 340401af ori r4,r0,0x01af Prepares Reaction ID Check? 0018cd7c: 0806337d j 0x0018cdf4 0018cd80: 00000000 nop 0018cd84: 10400005 beq r2,r0,0x0018cd9c Branch if MP Restore is not equiped 0018cd88: 30620010 andi r2,r3,0x0010 R2 = 10 0018cd8c: 0c0633bd jal 0x0018cef4 0018cd90: 340401b0 ori r4,r0,0x01b0 Prepares Reaction ID Check? 0018cd94: 0806337d j 0x0018cdf4 0018cd98: 00000000 nop 0018cd9c: 10400005 beq r2,r0,0x0018cdb4 Branch if Critical Quick is not equiped 0018cda0: 30620008 andi r2,r3,0x0008 R2 = 8 0018cda4: 0c0633bd jal 0x0018cef4 0018cda8: 340401b1 ori r4,r0,0x01b1 Prepares Reaction ID Check? 0018cdac: 0806337d j 0x0018cdf4 0018cdb0: 00000000 nop 0018cdb4: 10400005 beq r2,r0,0x0018cdcc Branch if Meatbone Slash is not equiped 0018cdb8: 00000000 nop 0018cdbc: 0c0633bd jal 0x0018cef4 0018cdc0: 340401b2 ori r4,r0,0x01b2 Prepares Reaction ID Check? 0018cdc4: 0806337d j 0x0018cdf4 0018cdc8: 00000000 nop 0018cdcc: 9083008d lbu r3,0x008d(r4) Load Defender's 3th Set of Reactions 0018cdd0: 00000000 nop 0018cdd4: 30620040 andi r2,r3,0x0040 0018cdd8: 14400004 bne r2,r0,0x0018cdec Branch if unit is not equiped with Gilgame Heart 0018cddc: 340401b7 ori r4,r0,0x01b7 Prepares Reaction ID Check? 0018cde0: 30620010 andi r2,r3,0x0010 0018cde4: 10400003 beq r2,r0,0x0018cdf4 Branch if unit is not equiped with Auto Potion 0018cde8: 340401b9 ori r4,r0,0x01b9 Prepares Reaction ID CHeck? 0018cdec: 0c0633a2 jal 0x0018ce88 0018cdf0: 00000000 nop 0018cdf4: 8fbf0010 lw r31,0x0010(r29) 0018cdf8: 27bd0018 addiu r29,r29,0x0018 0018cdfc: 03e00008 jr r31 0018ce00: 00000000 nop Counter, Counter Tackle, Counter Magic, Counter Flood, Brave Up, Dragon Spirit, Sunken State, and Caution Usability: 0018ce04: 27bdffe8 addiu r29,r29,0xffe8 0018ce08: afb00010 sw r16,0x0010(r29) 0018ce0c: 00808021 addu r16,r4,r0 0018ce10: 3c038019 lui r3,0x8019 0018ce14: 906338d4 lbu r3,0x38d4(r3) ??? 0018ce18: 34020015 ori r2,r0,0x0015 0018ce1c: 10620015 beq r3,r2,0x0018ce74 0018ce20: afbf0014 sw r31,0x0014(r29) 0018ce24: 3c028019 lui r2,0x8019 0018ce28: 904238f6 lbu r2,0x38f6(r2) Ability flags 4 0018ce2c: 00000000 nop 0018ce30: 00451024 and r2,r2,r5 0018ce34: 1040000f beq r2,r0,0x0018ce74 Branch if ability is not using specific ability flag (counter magic/flood/etc.) 0018ce38: 00000000 nop 0018ce3c: 3c048019 lui r4,0x8019 0018ce40: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018ce44: 0c0634e1 jal 0x0018d384 Chance to react 0018ce48: 00000000 nop 0018ce4c: 14400009 bne r2,r0,0x0018ce74 0018ce50: 00000000 nop 0018ce54: 3c038019 lui r3,0x8019 0018ce58: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018ce5c: 00000000 nop 0018ce60: a470000e sh r16,0x000e(r3) Reaction ID 0018ce64: 3c028019 lui r2,0x8019 0018ce68: 944238d6 lhu r2,0x38d6(r2) Used Ability ID 0018ce6c: 00000000 nop 0018ce70: a4620026 sh r2,0x0026(r3) 0018ce74: 8fbf0014 lw r31,0x0014(r29) 0018ce78: 8fb00010 lw r16,0x0010(r29) 0018ce7c: 27bd0018 addiu r29,r29,0x0018 0018ce80: 03e00008 jr r31 0018ce84: 00000000 nop PA Save, MA Save, Speed Save, Regenerator, Auto Potion, Gilgame Heart Usability: 0018ce88: 3c028019 lui r2,0x8019 0018ce8c: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 0018ce90: 27bdffe8 addiu r29,r29,0xffe8 0018ce94: afbf0014 sw r31,0x0014(r29) 0018ce98: afb00010 sw r16,0x0010(r29) 0018ce9c: 90420025 lbu r2,0x0025(r2) Load Attack Type 0018cea0: 00000000 nop 0018cea4: 30420080 andi r2,r2,0x0080 0018cea8: 1040000d beq r2,r0,0x0018cee0 Branch if Attack was not HP Damage 0018ceac: 00808021 addu r16,r4,r0 0018ceb0: 3c048019 lui r4,0x8019 0018ceb4: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018ceb8: 0c0634e1 jal 0x0018d384 Load Chance to React 0018cebc: 00000000 nop 0018cec0: 14400007 bne r2,r0,0x0018cee0 Branch if Reaction Failed 0018cec4: 00000000 nop 0018cec8: 3c028019 lui r2,0x8019 0018cecc: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 0018ced0: 00000000 nop 0018ced4: 94430004 lhu r3,0x0004(r2) Load HP Damage 0018ced8: a450000e sh r16,0x000e(r2) Store Reaction ID 0018cedc: a4430026 sh r3,0x0026(r2) Store Last Attack on Self? 0018cee0: 8fbf0014 lw r31,0x0014(r29) 0018cee4: 8fb00010 lw r16,0x0010(r29) 0018cee8: 27bd0018 addiu r29,r29,0x0018 0018ceec: 03e00008 jr r31 0018cef0: 00000000 nop Critical Quick, HP Restore, MP Restore, Meatbone Slash Usability: 0018cef4: 27bdffe8 addiu r29,r29,0xffe8 0018cef8: afb00010 sw r16,0x0010(r29) 0018cefc: 00808021 addu r16,r4,r0 0018cf00: 3c048019 lui r4,0x8019 0018cf04: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018cf08: afbf0014 sw r31,0x0014(r29) 0018cf0c: 9082005a lbu r2,0x005a(r4) Load Target's 3rd set of Current Status 0018cf10: 00000000 nop 0018cf14: 30420001 andi r2,r2,0x0001 0018cf18: 10400011 beq r2,r0,0x0018cf60 Branch if Target is not in Critical 0018cf1c: 00000000 nop 0018cf20: 3c028019 lui r2,0x8019 0018cf24: 8c422d90 lw r2,0x2d90(r2) Current Action Data Pointer 0018cf28: 00000000 nop 0018cf2c: 90420025 lbu r2,0x0025(r2) Attack Type Flag 0018cf30: 00000000 nop 0018cf34: 30420080 andi r2,r2,0x0080 0018cf38: 10400009 beq r2,r0,0x0018cf60 Branch if Attack was not HP Damage 0018cf3c: 00000000 nop 0018cf40: 0c0634e1 jal 0x0018d384 Chance to React 0018cf44: 00000000 nop 0018cf48: 14400005 bne r2,r0,0x0018cf60 Branch if did not react 0018cf4c: 00000000 nop 0018cf50: 3c028019 lui r2,0x8019 0018cf54: 8c422d90 lw r2,0x2d90(r2) Current Action Data Pointer 0018cf58: 00000000 nop 0018cf5c: a450000e sh r16,0x000e(r2) Store Reaction ID 0018cf60: 8fbf0014 lw r31,0x0014(r29) 0018cf64: 8fb00010 lw r16,0x0010(r29) 0018cf68: 27bd0018 addiu r29,r29,0x0018 0018cf6c: 03e00008 jr r31 0018cf70: 00000000 nop Face Up and Absorb Used MP Usability: 0018cf74: 27bdffe0 addiu r29,r29,0xffe0 0018cf78: afb10014 sw r17,0x0014(r29) 0018cf7c: 3c118019 lui r17,0x8019 0018cf80: 263138eb addiu r17,r17,0x38eb Load MP Used 0018cf84: afbf0018 sw r31,0x0018(r29) 0018cf88: afb00010 sw r16,0x0010(r29) 0018cf8c: 92220000 lbu r2,0x0000(r17) Load MP used into R2 0018cf90: 00000000 nop 0018cf94: 1040000e beq r2,r0,0x0018cfd0 Branch to end if No MP was used 0018cf98: 00808021 addu r16,r4,r0 0018cf9c: 3c048019 lui r4,0x8019 0018cfa0: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018cfa4: 0c0634e1 jal 0x0018d384 Chance to React 0018cfa8: 00000000 nop 0018cfac: 14400008 bne r2,r0,0x0018cfd0 Branch if Reaction Failed 0018cfb0: 00000000 nop 0018cfb4: 3c038019 lui r3,0x8019 0018cfb8: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018cfbc: 00000000 nop 0018cfc0: a470000e sh r16,0x000e(r3) Store Reaction ID 0018cfc4: 92220000 lbu r2,0x0000(r17) 0018cfc8: 00000000 nop 0018cfcc: a4620026 sh r2,0x0026(r3) Store Last Attack on Self? 0018cfd0: 8fbf0018 lw r31,0x0018(r29) 0018cfd4: 8fb10014 lw r17,0x0014(r29) 0018cfd8: 8fb00010 lw r16,0x0010(r29) 0018cfdc: 27bd0020 addiu r29,r29,0x0020 0018cfe0: 03e00008 jr r31 0018cfe4: 00000000 nop Reflect Reaction? 0018cfe8: 3c038019 lui r3,0x8019 0018cfec: 906338d4 lbu r3,0x38d4(r3) 0018cff0: 34020015 ori r2,r0,0x0015 0018cff4: 10620014 beq r3,r2,0x0018d048 Branch to end if 0x38d4 = 0x15 0018cff8: 00000000 nop 0018cffc: 3c028019 lui r2,0x8019 0018d000: 904238f5 lbu r2,0x38f5(r2) Load Ability Flags 3 0018d004: 00000000 nop 0018d008: 30420080 andi r2,r2,0x0080 0018d00c: 1040000e beq r2,r0,0x0018d048 Branch if 'Reflectable' isn't marked 0018d010: 340201b8 ori r2,r0,0x01b8 r2 = 0x01b8 0018d014: 3c038019 lui r3,0x8019 0018d018: 8c632d90 lw r3,0x2d90(r3) Load Defender's Currect Action Data 0018d01c: 00000000 nop 0018d020: a462000e sh r2,0x000e(r3) Store Reaction as Reflect (LOL) 0018d024: 3c028019 lui r2,0x8019 0018d028: 944238d6 lhu r2,0x38d6(r2) Load Used Ability ID 0018d02c: a460002a sh r0,0x002a(r3) Store hit on self as 0 0018d030: a0600000 sb r0,0x0000(r3) Store hit as 0 0018d034: a4620026 sh r2,0x0026(r3) Store Used Ability ID as Last Attack 0018d038: 3c038019 lui r3,0x8019 0018d03c: 8c632d90 lw r3,0x2d90(r3) Load Defender's Currect Action Data 0018d040: 34020009 ori r2,r0,0x0009 0018d044: a0620002 sb r2,0x0002(r3) Store Evade type as 0x09 0018d048: 03e00008 jr r31 0018d04c: 00000000 nop Blade Grasp Usability: 0018d050: 3c028019 lui r2,0x8019 0018d054: 904238f6 lbu r2,0x38f6(r2) Load Ability Flags 4 0018d058: 27bdffe8 addiu r29,r29,0xffe8 0018d05c: 30420010 andi r2,r2,0x0010 0018d060: 1040001d beq r2,r0,0x0018d0d8 Branch if Blade Grasp is not flagged 0018d064: afbf0010 sw r31,0x0010(r29) 0018d068: 3c048019 lui r4,0x8019 0018d06c: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018d070: 34020064 ori r2,r0,0x0064 R2 = 0x64 (or 100) 0018d074: 90830024 lbu r3,0x0024(r4) Load Defender's Brave 0018d078: 3c058019 lui r5,0x8019 0018d07c: 8ca52d90 lw r5,0x2d90(r5) Load Defender's Current Action Data 0018d080: 00431023 subu r2,r2,r3 100 - Brave 0018d084: 0c0634e1 jal 0x0018d384 Chance to react 0018d088: a4a2002a sh r2,0x002a(r5) Store 100 - Brave as Hit %? 0018d08c: 14400012 bne r2,r0,0x0018d0d8 0018d090: 00000000 nop 0018d094: 3c028019 lui r2,0x8019 0018d098: 8c42f5fc lw r2,-0x0a04(r2) 0018d09c: 00000000 nop 0018d0a0: 1440000d bne r2,r0,0x0018d0d8 0018d0a4: 00000000 nop 0018d0a8: 3c028019 lui r2,0x8019 0018d0ac: 8c422d90 lw r2,0x2d90(r2) Load Defender's Current Action Data 0018d0b0: 00000000 nop 0018d0b4: a0400000 sb r0,0x0000(r2) Store Hit 0018d0b8: 3c038019 lui r3,0x8019 0018d0bc: 8c632d90 lw r3,0x2d90(r3) Load Defender's Current Action Data 0018d0c0: 3402000b ori r2,r0,0x000b 0018d0c4: a0620002 sb r2,0x0002(r3) Store Evade type as 0x0b 0018d0c8: 3c038019 lui r3,0x8019 0018d0cc: 8c632d90 lw r3,0x2d90(r3) Load Defender's Current Action Data 0018d0d0: 340201c3 ori r2,r0,0x01c3 0018d0d4: a462000e sh r2,0x000e(r3) Store Reaction ID as 1c3 0018d0d8: 8fbf0010 lw r31,0x0010(r29) 0018d0dc: 27bd0018 addiu r29,r29,0x0018 0018d0e0: 03e00008 jr r31 0018d0e4: 00000000 nop Arrow Guard Usability: 0018d0e8: 3c028019 lui r2,0x8019 0018d0ec: 904238f3 lbu r2,0x38f3(r2) Load Ability Flags 1 0018d0f0: 27bdffe8 addiu r29,r29,0xffe8 0018d0f4: 30420020 andi r2,r2,0x0020 0018d0f8: 1040002b beq r2,r0,0x0018d1a8 Branch if 'Range Weapon' is not flagged 0018d0fc: afbf0010 sw r31,0x0010(r29) 0018d100: 3c028019 lui r2,0x8019 0018d104: 904238d8 lbu r2,0x38d8(r2) Load Used Weapon ID 0018d108: 00000000 nop 0018d10c: 00021840 sll r3,r2,0x01 ID * 2 0018d110: 00621821 addu r3,r3,r2 ID * 3 0018d114: 00031880 sll r3,r3,0x02 ID * 12 0018d118: 3c018006 lui r1,0x8006 0018d11c: 00230821 addu r1,r1,r3 80060000 + ID * 12 0018d120: 90222ebd lbu r2,0x2ebd(r1) Load Used Weapon Item Type 0018d124: 00000000 nop 0018d128: 2442fff5 addiu r2,r2,0xfff5 Weapon Item Type - 11 (0xfff6 for Guns) 0018d12c: 2c420002 sltiu r2,r2,0x0002 Check for Crossbows/Bows (0x0003 for Guns) 0018d130: 1040001d beq r2,r0,0x0018d1a8 Branch if weapon is not a Crossbow/Bow 0018d134: 34020064 ori r2,r0,0x0064 R2 = 0x64 (or 100) 0018d138: 3c048019 lui r4,0x8019 0018d13c: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018d140: 00000000 nop 0018d144: 90830024 lbu r3,0x0024(r4) Load Brave 0018d148: 3c058019 lui r5,0x8019 0018d14c: 8ca52d90 lw r5,0x2d90(r5) Load Defender's Current Action Data 0018d150: 00431023 subu r2,r2,r3 100 - Brave 0018d154: 0c0634e1 jal 0x0018d384 Chance to react 0018d158: a4a2002a sh r2,0x002a(r5) Store Hit % ? 0018d15c: 14400012 bne r2,r0,0x0018d1a8 0018d160: 00000000 nop 0018d164: 3c028019 lui r2,0x8019 0018d168: 8c42f5fc lw r2,-0x0a04(r2) 0018d16c: 00000000 nop 0018d170: 1440000d bne r2,r0,0x0018d1a8 0018d174: 00000000 nop 0018d178: 3c028019 lui r2,0x8019 0018d17c: 8c422d90 lw r2,0x2d90(r2) Load Defender's Currect Action Data 0018d180: 00000000 nop 0018d184: a0400000 sb r0,0x0000(r2) Store Evade as 0 0018d188: 3c038019 lui r3,0x8019 0018d18c: 8c632d90 lw r3,0x2d90(r3) Load Defender's Currect Action Data 0018d190: 34020004 ori r2,r0,0x0004 0018d194: a0620002 sb r2,0x0002(r3) Store Evade type 0018d198: 3c038019 lui r3,0x8019 0018d19c: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 0018d1a0: 340201c4 ori r2,r0,0x01c4 0018d1a4: a462000e sh r2,0x000e(r3) Store Reaction ID 0018d1a8: 8fbf0010 lw r31,0x0010(r29) 0018d1ac: 27bd0018 addiu r29,r29,0x0018 0018d1b0: 03e00008 jr r31 0018d1b4: 00000000 nop MP Switch Usability: 0018d1b8: 3c028019 lui r2,0x8019 0018d1bc: 8c422d90 lw r2,0x2d90(r2) Current Action Data Pointer 0018d1c0: 27bdffe8 addiu r29,r29,0xffe8 0018d1c4: afbf0010 sw r31,0x0010(r29) 0018d1c8: 84420004 lh r2,0x0004(r2) HP Damage 0018d1cc: 00000000 nop 0018d1d0: 10400031 beq r2,r0,0x0018d298 Branch if no damage was dealt 0018d1d4: 00000000 nop 0018d1d8: 3c048019 lui r4,0x8019 0018d1dc: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018d1e0: 00000000 nop 0018d1e4: 9482002c lhu r2,0x002c(r4) Load Current MP 0018d1e8: 00000000 nop 0018d1ec: 1040002a beq r2,r0,0x0018d298 Branch if no MP 0018d1f0: 00000000 nop 0018d1f4: 0c0634e1 jal 0x0018d384 Chance to React 0018d1f8: 00000000 nop 0018d1fc: 14400026 bne r2,r0,0x0018d298 Branch if did not react 0018d200: 00000000 nop 0018d204: 3c028019 lui r2,0x8019 0018d208: 8c42f5fc lw r2,-0x0a04(r2) ??? 0018d20c: 00000000 nop 0018d210: 14400021 bne r2,r0,0x0018d298 0018d214: 00000000 nop 0018d218: 3c048019 lui r4,0x8019 0018d21c: 8c842d90 lw r4,0x2d90(r4) Current Action Data Pointer 0018d220: 00000000 nop 0018d224: 94820008 lhu r2,0x0008(r4) Load MP Damage 0018d228: 94830004 lhu r3,0x0004(r4) Load HP Damage 0018d22c: 00000000 nop 0018d230: 00431021 addu r2,r2,r3 0018d234: a4820008 sh r2,0x0008(r4) Store as MP Damage 0018d238: 00021400 sll r2,r2,0x10 0018d23c: 00021403 sra r2,r2,0x10 0018d240: 284203e8 slti r2,r2,0x03e8 0018d244: 14400002 bne r2,r0,0x0018d250 0018d248: 340203e7 ori r2,r0,0x03e7 0018d24c: a4820008 sh r2,0x0008(r4) Store as MP Damage 0018d250: 3c038019 lui r3,0x8019 0018d254: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018d258: 00000000 nop 0018d25c: 90620025 lbu r2,0x0025(r3) Attack Flags 0018d260: 00000000 nop 0018d264: 3042007f andi r2,r2,0x007f 0018d268: a0620025 sb r2,0x0025(r3) Store 0018d26c: 3c048019 lui r4,0x8019 0018d270: 8c842d90 lw r4,0x2d90(r4) Current Action Data Pointer 0018d274: a4600004 sh r0,0x0004(r3) 0 HP Damage 0018d278: 90820025 lbu r2,0x0025(r4) 0018d27c: 00000000 nop 0018d280: 34420020 ori r2,r2,0x0020 0018d284: a0820025 sb r2,0x0025(r4) Store Attack Flag as MP Damage 0018d288: 3c038019 lui r3,0x8019 0018d28c: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018d290: 340201bd ori r2,r0,0x01bd 0018d294: a462000e sh r2,0x000e(r3) Reaction ID 0018d298: 8fbf0010 lw r31,0x0010(r29) 0018d29c: 27bd0018 addiu r29,r29,0x0018 0018d2a0: 03e00008 jr r31 0018d2a4: 00000000 nop Distribute Usability: 0018d2a8: 3c058019 lui r5,0x8019 0018d2ac: 8ca52d98 lw r5,0x2d98(r5) Load Defender's Stats 0018d2b0: 3c048019 lui r4,0x8019 0018d2b4: 8c842d90 lw r4,0x2d90(r4) Current Action Data Pointer 0018d2b8: 27bdffe8 addiu r29,r29,0xffe8 0018d2bc: afbf0014 sw r31,0x0014(r29) 0018d2c0: afb00010 sw r16,0x0010(r29) 0018d2c4: 94a2002a lhu r2,0x002a(r5) Load Max HP 0018d2c8: 94a30028 lhu r3,0x0028(r5) Load Current HP 0018d2cc: 84840006 lh r4,0x0006(r4) HP Recovery 0018d2d0: 00431023 subu r2,r2,r3 Max HP - Current HP 0018d2d4: 00828023 subu r16,r4,r2 0018d2d8: 1a00000a blez r16,0x0018d304 Branch if r16 on less then or equal to zero 0018d2dc: 00000000 nop 0018d2e0: 0c0634e1 jal 0x0018d384 Chance to Counter 0018d2e4: 00a02021 addu r4,r5,r0 0018d2e8: 14400006 bne r2,r0,0x0018d304 Branch if didn't react 0018d2ec: 340201bc ori r2,r0,0x01bc 0018d2f0: 3c038019 lui r3,0x8019 0018d2f4: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018d2f8: 00000000 nop 0018d2fc: a4700026 sh r16,0x0026(r3) Last Attack on Self? 0018d300: a462000e sh r2,0x000e(r3) Reaction ID 0018d304: 8fbf0014 lw r31,0x0014(r29) 0018d308: 8fb00010 lw r16,0x0010(r29) 0018d30c: 27bd0018 addiu r29,r29,0x0018 0018d310: 03e00008 jr r31 0018d314: 00000000 nop Damage Split Usability: 0018d318: 3c028019 lui r2,0x8019 0018d31c: 8c422d90 lw r2,0x2d90(r2) Current Action Data Pointer 0018d320: 27bdffe8 addiu r29,r29,0xffe8 0018d324: afbf0014 sw r31,0x0014(r29) 0018d328: afb00010 sw r16,0x0010(r29) 0018d32c: 94500004 lhu r16,0x0004(r2) Load Damage? 0018d330: 00000000 nop 0018d334: 1200000e beq r16,r0,0x0018d370 Branch if no Damage 0018d338: 00000000 nop 0018d33c: 3c048019 lui r4,0x8019 0018d340: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018d344: 0c0634e1 jal 0x0018d384 Chance to React 0018d348: 00000000 nop 0018d34c: 14400008 bne r2,r0,0x0018d370 0018d350: 26100001 addiu r16,r16,0x0001 0018d354: 3202ffff andi r2,r16,0xffff 0018d358: 00028042 srl r16,r2,0x01 Damage / 2 0018d35c: 3c038019 lui r3,0x8019 0018d360: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018d364: 340201be ori r2,r0,0x01be 0018d368: a4700026 sh r16,0x0026(r3) 0018d36c: a462000e sh r2,0x000e(r3) Store Reaction 0018d370: 8fbf0014 lw r31,0x0014(r29) 0018d374: 8fb00010 lw r16,0x0010(r29) 0018d378: 27bd0018 addiu r29,r29,0x0018 0018d37c: 03e00008 jr r31 0018d380: 00000000 nop Chance to React: 0018d384: 3c028019 lui r2,0x8019 0018d388: 8c42f5fc lw r2,-0x0a04(r2) 0018d38c: 27bdffe8 addiu r29,r29,0xffe8 0018d390: 14400006 bne r2,r0,0x0018d3ac 0018d394: afbf0010 sw r31,0x0010(r29) 0018d398: 90850024 lbu r5,0x0024(r4) Load Brave 0018d39c: 0c017833 jal 0x0005e0cc Random 0018d3a0: 34040064 ori r4,r0,0x0064 r4 = 100 0018d3a4: 080634ec j 0x0018d3b0 0018d3a8: 00000000 nop 0018d3ac: 00001021 addu r2,r0,r0 0018d3b0: 8fbf0010 lw r31,0x0010(r29) 0018d3b4: 27bd0018 addiu r29,r29,0x0018 0018d3b8: 03e00008 jr r31 0018d3bc: 00000000 nop Attacker's Earned Experience and Gained EXP Up 0018d620: 3c028019 lui r2,0x8019 0018d624: 8c42f5f0 lw r2,-0x0a10(r2) 0018d628: 00000000 nop 0018d62c: 14400035 bne r2,r0,0x0018d704 0018d630: 00000000 nop 0018d634: 10800033 beq r4,r0,0x0018d704 0018d638: 34020001 ori r2,r0,0x0001 0018d63c: 14820003 bne r4,r2,0x0018d64c 0018d640: 00000000 nop 0018d644: 0806359f j 0x0018d67c 0018d648: 3404000a ori r4,r0,0x000a 0018d64c: 3c028019 lui r2,0x8019 0018d650: 8c422d98 lw r2,0x2d98(r2) Load Defender's Data 0018d654: 00000000 nop 0018d658: 9043015c lbu r3,0x015c(r2) 0018d65c: 00000000 nop 0018d660: 10600008 beq r3,r0,0x0018d684 0018d664: 34040014 ori r4,r0,0x0014 0018d668: 34020014 ori r2,r0,0x0014 0018d66c: 0043001a div r2,r3 0018d670: 00001012 mflo r2 0018d674: 00000000 nop 0018d678: 00402021 addu r4,r2,r0 0018d67c: 3c028019 lui r2,0x8019 0018d680: 8c422d98 lw r2,0x2d98(r2) Load Defender's Data 0018d684: 3c058019 lui r5,0x8019 0018d688: 8ca52d94 lw r5,0x2d94(r5) Load Attacker's Data 0018d68c: 90420022 lbu r2,0x0022(r2) Load Defender's Level 0018d690: 90a30022 lbu r3,0x0022(r5) Load Attacker's Level 0018d694: 00821021 addu r2,r4,r2 0018d698: 00431023 subu r2,r2,r3 0018d69c: 00402021 addu r4,r2,r0 0018d6a0: 00021400 sll r2,r2,0x10 0018d6a4: 1c400002 bgtz r2,0x0018d6b0 0018d6a8: 00000000 nop 0018d6ac: 34040001 ori r4,r0,0x0001 0018d6b0: 90a20090 lbu r2,0x0090(r5) Load Attacker's Second Set of Support 0018d6b4: 00000000 nop 0018d6b8: 30420020 andi r2,r2,0x0020 0018d6bc: 10400002 beq r2,r0,0x0018d6c8 Branch if unit doesn't have Gained EXP UP 0018d6c0: 00041400 sll r2,r4,0x10 0018d6c4: 000223c2 srl r4,r2,0x0f 0018d6c8: 00041400 sll r2,r4,0x10 0018d6cc: 00021403 sra r2,r2,0x10 0018d6d0: 28420064 slti r2,r2,0x0064 0018d6d4: 14400003 bne r2,r0,0x0018d6e4 0018d6d8: 00041c00 sll r3,r4,0x10 0018d6dc: 34040063 ori r4,r0,0x0063 0018d6e0: 00041c00 sll r3,r4,0x10 0018d6e4: 3c058019 lui r5,0x8019 0018d6e8: 24a538e7 addiu r5,r5,0x38e7 Load Earned Experience 0018d6ec: 90a20000 lbu r2,0x0000(r5) 0018d6f0: 00031c03 sra r3,r3,0x10 0018d6f4: 0043102a slt r2,r2,r3 0018d6f8: 10400002 beq r2,r0,0x0018d704 0018d6fc: 00000000 nop 0018d700: a0a40000 sb r4,0x0000(r5) Store Earned Experience 0018d704: 03e00008 jr r31 0018d708: 00000000 nop Poison and Regen: 0018d7c8: 27bdffe8 addiu r29,r29,0xffe8 0018d7cc: afb00010 sw r16,0x0010(r29) 0018d7d0: afbf0014 sw r31,0x0014(r29) 0018d7d4: 0c063691 jal 0x0018da44 Check for Crystal, Dead, Jump, Petrify, or Treasure 0018d7d8: 00808021 addu r16,r4,r0 0018d7dc: 1440001d bne r2,r0,0x0018d854 Branch to end if unit has Crystal, Dead, Jump, Petrify or Treasure 0018d7e0: 00001021 addu r2,r0,r0 r2 = 0 0018d7e4: 0c063681 jal 0x0018da04 0018d7e8: 02002021 addu r4,r16,r0 0018d7ec: 9203005b lbu r3,0x005b(r16) Load Attacker's 4th set of Current status 0018d7f0: 00000000 nop 0018d7f4: 30620080 andi r2,r3,0x0080 0018d7f8: 10400008 beq r2,r0,0x0018d81c Branch if unit isn't Poisoned 0018d7fc: 00000000 nop 0018d800: 9602002a lhu r2,0x002a(r16) Load Max HP 0018d804: 3c038019 lui r3,0x8019 0018d808: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 0018d80c: 000210c2 srl r2,r2,0x03 Max HP / 8 0018d810: a4620004 sh r2,0x0004(r3) Store has HP Damage 0018d814: 08063610 j 0x0018d840 0018d818: 34020080 ori r2,r0,0x0080 Attack Flag (Damage) 0018d81c: 30620040 andi r2,r3,0x0040 0018d820: 10400008 beq r2,r0,0x0018d844 Branch if unit doesn't have Regen 0018d824: 00000000 nop 0018d828: 9602002a lhu r2,0x002a(r16) Load Max HP 0018d82c: 3c038019 lui r3,0x8019 0018d830: 8c632d90 lw r3,0x2d90(r3) Load Current Action Data Pointer 0018d834: 000210c2 srl r2,r2,0x03 Max HP / 8 0018d838: a4620006 sh r2,0x0006(r3) Store has Healing 0018d83c: 34020040 ori r2,r0,0x0040 Attack Flag (Heal) 0018d840: a0620025 sb r2,0x0025(r3) Store Attack Flag 0018d844: 3c028019 lui r2,0x8019 0018d848: 8c422d90 lw r2,0x2d90(r2) Load Current Action Data Pointer 0018d84c: 00000000 nop 0018d850: 90420025 lbu r2,0x0025(r2) Load Attack Flag 0018d854: 8fbf0014 lw r31,0x0014(r29) 0018d858: 8fb00010 lw r16,0x0010(r29) 0018d85c: 27bd0018 addiu r29,r29,0x0018 0018d860: 03e00008 jr r31 Return to Routine 0018d864: 00000000 nop ? 0018da04: 27bdffe8 addiu r29,r29,0xffe8 0018da08: 2483018c addiu r3,r4,0x018c 0018da0c: afbf0010 sw r31,0x0010(r29) 0018da10: 3c018019 lui r1,0x8019 0018da14: ac242d98 sw r4,0x2d98(r1) Store Target's Stats 0018da18: 3c018019 lui r1,0x8019 0018da1c: ac232d90 sw r3,0x2d90(r1) Store Current Action Data Pointer 0018da20: 9082018a lbu r2,0x018a(r4) 18A = ENTD Unit ID? 0018da24: 3c018019 lui r1,0x8019 0018da28: a02238c1 sb r2,0x38c1(r1) 0018da2c: 0c062f5d jal 0x0018bd74 0018da30: 00602021 addu r4,r3,r0 0018da34: 8fbf0010 lw r31,0x0010(r29) 0018da38: 27bd0018 addiu r29,r29,0x0018 0018da3c: 03e00008 jr r31 0018da40: 00000000 nop Crystal, Dead, Jump, Petrify, and Treasure check: 0018da44: 90830001 lbu r3,0x0001(r4) 0018da48: 340200ff ori r2,r0,0x00ff 0018da4c: 1062000c beq r3,r2,0x0018da80 0018da50: 34020001 ori r2,r0,0x0001 r2 = 1 0018da54: 90820058 lbu r2,0x0058(r4) Load 1st set of Current Status 0018da58: 00000000 nop 0018da5c: 30420064 andi r2,r2,0x0064 0018da60: 14400007 bne r2,r0,0x0018da80 Branch if the unit has Crystal, Dead, or Jump 0018da64: 34020001 ori r2,r0,0x0001 r2 = 1 0018da68: 90820059 lbu r2,0x0059(r4) Load 2nd set of Current Status 0018da6c: 00000000 nop 0018da70: 30420081 andi r2,r2,0x0081 0018da74: 10400002 beq r2,r0,0x0018da80 Branch if the unit doesn't have Petrify or Treasure 0018da78: 00000000 nop 0018da7c: 34020001 ori r2,r0,0x0001 r2 = 1 0018da80: 03e00008 jr r31 0018da84: 00000000 nop Move-HP Up, Move-MP Up, Gained Exp Up, Gained JP Up: 0018dd44: 27bdffd8 addiu r29,r29,0xffd8 0018dd48: afb00020 sw r16,0x0020(r29) 0018dd4c: 00808021 addu r16,r4,r0 0018dd50: afbf0024 sw r31,0x0024(r29) 0018dd54: 9202018a lbu r2,0x018a(r16) 018a = ENTD Unit ID 0018dd58: 2604018c addiu r4,r16,0x018c 0018dd5c: 3c018019 lui r1,0x8019 0018dd60: ac302d98 sw r16,0x2d98(r1) Store Target's Stats 0018dd64: 3c018019 lui r1,0x8019 0018dd68: ac242d90 sw r4,0x2d90(r1) Current Action Data Pointer 0018dd6c: 3c018019 lui r1,0x8019 0018dd70: a02238c1 sb r2,0x38c1(r1) ? 0018dd74: 0c062f5d jal 0x0018bd74 ? 0018dd78: 00000000 nop 0018dd7c: 02002021 addu r4,r16,r0 0018dd80: 0c01786c jal 0x0005e1b0 ? 0018dd84: 34050004 ori r5,r0,0x0004 r5 = 4 0018dd88: 1440005b bne r2,r0,0x0018def8 0018dd8c: 2402ffff addiu r2,r0,0xffff 0018dd90: 0c06004d jal 0x00180134 Move HP/MP Up ? 0018dd94: 02002021 addu r4,r16,r0 0018dd98: 00401821 addu r3,r2,r0 0018dd9c: 30620020 andi r2,r3,0x0020 0018dda0: 1040000e beq r2,r0,0x0018dddc Branch if unit doesn't have move HP up ? 0018dda4: 30620040 andi r2,r3,0x0040 0018dda8: 3c036666 lui r3,0x6666 0018ddac: 9602002a lhu r2,0x002a(r16) Max HP 0018ddb0: 34636667 ori r3,r3,0x6667 r3 = 66666667 0018ddb4: 24420009 addiu r2,r2,0x0009 Max HP + 9 0018ddb8: 00430018 mult r2,r3 Max HP * 66666667 0018ddbc: 3c038019 lui r3,0x8019 0018ddc0: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018ddc4: 34020040 ori r2,r0,0x0040 r2 = 40 0018ddc8: a0620025 sb r2,0x0025(r3) HP Recovery 0018ddcc: 00001010 mfhi r2 Move Hi to r2 0018ddd0: 00021083 sra r2,r2,0x02 Hi / 4 or 10% 0018ddd4: 080637bd j 0x0018def4 End 0018ddd8: a4620006 sh r2,0x0006(r3) Store HP Recovery 0018dddc: 1040000e beq r2,r0,0x0018de18 Branch if unit doesn't have move mp up 0018dde0: 30620080 andi r2,r3,0x0080 0018dde4: 3c036666 lui r3,0x6666 0018dde8: 9602002e lhu r2,0x002e(r16) Max MP 0018ddec: 34636667 ori r3,r3,0x6667 0018ddf0: 24420009 addiu r2,r2,0x0009 Max MP + 9 0018ddf4: 00430018 mult r2,r3 Max HP * 66666667 0018ddf8: 3c038019 lui r3,0x8019 0018ddfc: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018de00: 34020010 ori r2,r0,0x0010 r2 = 10 0018de04: a0620025 sb r2,0x0025(r3) MP Recovery 0018de08: 00001010 mfhi r2 Move Hi to r2 0018de0c: 00021083 sra r2,r2,0x02 Hi / 4 or 10% 0018de10: 080637bd j 0x0018def4 End 0018de14: a462000a sh r2,0x000a(r3) Store MP Recovery 0018de18: 10400019 beq r2,r0,0x0018de80 0018de1c: 30620100 andi r2,r3,0x0100 0018de20: 3c048019 lui r4,0x8019 0018de24: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018de28: 0c05fc3b jal 0x0017f0ec 0018de2c: 00000000 nop 0018de30: 3c038019 lui r3,0x8019 Current Action Data Pointer 0018de34: 8c632d90 lw r3,0x2d90(r3) 0018de38: 00000000 nop 0018de3c: a0620028 sb r2,0x0028(r3) Store ??? Something to do with exp? 0018de40: 3c028019 lui r2,0x8019 0018de44: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 0018de48: 00000000 nop 0018de4c: 90420090 lbu r2,0x0090(r2) Load 2nd Set of Supports 0018de50: 00000000 nop 0018de54: 30420020 andi r2,r2,0x0020 0018de58: 10400022 beq r2,r0,0x0018dee4 Branch if unit doesn't have Gained Exp Up 0018de5c: 00000000 nop 0018de60: 3c038019 lui r3,0x8019 0018de64: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018de68: 00000000 nop 0018de6c: 90620028 lbu r2,0x0028(r3) 0018de70: 00000000 nop 0018de74: 00021040 sll r2,r2,0x01 0018de78: 080637b9 j 0x0018dee4 0018de7c: a0620028 sb r2,0x0028(r3) Store ??? Exp? 0018de80: 1040001d beq r2,r0,0x0018def8 0018de84: 00001021 addu r2,r0,r0 r2 = 0 0018de88: 3c048019 lui r4,0x8019 0018de8c: 8c842d98 lw r4,0x2d98(r4) Load Defender's Stats 0018de90: 0c05fc3b jal 0x0017f0ec 0018de94: 00000000 nop 0018de98: 3c038019 lui r3,0x8019 0018de9c: 8c632d90 lw r3,0x2d90(r3) 0018dea0: 00000000 nop 0018dea4: a0620029 sb r2,0x0029(r3) 0018dea8: 3c028019 lui r2,0x8019 0018deac: 8c422d98 lw r2,0x2d98(r2) Load Defender's Stats 0018deb0: 00000000 nop 0018deb4: 90420090 lbu r2,0x0090(r2) Load 2nd set of Support 0018deb8: 00000000 nop 0018debc: 30420040 andi r2,r2,0x0040 0018dec0: 10400008 beq r2,r0,0x0018dee4 Branch if unit doesn't have gained JP Up 0018dec4: 00000000 nop 0018dec8: 3c038019 lui r3,0x8019 0018decc: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018ded0: 00000000 nop 0018ded4: 90620029 lbu r2,0x0029(r3) Load ??? JP? 0018ded8: 00000000 nop 0018dedc: 00021040 sll r2,r2,0x01 ??? * 2 0018dee0: a0620029 sb r2,0x0029(r3) Store ??? JP? 0018dee4: 3c038019 lui r3,0x8019 0018dee8: 8c632d90 lw r3,0x2d90(r3) Current Action Data Pointer 0018deec: 34020001 ori r2,r0,0x0001 R2 = 1 0018def0: a0620025 sb r2,0x0025(r3) Store Attack type ??? 0018def4: 00001021 addu r2,r0,r0 R2 = 0 0018def8: 8fbf0024 lw r31,0x0024(r29) 0018defc: 8fb00020 lw r16,0x0020(r29) 0018df00: 27bd0028 addiu r29,r29,0x0028 0018df04: 03e00008 jr r31 0018df08: 00000000 nop Random Process (gives a number between 0-7FFF) 0018eea0: 3c028019 lui r2,0x8019 0018eea4: 8c42f5fc lw r2,-0x0a04(r2) Load ? (maybe dealing with displayed damage?) 0018eea8: 27bdffe8 addiu r29,r29,0xffe8 0018eeac: 14400005 bne r2,r0,0x0018eec4 Branch if only displaying damage (not actually attacking) 0018eeb0: afbf0010 sw r31,0x0010(r29) 0018eeb4: 0c0088c3 jal 0x0002230c ? (gives a result of 0-7FFF?) 0018eeb8: 00000000 nop 0018eebc: 08063bb2 j 0x0018eec8 0018eec0: 00000000 nop 0018eec4: 34024000 ori r2,r0,0x4000 Random = 4000 (for displayed damage, to show "average") 0018eec8: 8fbf0010 lw r31,0x0010(r29) 0018eecc: 27bd0018 addiu r29,r29,0x0018 0018eed0: 03e00008 jr r31 0018eed4: 00000000 nop Random Process (gives a random based on r4 (MOD) and checks against r5 (chance to work)) 0018eed8: 27bdffe0 addiu r29,r29,0xffe0 0018eedc: afb00010 sw r16,0x0010(r29) 0018eee0: 00808021 addu r16,r4,r0 r16 = Random MOD 0018eee4: afb10014 sw r17,0x0014(r29) 0018eee8: afbf0018 sw r31,0x0018(r29) 0018eeec: 0c063ba8 jal 0x0018eea0 Random Procees (returns 0-7FFF) 0018eef0: 00a08821 addu r17,r5,r0 r17 = Chance 0018eef4: 00500018 mult r2,r16 Random * MOD 0018eef8: 00001012 mflo r2 r2 = Random * MOD 0018eefc: 04410002 bgez r2,0x0018ef08 Branch if Random * MOD >= 0 0018ef00: 00000000 nop 0018ef04: 24427fff addiu r2,r2,0x7fff r2 + 7FFF (makes Random * MOD positive) 0018ef08: 000213c3 sra r2,r2,0x0f Random * MOD / 8000h 0018ef0c: 0051102a slt r2,r2,r17 r2 = 1 IF Random < chance 0018ef10: 38420001 xori r2,r2,0x0001 r2 = 0 IF Random < chance 0018ef14: 8fbf0018 lw r31,0x0018(r29) 0018ef18: 8fb10014 lw r17,0x0014(r29) 0018ef1c: 8fb00010 lw r16,0x0010(r29) 0018ef20: 27bd0020 addiu r29,r29,0x0020 0018ef24: 03e00008 jr r31 0018ef28: 00000000 nop AI Skill Set Usability?: 0019a2f0: 27bdffc0 addiu r29,r29,0xffc0 0019a2f4: afb3002c sw r19,0x002c(r29) 0019a2f8: 00809821 addu r19,r4,r0 0019a2fc: afb10024 sw r17,0x0024(r29) 0019a300: 001310c0 sll r2,r19,0x03 0019a304: 00531023 subu r2,r2,r19 0019a308: 00021180 sll r2,r2,0x06 0019a30c: 3c038019 lui r3,0x8019 0019a310: 246308cc addiu r3,r3,0x08cc Unit Data 0019a314: afb20028 sw r18,0x0028(r29) 0019a318: 00439021 addu r18,r2,r3 0019a31c: afb50034 sw r21,0x0034(r29) 0019a320: 3c15801a lui r21,0x801a 0019a324: 26b5f3c4 addiu r21,r21,0xf3c4 0019a328: afbf003c sw r31,0x003c(r29) 0019a32c: afb60038 sw r22,0x0038(r29) 0019a330: afb40030 sw r20,0x0030(r29) 0019a334: afb00020 sw r16,0x0020(r29) 0019a338: 92420012 lbu r2,0x0012(r18) 0019a33c: 3c01801a lui r1,0x801a 0019a340: 00330821 addu r1,r1,r19 0019a344: 90340d50 lbu r20,0x0d50(r1) 0019a348: 2c4200b0 sltiu r2,r2,0x00b0 0019a34c: 10400047 beq r2,r0,0x0019a46c Branch if Monster Skill set? 0019a350: 00008821 addu r17,r0,r0 R17 = 0 0019a354: 00141100 sll r2,r20,0x04 0019a358: 00541021 addu r2,r2,r20 0019a35c: 000210c0 sll r2,r2,0x03 0019a360: 00551021 addu r2,r2,r21 0019a364: 34160001 ori r22,r0,0x0001 0019a368: 00131a80 sll r3,r19,0x0a 0019a36c: a0560ef2 sb r22,0x0ef2(r2) 0019a370: a4430ef0 sh r3,0x0ef0(r2) 0019a374: 001410c0 sll r2,r20,0x03 0019a378: 24421778 addiu r2,r2,0x1778 0019a37c: 00558021 addu r16,r2,r21 0019a380: ae000000 sw r0,0x0000(r16) 0019a384: 92020001 lbu r2,0x0001(r16) 0019a388: 92030003 lbu r3,0x0003(r16) 0019a38c: ae000004 sw r0,0x0004(r16) 0019a390: 34420080 ori r2,r2,0x0080 0019a394: a2020001 sb r2,0x0001(r16) 0019a398: 92020002 lbu r2,0x0002(r16) 0019a39c: 34630001 ori r3,r3,0x0001 0019a3a0: a2030003 sb r3,0x0003(r16) 0019a3a4: 34420002 ori r2,r2,0x0002 0019a3a8: a2020002 sb r2,0x0002(r16) 0019a3ac: afa00010 sw r0,0x0010(r29) 0019a3b0: 92420006 lbu r2,0x0006(r18) Load Gender ? 0019a3b4: 00000000 nop 0019a3b8: 30420020 andi r2,r2,0x0020 0019a3bc: 14400008 bne r2,r0,0x0019a3e0 Branch if not a monster ? 0019a3c0: 02002021 addu r4,r16,r0 0019a3c4: 9245001d lbu r5,0x001d(r18) Load Right Hand Weapon 0019a3c8: 0c06694b jal 0x0019a52c 0019a3cc: 27a60010 addiu r6,r29,0x0010 0019a3d0: 02002021 addu r4,r16,r0 0019a3d4: 9245001f lbu r5,0x001f(r18) Load Left Hand Weapon 0019a3d8: 0c06694b jal 0x0019a52c 0019a3dc: 27a60010 addiu r6,r29,0x0010 0019a3e0: 8fa30010 lw r3,0x0010(r29) 0019a3e4: 34020001 ori r2,r0,0x0001 0019a3e8: 10620010 beq r3,r2,0x0019a42c 0019a3ec: 28620002 slti r2,r3,0x0002 0019a3f0: 10400005 beq r2,r0,0x0019a408 0019a3f4: 00000000 nop 0019a3f8: 1060000b beq r3,r0,0x0019a428 0019a3fc: 00000000 nop 0019a400: 0806691b j 0x0019a46c 0019a404: 26310001 addiu r17,r17,0x0001 0019a408: 34020002 ori r2,r0,0x0002 0019a40c: 1062000c beq r3,r2,0x0019a440 0019a410: 00000000 nop 0019a414: 34020004 ori r2,r0,0x0004 0019a418: 1062000d beq r3,r2,0x0019a450 0019a41c: 00000000 nop 0019a420: 0806691b j 0x0019a46c 0019a424: 26310001 addiu r17,r17,0x0001 0019a428: a2160000 sb r22,0x0000(r16) 0019a42c: 92020001 lbu r2,0x0001(r16) 0019a430: 00000000 nop 0019a434: 34420002 ori r2,r2,0x0002 0019a438: 0806691a j 0x0019a468 0019a43c: a2020001 sb r2,0x0001(r16) 0019a440: 92020001 lbu r2,0x0001(r16) 0019a444: 92030002 lbu r3,0x0002(r16) 0019a448: 08066917 j 0x0019a45c 0019a44c: 34420002 ori r2,r2,0x0002 0019a450: 92020001 lbu r2,0x0001(r16) 0019a454: 92030002 lbu r3,0x0002(r16) 0019a458: 34420001 ori r2,r2,0x0001 0019a45c: 34630020 ori r3,r3,0x0020 0019a460: a2020001 sb r2,0x0001(r16) 0019a464: a2030002 sb r3,0x0002(r16) 0019a468: 26310001 addiu r17,r17,0x0001 0019a46c: 02602021 addu r4,r19,r0 0019a470: 92450012 lbu r5,0x0012(r18) 0019a474: 0c06697e jal 0x0019a5f8 0019a478: 02203021 addu r6,r17,r0 0019a47c: 92430012 lbu r3,0x0012(r18) Load Primary Skill Set 0019a480: 00000000 nop 0019a484: 2c6300b0 sltiu r3,r3,0x00b0 0019a488: 10600006 beq r3,r0,0x0019a4a4 Branch if a Monster Skill set 0019a48c: 00408821 addu r17,r2,r0 0019a490: 02602021 addu r4,r19,r0 0019a494: 92450013 lbu r5,0x0013(r18) Load Secondary Skill Set 0019a498: 0c06697e jal 0x0019a5f8 0019a49c: 02203021 addu r6,r17,r0 0019a4a0: 00408821 addu r17,r2,r0 0019a4a4: 00112080 sll r4,r17,0x02 0019a4a8: 26310001 addiu r17,r17,0x0001 0019a4ac: 00141100 sll r2,r20,0x04 0019a4b0: 00541021 addu r2,r2,r20 0019a4b4: 000228c0 sll r5,r2,0x03 0019a4b8: 00851821 addu r3,r4,r5 0019a4bc: 02a31821 addu r3,r21,r3 0019a4c0: 340200a9 ori r2,r0,0x00a9 0019a4c4: a0620ef2 sb r2,0x0ef2(r3) 0019a4c8: 00131280 sll r2,r19,0x0a 0019a4cc: 2442016f addiu r2,r2,0x016f 0019a4d0: a4620ef0 sh r2,0x0ef0(r3) 0019a4d4: 00b51021 addu r2,r5,r21 0019a4d8: 00822021 addu r4,r4,r2 0019a4dc: 34020084 ori r2,r0,0x0084 0019a4e0: a0820ef3 sb r2,0x0ef3(r4) 0019a4e4: 2a220022 slti r2,r17,0x0022 0019a4e8: 10400005 beq r2,r0,0x0019a500 0019a4ec: 00111080 sll r2,r17,0x02 0019a4f0: 00451021 addu r2,r2,r5 0019a4f4: 02a21021 addu r2,r21,r2 0019a4f8: 340300ff ori r3,r0,0x00ff 0019a4fc: a0430ef2 sb r3,0x0ef2(r2) 0019a500: 8fbf003c lw r31,0x003c(r29) 0019a504: 8fb60038 lw r22,0x0038(r29) 0019a508: 8fb50034 lw r21,0x0034(r29) 0019a50c: 8fb40030 lw r20,0x0030(r29) 0019a510: 8fb3002c lw r19,0x002c(r29) 0019a514: 8fb20028 lw r18,0x0028(r29) 0019a518: 8fb10024 lw r17,0x0024(r29) 0019a51c: 8fb00020 lw r16,0x0020(r29) 0019a520: 27bd0040 addiu r29,r29,0x0040 0019a524: 03e00008 jr r31 0019a528: 00000000 nop