Difference between revisions of "Attack UP/Two Hands/Martial Arts"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(I didn't like how unsure it was and it was killing me. makes it easier to modify if I know what I'm doing)
Line 3: Line 3:
 
  00186058: 906338ff lbu r3,0x38ff(r3) Load Weapon Characteristics
 
  00186058: 906338ff lbu r3,0x38ff(r3) Load Weapon Characteristics
 
  0018605c: 00000000 nop
 
  0018605c: 00000000 nop
  00186060: 30620001 andi r2,r3,0x0001
+
  00186060: 30620001 andi r2,r3,0x0001 Checks for forced two hands
 
  00186064: 1440000e bne r2,r0,0x001860a0 Branch if weapon has Forced Two  hands
 
  00186064: 1440000e bne r2,r0,0x001860a0 Branch if weapon has Forced Two  hands
  00186068: 30620004 andi r2,r3,0x0004
+
  00186068: 30620004 andi r2,r3,0x0004 Checks for cannot two hands
 
  0018606c: 1040000c beq r2,r0,0x001860a0 Branch if weapon cannot use Two  hands
 
  0018606c: 1040000c beq r2,r0,0x001860a0 Branch if weapon cannot use Two  hands
 
  00186070: 00000000 nop
 
  00186070: 00000000 nop
 
  00186074: 3c028019 lui r2,0x8019
 
  00186074: 3c028019 lui r2,0x8019
  00186078: 904238d9 lbu r2,0x38d9(r2) Load Two-Hands flag?
+
  00186078: 904238d9 lbu r2,0x38d9(r2) Load double-check Two-Hands flag
 
  0018607c: 00000000 nop
 
  0018607c: 00000000 nop
  00186080: 10400007 beq r2,r0,0x001860a0 Branch if Weapon is not using Two  Hands?
+
  00186080: 10400007 beq r2,r0,0x001860a0 Branch if two weapons equipped, and 2hands cannot be applied
 
  00186084: 00000000 nop
 
  00186084: 00000000 nop
 
  00186088: 3c028019 lui r2,0x8019
 
  00186088: 3c028019 lui r2,0x8019
  0018608c: 844238ce lh r2,0x38ce(r2) Load XA
+
  0018608c: 844238ce lh r2,0x38ce(r2) Load XA - inflicted damage
 
  00186090: 00000000 nop
 
  00186090: 00000000 nop
 
  00186094: 00021040 sll r2,r2,0x01 XA * 2
 
  00186094: 00021040 sll r2,r2,0x01 XA * 2
 
  00186098: 3c018019 lui r1,0x8019
 
  00186098: 3c018019 lui r1,0x8019
  0018609c: a42238ce sh r2,0x38ce(r1) Store new XA
+
  0018609c: a42238ce sh r2,0x38ce(r1) Store new Damage
 
  001860a0: 3c028019 lui r2,0x8019
 
  001860a0: 3c028019 lui r2,0x8019
 
  001860a4: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer
 
  001860a4: 8c422d94 lw r2,0x2d94(r2) Load Attacker's Data Pointer
Line 24: Line 24:
 
  001860ac: 90420090 lbu r2,0x0090(r2) Load Attacker's 2nd set of Support
 
  001860ac: 90420090 lbu r2,0x0090(r2) Load Attacker's 2nd set of Support
 
  001860b0: 00000000 nop
 
  001860b0: 00000000 nop
  001860b4: 30420010 andi r2,r2,0x001 0
+
  001860b4: 30420010 andi r2,r2,0x0010 checks for Attack UP
 
  001860b8: 1040000b beq r2,r0,0x001860e8 Branch if Attacker doesn't have  Attack UP
 
  001860b8: 1040000b beq r2,r0,0x001860e8 Branch if Attacker doesn't have  Attack UP
  001860bc: 3c025555 lui r2,0x5555
+
  001860bc: 3c025555 lui r2,0x5555 preperation for fractional multiplication
 
  001860c0: 3c048019 lui r4,0x8019
 
  001860c0: 3c048019 lui r4,0x8019
 
  001860c4: 248438ce addiu r4,r4,0x38ce
 
  001860c4: 248438ce addiu r4,r4,0x38ce
  001860c8: 84830000 lh r3,0x0000(r4) Load XA
+
  001860c8: 84830000 lh r3,0x0000(r4) Load XA - inflicted damage
  001860cc: 34425556 ori r2,r2,0x5556
+
  001860cc: 34425556 ori r2,r2,0x5556 r2 = 1/3
  001860d0: 00031880 sll r3,r3,0x02 XA * 4
