Difference between revisions of "Talk Skill"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Adds labels to make page easier to navigate (does not solve poor readability of jr r2 locations))
Line 5: Line 5:
 
  00186c0c: 27bdffe8 addiu r29,r29,0xffe8
 
  00186c0c: 27bdffe8 addiu r29,r29,0xffe8
 
  00186c10: 2443ff8b addiu r3,r2,0xff8b
 
  00186c10: 2443ff8b addiu r3,r2,0xff8b
  00186c14: 2c620007 sltiu r2,r3,0x0007 set if non-status inflicting ability
+
  00186c14: 2c620007 sltiu r2,r3,0x0007 set if non-status inflicting talk-skill (except death sentence)
 
  00186c18: 1040002d beq r2,r0,0x00186cd0 branch if not
 
  00186c18: 1040002d beq r2,r0,0x00186cd0 branch if not
 
  00186c1c: afbf0010 sw r31,0x0010(r29)
 
  00186c1c: afbf0010 sw r31,0x0010(r29)
Line 13: Line 13:
 
  00186c2c: 8c22427c lw r2,0x427c(r1) load ability return address
 
  00186c2c: 8c22427c lw r2,0x427c(r1) load ability return address
 
  00186c30: 00000000 nop
 
  00186c30: 00000000 nop
  00186c34: 00400008 jr r2 Jumps to below locations depending on ability
+
  00186c34: 00400008 jr r2 Jumps to below listed locations depending on ability (-0x80000000)
 +
0x80186c4c persuade
 +
0x80186c60 praise
 +
0x80186c7c threaten
 +
0x80186c98 preach
 +
0x80186cb4 solution
 +
0x80186cd0 death sentence
 +
0x80186c3c negotiate
 
  00186c38: 00000000 nop
 
  00186c38: 00000000 nop
0017427c: 80186c4c lb r24,0x6c4c(r0) persuade
 
00174280: 80186c60 lb r24,0x6c60(r0) praise
 
00174284: 80186c7c lb r24,0x6c7c(r0) threaten
 
00174288: 80186c98 lb r24,0x6c98(r0) preach
 
0017428c: 80186cb4 lb r24,0x6cb4(r0) solution
 
00174290: 80186cd0 lb r24,0x6cd0(r0) death sentence
 
00174294: 80186c3c lb r24,0x6c3c(r0) negotiate
 
 
  00186c3c: 0c0619d1 jal 0x00186744 steal gil routine (negotiate)
 
  00186c3c: 0c0619d1 jal 0x00186744 steal gil routine (negotiate)
 
  00186c40: 00000000 nop
 
  00186c40: 00000000 nop
  00186c44: 08061b3c j 0x00186cf0 Jumps to end
+
  00186c44: 08061b3c j 0x00186cf0 Jumps to pseudo-status set
 
  00186c48: 00000000 nop
 
  00186c48: 00000000 nop
 
  00186c4c: 3c038019 lui r3,0x8019
 
  00186c4c: 3c038019 lui r3,0x8019
 
  00186c50: 8c632d90 lw r3,0x2d90(r3) Loads Target Current Action Data Pointer (persuade)
 
  00186c50: 8c632d90 lw r3,0x2d90(r3) Loads Target Current Action Data Pointer (persuade)
 
  00186c54: 3402007f ori r2,r0,0x007f sets r2 to 0x7f (CT0)
 
  00186c54: 3402007f ori r2,r0,0x007f sets r2 to 0x7f (CT0)
  00186c58: 08061b38 j 0x00186ce0 Jumps to end
+
  00186c58: 08061b38 j 0x00186ce0 Jumps to pseudo-status set
 
  00186c5c: a0620013 sb r2,0x0013(r3) Saves set CT00 to target data
 
  00186c5c: a0620013 sb r2,0x0013(r3) Saves set CT00 to target data
 
  00186c60: 3c028019 lui r2,0x8019
 
  00186c60: 3c028019 lui r2,0x8019
Line 36: Line 36:
 
  00186c6c: 8c632d90 lw r3,0x2d90(r3) Loads target current action data pointer
 
  00186c6c: 8c632d90 lw r3,0x2d90(r3) Loads target current action data pointer
 
  00186c70: 34420080 ori r2,r2,0x0080 Sets bonus flag
 
  00186c70: 34420080 ori r2,r2,0x0080 Sets bonus flag
  00186c74: 08061b38 j 0x00186ce0 Jumps to end
