称号バグ


テイルズオブデスティニー2で最も有名なバグ。

D2では称号によりLvアップ時のステータス成長値を補正することができるが、これが-1以下になった場合、称号を外すと元に戻るどころか逆に上昇するというもの。
一度上昇すると次の周に入るまで持続し、離脱中なども効果を発揮する。
理屈としては、まず称号をつけたとき、補正後の値が-1以下ではLvアップ時に能力が減少することになるため0とする、という処理が発生する。
そして、称号を外すときには、補正した数値を元に戻す処理が入るのだが、この時に計算する値が、0に補正する処理を考慮しておらず称号ボーナスの値そのままを計算してしまうためこのような事が起きる。

例 カイルに「グランドシェフ(最大HP+16 回避-3)」をつけた後、「見習い剣士(NO ABILITY)」に戻す。
HP 58 + 16 = 74 74 - 16 = 58
回避 1.75 - 3 = -1.25 = 0 0 + 3 = 3
  • カイルの回避の素の成長値は+1.75。これに-3すると-1.25になる。
  • このままではLvアップごとに回避のパラメータが1.25ずつ減少することになる。これを避けるため、成長値を0として強制的に補正する。つまり上記称号の回避補正は-3ではなく、実際には-1.75。
  • 称号を外す。(見習い剣士に戻す)上記の処理を考慮するなら現在の値から+1.75しなければならないが、元のボーナス値(-3)に基づいて+3される。
  • カイルの回避の成長値が+3で上書きされる。

ただし、補正値が+8以上になるとオーバーフローを起こして-16され、逆に補正値が下がる。
称号によってはこの修正も容易にできなくなるので注意が必要である。

例 カイル「グランドチャンピオン(攻撃+6.0、回避-1.0、TP軽減-1.0)」
攻撃 4 + 6 = 10 10 - 16 = -6
この後、外すと-6+6で0。

上昇が見込める有効な称号、オーバーフローが起きる危険な称号は各所でまとめられているので参照の上実践しよう。

尚、本作は特定のレベルに達すると成長率を半減される仕様があるため、2周目以降の初期レベルのうちに実行する事で最大限の恩恵を受けられる。
カイルとロニは最初の1戦闘を注意するくらいでさほど問題ないが、他の仲間、特にハロルドに対して行うには長く険しい制限プレイを乗り越えなければならない。(いわゆる初期ハロ)

このバグは初回出荷時のPS2版のみ可能と言われているが、一方でベスト版でも修正されていないという情報もある。
PSP版では称号による成長値ボーナスが大幅に修正された(-される称号が減った)為、一部を除いてできないが、バグ自体はなぜか残されている。
ただし、修正値がオーバーフローするバグは修正されており、残ったのはメリットだけとなっている。意図的に残された?
PSP版ならカイルの称号「グランドチャンピオン」を付けても攻撃の成長値が大幅に上がり、マイナスになることはないので安心。


ちなみに

上記のバグとは別になるが、同じ称号絡みのものとして「清貧一直線」と「ビッグ富豪」の称号がカイルしか取得できないバグがある。
このためPS2版では称号を完全に埋めることはカイル以外できない。(改造の類を使えば別だが)
こちらはPSP版で綺麗に修正されている。

プログラム内部的なお話

プログラム的な話をすると8でオーバーフローを起こす事から成長値のデータには符号付4ビットしか取っていないと思われる。
上記のグランドチャンピオンの例で言えば符号付4ビットで10を表すと、

1010

となり、上記の赤字の最上位は-の符号として見られる為、1010=-6となってしまうのである。
PSP版ではこのビット数を多く取った為にオーバーフローするバグは直っている。一方で-値を0にした後元に戻す処理を入れなかった(又は入れられなかった)為に残っていると言うわけ。