Attack UP/Two Hands/Martial Arts
Jump to navigation
Jump to search
No parameters - Returns Nothing Checks if Attacker uses 2-Hands, Attack-Up and/or Martial Arts as Support Ability Modify Ability XA ( 0x801938ce ) if needed. Could be cumulative. - 2 Hands : XA = 200% of base XA - Attack Up : XA = 133% of base XA - Martial Art : XA = 150% of base XA ----------------------------------------------------------------------------------------------------------- 00186054: 3c038019 lui r3,0x8019 | 00186058: 906338ff lbu r3,0x38ff(r3) |r3 = Current Ability used Weapon Characteristics 0x801938ff / 801938ff 0018605c: 00000000 nop | 00186060: 30620001 andi r2,r3,0x0001 |r2 = 0x01 if Used Weapon has forced 2-Hands enable 00186064: 1440000e bne r2,r0,0x001860a0 #If weapon doesn't have Forced Two hands 00186068: 30620004 andi r2,r3,0x0004 |r2 = 0x04 if Used Weapon is Avaible for 2 hands 0018606c: 1040000c beq r2,r0,0x001860a0 #If Weapon Can be hold with two hands 00186070: 00000000 nop | 00186074: 3c028019 lui r2,0x8019 | 00186078: 904238d9 lbu r2,0x38d9(r2) |r2 = Ability [2 Hands] checks 0x801938d9 / 801938d9 0018607c: 00000000 nop | 00186080: 10400007 beq r2,r0,0x001860a0 #If 2 Hands is active 00186084: 00000000 nop | 00186088: 3c028019 lui r2,0x8019 | 0018608c: 844238ce lh r2,0x38ce(r2) |r2 = Ability XA 0x801938ce / 801938ce 00186090: 00000000 nop | 00186094: 00021040 sll r2,r2,0x01 |XA * 2 00186098: 3c018019 lui r1,0x8019 | 0018609c: a42238ce sh r2,0x38ce(r1) |Store XA (200% of original) 001860a0: 3c028019 lui r2,0x8019 | 001860a4: 8c422d94 lw r2,0x2d94(r2) |r2 = Attacker data pointer 001860a8: 00000000 nop | 001860ac: 90420090 lbu r2,0x0090(r2) |r2 = Attacker's 2nd set of support skill 001860b0: 00000000 nop | 001860b4: 30420010 andi r2,r2,0x0010 |r2 = 0x10 if Attacker uses [Attack Up] 001860b8: 1040000b beq r2,r0,0x001860e8 #If Attacker uses [Attack Up] 001860bc: 3c025555 lui r2,0x5555 | 001860c0: 3c048019 lui r4,0x8019 | 001860c4: 248438ce addiu r4,r4,0x38ce |r4 = Ability XA data pointer 001860c8: 84830000 lh r3,0x0000(r4) |r3 = Ability XA 001860cc: 34425556 ori r2,r2,0x5556 |r2 = 0x55555556 (0,33 * 2^32) 001860d0: 00031880 sll r3,r3,0x02 |r3 = XA * 4 001860d4: 00620018 mult r3,r2 |4* XA * 0,33 * 2^32 001860d8: 00031fc3 sra r3,r3,0x1f |r3 = 4* XA higher bit (should be 0x00) 001860dc: 00001010 mfhi r2 |r2 = XA * 4/3 001860e0: 00431023 subu r2,r2,r3 |r2 = XA * 4/3 - 0x00 001860e4: a4820000 sh r2,0x0000(r4) |Store XA (133% of previous value) 001860e8: 3c028019 lui r2,0x8019 | 001860ec: 904238d8 lbu r2,0x38d8(r2) |r2 = Current Ability used Weapon ID 0x801938d8 / 801938d8 001860f0: 00000000 nop | 001860f4: 14400013 bne r2,r0,0x00186144 #If Weapon ID = 0x00 (Fist) 001860f8: 00000000 nop | 001860fc: 3c028019 lui r2,0x8019 | 00186100: 8c422d94 lw r2,0x2d94(r2) |r2 = Attacker data pointer 00186104: 00000000 nop | 00186108: 90420091 lbu r2,0x0091(r2) |r2 = Attacker's 3rd set of Support 0018610c: 00000000 nop | 00186110: 30420020 andi r2,r2,0x0020 |r2 = 0x20 if Attacker uses Martial Arts 00186114: 1040000b beq r2,r0,0x00186144 #If Attacker uses Martial Arts 00186118: 00000000 nop | 0018611c: 3c028019 lui r2,0x8019 | 00186120: 844238ce lh r2,0x38ce(r2) |r2 = Ability 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 |r2 = Higher bit of XA*3 (should be 0x00) 00186134: 00621821 addu r3,r3,r2 |r3 = XA*3 + 0x00 00186138: 00031843 sra r3,r3,0x01 |r3 = Ability XA * 3/2 0018613c: 3c018019 lui r1,0x8019 | 00186140: a42338ce sh r3,0x38ce(r1) |Store XA (150% of previous value) 00186144: 03e00008 jr r31 END 00186148: 00000000 nop
Return Locations
Battle.bin 00188608: Physical XA Modifying Statuses/Support