Talk Skill
Jump to navigation
Jump to search
No Parameters - Returns Nothing Hard coded : effect depends on ability ID If The Ability is not a talk skill one, it will jump to the Apply status routine (default section) Otherwise it will handle the stats/gil modification (See #Hard coded mechanics) -------------------------------------------------------------------------------------------- 00186c04: 3c028019 lui r2,0x8019 | 00186c08: 944238d6 lhu r2,0x38d6(r2) |r2 = Current Ability used Ability ID 00186c0c: 27bdffe8 addiu r29,r29,-0x0018 | 00186c10: 2443ff8b addiu r3,r2,-0x0075 |r2 = Used Ability ID - 0x75 00186c14: 2c620007 sltiu r2,r3,0x0007 |r2 = 0x01 if Used Ability is between Persuade (0x75) and Negotiate (0x7b) 00186c18: 1040002d beq r2,r0,0x00186cd0 #If used Ability is a Talk Skill Ability with Stat alteration Death sentence Adress send to Status Ability section 00186c1c: afbf0010 sw r31,0x0010(r29) | 00186c20: 00031080 sll r2,r3,0x02 |r2 = Used Ability Offset (Jump Address Table) - (Ability ID - 0x75)*4 00186c24: 3c018017 lui r1,0x8017 | 00186c28: 00220821 addu r1,r1,r2 |r1 = 0x80170000 + Used Ability Offset 00186c2c: 8c22427c lw r2,0x427c(r1) |r2 = Jump Adress for used Ability 00186c30: 00000000 nop | 00186c34: 00400008 jr r2 |Jump to dedicated section Talk_Skill_Ability_Table 00186c38: 00000000 nop | --- Negotiate --- 00186c3c: 0c0619d1 jal 0x00186744 |-->Steal Gil Calculate Stolen Gil (Speed * Lv), update Target and Attacker Action data (gain or loss) 00186c40: 00000000 nop | 00186c44: 08061b3c j 0x00186cf0 >>Jumps to Set Attack type as pseudo status 00186c48: 00000000 nop | --- Persuade --- 00186c4c: 3c038019 lui r3,0x8019 | 00186c50: 8c632d90 lw r3,0x2d90(r3) |r2 = Target Current Action (TCA) data pointer 00186c54: 3402007f ori r2,r0,0x007f |r2 = 0x7f (CT0) 00186c58: 08061b38 j 0x00186ce0 >>Jumps to Set Attack type as pseudo status 00186c5c: a0620013 sb r2,0x0013(r3) |Set TCA CT change to - 127 (CT00) --- Praise --- 00186c60: 3c028019 lui r2,0x8019 | 00186c64: 904238fa lbu r2,0x38fa(r2) |r2 = Current Ability used Ability Y 00186c68: 3c038019 lui r3,0x8019 | 00186c6c: 8c632d90 lw r3,0x2d90(r3) |r3 = TCA data pointer 00186c70: 34420080 ori r2,r2,0x0080 |r2 = Y with bonus flag 00186c74: 08061b38 j 0x00186ce0 >>Jumps to Set Attack type as pseudo status 00186c78: a0620016 sb r2,0x0016(r3) |Set TCA Brave change to +Y --- Threaten --- 00186c7c: 3c028019 lui r2,0x8019 | 00186c80: 904238fa lbu r2,0x38fa(r2) |r2 = Current Ability used Ability Y 00186c84: 3c038019 lui r3,0x8019 | 00186c88: 8c632d90 lw r3,0x2d90(r3) |r3 = TCA data pointer 00186c8c: 3042007f andi r2,r2,0x007f |r2 = Y without bonus flag 00186c90: 08061b38 j 0x00186ce0 >>Jumps to Set Attack type as pseudo status 00186c94: a0620016 sb r2,0x0016(r3) |Set TCA Brave change to -Y --- Preach --- 00186c98: 3c028019 lui r2,0x8019 | 00186c9c: 904238fa lbu r2,0x38fa(r2) |r2 = Current Ability used Ability Y 00186ca0: 3c038019 lui r3,0x8019 | 00186ca4: 8c632d90 lw r3,0x2d90(r3) |r3 = TCA data pointer 00186ca8: 34420080 ori r2,r2,0x0080 |r2 = Y with bonus flag 00186cac: 08061b38 j 0x00186ce0 >>Jumps to Set Attack type as pseudo status 00186cb0: a0620017 sb r2,0x0017(r3) |Set TCA Faith change to +Y --- Solution --- 00186cb4: 3c028019 lui r2,0x8019 | 00186cb8: 904238fa lbu r2,0x38fa(r2) |r2 = Current Ability used Ability Y 00186cbc: 3c038019 lui r3,0x8019 | 00186cc0: 8c632d90 lw r3,0x2d90(r3) |r3 = TCA data pointer 00186cc4: 3042007f andi r2,r2,0x007f |r2 = Y without bonus flag 00186cc8: 08061b38 j 0x00186ce0 >>Jumps to Set Attack type as pseudo status 00186ccc: a0620017 sb r2,0x0017(r3) |Set TCA Faith change to -Y --- Invitation, Death Sentence, Insult, Mimic Daravon --- 00186cd0: 0c061fc9 jal 0x00187f24 |-->Apply status (to action) 00186cd4: 00000000 nop | 00186cd8: 08061b3c j 0x00186cf0 >>Jumps to END 00186cdc: 00000000 nop | Set Attack Type to pseudo status section 00186ce0: 3c038019 lui r3,0x8019 | 00186ce4: 8c632d90 lw r3,0x2d90(r3) |r3 = TCA data pointer 00186ce8: 34020001 ori r2,r0,0x0001 |r2 = 0x01 00186cec: a0620025 sb r2,0x0025(r3) |Set TCA Attack type to pseudo status (disables other flags) 00186cf0: 8fbf0010 lw r31,0x0010(r29) END 00186cf4: 27bd0018 addiu r29,r29,0x0018| 00186cf8: 03e00008 jr r31 00186cfc: 00000000 nop
Hard coded mechanics
Jump Address is determined by Ability ID - see Talk_Skill_Ability_Table 0x75 Persuade CT = 0x00 0x76 Praise Brave Bonus 0x77 Threaten Brave Malus 0x78 Preach Faith Bonus 0x79 Solution Faith Malus 0x7a Death sentence Jump to default section - (Apply status) 0x7b Negotiate Steal Gil
Return locations
Battle.bin 00189a80: 2A_Hit_(MA+X)%_//_AffectBraveOrFaith(Y)