=============================================================================== A key component of the damage formula is known as "M". Many steps go into it, but later ones of note are: - Shortly before final damage is computed, if M is 0, it's given a floor of 1 to avoid zero damage. - M can be doubled after finalizing damage if the target's "Can't Evade" parameter matches the attack type, in a little-known bonus. - Damage or healing is recalculated in some cases: the attack is "Magic Sword Drain", it's "Magic Sword Psych", or there's a nonzero Variable $63 without "Healing?" (elemental absorb, it seems) happening. (Note that Psych has its own formula, so it won't make use of the new M as the others do.) However, there are problems involving the doubling and the flooring, depending on which function an attack type calls to finalize damage: Function A (C2/8811) will multiply M by 2 if "Target Can't Evade vs. Attack type". However, because M isn't copied after it's floored from 0 to 1, the doubling bonus does nothing in this one case -- a small mistake. Function B (C2/8A05) MIGHT multiply M by 2 if "Target Can't Evade vs. Attack type". Note that there's no damage recalculation for Magic Sword Drain or Psych, which apparently don't use this function. The routine does re-enforce minimum M before doubling, but because an instruction branches too far, M is doubled ONLY IF it was found to be 0 and floored at 1. Thus, the "Target Can't Evade vs. Attack type" bonus is being applied VERY narrowly. A big mistake. This patch fixes Function A by re-enforcing Minimum M before applying the bonus, and Function B by shortening the branch so the bonus can apply in more than just one case.