Calculate Accuracy for Magical Spells
Jump to navigation
Jump to search
Calculate Accuracy for Magical Spells (No elemental boost) No Parameters Returns r2 = 0x00 if Attack hits / Else 0x01 Set Ability XA and YA, modify XA with Support/Status/Compatibility Set HP damage as XA+YA, modify HP damage with Faith and use it as Hit% ---------------------------------------------------------------------------------- 001889cc: 27bdffe8 addiu r29,r29,-0x0018 001889d0: afbf0010 sw r31,0x0010(r29) | 001889d4: 0c061760 jal 0x00185d80 |-->Store MA and X Set Ability XA = Attacker's MA and YA = used Ability X 001889d8: 00000000 nop | 001889dc: 0c0621d1 jal 0x00188744 |-->Magical Support/Status/Compat Modify Ability XA (Support Abilities, Status, Compatibility) 001889e0: 00000000 nop | 001889e4: 0c061967 jal 0x0018659c |-->Set XA + YA for Status Formulas (Stupid section) XA+YA becomes TCA HP damage (YA is processed via compatibility) 001889e8: 00000000 nop | 001889ec: 0c061c54 jal 0x00187150 |-->Faith Calculation HP damage becomes Base HP damage * Target faith/100 * Attacker faith/100 001889f0: 00000000 nop | 001889f4: 0c061d44 jal 0x00187510 |-->Uses_HP_damage_as_Action_hit% HP damage becomes Hit% - Roll Hit% vs random (0 to 100), Set Action hit flag to miss if it fails 001889f8: 00000000 nop | 001889fc: 3c028019 lui r2,0x8019 | 00188a00: 8c422d90 lw r2,0x2d90(r2) |r2 = Target Current action (TCA) data pointer 00188a04: 00000000 nop | 00188a08: 90420000 lbu r2,0x0000(r2) |r2 = TCA hit flag 00188a0c: 00000000 nop | 00188a10: 2c420001 sltiu r2,r2,0x0001 |r2 = 0x01 if Attack miss / Else 0x00 00188a14: 8fbf0010 lw r31,0x0010(r29) | 00188a18: 27bd0018 addiu r29,r29,0x0018 00188a1c: 03e00008 jr r31 00188a20: 00000000 nop
Return locations
Battle.bin 001890a4: Formula 0F - AbsMP (Y)% Hit F(MA+X)% 001890fc: Formula 10 - AbsHP (Y)% Hit F(MA+X)% 001891cc: Formula 15 - Set CT00 Hit F(MA+X)% 00189224: Formula 16 - DmgMP (TarCurMP) Hit F(MA+X)% 0018927c: Formula 17 - Dmg (TarCurHP-1) Hit F(MA+X)%