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. Note that most calculations are truncated (rounded down).

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 requiring the attacker to pass a hit check based on hit rate, then allowing the defender an evade check based on 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.

Trait up means the wielder gains a 50% bonus to A when using magic attacks of that trait.

Weapons with a special damage trait are affected by target resistances as follows: If immune, the target takes no damage. If resistant, A is halved. If the target absorbs the trait, D = 0 and the target is healed instead of damaged. If weak to the trait, A is doubled and D = 0. I'm not sure how these mix.

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 twice, once with each fist, which you should know already if you've ever used a Monk.


Daggers

The usual damage formula for a dagger sets A to Random(attack, attack + 3). Actual values based on attack are listed below.

[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 = Random(7, 10), 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 = Random(14, 17), 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 = Random(23, 26), 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 = Random(29, 32), 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 [white magic] Silence (33%), mag +1
Usable Jobs: All but Monk and White Mage Damage: A = Random(31, 34), 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 = Random(36, 39), 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', 'paralysis', 'confusion', 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 = Random(46, 49), 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 = Random(41, 44), 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 Wind Hit Rate: 100 Other: Magic Sword OK, Wind up
Usable Jobs: All but Monk and White Mage Damage: A = Random(56, 59), 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 [black magic] Death (25%)
Usable Jobs: All but Monk and White Mage Damage: A = Random(81, 84), 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 = Random(99, 102), 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, but not with the Defender sword. Parry doesn't work if the user has 'stop', 'paralysis', 'confusion', or 'sleep' status, or is both the attacker and the target.


Swords

The usual damage formula for a sword sets A to Random(attack, attack * 9/8). Actual values based on attack are listed below.

[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(15, 16), 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(22, 24), 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(31, 34), D = defense,
 M = (level * strength)/128 + 2
[sword] さんごのつるぎ  [sword] Coral Sword Critical: 0% Sell value: 1400
Attack: 37 Thunder Hit Rate: 100 Other: Magic Sword OK, 2-Hand Grip OK
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage Damage: A = Random(37, 41), 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 [timespace] Old (33%)
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage Damage: A = Random(43, 48), 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(57, 64), 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 [black magic] Sleepel (50%)
Usable Jobs: Knight, Sword Mage, Blue Mage, Red Mage Damage: A = Random(49, 55), 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 [white magic] Protect as an item
Usable Jobs: Knight Damage: A = Random(99, 111), D = defense,
 M = (level * strength)/128 + 2

The parry chance stacks with the Main Gauche if equipped with it, but not with Sasuke's Katana. Parry doesn't work if the user has 'stop', 'paralysis', 'confusion', or 'sleep' status, or is both the attacker and the target.

[sword] エクスカリバー  [sword] Excalibur Critical: 0% Sell value: 5
Attack: 110 Holy Hit Rate: 100 Other: Magic Sword OK, 2-Hand Grip OK, str +5
Usable Jobs: Knight Damage: A = Random(110, 123), D = defense,
 M = (level * strength)/128 + 2
[sword] ラグナロク    [sword] Ragnarök Critical: 0% Sell value: 5
Attack: 140 Hit Rate: 100 Other: Magic Sword OK, 2-Hand Grip OK
Usable Jobs: Knight Damage: A = Random(140, 157), D = defense,
 M = (level * strength)/128 + 2

Spears

The usual damage formula for a spear sets A to Random(attack, attack * 9/8). Actual values based on attack are listed below.

[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(55, 61), 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(25, 28), 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(30, 33), D = defense,
 M = (level * strength)/128 + 2
[spear] トライデント   [spear] Trident Critical: 0% Sell value: 1350
Attack: 38 Thunder Hit Rate: 100 Other: !Jump doubles M
Usable Jobs: Wyrmknight Damage: A = Random(38, 42), D = defense,
 M = (level * strength)/128 + 2
[spear] ウィンドスピア  [spear] Wind Spear Critical: 0% Sell value: 2700
Attack: 44 Wind Hit Rate: 100 Other: !Jump doubles M
Usable Jobs: Wyrmknight Damage: A = Random(44, 49), 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(62, 69), 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(54, 60), 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(61, 68), D = defense,
 M = (level * strength)/128 + 2
[spear] ホーリーランス  [spear] Holy Lance Critical: 0% Sell value: 5
Attack: 109 Holy Hit Rate: 100 Other: !Jump doubles M, str +3
Usable Jobs: Wyrmknight Damage: A = Random(109, 122), 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(119, 133), D = defense,
 M = (level * strength)/128 + 2
 Against Dragons: Automatic critical (A is doubled, D = 0).

Axes

The usual damage formula for an axe sets A to Random(attack * 1/2, attack * 3/2). Actual values based on attack are listed below.

[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(11, 34), 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(14, 42), 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(16, 49), 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(19, 57), 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 [black magic] Poison (67%)
Usable Jobs: Berserker Damage: A = Random(24, 72), 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(29, 87), D = (defense / 4)
 M = (level * strength)/128 + 2

Earthquake is an Earth enemy skill that targets all opponents and misses any with 'levitate' status, but always hits otherwise. A = Random(155, 174), D = MDef, M = (level * magic)/256 + 4. The weapon's trait bonus further increases 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(35, 106), D = (defense / 4)
 M = (level * strength)/128 + 2
 When user has at least 5 MP: Consumes 5 MP on attack
  for a bonus +10 to A and +(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 both 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(40, 121), D = (defense / 4)
 M = (level * strength)/128 + 2

Katanas

The usual damage formula for a katana sets A to Random(attack, attack * 9/8). Actual values based on attack are listed below.

[katana] あしゅら     [katana] Asura Critical: 12% Sell value: 2900
Attack: 42 Hit Rate: 100 Other: 2-Hand Grip OK
Usable Jobs: Samurai Damage: A = Random(42, 47), D = defense,
 M = (level * strength)/128 + 2
[katana] かぜきりのやいば [katana] Kazekiri Blade Critical: 12% Sell value: 50
Attack: 44 Hit Rate: 100 Other: 2-Hand Grip OK, Wind up,
 12% chance to cast Wind Scythe instead of striking
Usable Jobs: Samurai Damage: A = Random(44, 49), D = defense,
 M = (level * strength)/128 + 2

Written with kanji as either 風切り or 風斬り, kazekiri translates roughly to "wind-cutting".

Wind Scythe is a !Terrain Wind attack that targets all enemies and always hits. A = Random(90, 101), D = MDef, M = (level * magic)/256 + 4. The weapon's trait bonus further increases A for Wind Scythe by 50%.

A Samurai with the Kazekiri Blade gets extra benefit from abilities like !Summon since the magic boost increases M for Wind Scythe.

[katana] こてつ      [katana] Kotetsu Critical: 12% Sell value: 5900
Attack: 58 Hit Rate: 100 Other: 2-Hand Grip OK
Usable Jobs: Samurai Damage: A = Random(58, 65), 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(51, 57), 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(87, 97), 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(97, 109), 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 [timespace] Haste as an item
Usable Jobs: Samurai Damage: A = Random(107, 120), 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(117, 131), 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 physical evade. It also means that !Aim, !Jump, Sword Dance, and !Wild Strike, which normally guarantee a hit, may miss when using a rod.

The usual damage formula for a rod sets A to Random(0, attack * 2). Actual values based on attack are listed below.

[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, 16), 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 Flame Hit Rate: 80 Other: Ignores row, Flame up,
 casts [black magic] Figa on all enemies as an item but breaks
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic Damage: A = Random(0, 32), 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 Ice Hit Rate: 80 Other: Ignores row, Ice up,
 casts [black magic] Blizzaga on all enemies as an item but breaks
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic Damage: A = Random(0, 32), 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 Thunder Hit Rate: 80 Other: Ignores row, Thunder up,
 casts [black magic] Thundaga on all enemies as an item but breaks
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic Damage: A = Random(0, 32), D = MDef,
 M = (level * magic)/256 + 2
 Also uses target MEvd instead of evade.
[rod] ポイズンロッド  [rod] Poison Rod Critical: 0% Sell value: 750
Attack: 32 Poison Hit Rate: 80 Other: Ignores row, Poison up,
 casts [black magic] Bio on one enemy as an item but breaks
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic Damage: A = Random(0, 64), 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 [black magic] 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: hit rate = (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). Has no effect on Heavy targets, or on targets in 'berserk', 'sleep', 'confused', 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 ドキドキしてる ("heart racing").

[rod] ウィザードロッド [rod] Wizard Rod Critical: 0% Sell value: 10,000
Attack: 40 Flame/Ice/Thunder Hit Rate: 80 Other: Flame up, Ice up, Thunder up, Wind up, Earth up, Poison up
Usable Jobs: Black Mage, Time Mage, Summoner, Red Mage, Mimic Damage: A = Random(0, 80), D = MDef,
 M = (level * magic)/256 + 2
 Also uses target MEvd instead of evade.

Note all the bonuses (every trait but Water and Holy gets a boost). Very attractive for enhancing magic damage.


Staves

Most staves use either the damage formula typical of axes, with A = Random(attack * 1/2, attack * 3/2) and D = (defense / 4), or the one for spells, with A = Random(attack, attack * 9/8) and D = MDef. Actual values of A based on attack are listed below.

[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(4, 13), 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(9, 28), D = (defense / 4)
 M = (level * strength)/128 + 2

The Mithril Staff appears to be unused, possibly because the long-ranged (though less accurate and slightly weaker) Flail would generally overshadow it.

[staff] ちからのつえ   [staff] Staff of Strength Critical: 0% Sell value: 900
Attack: 0 Hit Rate: 100 Other: str +5, casts [white magic] Berserk (99%)
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic Damage: None. Casts [white magic] Berserk instead.
[staff] いやしのつえ   [staff] Healing Staff Critical: 0% Sell value: 450
Attack: 0 Hit Rate: 100 Other: mag +2, casts [white magic] Cura (100%)
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic Damage: None. Casts [white magic] Cura instead.

The Healing Staff is a useful way to recover HP without using MP or items. It also damages the Undead.

[staff] ひかりのつえ   [staff] Staff of Light Critical: 0% Sell value: 1350
Attack: 30 Holy (Throw: 45) Hit Rate: 100 Other: mag +2, casts [white magic] Holy on one enemy as an item but breaks
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic Damage: A = Random(30, 33), 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 [white magic] Raise as an item
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic Damage: A = Random(45, 50), 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 Holy (Throw: 60) Hit Rate: 100 Other: mag +3, ignores row, casts [white magic] Dispel as an item
Usable Jobs: White Mage, Time Mage, Red Mage, Chemist, Mimic Damage: A = Random(45, 50), D = MDef
 M = (level * magic)/256 + 4

Bows

ゆみや (yumiya) properly translates to bow and arrows, but writing that out gets cumbersome and adds nothing important to the meaning.

The usual damage formula for a bow sets A to Random(attack, attack + 3). Actual values based on attack are listed below.

[bow] ほのおのゆみや  [bow] Flame Bow Critical: 0% Sell value: 1250
Attack: 39 Flame Hit Rate: 70 Other: 2-handed, ignores row
Usable Jobs: Hunter Damage: A = Random(39, 42), 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 Ice Hit Rate: 70 Other: 2-handed, ignores row
Usable Jobs: Hunter Damage: A = Random(39, 42), 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 Thunder Hit Rate: 70 Other: 2-handed, ignores row
Usable Jobs: Hunter Damage: A = Random(39, 42), 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, inflicts 'darkness' (66%)
Usable Jobs: Hunter Damage: A = Random(43, 46), 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, inflicts 'incapacitated' (8%)
Usable Jobs: Hunter Damage: A = Random(49, 52), 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 = Random(56, 59), 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 = Random(101, 104), 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 = Random(111, 114), 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 is doubled, D = 0).

Harps

Harp attacks 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 'confusion'.
[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 Magic -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 'paralysis' status on the target. It always works unless the target is immune.

The usual damage formula for a whip sets A to Random(attack, attack + 3). Actual values based on attack are listed below.

[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 = Random(26, 29), 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 = Random(52, 55), 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 [black magic] Thunder (33%)
Usable Jobs: Beast Tamer Damage: A = Random(42, 45), 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 [black magic] Figa (33%), str +2, agi +2
Usable Jobs: Beast Tamer Damage: A = Random(82, 85), 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 = Random(92, 95), 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 is doubled, D = 0).

Bells

The usual damage formula for a bell sets A to Random(attack * 1/2, attack * 3/2). Actual values based on attack are listed below.

[bell] ギヤマンのかね  [bell] Glasscraft Bell Critical: 0% Sell value: 250
Attack: 24 Hit Rate: 100 Other: Ignores row
Usable Jobs: Geomancer Damage: A = Random(12, 36), D = MDef
 M = (level * magic)/128 + (level * agility)/128 + 2
 No effect if Timespace spell [timespace] 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(17, 52), D = (defense / 4)
 M = (level * strength)/128 + 2

Earthquake is an Earth enemy skill that targets all opponents and misses any with 'levitate' status, but always hits otherwise. A = Random(155, 174), D = MDef, M = (level * magic)/256 + 4. The weapon's trait bonus further increases 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: Flame up, Ice up, Thunder up, Wind up, Earth up, Poison up, Holy up
Usable Jobs: Geomancer Damage: A = Random(22, 67), D = (defense / 4)
 M = (level * strength)/128 + 2
 When user has at least 5 MP: Consumes 5 MP on attack
  for a bonus +10 to A and +(level * magic)/128 to M.

The lack of any bonus to Water is disappointing, especially given some of the outcomes for !Terrain.

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(27, 82), D = MDef
 M = (level * magic)/128 + (level * agility)/128 + 2
 No effect if Timespace spell [timespace] Mute is active.

Unsorted Weapons

Most of these unsorted weapons use the normal damage formula for their type, but there are a number of exceptions, such as the Rune Blade sword inflicting damage like an axe, or the Maneater dagger acting like a spear. Actual values of A based on attack power are listed below.

[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, drains target's HP
Usable Jobs: Knight Damage: A = Random(84, 94), D = MDef
 M = (level * magic)/256 + 4
 Heals user by damage amount.
 Healing and damage reversed against the Undead.

Hit determination uses the formula for spells, so the actual hit rate is (25 + user level - target level)%, and target MEvd is used for evasion. Unlike rods, this still 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(25, 75), D = (defense / 4)
 M = (level * strength)/128 + 2
 When user has at least 8 MP: Consumes 8 MP on attack
  for a bonus +20 to A and +(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 Flame Hit Rate: 100 Other: Magic Sword OK, 2-Hand Grip OK
Usable Jobs: Knight Damage: A = Random(63, 70), D = defense
 M = (level * strength)/128 + 2
[sword] アイスブランド  [sword] Icebrand Critical: 0% Sell value: 5500
Attack: 65 Ice Hit Rate: 100 Other: Magic Sword OK, 2-Hand Grip OK
Usable Jobs: Knight Damage: A = Random(65, 73), 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 = Random(35, 38), 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

The Excalipur's attack acts as a spell that inflicts exactly 1 damage and cannot miss.

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), which changes the spelling only by swapping the 'i' and 'l', already adjacent and very similar in appearance, and perhaps hides the difference better than any other option. The GBA official translation's "Excalipoor" rates a solid 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 = Random(72, 75), 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 is 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(8, 24), 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(25, 75), 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 a spell (99%),
 casts [timespace] 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 cycles through [white magic] Cure, [white magic] Poisona, [white magic] Silence, [white magic] Protect, [white magic] Minimum, [white magic] Cura, [white magic] Raise, [white magic] Confuse, [white magic] Blink, [white magic] Shell, [white magic] Esuna, [white magic] Curega, [white magic] Reflect, [white magic] Berserk, [white magic] Araise, [white magic] Holy, [white magic] Dispel, [black magic] Fire, [black magic] Blizzard, [black magic] Thunder, [black magic] Poison, [black magic] Sleep, [black magic] Toad, [black magic] Fira, [black magic] Blizzara, [black magic] Thundara, [black magic] Drain, [black magic] Break, [black magic] Bio, [black magic] Figa, [black magic] Blizzaga, [black magic] Thundaga, [black magic] Flare, [black magic] Death, [black magic] Aspir, and then back to [white magic] Cure to repeat the cycle. In other words, it runs through every White Magic and Black Magic spell except [white magic] Library. This does not care whether the party has learned the spells or not.

The list position saves across battles, and all Wonder Wands share it if you have more than one.

[sword] ブレイブブレイド [sword] Brave Blade Critical: 0% Sell value: 15,000
Attack: 150 ~ 0 Hit Rate: 100 Other:Magic Sword OK, 2-Hand Grip OK, str +5,
 fleeing combat lowers attack (minimum 0)
Usable Jobs: Knight Damage: A = Max( 150 - times run, 0 ), D = defense
 M = (level * strength)/128 + 2

Potentially the most powerful weapon in the game, but the attack can dwindle with surprising ease, and you have to pass up the Chicken Knife to get the Brave Blade. Factor in how few jobs can actually wield it, and it's questionable how good this 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 ~ 127 Hit Rate: 100 Other: Magic Sword OK, agi +5, uses !Scram (25%),
 fleeing 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 !Scram is a major downside, and you have to pass up the Brave Blade to get the Chicken Knife. Note that some commands prevent random skill activation (!Charge, !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 = Random(71, 74), 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 = Random(38, 41), 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 = Random(69, 72), 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 [white magic] 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 = Random(91, 94), 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 is doubled, D = 0).
[axe] デスシックル   [axe] Death Sickle Critical: 0% Sell value: 2950
Attack: 43 Hit Rate: 85 Other: 2-Hand Grip OK, casts [black magic] Death (33%)
Usable Jobs: Berserker Damage: A = Random(21, 64), 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(45, 136), 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(89, 100), D = defense,
 M = (level * strength)/128 + 2
 Against Humanoids: Automatic critical (A is 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 = Random(66, 69), 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 = Random(51, 54), 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(102, 114), 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 poor decision, but I won't get into that here).

This bug affects all knives except the Maneater (which calculates damage like a spear anyway) and the Chicken Knife, all bows except the Magicseal Bow (which doesn't inflict damage in the first place), 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, typical actual damage is not quite 70% 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 39% 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.6% 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, about 89% of what it should be. Not a huge loss, yet a loss all the same.

Level up for reduced damage?

The other odd, and in a way even more serious, 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% of the damage she ought to, sharply down from about 69% 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