FF7/Battle/Damage Calculation
In Attacks, Items, and Weapons there exists a single byte that tells the Battle Engine how to calculate damage. This is a list of known values with their effects on Base Damage. They are classified into Physical, Magical, and Exact. Physical and Magical will rely on the caster's Strength and Magic stat respectively to calculate base damage. After modification it is multiplied by a random variance ([224..255]/256 or something similar). These will also trigger Physical and Magical Counter Attacks respectively. Exact is just what it sounds like. They do not have a base damage calculation. The entire damage comes from exactly the formula shown and is applied to the target without defense calculation (though element is still taken into account). These will not trigger Physical or Magical Counter Attacks, but will trigger General Counter Attacks such as Adamantoise's Light Shell.
For more details, these can be considered Base Damage Modifiers as described in Terence Fergusson's Battle Mechanics FAQ.
Akari has begun a more detailed damage formula page.
Value | Type | Formula [Damage = ] |
---|---|---|
0x00 | None | No Damage Calculation |
0x08 | Exact | Target's HP & MP * (Strength / 32)% |
0x11 | Physical | Base * (Strength / 16) |
0x22 | Magical | Base * (Strength / 16) |
0x23 | Exact | Target's HP * (Strength / 32) |
0x24 | Exact | Target's MHP * (Strength / 32) |
0x25 | Magical | Base + (Strength * 22) |
0x26 | Exact | Strength * 20 |
0x37 | Physical | Strength * 16; Ignores Barrier; No Base |
0x47 | Magical | Strength * 16; Ignores MBarrier; No Base |
0x50 | None | No Damage Calculation |
0x60 | Exact | User's HP |
0x61 | Exact | User's MHP - HP |
0x68 | Exact | Random x 100 (Dice) |
0x69 | Exact | Number of Escapes |
0x6A | Exact | Reduces Target's HP to 1 |
0x6B | Exact | Number of hours on game clock * 100 + number of minutes in game clock |
0x6C | Exact | 10 x Target's Kills |
0x6D | Exact | 1111 x Target's Materia |
0x83 | Exact | Target's HP * (Strength / 32) if level MOD Attack% = 0 |
0x96 | Exact | User's HP/2 |
0xA0 | Physical | Base * (Strength / 16) * [User's Status Effects See NOTE] |
0xA1 | Physical | Base * (Strength / 16) * (3 if user is Near-Death, 1 otherwise) |
0xA2 | Physical | Base * (Strength / 16) * (1 + Dead Allies) |
0xA3 | Physical | Base * (Strength / 16) * (Target's Level / 16) |
0xA4 | Physical | Base * (Strength / 16) * (1 + [48 * HP/MHP]) / 16 |
0xA5 | Physical | Base * (Strength / 16) * (1 + [48 * MP/MMP]) / 16 |
0xA6 | Physical | Base * (Strength / 16) * (1 + [AP on Weapon / 10000]) / 16 |
0xA7 | Physical | Base * (Strength / 16) * (10 + [Character's Kills / 128]) / 16 |
0xA8 | Physical | Base * (Strength / 16) * (1 + [Limit Level * Limit Units / 16]) / 16 |
0xB1 | Physical | Base * Strength / 16; No random criticals |
NOTE: For A0h base strength, the multiplier is increased by one for the following effects on the user:
- Near-death
- Poison
- Sadness
- Silence
- Slow
- Darkness
and increased by two for the following:
- D.Sentence
- Slow-numb
As an exception to the above rules, 37h and 47h are used as damage calculations for items. Damage to target is calculated normally while ignoring M/Barrier.