Magic Defense Up routine
Jump to navigation
Jump to search
No Parameters - Returns nothing Decrease Ability XA (-33%) if Target uses Magic Defense Up ------------------------------------------------------------------------------------------------- 0018631c: 3c028019 lui r2,0x8019 00186320: 8c422d98 lw r2,0x2d98(r2) |r2 = Target data pointer 00186324: 00000000 nop | 00186328: 90420090 lbu r2,0x0090(r2) |r2 = Target 2nd set of Support abilities 0018632c: 00000000 nop | 00186330: 30420002 andi r2,r2,0x0002 |r2 = 0x02 if Target uses Magic Defense Up 00186334: 1040000b beq r2,r0,0x00186364 #If Target uses Magic Defense Up 00186338: 3c025555 lui r2,0x5555 | 0018633c: 3c048019 lui r4,0x8019 | 00186340: 248438ce addiu r4,r4,0x38ce |r4 = Current Ability XA pointer 00186344: 84830000 lh r3,0x0000(r4) |r3 = Ability XA 00186348: 34425556 ori r2,r2,0x5556 |r2 = 0x55555556 (0,33 * 2^32) 0018634c: 00031840 sll r3,r3,0x01 |XA*2 00186350: 00620018 mult r3,r2 |XA * 2/3 * 2^32 00186354: 00031fc3 sra r3,r3,0x1f |r3 = Highest bit of r3 (should be 0x00) 00186358: 00001010 mfhi r2 |r2 = XA * 2/3 0018635c: 00431023 subu r2,r2,r3 |XA *2/3 eventually down rounded 00186360: a4820000 sh r2,0x0000(r4) |Store new XA (66% of initial XA) 00186364: 03e00008 jr r31 END 00186368: 00000000 nop Warning : this routine don't save r31 (and don't set his stack pointer) do not jal from here without resolving it
Return Locations
Battle.bin 0018875c: Magical Support/Status/Compat 00189010: Formula 0E - Dmg (Y)% Hit F(MA+X)% 100% Status Hide Status