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.

Warning: May contain spoilers

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
[knife] ナイフ      [knife] Knife 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.
[knife] ダガー      [knife] Dagger 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.
[knife] ミスリルナイフ  [knife] Mithril Knife 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.
[knife] くない      [knife] Kunai 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.
[knife] メイジマッシャー [knife] Mage Masher 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.
[knife] マインゴーシュ  [knife] Main Gauche 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.

[knife] こだち      [knife] Kodachi 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.
[knife] オリハルコン   [knife] Orichalcum 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.
[knife] エアナイフ    [knife] Air Knife 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.
[knife] アサシンダガー  [knife] Assassin Dagger 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.
[knife] さすけのかたな  [knife] Sasuke's Katana 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
[sword] ブロードソード  [sword] Broadsword 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
[sword] ロングソード   [sword] Longsword 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
[sword] ミスリルソード  [sword] Mithril Sword 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
[sword] さんごのつるぎ  [sword] Coral Sword 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
[sword] こだいのつるぎ  [sword] Ancient Sword 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
[sword] グレートソード  [sword] Greatsword 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
[sword] ねむりのけん   [sword] Sleep Sword 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
[sword] ディフェンダー  [sword] Defender 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.

[sword] エクスカリバー  [sword] Excalibur 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
[sword] ラグナロク    [sword] Ragnarok 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
[spear] ジャベリン    [spear] Javelin 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
[spear] スピア      [spear] Spear 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
[spear] ミスリルスピア  [spear] Mithril Spear 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
[spear] トライデント   [spear] Trident 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
[spear] ウィンドスピア  [spear] Wind Spear 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
[spear] パルチザン    [spear] Partisan 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
[spear] ヘヴィランス   [spear] Heavy Lance 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
[spear] ホーリーランス  [spear] Holy Lance 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
[spear] ひりゅうのやり  [spear] Wyvern Spear 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
[axe] バトルアクス   [axe] Battle Axe 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
[axe] ミスリルハンマー [axe] Mithril Hammer 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
[axe] オーガキラー   [axe] Ogre Killer 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
[axe] ウォーハンマー  [axe] War Hammer 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
[axe] ポイズンアクス  [axe] Poison Axe 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
[axe] だいちのハンマー [axe] Earth Hammer 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.

[axe] ルーンアクス   [axe] Rune Axe 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.

[axe] トールのハンマー [axe] Thor's Hammer 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
[katana] あしゅら     [katana] Asura 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
[katana] かぜきりのやいば [katana] Windslash Blade 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.

[katana] こてつ      [katana] Kotetsu 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
[katana] びぜんおさふね  [katana] Bizen Osafune 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
[katana] きくいちもんじ  [katana] Kikuichimonji 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
[katana] むらさめ     [katana] Murasame 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
[katana] まさむね     [katana] Masamune 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.

[katana] あめのむらくも  [katana] Ame no Murakumo 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.

[rod] ロッド      [rod] Rod 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.
[rod] ほのおのロッド  [rod] Flame Rod 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.
[rod] こおりのロッド  [rod] Ice Rod 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.
[rod] いかづちのロッド [rod] Thunder Rod 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.
[rod] ポイズンロッド  [rod] Poison Rod 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.
[rod] リリスのロッド  [rod] Lilith's Rod 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 "ドキドキしてる".

[rod] ウィザードロッド [rod] Wizard Rod 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
[staff] つえ       [staff] Staff 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
[staff] ミスリルのつえ  [staff] Mithril Staff 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
[staff] ちからのつえ   [staff] Staff of Strength 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
[staff] いやしのつえ   [staff] Healing Staff 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.

[staff] ひかりのつえ   [staff] Staff of Light 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
[staff] けんじゃのつえ  [staff] Sage's Staff 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.

[staff] さばきのつえ   [staff] Staff of Judgment 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.

[bow] ほのおのゆみや  [bow] Flame Bow 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.
[bow] こおりのゆみや  [bow] Ice Bow 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.
[bow] いかづちのゆみや [bow] Lightning Bow 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.
[bow] くらやみのゆみや [bow] Darkness Bow 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.
[bow] キラーボウ    [bow] Killer Bow 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.
[bow] エルフィンボウ  [bow] Elven Bow 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.
[bow] よいちのゆみ   [bow] Yoichi's Bow 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.
[bow] アルテミスのゆみ [bow] Artemis's Bow 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.

[harp] ぎんのたてごと  [harp] Silver Harp 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.
[harp] ゆめのたてごと  [harp] Dream Harp 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.
[harp] ラミアのたてごと [harp] Lamia's Harp 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.
[harp] アポロンのハープ [harp] Apollon's Harp 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.

[whip] むち       [whip] Whip 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
[whip] チェンウィップ  [whip] Chain Whip 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
[whip] でんげきむち   [whip] Shock Whip 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.

[whip] ファイアビュート [whip] Firebute 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.

[whip] りゅうのひげ   [whip] Dragon's Whisker 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
[bell] ギヤマンのかね  [bell] Glasscraft Bell 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...

[bell] だいちのベル   [bell] Earth Bell 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.

[bell] ルーンのベル   [bell] Rune Bell 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.

[bell] ティンカーベル  [bell] Tinker Bell 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
[knife] サーベル     [knife] Sabre 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.

[sword] ブラッドソード  [sword] Blood Sword 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.

[sword] ルーンブレイド  [sword] Rune Blade 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.

[sword] フレイムタン   [sword] Flametongue 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
[sword] アイスブランド  [sword] Icebrand 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
[sword] エクスカリパー  [sword] Excalipur 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'.

[whip] ビーストキラー  [whip] Beast Killer 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).
[staff] フレイル     [staff] Flail 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
[staff] モーニングスター [staff] Morning Star 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
[rod] ワンダーワンド  [rod] Wonder Wand 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.

[sword] ブレイブブレイド [sword] Brave Blade 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
[knife] チキンナイフ   [knife] Chicken Knife 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
[bow] ぎんのゆみや   [bow] Silver Bow 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.
[bow] はやてのゆみや  [bow] Gale Bow 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
[bow] まふうじのゆみや [bow] Magicseal Bow Critical: 0% Sell value: 5000
Attack: 0 Hit Rate: 100 Other: Ignores row, casts Silence (33%)
Usable Jobs: Hunter Damage: None
[bow] エイビスキラー  [bow] Avis Killer 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).
[axe] デスシックル   [axe] Death Sickle 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
[axe] きょじんのおの  [axe] Giant's Axe 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
[knife] マンイーター   [knife] Maneater 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).
[knife] とうぞくのナイフ [knife] Thief's Knife 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.
[knife] ダンシングダガー [knife] Dancing Dagger 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.
[sword] エンハンスソード [sword] Enhance Sword 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
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000
[sword] アイテム0000 [sword] Item 0000

Agility M bug:

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

Example values:

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.

Level up for reduced damage?

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
Return to translations index