Difference between revisions of "MP Switch, Distribute, and Damage Split usability"
Jump to navigation
Jump to search
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
− | MP | + | If Formula is not 0x07, then if unit can react, test for MP switch then Distribute and Then Damage split |
− | 0018cc34: 27bdffe8 addiu r29,r29, | + | Jump to ends after finding and setting one of thoses reaction. |
− | 0018cc38: 3c038019 lui r3,0x8019 | + | ----------------------------------------------------------------------------------------------------------- |
− | 0018cc3c: 906338e5 lbu r3,0x38e5(r3) | + | 0018cc34: 27bdffe8 addiu r29,r29,-0x0018 | |
− | 0018cc40: 34020007 ori r2,r0,0x0007 | + | 0018cc38: 3c038019 lui r3,0x8019 | |
− | 0018cc44: 10620020 beq r3,r2,0x0018ccc8 | + | 0018cc3c: 906338e5 lbu r3,0x38e5(r3) |{{f/load|<nowiki>r3 = Ability formula</nowiki>}} |
− | 0018cc48: afbf0010 sw r31,0x0010(r29) | + | 0018cc40: 34020007 ori r2,r0,0x0007 |{{f/std|<nowiki>r2 = 0x07 (Weapon heal formula)</nowiki>}} |
− | 0018cc4c: 3c048019 lui r4,0x8019 | + | 0018cc44: 10620020 beq r3,r2,0x0018ccc8 {{f/Cond|If Current Ability Formula <> 0x07}} /Else branch to {{f/loc|END}} |
− | 0018cc50: 8c842d98 lw r4,0x2d98(r4) | + | 0018cc48: afbf0010 sw r31,0x0010(r29) |{{f/std|}} |
− | 0018cc54: 0c063248 jal 0x0018c920 | + | 0018cc4c: 3c048019 lui r4,0x8019 |{{f/std|}} |
− | 0018cc58: 00000000 nop | + | 0018cc50: 8c842d98 lw r4,0x2d98(r4) |{{f/adr|<nowiki>r4 = Targeted Unit data pointer</nowiki>}} |
− | 0018cc5c: 1440001a bne r2,r0,0x0018ccc8 | + | 0018cc54: 0c063248 jal 0x0018c920 |{{f/jal|Check if unit can react 1|Check if unit can react 1}} |
− | 0018cc60: 00000000 nop | + | 0018cc58: 00000000 nop | |
− | 0018cc64: 3c048019 lui r4,0x8019 | + | 0018cc5c: 1440001a bne r2,r0,0x0018ccc8 {{f/Cond|If Unit can react}} /Else branch to {{f/loc|END}} |
− | 0018cc68: 8c842d98 lw r4,0x2d98(r4) | + | 0018cc60: 00000000 nop |{{f/std|}} |
− | 0018cc6c: 00000000 nop | + | 0018cc64: 3c048019 lui r4,0x8019 |{{f/std|}} |
− | 0018cc70: 9083008d lbu r3,0x008d(r4) | + | 0018cc68: 8c842d98 lw r4,0x2d98(r4) |{{f/adr|<nowiki>r4 = Targeted Unit data pointer</nowiki>}} |
− | 0018cc74: 00000000 nop | + | 0018cc6c: 00000000 nop | |
− | 0018cc78: 30620001 andi r2,r3,0x0001 | + | 0018cc70: 9083008d lbu r3,0x008d(r4) |{{f/load|<nowiki>r3 = Targeted Unit 3rd reaction set</nowiki>}} |
− | 0018cc7c: 10400005 beq r2,r0,0x0018cc94 | + | 0018cc74: 00000000 nop | |
− | 0018cc80: 30620002 andi r2,r3,0x0002 | + | 0018cc78: 30620001 andi r2,r3,0x0001 |{{f/std|<nowiki>r2 = 0x01 If Targeted Unit uses MP switch</nowiki>}} |
− | 0018cc84: 0c06346e jal 0x0018d1b8 | + | 0018cc7c: 10400005 beq r2,r0,0x0018cc94 {{f/Cond|If Targeted Unit uses MP switch}} |
− | 0018cc88: 00000000 nop | + | 0018cc80: 30620002 andi r2,r3,0x0002 |{{f/std|<nowiki>r2 = 0x02 if Targeted Unit uses Distribute</nowiki>}} |
− | 0018cc8c: 08063332 j 0x0018ccc8 | + | 0018cc84: 0c06346e jal 0x0018d1b8 |{{f/jal|MP Switch Usability|MP Switch Usability}} |
− | 0018cc90: 00000000 nop | + | 0018cc88: 00000000 nop | |
− | 0018cc94: 10400005 beq r2,r0,0x0018ccac | + | 0018cc8c: 08063332 j 0x0018ccc8 {{f/jump|jump to }} {{f/loc|END}} |
− | 0018cc98: 00000000 nop | + | 0018cc90: 00000000 nop | |
− | 0018cc9c: 0c0634aa jal 0x0018d2a8 | + | 0018cc94: 10400005 beq r2,r0,0x0018ccac {{f/Cond|Else If Targeted Unit uses Distribute}} |
− | 0018cca0: 00000000 nop | + | 0018cc98: 00000000 nop |{{f/std|}} |
− | 0018cca4: 08063332 j 0x0018ccc8 | + | 0018cc9c: 0c0634aa jal 0x0018d2a8 |{{f/jal|Distribute Usability|Distribute Usability}} |
− | 0018cca8: 00000000 nop | + | 0018cca0: 00000000 nop | |
− | 0018ccac: 9082008e lbu r2,0x008e(r4) | + | 0018cca4: 08063332 j 0x0018ccc8 {{f/jump|jump to }} {{f/loc|END}} |
− | 0018ccb0: 00000000 nop | + | 0018cca8: 00000000 nop | |
− | 0018ccb4: 30420080 andi r2,r2,0x0080 | + | 0018ccac: 9082008e lbu r2,0x008e(r4) |{{f/load|<nowiki>r2 = Targeted Unit 4th reaction set</nowiki>}} |
− | 0018ccb8: 10400003 beq r2,r0,0x0018ccc8 | + | 0018ccb0: 00000000 nop | |
− | 0018ccbc: 00000000 nop | + | 0018ccb4: 30420080 andi r2,r2,0x0080 |{{f/std|<nowiki>r2 = 0x80 if Targeted Unit uses Damage split</nowiki>}} |
− | 0018ccc0: 0c0634c6 jal 0x0018d318 | + | 0018ccb8: 10400003 beq r2,r0,0x0018ccc8 {{f/Cond|If Targeted Unit uses Damage splite}} |
− | 0018ccc4: 00000000 nop | + | 0018ccbc: 00000000 nop |{{f/std|}} |
− | 0018ccc8: 8fbf0010 lw r31,0x0010(r29) | + | 0018ccc0: 0c0634c6 jal 0x0018d318 |{{f/jal|Damage Split Usability|Damage Split Usability}} |
− | 0018cccc: 27bd0018 addiu r29,r29,0x0018 | + | 0018ccc4: 00000000 nop | |
− | 0018ccd0: 03e00008 jr r31 | + | 0018ccc8: 8fbf0010 lw r31,0x0010(r29) '''END''' |
− | 0018ccd4: 00000000 nop | + | 0018cccc: 27bd0018 addiu r29,r29,0x0018 |
+ | 0018ccd0: 03e00008 jr r31 | ||
+ | 0018ccd4: 00000000 nop | ||
+ | === Return location === | ||
+ | '''Battle.bin''' | ||
+ | 0018bfd4: [[Attack_Finalisation_%26_Reaction_Flagging]] |
Latest revision as of 13:01, 25 November 2022
If Formula is not 0x07, then if unit can react, test for MP switch then Distribute and Then Damage split Jump to ends after finding and setting one of thoses reaction. ----------------------------------------------------------------------------------------------------------- 0018cc34: 27bdffe8 addiu r29,r29,-0x0018 | 0018cc38: 3c038019 lui r3,0x8019 | 0018cc3c: 906338e5 lbu r3,0x38e5(r3) |r3 = Ability formula 0018cc40: 34020007 ori r2,r0,0x0007 |r2 = 0x07 (Weapon heal formula) 0018cc44: 10620020 beq r3,r2,0x0018ccc8 #If Current Ability Formula <> 0x07 /Else branch to END 0018cc48: afbf0010 sw r31,0x0010(r29) | 0018cc4c: 3c048019 lui r4,0x8019 | 0018cc50: 8c842d98 lw r4,0x2d98(r4) |r4 = Targeted Unit data pointer 0018cc54: 0c063248 jal 0x0018c920 |-->Check if unit can react 1 0018cc58: 00000000 nop | 0018cc5c: 1440001a bne r2,r0,0x0018ccc8 #If Unit can react /Else branch to END 0018cc60: 00000000 nop | 0018cc64: 3c048019 lui r4,0x8019 | 0018cc68: 8c842d98 lw r4,0x2d98(r4) |r4 = Targeted Unit data pointer 0018cc6c: 00000000 nop | 0018cc70: 9083008d lbu r3,0x008d(r4) |r3 = Targeted Unit 3rd reaction set 0018cc74: 00000000 nop | 0018cc78: 30620001 andi r2,r3,0x0001 |r2 = 0x01 If Targeted Unit uses MP switch 0018cc7c: 10400005 beq r2,r0,0x0018cc94 #If Targeted Unit uses MP switch 0018cc80: 30620002 andi r2,r3,0x0002 |r2 = 0x02 if Targeted Unit uses Distribute 0018cc84: 0c06346e jal 0x0018d1b8 |-->MP Switch Usability 0018cc88: 00000000 nop | 0018cc8c: 08063332 j 0x0018ccc8 >>jump to END 0018cc90: 00000000 nop | 0018cc94: 10400005 beq r2,r0,0x0018ccac #Else If Targeted Unit uses Distribute 0018cc98: 00000000 nop | 0018cc9c: 0c0634aa jal 0x0018d2a8 |-->Distribute Usability 0018cca0: 00000000 nop | 0018cca4: 08063332 j 0x0018ccc8 >>jump to END 0018cca8: 00000000 nop | 0018ccac: 9082008e lbu r2,0x008e(r4) |r2 = Targeted Unit 4th reaction set 0018ccb0: 00000000 nop | 0018ccb4: 30420080 andi r2,r2,0x0080 |r2 = 0x80 if Targeted Unit uses Damage split 0018ccb8: 10400003 beq r2,r0,0x0018ccc8 #If Targeted Unit uses Damage splite 0018ccbc: 00000000 nop | 0018ccc0: 0c0634c6 jal 0x0018d318 |-->Damage Split Usability 0018ccc4: 00000000 nop | 0018ccc8: 8fbf0010 lw r31,0x0010(r29) END 0018cccc: 27bd0018 addiu r29,r29,0x0018 0018ccd0: 03e00008 jr r31 0018ccd4: 00000000 nop
Return location
Battle.bin 0018bfd4: Attack_Finalisation_&_Reaction_Flagging