Difference between revisions of "Evasion Changes due to Statuses"
Jump to navigation
Jump to search
(Created page with " Evasion Changes due to Statuses 001853f4: 3c058019 lui r5,0x8019 001853f8: 8ca52d98 lw r5,0x2d98(r5) Load Target's Data Pointer 001853fc: 27bdffe8 addiu r29,r29,0xffe8 0...") |
m |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | Evasion | + | No Parameters - Returns Nothing |
− | 001853f4: 3c058019 lui r5,0x8019 | + | |
− | 001853f8: 8ca52d98 lw r5,0x2d98(r5) | + | Nullify Ability Evasion byte (0x801938de to 0x801938e1) if Target has '''Don't Act - Sleep - Stop - Confuse - Charging - Performing''' |
− | 001853fc: 27bdffe8 addiu r29,r29, | + | Halve Ability base Hit (0x801938dc) If Target is '''Defending''' |
− | 00185400: afbf0010 sw r31,0x0010(r29) | + | ---------------------------------------------------------------------------------------------------------------------------------- |
− | 00185404: 90a2005c lbu r2,0x005c(r5) | + | 001853f4: 3c058019 lui r5,0x8019 | |
− | 00185408: 90a3005b lbu r3,0x005b(r5) | + | 001853f8: 8ca52d98 lw r5,0x2d98(r5) |{{f/adr|<nowiki>r5 = Target data pointer</nowiki>}} {{f/adr|Load Target's Data Pointer}} |
− | 0018540c: 30420014 andi r2,r2,0x0014 | + | 001853fc: 27bdffe8 addiu r29,r29,-0x0018 | |
− | 00185410: 0002102b sltu r2,r0,r2 | + | 00185400: afbf0010 sw r31,0x0010(r29) | |
− | 00185414: 30630002 andi r3,r3,0x0002 | + | 00185404: 90a2005c lbu r2,0x005c(r5) |{{f/load|<nowiki>r2 = Target 5th set of Statuses byte</nowiki>}} |
− | 00185418: 10600002 beq r3,r0,0x00185424 | + | 00185408: 90a3005b lbu r3,0x005b(r5) |{{f/load|<nowiki>r3 = Target 4th set of Statuses byte</nowiki>}} |
− | 0018541c: 00402021 addu r4,r2,r0 | + | 0018540c: 30420014 andi r2,r2,0x0014 |{{f/std|r2 <> 0x00 If Target has Don't Act or Sleep}} |
− | 00185420: 34040001 ori r4,r0,0x0001 | + | 00185410: 0002102b sltu r2,r0,r2 |r2 = 0x01 If Target has '''Don't Act or Sleep''' |
− | 00185424: 90a20059 lbu r2,0x0059(r5) | + | 00185414: 30630002 andi r3,r3,0x0002 |{{f/std|<nowiki>r3 = 0x02 if Target has Stop</nowiki>}} |
− | 00185428: 00000000 nop | + | 00185418: 10600002 beq r3,r0,0x00185424 {{f/Cond|If Target has Stop}} |
− | 0018542c: 30420010 andi r2,r2,0x0010 | + | 0018541c: 00402021 addu r4,r2,r0 |{{f/std|<nowiki>r4 = 0x01 if Target has Don't Act or Sleep</nowiki>}} |
− | 00185430: 10400002 beq r2,r0,0x0018543c | + | 00185420: 34040001 ori r4,r0,0x0001 |{{f/std|<nowiki>r4 = 0x01</nowiki>}} |
− | 00185434: 00000000 nop | + | 00185424: 90a20059 lbu r2,0x0059(r5) |{{f/load|<nowiki>r2 = Target 2nd set of Statuses byte</nowiki>}} {{f/load|Load Target's 2nd set of statuses}} |
− | 00185438: 34040001 ori r4,r0,0x0001 | + | 00185428: 00000000 nop | |
− | 0018543c: 90a20058 lbu r2,0x0058(r5) | + | 0018542c: 30420010 andi r2,r2,0x0010 |{{f/std|<nowiki>r2 = 0x10 if Target is Confuse</nowiki>}} |
− | 00185440: 00000000 nop | + | 00185430: 10400002 beq r2,r0,0x0018543c {{f/Cond|If Target is Confuse}} |
− | 00185444: 30420009 andi r2,r2, | + | 00185434: 00000000 nop | |
− | 00185448: 10400003 beq r2,r0,0x00185458 | + | 00185438: 34040001 ori r4,r0,0x0001 |{{f/std|<nowiki>r4 = 0x01</nowiki>}} |
− | 0018544c: 308200ff andi r2,r4,0x00ff | + | 0018543c: 90a20058 lbu r2,0x0058(r5) |{{f/load|<nowiki>r2 = Target 1st set of Statuses byte</nowiki>}} |
− | 00185450: 34040001 ori r4,r0,0x0001 | + | 00185440: 00000000 nop | |
− | 00185454: 308200ff andi r2,r4,0x00ff | + | 00185444: 30420009 andi r2,r2,0x0009 |{{f/std|r2 <> 0x00 if Target is Performing or Charging}} |
− | 00185458: 10400005 beq r2,r0,0x00185470 | + | 00185448: 10400003 beq r2,r0,0x00185458 {{f/Cond|If Target is Performing / Charging}} |
− | 0018545c: 00000000 nop | + | 0018544c: 308200ff andi r2,r4,0x00ff |{{f/std|<nowiki>r2 = 0x01 If Target has at least one of the statuses tested above</nowiki>}} |
− | 00185460: 3c048019 lui r4,0x8019 | + | 00185450: 34040001 ori r4,r0,0x0001 |{{f/std|<nowiki>r4 = 0x01</nowiki>}} |
− | 00185464: 248438de addiu r4,r4,0x38de | + | 00185454: 308200ff andi r2,r4,0x00ff |{{f/std|<nowiki>r2 = 0x01</nowiki>}} |
− | 00185468: 0c017991 jal 0x0005e644 | + | 00185458: 10400005 beq r2,r0,0x00185470 {{f/Cond|If Target has at least one of the statuses checked}} |
− | 0018546c: 34050004 ori r5,r0,0x0004 | + | 0018545c: 00000000 nop |{{f/std|}} |
− | 00185470: 3c028019 lui r2,0x8019 | + | 00185460: 3c048019 lui r4,0x8019 |{{f/std|}} |
− | 00185474: 8c422d98 lw r2,0x2d98(r2) | + | 00185464: 248438de addiu r4,r4,0x38de |{{f/adr|<nowiki>r4 = 0x801938de (Current Ability Accessory Evade pointer)</nowiki>}} |
− | 00185478: 00000000 nop | + | 00185468: 0c017991 jal 0x0005e644 |{{f/jal|Data Nullifying|Data Nullifying}} Nullify all Current Ability Evasion byte (0x801938de to 0x801938e1) |
− | 0018547c: 90420058 lbu r2,0x0058(r2) | + | 0018546c: 34050004 ori r5,r0,0x0004 |{{f/std|<nowiki>r5 = 0x04 (number of byte to nullify)</nowiki>}} |
− | 00185480: 00000000 nop | + | 00185470: 3c028019 lui r2,0x8019 |{{f/std|}} |
− | 00185484: 30420002 andi r2,r2,0x0002 | + | 00185474: 8c422d98 lw r2,0x2d98(r2) |{{f/adr|<nowiki>r2 = Target data pointer</nowiki>}} |
− | 00185488: 10400007 beq r2,r0,0x001854a8 | + | 00185478: 00000000 nop | |
− | 0018548c: 00000000 nop | + | 0018547c: 90420058 lbu r2,0x0058(r2) |{{f/load|<nowiki>r2 = Target 1st set of statuses byte</nowiki>}} |
− | 00185490: 3c038019 lui r3,0x8019 | + | 00185480: 00000000 nop | |
− | 00185494: 246338dc addiu r3,r3,0x38dc | + | 00185484: 30420002 andi r2,r2,0x0002 |{{f/std|<nowiki>r2 = 0x02 if Target is defending</nowiki>}} |
− | 00185498: 90620000 lbu r2,0x0000(r3) | + | 00185488: 10400007 beq r2,r0,0x001854a8 {{f/Cond|If Target is defending}} |
− | 0018549c: 00000000 nop | + | 0018548c: 00000000 nop |{{f/std|}} |
− | 001854a0: 00021042 srl r2,r2,0x01 | + | 00185490: 3c038019 lui r3,0x8019 |{{f/std|}} |
− | 001854a4: a0620000 sb r2,0x0000(r3) | + | 00185494: 246338dc addiu r3,r3,0x38dc |{{f/adr|<nowiki>r3 = 0x801938dc (Ability base hit pointer)</nowiki>}} |
− | 001854a8: 8fbf0010 lw r31,0x0010(r29) | + | 00185498: 90620000 lbu r2,0x0000(r3) |{{f/load|<nowiki>r2 = Current Ability base hit</nowiki>}} |
− | 001854ac: 27bd0018 addiu r29,r29,0x0018 | + | 0018549c: 00000000 nop | |
− | 001854b0: 03e00008 jr r31 | + | 001854a0: 00021042 srl r2,r2,0x01 |{{f/std|<nowiki>r2 = Base Hit / 2</nowiki>}} |
− | 001854b4: 00000000 nop | + | 001854a4: a0620000 sb r2,0x0000(r3) |{{f/store|Store Halved Current Ability Base Hit}} |
+ | 001854a8: 8fbf0010 lw r31,0x0010(r29) '''END''' | ||
+ | 001854ac: 27bd0018 addiu r29,r29,0x0018 | ||
+ | 001854b0: 03e00008 jr r31 | ||
+ | 001854b4: 00000000 nop | ||
+ | |||
+ | === Return Locations === | ||
+ | '''Battle.bin''' | ||
+ | 00188540: [[Physical Evade Calculation]] | ||
+ | 00188598: [[Physical Evade Calculation(Charge)]] | ||
+ | 001885e0: [[Magical Evade Calculation]] |
Latest revision as of 20:33, 22 March 2022
No Parameters - Returns Nothing Nullify Ability Evasion byte (0x801938de to 0x801938e1) if Target has Don't Act - Sleep - Stop - Confuse - Charging - Performing Halve Ability base Hit (0x801938dc) If Target is Defending ---------------------------------------------------------------------------------------------------------------------------------- 001853f4: 3c058019 lui r5,0x8019 | 001853f8: 8ca52d98 lw r5,0x2d98(r5) |r5 = Target data pointer Load Target's Data Pointer 001853fc: 27bdffe8 addiu r29,r29,-0x0018 | 00185400: afbf0010 sw r31,0x0010(r29) | 00185404: 90a2005c lbu r2,0x005c(r5) |r2 = Target 5th set of Statuses byte 00185408: 90a3005b lbu r3,0x005b(r5) |r3 = Target 4th set of Statuses byte 0018540c: 30420014 andi r2,r2,0x0014 |r2 <> 0x00 If Target has Don't Act or Sleep 00185410: 0002102b sltu r2,r0,r2 |r2 = 0x01 If Target has Don't Act or Sleep 00185414: 30630002 andi r3,r3,0x0002 |r3 = 0x02 if Target has Stop 00185418: 10600002 beq r3,r0,0x00185424 #If Target has Stop 0018541c: 00402021 addu r4,r2,r0 |r4 = 0x01 if Target has Don't Act or Sleep 00185420: 34040001 ori r4,r0,0x0001 |r4 = 0x01 00185424: 90a20059 lbu r2,0x0059(r5) |r2 = Target 2nd set of Statuses byte Load Target's 2nd set of statuses 00185428: 00000000 nop | 0018542c: 30420010 andi r2,r2,0x0010 |r2 = 0x10 if Target is Confuse 00185430: 10400002 beq r2,r0,0x0018543c #If Target is Confuse 00185434: 00000000 nop | 00185438: 34040001 ori r4,r0,0x0001 |r4 = 0x01 0018543c: 90a20058 lbu r2,0x0058(r5) |r2 = Target 1st set of Statuses byte 00185440: 00000000 nop | 00185444: 30420009 andi r2,r2,0x0009 |r2 <> 0x00 if Target is Performing or Charging 00185448: 10400003 beq r2,r0,0x00185458 #If Target is Performing / Charging 0018544c: 308200ff andi r2,r4,0x00ff |r2 = 0x01 If Target has at least one of the statuses tested above 00185450: 34040001 ori r4,r0,0x0001 |r4 = 0x01 00185454: 308200ff andi r2,r4,0x00ff |r2 = 0x01 00185458: 10400005 beq r2,r0,0x00185470 #If Target has at least one of the statuses checked 0018545c: 00000000 nop | 00185460: 3c048019 lui r4,0x8019 | 00185464: 248438de addiu r4,r4,0x38de |r4 = 0x801938de (Current Ability Accessory Evade pointer) 00185468: 0c017991 jal 0x0005e644 |-->Data Nullifying Nullify all Current Ability Evasion byte (0x801938de to 0x801938e1) 0018546c: 34050004 ori r5,r0,0x0004 |r5 = 0x04 (number of byte to nullify) 00185470: 3c028019 lui r2,0x8019 | 00185474: 8c422d98 lw r2,0x2d98(r2) |r2 = Target data pointer 00185478: 00000000 nop | 0018547c: 90420058 lbu r2,0x0058(r2) |r2 = Target 1st set of statuses byte 00185480: 00000000 nop | 00185484: 30420002 andi r2,r2,0x0002 |r2 = 0x02 if Target is defending 00185488: 10400007 beq r2,r0,0x001854a8 #If Target is defending 0018548c: 00000000 nop | 00185490: 3c038019 lui r3,0x8019 | 00185494: 246338dc addiu r3,r3,0x38dc |r3 = 0x801938dc (Ability base hit pointer) 00185498: 90620000 lbu r2,0x0000(r3) |r2 = Current Ability base hit 0018549c: 00000000 nop | 001854a0: 00021042 srl r2,r2,0x01 |r2 = Base Hit / 2 001854a4: a0620000 sb r2,0x0000(r3) |Store Halved Current Ability Base Hit 001854a8: 8fbf0010 lw r31,0x0010(r29) END 001854ac: 27bd0018 addiu r29,r29,0x0018 001854b0: 03e00008 jr r31 001854b4: 00000000 nop
Return Locations
Battle.bin 00188540: Physical Evade Calculation 00188598: Physical Evade Calculation(Charge) 001885e0: Magical Evade Calculation