+
  00186c74: 08061b38 j 0x00186ce0 Jumps to Pseudo-status set
 
  00186c78: a0620016 sb r2,0x0016(r3) Saves positive Brave increase
 
  00186c78: a0620016 sb r2,0x0016(r3) Saves positive Brave increase
 
  00186c7c: 3c028019 lui r2,0x8019
 
  00186c7c: 3c028019 lui r2,0x8019
Line 43: Line 43:
 
  00186c88: 8c632d90 lw r3,0x2d90(r3) Loads Target Current Action Data Pointer
 
  00186c88: 8c632d90 lw r3,0x2d90(r3) Loads Target Current Action Data Pointer
 
  00186c8c: 3042007f andi r2,r2,0x007f Removes bonus flag (if set)
 
  00186c8c: 3042007f andi r2,r2,0x007f Removes bonus flag (if set)
  00186c90: 08061b38 j 0x00186ce0 Jumps to end
+
  00186c90: 08061b38 j 0x00186ce0 Jumps to Pseudo-status set
 
  00186c94: a0620016 sb r2,0x0016(r3) Saves negative Brave change
 
  00186c94: a0620016 sb r2,0x0016(r3) Saves negative Brave change
 
  00186c98: 3c028019 lui r2,0x8019
 
  00186c98: 3c028019 lui r2,0x8019
Line 50: Line 50:
 
  00186ca4: 8c632d90 lw r3,0x2d90(r3) Loads Target Current Action Data Pointer
 
  00186ca4: 8c632d90 lw r3,0x2d90(r3) Loads Target Current Action Data Pointer
 
  00186ca8: 34420080 ori r2,r2,0x0080 Sets bonus flag
 
  00186ca8: 34420080 ori r2,r2,0x0080 Sets bonus flag
  00186cac: 08061b38 j 0x00186ce0 Jumps to end
+
  00186cac: 08061b38 j 0x00186ce0 Jumps to pseudo-status set
 
  00186cb0: a0620017 sb r2,0x0017(r3) Saves positive Faith increase
 
  00186cb0: a0620017 sb r2,0x0017(r3) Saves positive Faith increase
 
  00186cb4: 3c028019 lui r2,0x8019
 
  00186cb4: 3c028019 lui r2,0x8019
Line 57: Line 57:
 
  00186cc0: 8c632d90 lw r3,0x2d90(r3) Loads Target Current Action Data Pointer
 
  00186cc0: 8c632d90 lw r3,0x2d90(r3) Loads Target Current Action Data Pointer
 
  00186cc4: 3042007f andi r2,r2,0x007f Removes bonus flag (if set)
 
  00186cc4: 3042007f andi r2,r2,0x007f Removes bonus flag (if set)
  00186cc8: 08061b38 j 0x00186ce0 Jumps to end
+
  00186cc8: 08061b38 j 0x00186ce0 Jumps to pseudo-status set
 
  00186ccc: a0620017 sb r2,0x0017(r3) Saves negative Faith change
 
  00186ccc: a0620017 sb r2,0x0017(r3) Saves negative Faith change
 
  00186cd0: 0c061fc9 jal 0x00187f24 Jumps to Apply Status (invite, Death sentence, Mimic Daravon)
 
  00186cd0: 0c061fc9 jal 0x00187f24 Jumps to Apply Status (invite, Death sentence, Mimic Daravon)
 
  00186cd4: 00000000 nop
 
  00186cd4: 00000000 nop
  00186cd8: 08061b3c j 0x00186cf0 Jumps to end
+
  00186cd8: 08061b3c j 0x00186cf0 Jumps to end
 
  00186cdc: 00000000 nop
 
  00186cdc: 00000000 nop
 
  00186ce0: 3c038019 lui r3,0x8019
 
  00186ce0: 3c038019 lui r3,0x8019

Revision as of 06:07, 29 October 2020

00186c04: 3c028019 lui r2,0x8019
00186c08: 944238d6 lhu r2,0x38d6(r2)		load used ability ID
00186c0c: 27bdffe8 addiu r29,r29,0xffe8
00186c10: 2443ff8b addiu r3,r2,0xff8b		
00186c14: 2c620007 sltiu r2,r3,0x0007		set if non-status inflicting talk-skill (except death sentence)
00186c18: 1040002d beq r2,r0,0x00186cd0		branch if not
00186c1c: afbf0010 sw r31,0x0010(r29)
00186c20: 00031080 sll r2,r3,0x02		prepares Ability load address
00186c24: 3c018017 lui r1,0x8017
00186c28: 00220821 addu r1,r1,r2		variable load address
00186c2c: 8c22427c lw r2,0x427c(r1)		load ability return address
00186c30: 00000000 nop
00186c34: 00400008 jr r2			Jumps to below listed locations depending on ability (-0x80000000)
						0x80186c4c 	persuade
						0x80186c60 	praise
						0x80186c7c 	threaten
						0x80186c98 	preach
						0x80186cb4 	solution
						0x80186cd0 	death sentence
						0x80186c3c 	negotiate
