Here's the weapons portion of the item list. Everything appears in the order the game stores them internally. Items are briefly explained as needed. Note that while most weapons are grouped with weapons of the same type, the end of the list has a wide variety of unsorted weapons.
For brevity's sake, on this page I'm shortening magic defense to MDef, evade rate to evade, magic evade rate to MEvd, and magic power to magic.
The basic damage formula for pretty much everything is Damage = (A - D) * M. It's what goes into A, D, and M that makes things interesting.
Since M acts as a damage multiplier, anything that modifies M modifies final damage. Modifiers to A and D have more complicated effects on final damage because A and D are compared to each other on the way to computing final damage.
A hit rate of 100 does not mean the weapon will always hit, just that it will never fail before the evade check. Hit determination typically works by checking against the attack's hit rate, then checking against the target's evade rate.
Throw attack is the value the Ninja's !Throw command and the Blue Magic Goblin Punch use. It's also the value the game lists in the equipment screen, even though the normal attack is almost always what matters. When no throw attack is listed here, it's the same as the normal attack value.
Element up (e.g., "Wind up") means the wielder gains a 50% bonus to A when using magic attacks of that element.
Element attack (e.g., "Wind attack") means that damage inflicted with that weapon is of the element listed. If immune, the target takes no damage. If resistant, A is halved. If the target absorbs the element, D = 0 and the target is healed instead of damaged. If weak to the element, A is doubled and D = 0.
Critical hits double A and set D to zero.
Weapons | |||
---|---|---|---|
Fists | |||
すで | Unarmed | Critical: 8% | Sell value: n/a |
Attack: 3 | Hit Rate: 100 | Other: - | |
Usable Jobs: All | Damage: A = 3 + Random(0, level/4), D = defense, M = 2 With Monk's Martial Arts: Add (level * 2) to A, add (level * strength)/256 to M. With Martial Arts and Kaiser Knuckles equipped: Add another 50 to A. |
||
Characters with both hands empty attack once with each fist. But you should know that already if you've ever used a Monk. |
|||
Daggers | |||
![]() |
![]() |
Critical: 0% | Sell value: 75 |
Attack: 7 | Hit Rate: 100 | Other: Magic Sword OK | |
Usable Jobs: All but Monk and White Mage | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 150 |
Attack: 14 | Hit Rate: 100 | Other: Magic Sword OK | |
Usable Jobs: All but Monk and White Mage | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 225 |
Attack: 23 | Hit Rate: 100 | Other: Magic Sword OK | |
Usable Jobs: All but Monk and White Mage | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 300 |
Attack: 29 | Hit Rate: 100 | Other: Magic Sword OK, agi +1 | |
Usable Jobs: Ninja | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 450 |
Attack: 31 | Hit Rate: 100 | Other: Magic Sword OK, casts Silence (33%), mag +1 | |
Usable Jobs: All but Monk and White Mage | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 1300 |
Attack: 36 | Hit Rate: 100 | Other: Magic Sword OK, 25% chance to parry | |
Usable Jobs: All but Monk and White Mage | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
The parry chance stacks with Sasuke's Katana or the Defender sword if equipped with one of them. Parry doesn't work if the user has Stop, Paralyze, Charm, or Sleep status, or is both the attacker and the target. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 2550 |
Attack: 46 | Hit Rate: 100 | Other: Magic Sword OK, agi +1 | |
Usable Jobs: Ninja | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 1700 |
Attack: 41 | Hit Rate: 100 | Other: Magic Sword OK | |
Usable Jobs: All but Monk and White Mage | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 3400 |
Attack: 56 | Hit Rate: 100 | Other: Magic Sword OK, Wind attack, Wind up | |
Usable Jobs: All but Monk and White Mage | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 10,000 |
Attack: 81 | Hit Rate: 100 | Other: Magic Sword OK, agi +1, casts Death (25%) | |
Usable Jobs: All but Monk and White Mage | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 10,000 |
Attack: 99 | Hit Rate: 100 | Other: Magic Sword OK, agi +1, 25% chance to parry | |
Usable Jobs: Ninja | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
The parry chance stacks with the Main Gauche if equipped with it. Combining with the Defender sword has no additional effect. Parry doesn't work if the user has Stop, Paralyze, Charm, or Sleep status, or is both the attacker and the target. |
|||
Swords | |||
![]() |
![]() |
Critical: 0% | Sell value: 140 |
Attack: 15 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK | |
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 240 |
Attack: 22 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK | |
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 440 |
Attack: 31 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK | |
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 1400 |
Attack: 37 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK, Thunder attack | |
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 2100 |
Attack: 43 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK, casts Old (33%) | |
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 4200 |
Attack: 57 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK | |
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 2800 |
Attack: 49 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK, casts Sleep (50%) | |
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 5500 |
Attack: 99 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK, 25% chance to parry, casts Protect as an item |
|
Usable Jobs: Knight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
The parry chance stacks with the Main Gauche if equipped with it. Combining with Sasuke's Katana has no additional effect. Parry doesn't work if the user has Stop, Paralyze, Charm, or Sleep status, or is both the attacker and the target. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 5 |
Attack: 110 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK, str +5, Holy attack | |
Usable Jobs: Knight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 5 |
Attack: 140 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK | |
Usable Jobs: Knight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
Spears | |||
![]() |
![]() |
Critical: 0% | Sell value: 50 |
Attack: 55 | Hit Rate: 100 | Other: Jump doubles M, str +1 | |
Usable Jobs: Wyrmknight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 50 |
Attack: 25 | Hit Rate: 100 | Other: Jump doubles M, agi +1 | |
Usable Jobs: Wyrmknight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 395 |
Attack: 30 | Hit Rate: 100 | Other: Jump doubles M | |
Usable Jobs: Wyrmknight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 1350 |
Attack: 38 | Hit Rate: 100 | Other: Jump doubles M, Thunder attack | |
Usable Jobs: Wyrmknight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 2700 |
Attack: 44 | Hit Rate: 100 | Other: Jump doubles M, Wind attack | |
Usable Jobs: Wyrmknight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 5100 |
Attack: 62 | Hit Rate: 100 | Other: Jump doubles M | |
Usable Jobs: Wyrmknight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 4050 |
Attack: 54 | Hit Rate: 100 | Other: Jump doubles M | |
Usable Jobs: Wyrmknight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
ツインランサー | Twin Lancer | Critical: 0% | Sell value: 5400 |
Attack: 61 | Hit Rate: 100 | Other: Hits twice | |
Usable Jobs: Thief, Ninja, Mimic | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 5 |
Attack: 109 | Hit Rate: 100 | Other: Jump doubles M, str +3, Holy attack | |
Usable Jobs: Wyrmknight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 15,000 |
Attack: 119 | Hit Rate: 100 | Other: Jump doubles M, strong vs. dragons | |
Usable Jobs: Wyrmknight | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 Against dragons: Automatic critical (A doubled, D = 0). |
||
Axes | |||
![]() |
![]() |
Critical: 0% | Sell value: 325 |
Attack: 23 | Hit Rate: 80 | Other: 2-Hand Grip OK | |
Usable Jobs: Berserker | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 525 |
Attack: 28 | Hit Rate: 80 | Other: 2-Hand Grip OK | |
Usable Jobs: Berserker | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 1600 |
Attack: 33 | Hit Rate: 80 | Other: 2-Hand Grip OK | |
Usable Jobs: Berserker | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 3200 |
Attack: 38 | Hit Rate: 80 | Other: 2-Hand Grip OK | |
Usable Jobs: Berserker | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 4800 |
Attack: 48 | Hit Rate: 80 | Other: 2-Hand Grip OK, casts Poison (67%) | |
Usable Jobs: Berserker | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 6400 |
Attack: 58 | Hit Rate: 80 | Other: 2-Hand Grip OK, ignores row, Earth up, casts Earthquake (25%) | |
Usable Jobs: Berserker | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
Earthquake is an Earth attribute enemy skill that targets all opponents and misses any with Float status. A = Random(155, 174), D = MDef, M = (level * magic)/256 + 4. The Earth up effect will further increase A for Earthquake by 50%. A Berserker with the Earth Hammer will benefit from abilities like !Summon because the magic boost will increase M for Earthquake. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 5 |
Attack: 71 (+10 @ 5MP) | Hit Rate: 90 | Other: 2-Hand Grip OK, mag +3 | |
Usable Jobs: Berserker | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 If user has at least 5 MP: Subtract 5 MP, add 10 to A, and add (level * magic)/128 to M. |
||
Thanks to the bonus damage from MP, a Berserker with the Rune Axe will benefit from abilities like !Summon because the magic boost will increase M and provide more MP to spend. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 5 |
Attack: 81 | Hit Rate: 80 | Other: 2-Hand Grip OK, ignores row | |
Usable Jobs: Berserker | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
Katanas | |||
![]() |
![]() |
Critical: 12% | Sell value: 2900 |
Attack: 42 | Hit Rate: 100 | Other: 2-Hand Grip OK | |
Usable Jobs: Samurai | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 12% | Sell value: 50 |
Attack: 44 | Hit Rate: 100 | Other: 2-Hand Grip OK, Wind up, casts Whirlwind Slash (12%) | |
Usable Jobs: Samurai | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
Whirlwind Slash is Terrain magic. Refer to !Terrain for details A Samurai with the Windslash Blade gets extra benefit from abilities like !Summon since the magic boost increases M for Whirlwind Slash. |
|||
![]() |
![]() |
Critical: 12% | Sell value: 5900 |
Attack: 58 | Hit Rate: 100 | Other: 2-Hand Grip OK | |
Usable Jobs: Samurai | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 12% | Sell value: 4400 |
Attack: 51 | Hit Rate: 100 | Other: 2-Hand Grip OK | |
Usable Jobs: Samurai | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 12% | Sell value: 7400 |
Attack: 87 | Hit Rate: 100 | Other: 2-Hand Grip OK | |
Usable Jobs: Samurai | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 25% | Sell value: 5 |
Attack: 97 | Hit Rate: 100 | Other: 2-Hand Grip OK | |
Usable Jobs: Samurai | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 15% | Sell value: 5 |
Attack: 107 | Hit Rate: 100 | Other: 2-Hand Grip OK, Initiative, casts Haste as an item | |
Usable Jobs: Samurai | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
Initiative (unique effect): The wielder begins all battles with a full ATB bar and can act immediately. |
|||
![]() |
![]() |
Critical: 20% | Sell value: 5 |
Attack: 117 | Hit Rate: 100 | Other: 2-Hand Grip OK | |
Usable Jobs: Samurai | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 |
||
Rods | |||
All rods determine hit rate like spells rather than like weapons. This means that their effective hit rate is actually (listed hit + user level - target level), and that target MEvd is used rather than the evade. It also means that abilities that normally guarantee a hit (!Jump, Sword Dance, etc.) fail to do so when a rod is equipped. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 100 |
Attack: 8 | Hit Rate: 70 | Other: Ignores row, mag +1 | |
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic | Damage: A = Random(0, 2 * attack), D = MDef, M = (level * magic)/256 + 2 Also uses target MEvd instead of evade. |
||
![]() |
![]() |
Critical: 0% | Sell value: 375 |
Attack: 16 | Hit Rate: 80 | Other: Ignores row, Fire up, Fire attack, casts Figa on all enemies as an item but breaks |
|
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic | Damage: A = Random(0, 2 * attack), D = MDef, M = (level * magic)/256 + 2 Also uses target MEvd instead of evade. |
||
![]() |
![]() |
Critical: 0% | Sell value: 375 |
Attack: 16 | Hit Rate: 80 | Other: Ignores row, Ice up, Ice attack, casts Blizzaga on all enemies as an item but breaks |
|
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic | Damage: A = Random(0, 2 * attack), D = MDef, M = (level * magic)/256 + 2 Also uses target MEvd instead of evade. |
||
![]() |
![]() |
Critical: 0% | Sell value: 375 |
Attack: 16 | Hit Rate: 80 | Other: Ignores row, Thunder up, Thunder attack, casts Thundaga on all enemies as an item but breaks |
|
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic | Damage: A = Random(0, 2 * attack), D = MDef, M = (level * magic)/256 + 2 Also uses target MEvd instead of evade. |
||
![]() |
![]() |
Critical: 0% | Sell value: 750 |
Attack: | Hit Rate: 80 | Other: Ignores row, Poison up, Poison attack, casts Bio on one enemy as an item but breaks |
|
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic | Damage: A = Random(0, 2 * attack), D = MDef, M = (level * magic)/256 + 2 Also uses target MEvd instead of evade. |
||
![]() |
![]() |
Critical: 0% | Sell value: 1500 |
Attack: 30 | Hit Rate: 80 | Other: Ignores row, mag +3, casts Aspir (25%) | |
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic | Damage: None. Instead attempts to cancel the target's next action, like the Dancer's !Heated Glance. |
||
The action cancel works just like !Heated Glance: Success rate is (50 + user's level - target's level)%, doubled if the user has a Lamia's Tiara, Rainbow Dress, or Red Shoes equipped (effect does not stack when equipping more than one). The target has an additional MEvd% chance to avoid it even if a success is determined. Has no effect on Heavy types or targets in Berserk, Sleep, Charm, or Controlled status. When attacking with Lilith's Rod, success is indicated by the "rod hit" animation on the target and failure by a "miss" sound. If successful, the target's next action is replaced with the message "ドキドキしてる". |
|||
![]() |
![]() |
Critical: 0% | Sell value: 10,000 |
Attack: 40 | Hit Rate: 80 | Other: Fire attack, Ice attack, Thunder attack, Fire up, Ice up, Thunder up, Wind up, Poison up, Earth up |
|
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic | Damage: A = Random(0, 2 * attack), D = MDef, M = (level * magic)/256 + 2 Also uses target MEvd instead of evade. |
||
Note all the elemental bonuses (every element but Water and Holy). Very attractive for boosting magic damage. |
|||
Staves | |||
![]() |
![]() |
Critical: 0% | Sell value: 100 |
Attack: 9 | Hit Rate: 95 | Other: 2-Hand Grip OK | |
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 250 |
Attack: 19 | Hit Rate: 95 | Other: - | |
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 900 |
Attack: 0 | Hit Rate: 100 | Other: str +5, casts Berserk (99%) | |
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic | Damage: None, casts Berserk instead | ||
![]() |
![]() |
Critical: 0% | Sell value: 450 |
Attack: 0 | Hit Rate: 100 | Other: mag +2, casts Cura (100%) | |
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic | Damage: None, casts Cura instead | ||
The Healing Staff is a useful way to recover HP without using MP or items. Also damages the undead. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 1350 |
Attack: 30 (Throw: 45) | Hit Rate: 100 | Other: mag +2, Holy attack, casts Holy on one enemy as an item but breaks |
|
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic | Damage: A = Random(attack, attack * 9/8), D = MDef M = (level * magic)/256 + 4 |
||
![]() |
![]() |
Critical: 0% | Sell value: 10,000 |
Attack: 45 (Throw: 53) | Hit Rate: 100 | Other: Holy up, strong vs. undead, casts Raise as an item | |
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic | Damage: A = Random(attack, attack * 9/8), D = MDef M = (level * magic)/256 + 4 Against undead: Multiply A by 8. |
||
Actually useful for attacking, at least against the undead—the effective attack power is 360! White Mages profit from the Holy bonus too. | |||
![]() |
![]() |
Critical: 0% | Sell value: 15,000 |
Attack: 45 (Throw: 60) | Hit Rate: 100 | Other: mag +3, ignores row, Holy attack, casts Dispel as an item | |
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic | Damage: A = Random(attack, attack * 9/8), D = MDef M = (level * magic)/256 + 4 |
||
Bows | |||
ゆみや actually translates to bow and arrows, but writing that out gets cumbersome and adds nothing important to the meaning. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 1250 |
Attack: 39 | Hit Rate: 70 | Other: 2-handed, ignores row, Fire attack | |
Usable Jobs: Hunter | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 1250 |
Attack: 39 | Hit Rate: 70 | Other: 2-handed, ignores row, Ice attack | |
Usable Jobs: Hunter | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 1250 |
Attack: 39 | Hit Rate: 70 | Other: 2-handed, ignores row, Thunder attack | |
Usable Jobs: Hunter | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 1900 |
Attack: 43 | Hit Rate: 70 | Other: 2-handed, ignores row, adds Darkness (66%) | |
Usable Jobs: Hunter | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 2500 |
Attack: 49 | Hit Rate: 70 | Other: 2-handed, ignores row, instant death (8%) | |
Usable Jobs: Hunter | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 15% | Sell value: 3750 |
Attack: 56 | Hit Rate: 90 | Other: 2-handed, ignores row | |
Usable Jobs: Hunter | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 30% | Sell value: 5 |
Attack: 101 | Hit Rate: 90 | Other: 2-handed, ignores row, str +3, agi +3 | |
Usable Jobs: Hunter | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 5 |
Attack: 111 | Hit Rate: 100 | Other: 2-handed, ignores row, strong vs. beasts | |
Usable Jobs: Hunter | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. Against beasts: Automatic critical (A doubled, D = 0). |
||
Harps | |||
Harp attacks actually work by doing no damage and casting an internal "spell" instead. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 400 |
Attack: 0 (Throw: 15) | Hit Rate: 100 | Other: 2-handed, ignores row, casts Silver Harp effect (100%) | |
Usable Jobs: Minstrel | Damage (of effect): 1/16 of target's current HP. Fails on Heavy types. | ||
![]() |
![]() |
Critical: 0% | Sell value: 800 |
Attack: 0 (Throw: 25) | Hit Rate: 100 | Other: 2-handed, ignores row, casts Dream Harp effect (99%) | |
Usable Jobs: Minstrel | Damage (of effect): 2/16 of target's current HP. Fails on Heavy types. Also inflicts Sleep. |
||
![]() |
![]() |
Critical: 0% | Sell value: 1600 |
Attack: 0 (Throw: 35) | Hit Rate: 100 | Other: 2-handed, ignores row, casts Lamia's Harp effect (99%) | |
Usable Jobs: Minstrel | Damage (of effect): 3/16 of target's current HP. Fails on Heavy types. Also inflicts Charm. |
||
![]() |
![]() |
Critical: 0% | Sell value: 5 |
Attack: 0 (Throw: 45) | Hit Rate: 100 | Other: 2-handed, ignores row, casts Apollon's Harp effect (99%) | |
Usable Jobs: Minstrel | Damage (of effect): A = Random(75, 84), D = MDef M = (level * magic)/256 + 4 Against dragon or undead: Multiply A by 8. |
||
This harp is actually useful for inflicting damage. It acts as a 600 power spell against dragons and the undead (Black Mage's -ga spells are 185). A Minstrel with Apollon's Harp gets extra benefit from abilities like !Summon since the magic boost increases its M. |
|||
Whips | |||
Paralyze is a spell unique to whips that inflicts Paralyze status on the target. It always works unless the target is immune. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 550 |
Attack: 26 | Hit Rate: 90 | Other: Ignores row, casts Paralyze (50%) | |
Usable Jobs: Beast Tamer | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 1650 |
Attack: 52 | Hit Rate: 90 | Other: Ignores row, casts Paralyze (50%) | |
Usable Jobs: Beast Tamer | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 1100 |
Attack: 42 | Hit Rate: 90 | Other: Ignores row, casts Thunder (33%) | |
Usable Jobs: Beast Tamer | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 |
||
A Beast Tamer with the Shock Whip gets extra benefit from abilities like !Summon since the magic boost increases M for Thunder. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 10,000 |
Attack: 82 | Hit Rate: 90 | Other: Ignores row, casts Figa (33%), str +2, agi +2 | |
Usable Jobs: Beast Tamer | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 |
||
A Beast Tamer with the Firebute gets extra benefit from abilities like !Summon since the magic boost increases M for Figa. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 2200 |
Attack: 92 | Hit Rate: 100 | Other: Ignores row, casts Paralyze (50%), strong vs. dragons | |
Usable Jobs: Beast Tamer | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. Against dragons: Automatic critical (A doubled, D = 0). |
||
Bells | |||
![]() |
![]() |
Critical: 0% | Sell value: 250 |
Attack: 24 | Hit Rate: 100 | Other: Ignores row | |
Usable Jobs: Geomancer | Damage: A = Random(attack * 1/2, attack * 3/2), D = MDef M = (level * magic)/128 + (level * agility)/128 + 2 No effect if Timespace spell Mute is active. |
||
Wow, now there's a term you don't see every day. ギヤマン (GIYAMAN) has two meanings as listed by the dictionary on goo. One was used during the Edo period (1603 to 1868), refers to diamond, and comes from the Dutch word "diamant". The other is a rather quaint term for glass or glasswork (arising from the use of diamond to cut glass). Considering that the bell is of little value, the second meaning is more likely. I suppose I could call it a "Diamant Bell" too, but that would just be more confusing... |
|||
![]() |
![]() |
Critical: 0% | Sell value: 4500 |
Attack: 35 | Hit Rate: 99 | Other: Ignores row, Earth up, casts Earthquake (25%) | |
Usable Jobs: Geomancer | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
Earthquake is an Earth attribute enemy skill that targets all opponents and misses any with Float status. A = Random(155, 174), D = MDef, M = (level * magic)/256 + 4. The Earth up effect will further increase A for Earthquake by 50%. A Geomancer with the Earth Bell gets extra benefit from abilities like !Summon since the magic boost increases M for Earthquake. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 5 |
Attack: 45 (+10 @ 5 MP) | Hit Rate: 99 | Other: Fire up, Ice up, Thunder up, Wind up, Earth up, Poison up, Holy up |
|
Usable Jobs: Geomancer | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 If user has at least 5 MP: Subtract 5 MP, add 10 to A, and add (level * magic)/128 to M. |
||
Thanks to the bonus damage from MP, a Geomancer with the Rune Bell gets extra benefit from abilities like !Summon since the magic boost increases M and provides more MP to spend. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 750 |
Attack: 55 | Hit Rate: 100 | Other: Ignores row | |
Usable Jobs: Geomancer | Damage: A = Random(attack * 1/2, attack * 3/2), D = MDef M = (level * magic)/128 + (level * agility)/128 + 2 No effect if Timespace spell Mute is active. |
||
Unsorted Weapons | |||
![]() |
![]() |
Critical: 0% | Sell value: 50 |
Attack: 0 | Hit Rate: 100 | Other: - | |
Usable Jobs: None, not even Normal | Damage: ?? | ||
I don't think this thing actually exists, except as data in the ROM. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 8000 |
Attack: 84 | Hit Rate: 25 | Other: mag +5, drain HP | |
Usable Jobs: Knight | Damage: A = Random(attack, attack * 9/8), D = MDef M = (level * magic)/256 + 4 Heals user by damage amount. Healing and damage reversed against the undead. |
||
Actual hit rate is (25 + user level - target level)%, and target MEvd is used for evasion. Always hits when used with !Aim, !Jump, Sword Dance, or !Wild Strike. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 9500 |
Attack: 50 (+20 @ 8 MP) | Hit Rate: 99 | Other: 2-Hand Grip OK | |
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 If user has at least 8 MP: Subtract 8 MP, add 20 to A, and add (level * magic)/128 to M. |
||
Thanks to the bonus damage from MP, a character with the Rune Blade gets extra benefit from abilities like !Summon since the magic boost increases M and provides more MP to spend. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 5000 |
Attack: 63 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK, Fire attack | |
Usable Jobs: Knight | Damage: A = Random(attack, attack * 9/8), D = defense M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 5500 |
Attack: 65 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK, Ice attack | |
Usable Jobs: Knight | Damage: A = Random(attack, attack * 9/8), D = defense M = (level * strength)/128 + 2 |
||
えんげつりん | Full Moon | Critical: 0% | Sell value: 550 |
Attack: 35 | Hit Rate: 95 | Other: Ignores row | |
Usable Jobs: Thief, Ninja, Mimic | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 |
||
しゅりけん | Shuriken | Critical: 0% | Sell value: 5 |
Attack: 0 (Throw: 50) | Hit Rate: 100 | Other: For use with Ninja's !Throw | |
Usable Jobs: None | Damage: See !Throw command | ||
ふうましゅりけん | Fuuma Shuriken | Critical: 0% | Sell value: 5 |
Attack: 0 (Throw: 117) | Hit Rate: 100 | Other: For use with Ninja's !Throw | |
Usable Jobs: None | Damage: See !Throw command | ||
![]() |
![]() |
Critical: 0% | Sell value: 1 |
Attack: 1 (Throw: 100) | Hit Rate: 100 | Other: 2-Hand Grip OK | |
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage | Damage: Always 1 | ||
Actual hit rate is (100 + user level - target level)%, and target MEvd is used for evasion. The whole point of the naming is to resemble "Excalibur" so closely as to be easily mistaken for it—note that エクスカリパー (Excalipur) and エクスカリバー (Excalibur) are identical except for the difference between the ゛ and ゜on the ハ character. "Excalipur" (also used in the PSX official translation) reflects this fairly well, with the only visual difference being the line up in 'b' and down in 'p', and also reflects the pronunciation for what it's worth. Perhaps even better is "Excailbur" (used in RPGe's unofficial translation), changing the spelling only by swapping the 'i' and 'l', which are already adjacent and very similar in appearance, perhaps hiding the difference better than any other option. The GBA official translation's "Excalipoor" rates a FAIL, though. Not even Gilgamesh could overlook the difference between 'bur' and 'poor'. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 7500 |
Attack: 72 | Hit Rate: 100 | Other: Ignores row, casts Paralyze (50%), strong vs. beasts | |
Usable Jobs: Beast Tamer | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. Against beasts: Automatic critical (A doubled, D = 0). |
||
![]() |
![]() |
Critical: 0% | Sell value: 390 |
Attack: 16 | Hit Rate: 70 | Other: 2-Hand Grip OK, ignores row | |
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 3900 |
Attack: 50 | Hit Rate: 90 | Other: 2-Hand Grip OK, ignores row | |
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 5000 |
Attack: 0 | Hit Rate: 100 | Other: Ignores row, mag +2, casts White/Black magic (99%), casts Reset as an item |
|
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic | Damage: None. Casts a spell instead. | ||
Attacking with the Wonder Wand casts a spell. After each use, it changes to a different spell. The spell progression follows this list: Cure, Poisona, Silence, Protect, Minimum, Cura, Raise, Confuse, Blink, Shell, Esuna, Curega, Reflect, Berserk, Araise, Holy, Dispel, Fire, Blizzard, Thunder, Poison, Sleep, Toad, Fira, Blizzara, Thundara, Drain, Break, Bio, Figa, Blizzaga, Thundaga, Flare, Death, Aspir, and back to Cure to repeat the cycle. In other words, it cycles through every White Magic and Black Magic spell except Library. The spell need not be learned yet. The list position is saved across battles, and is shared between all Wonder Wands if you have more than one. |
|||
![]() |
![]() |
Critical: 0% | Sell value: 15,000 |
Attack: 150 (can drop) | Hit Rate: 100 | Other:Magic Sword OK, 2-Hand Grip OK, str +5, running from combat lowers attack (minimum 0) |
|
Usable Jobs: Knight | Damage: A = Max( 150 - times run, 0 ), D = defense M = (level * strength)/128 + 2 |
||
High damage potential for Knight and Normal, but the attack can dwindle with surprising ease, and you have to pass up the Chicken Knife to get the Brave Blade. Between those and the limited number of jobs that can use it, it's questionable how good it really is. |
|||
すす | Soot | Critical: 0% | Sell value: 1 |
Attack: 0 (Throw: 25) | Hit Rate: 100 | Other: For use with Ninja's !Throw | |
Usable Jobs: None | Damage: See !Throw command | ||
![]() |
![]() |
Critical: 0% | Sell value: 1 |
Attack: 1 (can rise) | Hit Rate: 100 | Other: Magic Sword OK, agi +5, uses !Flee (25%), running from combat raises attack (maximum 127) |
|
Usable Jobs: All but Monk and White Mage | Damage: A = Min( (times run)/2, 127 ), D = defense M = (level * strength)/128 + (level * agility)/128 + 2 Additionally treats target evade as half its actual value. |
||
High damage potential for nearly every job, but that random !Flee is one heck of a downside, and you have to pass up the Brave Blade to get the Chicken Knife. Note that some commands bypass random casting (!Gather, !Mug, !Jump, and !Wild Strike). |
|||
ライジングサン | Rising Sun | Critical: 0% | Sell value: 5500 |
Attack: 71 | Hit Rate: 90 | Other: Ignores row | |
Usable Jobs: Thief, Ninja, Mimic | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 750 |
Attack: 38 | Hit Rate: 70 | Other: 2-Handed, ignores row | |
Usable Jobs: Hunter | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 4250 |
Attack: 69 | Hit Rate: 80 | Other: 2-Handed, ignores row, uses !Wild Strike (25%) | |
Usable Jobs: Hunter | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 5000 |
Attack: 0 | Hit Rate: 100 | Other: Ignores row, casts Silence (33%) | |
Usable Jobs: Hunter | Damage: None | ||
![]() |
![]() |
Critical: 0% | Sell value: 10,000 |
Attack: 91 | Hit Rate: 100 | Other: 2-Handed, ignores row, strong vs. flying | |
Usable Jobs: Hunter | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. Against flying: Automatic critical (A doubled, D = 0). |
||
![]() |
![]() |
Critical: 0% | Sell value: 2950 |
Attack: 43 | Hit Rate: 85 | Other: 2-Hand Grip OK, casts Death (33%) | |
Usable Jobs: Berserker | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 20,000 |
Attack: 91 | Hit Rate: 90 | Other: 2-Hand Grip OK | |
Usable Jobs: Berserker | Damage: A = Random(attack * 1/2, attack * 3/2), D = (defense / 4) M = (level * strength)/128 + 2 |
||
![]() |
![]() |
Critical: 0% | Sell value: 1 |
Attack: 89 | Hit Rate: 100 | Other: Jump doubles M, all stats +2, strong vs. humanoids | |
Usable Jobs: Dancer | Damage: A = Random(attack, attack * 9/8), D = defense, M = (level * strength)/128 + 2 Against humanoids: Automatic critical (A doubled, D = 0). |
||
![]() |
![]() |
Critical: 0% | Sell value: 3400 |
Attack: 66 | Hit Rate: 100 | Other: Magic Sword OK, agi +1, uses !Mug (33%) | |
Usable Jobs: All but Monk and White Mage | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 2900 |
Attack: 51 | Hit Rate: 100 | Other: Magic Sword OK, agi +1, mag +1, uses !Dance (50%) | |
Usable Jobs: All but Monk and White Mage | Damage: A = attack + Random(0, 3), D = defense M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2 Additionally treats target evade as half its actual value. |
||
![]() |
![]() |
Critical: 0% | Sell value: 10,000 |
Attack: 102 | Hit Rate: 100 | Other: Magic Sword OK, 2-Hand Grip OK, mag +3 | |
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage | Damage: A = Random(attack, attack * 9/8), D = defense M = (level * strength)/128 + 2 |
||
Spares | |||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
![]() |
||
There's a sizable bug in M determination for many weapons. Where:
M = (level * strength)/128 + [ (level * agility) % 256 ]/128 + 2
it was intended to be:
M = (level * strength)/128 + (level * agility)/128 + 2
but a coding error causes only the low byte of (level * agility) to be used rather than the full 16-bit value. Add integer division into the mix, and the M bonus from agility is always either 0 or 1 (using integer division instead of floating point is arguably another bug, but I won't get into that here).
This bug affects all knives except the Maneater and the Chicken Knife, all bows except the Magicseal Bow, all whips, the Full Moon, and the Rising Sun
How crippling is this? At low enough levels, there's no difference, since the M bonus for agility won't be above 1 anyway, but it gets bad quickly. Let's say we have Lenna as level 20 Hunter. Lenna as a Hunter has a strength of 41 and an agility of 38. She'll probably be using a bow, which uses this formula to calculate M. So, using the intended formula:
M = (20 * 41)/128 + (20 * 38)/128 + 2
M = (820)/128 + (760)/128 + 2
M = 6.40625 + 5.9375 + 2
And because of integer division, that's actually 6+5+2 = 13.
But with the actual formula that uses only the low byte, we instead have:
M = (20 * 41)/128 + [(20 * 38)%256]/128 + 2
M = (820)/128 + (248)/128 + 2
M = 6.40625 + 1.9375 + 2
And because of integer division, that's actually 6+1+2 = 9. That's a significant difference in the multiplier, even at this relatively low level and unexceptional agility. It's the difference between (for example) 297 damage and 429 damage, and the weapons affected suffer for it, as do abilities that raise agility. If you prefer percentages, actual damage is about 69.23% of what it should be with these parameters.
Just for argument's sake, let's try a more extreme example. Take Karulu (highest agility, lowest strength) as Normal with only Thief mastered (for even more agility) at level 99, using Sasuke's Katana, an affected weapon that also has an agi +1 bonus. Let's also give her a Black Hood (agi +2), Shinobi Garb (agi +1), and Thief's Bracer (agi +1). Level = 99, strength = 26, agility = 44+5.
M = (99 * 26)/128 + (99 * 49)/128 + 2
M = (2574)/128 + (4851)/128 + 2
M = 20.109375 + 37.8984375 + 2
And because of integer division, that's actually 20+37+2 = 59.
But with the actual formula that uses only the low byte, we instead have:
M = (99 * 26)/128 + [(99 * 49)%256]/128 + 2
M = (2574)/128 + (243)/128 + 2
M = 20.109375 + 1.8984375 + 2
And because of integer division, that's actually 20+1+2 = 23. That's a huge difference, though I'll grant it's a contrived example. The practical effect is (for example) the difference between 1909 damage and 4897 damage. Actual damage is about 38.98% of what it ought to be.
Still not extreme enough? Okay, make Karulu a Summoner (minimum possible strength at 15) with a dagger-class weapon, then use the Minstrel's Agility Song to raise agility to 99. The M difference starts at level 3 (M = 2 instead of 4) and gets progressively, if erratically, worse up to level 99. M should then be 89, but is actually only 13, an awful 14.61% of what it ought to be.
Just to be fair, let's go to the other extreme too. Make Galuf a Berserker (minimum possible agility at 15) with a dagger-class weapon, then use the Minstrel's Strength Song to raise strength to 99. The M difference doesn't start until level 18 (M = 15 instead of 17), but increases gradually as levels increase. At level 99, M should be 89, but is actually only 79, 88.76% of what it should be. Not a huge loss, but a loss all the same.
The other odd effect this has is that damage can decrease at level up. Let's look at how this works...
Let's take Lenna as a 20 Hunter again. As described above, her M with the bugged formula is 9. Now let's increase her a level. Everything else stays the same, so now we have:
M = (21 * 41)/128 + [(21 * 38)%256]/128 + 2
M = (861)/128 + (30)/128 + 2
M = 6.7265625 + 0.234375 + 2
And because of integer division, that's actually 6+0+2 = 8. If average damage was 297 before, it's now 264. Ick.
As noted above, the intended formula gives her an M of 13 at level 20. Increasing to level 21 gives:
M = (21 * 41)/128 + (21 * 38)/128 + 2
M = (861)/128 + (798)/128 + 2
M = 6.7265625 + 6.234375 + 2
And because of integer division, that's actually 6+6+2 = 14. If average damage was 429 before, it's now 462. That's more like it.
And of course, comparing values right after a drop only makes the ratios worse. Lenna at level 21 as a Hunter with a bow causes about 57.14% of the damage she ought to, sharply down from 69.23% at level 20.
Lest you think this is a very rare happening, I tried charting Hunter Lenna's M values from level 1 to 99, and found that her M drops at nine different levels (14, 21, 27, 34, 48, 61, 68, 81, and 95), with a total of 14 levels having a lower M value than a previous level. Exact numbers vary depending on stats, with more of these tending to happen at higher agility and fewer at higher strength, but it's a definite problem.
Incidentally, the extreme example with Karulu above (15 strength, 99 agility) has 33 drops and 41 levels with lower M than a previous level. The Galuf Berserker extreme example (99 strength, 15 agility) has only one drop, at level 18, which is also the only level with a lower M than a previous level (all other drops in M from agility are balanced out by gains in M from strength).
And as long as we're working in the realm of theory, which values give the worst possible results? Strength should be 0, so that there are never gains to M from strength. Then it's just a matter of running through every agility value from 1 to 255. 0 is out, since there can't be any losses if the bonus is never positive to begin wtih, and there's no point going beyond 255 because the value is being reduced mod 256. In realistic agility values, 57 is the loser, with 22 drops and 53 levels with a lower M than a previous level. In reachable values, 86 agility loses, with 33 drops and tying 57 agility with 53 levels worse than previous levels. The overall loser is 171 agility, which yields 33 drops and a whopping 66 levels with worse M than a previous level! While this means little in practice, it's still kinda fun.
Also note that in the rare case that strength is an exact multiple of agility/2, no drops occur. Why not? You lose M from agility every other time it ought to increase, meaning every time (level * agility) reaches a new multiple of 256. However, you gain M from strength every time (level * strength) reaches a new multiple of 128. If strength is an exact multiple of agility/2, then every level that loses M to agility also gains M from strength, so no net loss occurs, just a failure to earn a net gain.
E-mail comments, corrections, etc.
Return to Final Fantasy 5 index