Difference between revisions of "Formula 32, 33, 34, 35 Attack Up and Martial Arts"
Jump to navigation
Jump to search
m |
|||
Line 1: | Line 1: | ||
− | + | Formula 32, 33, 34, 35 Attack Up and Martial Arts (No Two Hands, also is stupid.) | |
− | 0018614c: 3c028019 lui r2,0x8019 | + | No Parameters - Returns Nothing |
− | 00186150: 8c422d94 lw r2,0x2d94(r2) | + | |
− | 00186154: 00000000 nop | + | Increase XA (+33%) if Attacker uses Attack Up |
− | 00186158: 90420090 lbu r2,0x0090(r2) | + | Increase XA (+50%) if Attacker uses Martial Art |
− | 0018615c: 00000000 nop | + | Note : could be cumulative |
− | 00186160: 30420010 andi r2,r2,0x0010 | + | --------------------------------------------------------------------------------- |
− | 00186164: 1040000b beq r2,r0,0x00186194 | + | 0018614c: 3c028019 lui r2,0x8019 | |
− | 00186168: 3c025555 lui r2,0x5555 | + | 00186150: 8c422d94 lw r2,0x2d94(r2) |{{f/adr|<nowiki>r2 = Attacker data pointer</nowiki>}} |
− | 0018616c: 3c048019 lui r4,0x8019 | + | 00186154: 00000000 nop | |
− | 00186170: 248438ce addiu r4,r4,0x38ce | + | 00186158: 90420090 lbu r2,0x0090(r2) |{{f/load|<nowiki>r2 = Attacker's support abilities (2nd set)</nowiki>}} |
− | 00186174: 84830000 lh r3,0x0000(r4) | + | 0018615c: 00000000 nop | |
− | 00186178: 34425556 ori r2,r2,0x5556 | + | 00186160: 30420010 andi r2,r2,0x0010 |{{f/std|<nowiki>r2 = 0x10 if Attacker uses Attack Up</nowiki>}} |
− | 0018617c: 00031880 sll r3,r3,0x02 | + | 00186164: 1040000b beq r2,r0,0x00186194 {{f/Cond|If Attacker uses Attack Up}} |
− | 00186180: 00620018 mult r3,r2 | + | 00186168: 3c025555 lui r2,0x5555 | |
− | 00186184: 00031fc3 sra r3,r3,0x1f | + | 0018616c: 3c048019 lui r4,0x8019 | |
− | 00186188: 00001010 mfhi r2 | + | 00186170: 248438ce addiu r4,r4,0x38ce |{{f/adr|<nowiki>r4 = Current Ability XA pointer ( 0x801938ce)</nowiki>}} |
− | 0018618c: 00431023 subu r2,r2,r3 | + | 00186174: 84830000 lh r3,0x0000(r4) |{{f/load|<nowiki>r3 = Current Ability XA</nowiki>}} |
− | 00186190: a4820000 sh r2,0x0000(r4) | + | 00186178: 34425556 ori r2,r2,0x5556 |{{f/std|<nowiki>r2 = 0x555555556 (0,33*2^32)</nowiki>}} |
− | 00186194: 3c038019 lui r3,0x8019 | + | 0018617c: 00031880 sll r3,r3,0x02 |{{f/std|XA * 4}} |
− | 00186198: 906338d8 lbu r3,0x38d8(r3) | + | 00186180: 00620018 mult r3,r2 |{{f/std|XA * 4* 0,32*2^32}} |
− | 0018619c: 3c048019 lui r4,0x8019 | + | 00186184: 00031fc3 sra r3,r3,0x1f |{{f/std|<nowiki>r3 = highest bit of r3 (should be 0)</nowiki>}} |
− | 001861a0: 8c842d94 lw r4,0x2d94(r4) | + | 00186188: 00001010 mfhi r2 |{{f/std|<nowiki>r2 = XA * 4/3</nowiki>}} |
− | 001861a4: 00031040 sll r2,r3,0x01 | + | 0018618c: 00431023 subu r2,r2,r3 |{{f/std|rounded down}} |
− | 001861a8: 00431021 addu r2,r2,r3 | + | 00186190: a4820000 sh r2,0x0000(r4) |{{f/store|Store Updated XA (133% of previous XA)}} |
− | 001861ac: 00021080 sll r2,r2,0x02 | + | 00186194: 3c038019 lui r3,0x8019 | |
− | 001861b0: 90830091 lbu r3,0x0091(r4) | + | 00186198: 906338d8 lbu r3,0x38d8(r3) |{{f/load|<nowiki>r3 = Current Ability used Weapon ID</nowiki>}} |
− | 001861b4: 3c018006 lui r1,0x8006 | + | 0018619c: 3c048019 lui r4,0x8019 | |
− | 001861b8: 00220821 addu r1,r1,r2 | + | 001861a0: 8c842d94 lw r4,0x2d94(r4) |{{f/adr|<nowiki>r4 = Attacker data pointer</nowiki>}} |
− | 001861bc: 90222ebd lbu r2,0x2ebd(r1) | + | 001861a4: 00031040 sll r2,r3,0x01 |{{f/std|Weapon ID * 2}} |
− | 001861c0: 30630020 andi r3,r3,0x0020 | + | 001861a8: 00431021 addu r2,r2,r3 |{{f/std|Weapon ID * 3}} |
− | 001861c4: 1060000d beq r3,r0,0x001861fc | + | 001861ac: 00021080 sll r2,r2,0x02 |{{f/std|Weapon ID * 12 (Item data offset)}} |
− | 001861c8: 00000000 nop | + | 001861b0: 90830091 lbu r3,0x0091(r4) |{{f/load|<nowiki>r3 = Attacker's support abilities (3rd set)</nowiki>}} |
− | 001861cc: 1440000b bne r2,r0,0x001861fc | + | 001861b4: 3c018006 lui r1,0x8006 | |
− | 001861d0: 00000000 nop | + | 001861b8: 00220821 addu r1,r1,r2 |{{f/std|80060000 + Weapon offset}} |
− | 001861d4: 3c028019 lui r2,0x8019 | + | 001861bc: 90222ebd lbu r2,0x2ebd(r1) |{{f/load|<nowiki>r2 = used Weapon Type </nowiki>}} {{f/std| 80062eb8 + 0x05 + Item offset}} |
− | 001861d8: 844238ce lh r2,0x38ce(r2) | + | 001861c0: 30630020 andi r3,r3,0x0020 |{{f/std|<nowiki>r3 = 0x20 if Attacker uses Martial Art</nowiki>}} |
− | 001861dc: 00000000 nop | + | 001861c4: 1060000d beq r3,r0,0x001861fc {{f/Cond|If Attacker uses Martial Art}} |
− | 001861e0: 00021840 sll r3,r2,0x01 | + | 001861c8: 00000000 nop | |
− | 001861e4: 00621821 addu r3,r3,r2 | + | 001861cc: 1440000b bne r2,r0,0x001861fc {{f/Cond|If Used weapon type is 0x00 (fist)}} |
− | 001861e8: 000317c2 srl r2,r3,0x1f | + | 001861d0: 00000000 nop | |
− | 001861ec: 00621821 addu r3,r3,r2 | + | 001861d4: 3c028019 lui r2,0x8019 | |
− | 001861f0: 00031843 sra r3,r3,0x01 | + | 001861d8: 844238ce lh r2,0x38ce(r2) |{{f/load|<nowiki>r2 = Ability XA</nowiki>}} |
− | 001861f4: 3c018019 lui r1,0x8019 | + | 001861dc: 00000000 nop | |
− | 001861f8: a42338ce sh r3,0x38ce(r1) | + | 001861e0: 00021840 sll r3,r2,0x01 |{{f/std|XA * 2}} |
− | 001861fc: 03e00008 jr r31 | + | 001861e4: 00621821 addu r3,r3,r2 |{{f/std|XA * 3}} |
+ | 001861e8: 000317c2 srl r2,r3,0x1f |{{f/std|<nowiki>r2 = highest bit of r3 (should be 0)</nowiki>}} | ||
+ | 001861ec: 00621821 addu r3,r3,r2 |{{f/std|rounded up}} | ||
+ | 001861f0: 00031843 sra r3,r3,0x01 |{{f/std|XA *3 / 2}} | ||
+ | 001861f4: 3c018019 lui r1,0x8019 | | ||
+ | 001861f8: a42338ce sh r3,0x38ce(r1) |{{f/store|Store Updated XA (150% of previous XA)}} | ||
+ | 001861fc: 03e00008 jr r31 END | ||
00186200: 00000000 nop | 00186200: 00000000 nop | ||
− | + | === Return Locations === | |
− | == Return Locations == | + | '''Battle.bin''' |
− | + | 00188b24: [[Physical Routine for Hit % abilities]] | |
− | + | 00189898: [[28 StealExp_(Lowest of TarCurExp & SP+Y) Hit_(SP+X)%]] | |
− | + | 00189d00: [[31 Dmg_((PA+Y)/2*PA)]] | |
− | + | 00189d9c: [[32 Dmg_(Rdm(1…X)*(PA*3+Y))]] | |
− | + | 00189e40: [[33 Hit_(PA+X)%]] | |
− | + | 00189eac: [[34 Heal_(PA*Y) HealMP_(PA*Y/2)]] | |
− | + | 00189f20: [[35 Heal_(Y)% Hit_(PA+X)%]] | |
− | + | 00189fac: [[37 Dmg_(Rdm(1…Y)*PA)]] | |
− | |||
− |
Latest revision as of 18:55, 21 April 2022
Formula 32, 33, 34, 35 Attack Up and Martial Arts (No Two Hands, also is stupid.)
No Parameters - Returns Nothing Increase XA (+33%) if Attacker uses Attack Up Increase XA (+50%) if Attacker uses Martial Art Note : could be cumulative --------------------------------------------------------------------------------- 0018614c: 3c028019 lui r2,0x8019 | 00186150: 8c422d94 lw r2,0x2d94(r2) |r2 = Attacker data pointer 00186154: 00000000 nop | 00186158: 90420090 lbu r2,0x0090(r2) |r2 = Attacker's support abilities (2nd set) 0018615c: 00000000 nop | 00186160: 30420010 andi r2,r2,0x0010 |r2 = 0x10 if Attacker uses Attack Up 00186164: 1040000b beq r2,r0,0x00186194 #If Attacker uses Attack Up 00186168: 3c025555 lui r2,0x5555 | 0018616c: 3c048019 lui r4,0x8019 | 00186170: 248438ce addiu r4,r4,0x38ce |r4 = Current Ability XA pointer ( 0x801938ce) 00186174: 84830000 lh r3,0x0000(r4) |r3 = Current Ability XA 00186178: 34425556 ori r2,r2,0x5556 |r2 = 0x555555556 (0,33*2^32) 0018617c: 00031880 sll r3,r3,0x02 |XA * 4 00186180: 00620018 mult r3,r2 |XA * 4* 0,32*2^32 00186184: 00031fc3 sra r3,r3,0x1f |r3 = highest bit of r3 (should be 0) 00186188: 00001010 mfhi r2 |r2 = XA * 4/3 0018618c: 00431023 subu r2,r2,r3 |rounded down 00186190: a4820000 sh r2,0x0000(r4) |Store Updated XA (133% of previous XA) 00186194: 3c038019 lui r3,0x8019 | 00186198: 906338d8 lbu r3,0x38d8(r3) |r3 = Current Ability used Weapon ID 0018619c: 3c048019 lui r4,0x8019 | 001861a0: 8c842d94 lw r4,0x2d94(r4) |r4 = Attacker data pointer 001861a4: 00031040 sll r2,r3,0x01 |Weapon ID * 2 001861a8: 00431021 addu r2,r2,r3 |Weapon ID * 3 001861ac: 00021080 sll r2,r2,0x02 |Weapon ID * 12 (Item data offset) 001861b0: 90830091 lbu r3,0x0091(r4) |r3 = Attacker's support abilities (3rd set) 001861b4: 3c018006 lui r1,0x8006 | 001861b8: 00220821 addu r1,r1,r2 |80060000 + Weapon offset 001861bc: 90222ebd lbu r2,0x2ebd(r1) |r2 = used Weapon Type 80062eb8 + 0x05 + Item offset 001861c0: 30630020 andi r3,r3,0x0020 |r3 = 0x20 if Attacker uses Martial Art 001861c4: 1060000d beq r3,r0,0x001861fc #If Attacker uses Martial Art 001861c8: 00000000 nop | 001861cc: 1440000b bne r2,r0,0x001861fc #If Used weapon type is 0x00 (fist) 001861d0: 00000000 nop | 001861d4: 3c028019 lui r2,0x8019 | 001861d8: 844238ce lh r2,0x38ce(r2) |r2 = Ability XA 001861dc: 00000000 nop | 001861e0: 00021840 sll r3,r2,0x01 |XA * 2 001861e4: 00621821 addu r3,r3,r2 |XA * 3 001861e8: 000317c2 srl r2,r3,0x1f |r2 = highest bit of r3 (should be 0) 001861ec: 00621821 addu r3,r3,r2 |rounded up 001861f0: 00031843 sra r3,r3,0x01 |XA *3 / 2 001861f4: 3c018019 lui r1,0x8019 | 001861f8: a42338ce sh r3,0x38ce(r1) |Store Updated XA (150% of previous XA) 001861fc: 03e00008 jr r31 END 00186200: 00000000 nop
Return Locations
Battle.bin 00188b24: Physical Routine for Hit % abilities 00189898: 28 StealExp_(Lowest of TarCurExp & SP+Y) Hit_(SP+X)% 00189d00: 31 Dmg_((PA+Y)/2*PA) 00189d9c: 32 Dmg_(Rdm(1…X)*(PA*3+Y)) 00189e40: 33 Hit_(PA+X)% 00189eac: 34 Heal_(PA*Y) HealMP_(PA*Y/2) 00189f20: 35 Heal_(Y)% Hit_(PA+X)% 00189fac: 37 Dmg_(Rdm(1…Y)*PA)