00186c38: 00000000 nop
00186c3c: 0c0619d1 jal 0x00186744		steal gil routine (negotiate)
00186c40: 00000000 nop
00186c44: 08061b3c j 0x00186cf0			Jumps to pseudo-status set
00186c48: 00000000 nop
00186c4c: 3c038019 lui r3,0x8019
00186c50: 8c632d90 lw r3,0x2d90(r3)		Loads Target Current Action Data Pointer (persuade)
00186c54: 3402007f ori r2,r0,0x007f		sets r2 to 0x7f (CT0)
00186c58: 08061b38 j 0x00186ce0			Jumps to pseudo-status set
00186c5c: a0620013 sb r2,0x0013(r3)		Saves set CT00 to target data
00186c60: 3c028019 lui r2,0x8019
00186c64: 904238fa lbu r2,0x38fa(r2)		Loads ability Y (Praise)
00186c68: 3c038019 lui r3,0x8019
00186c6c: 8c632d90 lw r3,0x2d90(r3)		Loads target current action data pointer
00186c70: 34420080 ori r2,r2,0x0080		Sets bonus flag
00186c74: 08061b38 j 0x00186ce0			Jumps to Pseudo-status set
00186c78: a0620016 sb r2,0x0016(r3)		Saves positive Brave increase
00186c7c: 3c028019 lui r2,0x8019
00186c80: 904238fa lbu r2,0x38fa(r2)		Loads Ability Y (Threaten)
00186c84: 3c038019 lui r3,0x8019
00186c88: 8c632d90 lw r3,0x2d90(r3)		Loads Target Current Action Data Pointer
00186c8c: 3042007f andi r2,r2,0x007f		Removes bonus flag (if set)
00186c90: 08061b38 j 0x00186ce0			Jumps to Pseudo-status set
00186c94: a0620016 sb r2,0x0016(r3)		Saves negative Brave change
00186c98: 3c028019 lui r2,0x8019
00186c9c: 904238fa lbu r2,0x38fa(r2)		Loads Ability Y (Preach)
00186ca0: 3c038019 lui r3,0x8019
00186ca4: 8c632d90 lw r3,0x2d90(r3)		Loads Target Current Action Data Pointer
00186ca8: 34420080 ori r2,r2,0x0080		Sets bonus flag
00186cac: 08061b38 j 0x00186ce0			Jumps to pseudo-status set
00186cb0: a0620017 sb r2,0x0017(r3)		Saves positive Faith increase
00186cb4: 3c028019 lui r2,0x8019
00186cb8: 904238fa lbu r2,0x38fa(r2)		Loads Ability Y (Solution)
00186cbc: 3c038019 lui r3,0x8019
00186cc0: 8c632d90 lw r3,0x2d90(r3)		Loads Target Current Action Data Pointer
00186cc4: 3042007f andi r2,r2,0x007f		Removes bonus flag (if set)
00186cc8: 08061b38 j 0x00186ce0			Jumps to pseudo-status set
00186ccc: a0620017 sb r2,0x0017(r3)		Saves negative Faith change
00186cd0: 0c061fc9 jal 0x00187f24		Jumps to Apply Status (invite, Death sentence, Mimic Daravon)
00186cd4: 00000000 nop
00186cd8: 08061b3c j 0x00186cf0			Jumps to end
00186cdc: 00000000 nop
00186ce0: 3c038019 lui r3,0x8019
00186ce4: 8c632d90 lw r3,0x2d90(r3)		Load Target Current Action Data Pointer
00186ce8: 34020001 ori r2,r0,0x0001		Sets r2 to 0x1 (Pseudo-Status change)
00186cec: a0620025 sb r2,0x0025(r3)		Saves attack type as Pseudo-Status change
00186cf0: 8fbf0010 lw r31,0x0010(r29)
00186cf4: 27bd0018 addiu r29,r29,0x0018
00186cf8: 03e00008 jr r31
00186cfc: 00000000 nop