+
  001860d0: 00031880 sll r3,r3,0x02 Dmg * 4
  001860d4: 00620018 mult r3,r2 XA * 4 * 0.33333333
+
  001860d4: 00620018 mult r3,r2 Dmg * 4 * 0.33333333
  001860d8: 00031fc3 sra r3,r3,0x1f
+
  001860d8: 00031fc3 sra r3,r3,0x1f
  001860dc: 00001010 mfhi r2 r2 = XA * 4 * 0.33333333 (XA + XA  / 3)
+
  001860dc: 00001010 mfhi r2
  001860e0: 00431023 subu r2,r2,r3
+
  001860e0: 00431023 subu r2,r2,r3 r2 = dmg * 4/3
  001860e4: a4820000 sh r2,0x0000(r4) Store new XA
+
  001860e4: a4820000 sh r2,0x0000(r4) Store new Dmg
 
  001860e8: 3c028019 lui r2,0x8019
 
  001860e8: 3c028019 lui r2,0x8019
 
  001860ec: 904238d8 lbu r2,0x38d8(r2) Load used Weapon ID
 
  001860ec: 904238d8 lbu r2,0x38d8(r2) Load used Weapon ID
Line 51: Line 51:
 
  00186118: 00000000 nop
 
  00186118: 00000000 nop
 
  0018611c: 3c028019 lui r2,0x8019
 
  0018611c: 3c028019 lui r2,0x8019
  00186120: 844238ce lh r2,0x38ce(r2) Load XA
+
  00186120: 844238ce lh r2,0x38ce(r2) Load XA - inflicted damage
 
  00186124: 00000000 nop
 
  00186124: 00000000 nop
 
  00186128: 00021840 sll r3,r2,0x01 XA * 2
 
  00186128: 00021840 sll r3,r2,0x01 XA * 2
Line 59: Line 59:
 
  00186138: 00031843 sra r3,r3,0x01 XA * 3 / 2
 
  00186138: 00031843 sra r3,r3,0x01 XA * 3 / 2
 
  0018613c: 3c018019 lui r1,0x8019
 
  0018613c: 3c018019 lui r1,0x8019
  00186140: a42338ce sh r3,0x38ce(r1) Store new XA
+
  00186140: a42338ce sh r3,0x38ce(r1) Store new damage
 
  00186144: 03e00008 jr r31
 
  00186144: 03e00008 jr r31
 
  00186148: 00000000 nop
 
  00186148: 00000000 nop

Revision as of 02:24, 27 January 2021

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			Checks for forced two hands
00186064: 1440000e bne r2,r0,0x001860a0		Branch if weapon has Forced Two  hands
00186068: 30620004 andi r2,r3,0x0004			Checks for cannot two hands
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 double-check Two-Hands flag
0018607c: 00000000 nop
00186080: 10400007 beq r2,r0,0x001860a0		Branch if two weapons equipped, and 2hands cannot be applied
00186084: 00000000 nop
00186088: 3c028019 lui r2,0x8019
0018608c: 844238ce lh r2,0x38ce(r2)		Load XA - inflicted damage
00186090: 00000000 nop
00186094: 00021040 sll r2,r2,0x01		XA * 2
00186098: 3c018019 lui r1,0x8019
0018609c: a42238ce sh r2,0x38ce(r1)		Store new Damage
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		checks for Attack UP
001860b8: 1040000b beq r2,r0,0x001860e8		Branch if Attacker doesn't have  Attack UP
001860bc: 3c025555 lui r2,0x5555		preperation for fractional multiplication
001860c0: 3c048019 lui r4,0x8019
001860c4: 248438ce addiu r4,r4,0x38ce
001860c8: 84830000 lh r3,0x0000(r4)		Load XA - inflicted damage
001860cc: 34425556 ori r2,r2,0x5556		r2 = 1/3
001860d0: 00031880 sll r3,r3,0x02		Dmg * 4
001860d4: 00620018 mult r3,r2 			Dmg * 4 * 0.33333333
001860d8: 00031fc3 sra r3,r3,0x1f		
001860dc: 00001010 mfhi r2			
001860e0: 00431023 subu r2,r2,r3		r2 = dmg * 4/3
001860e4: a4820000 sh r2,0x0000(r4)		Store new Dmg
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 - inflicted damage
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 damage
00186144: 03e00008 jr r31
00186148: 00000000 nop


Return Locations

  • Battle.bin
00188600: Physical XA Modifying Statuses/Support