remove
powerd by nog twitter
 ホーム > ドラクエ アラカルト > ドラクエ2(FC) ロム解析


ドラクエ2(FC) ロム解析(4)


解析結果を並べてみましょう。

1バイト目 : 最大HP
3バイト目 : ゴールド
4バイト目 : 経験値
5バイト目 : 素早さ
6バイト目 : 攻撃力
7バイト目 : 守備力
8バイト目 : (下位6ビットの上位3ビット)ラリホー耐性、(下位3ビット)攻撃呪文耐性
9バイト目 : (上位2ビット)経験値の追加情報、(次の3ビット)ザラキ耐性、(下位3ビット)マホトーン耐性
10バイト目 : (上位2ビット)経験値の追加情報、(次の3ビット)ルカナン耐性、(下位3ビット)マヌーサ耐性
11〜15バイト目 : 行動

2バイト目の全ビットと8バイト目の上位2ビットは何に使われているか分かりませんでした。
おそらくモンスターの行動パターンを決めているのではないかと推測しますが。
2バイト目の下位4ビットは未使用のようです。

詳細を説明すると、
経験値は10バイト目の上位2ビットと9バイト目の上位2ビットと4バイト目の8ビットの計12ビットで表されています。
したがって、最大でも 212 - 1 = 4095となります。(実際の最高値はベリアルの2200。)
耐性は数字が大きいほど効きづらくなり、 111 ならば100%効かないということになります。

また、行動は以下のようになっています。

00通常攻撃01痛恨の一撃02毒攻撃03眠り攻撃
04身を守る05逃げる06ギラ07ベギラマ
08イオナズン09ホイミ0Aベホイミ0Bベホマ
0Cホイミ0Dベホイミ0Eベホマ0Fザオリク
10ルカナン11スクルト12ラリホー13マホトーン
14マヌーサ15ザラキ16メガンテ17炎(弱)
18炎(中)19炎(強)1A毒の息1B甘い息
1C仲間を呼ぶ1D2回攻撃1E通常攻撃?1F不思議な踊り

1E はいろいろ試してみても通常攻撃しかしてきませんでした。
もしかしたら開発段階では何かの特殊攻撃に割り当てられていたのか、それとも何か特殊なケースでのみ通常攻撃以外の行動が発動されるのか、のどちらかでしょう。

ちなみに行動は11〜15バイト目を使っていますが、そこが少し複雑ですので説明を。
行動は 00 〜 1F までですから5ビット必要です。
この5ビットを最上位ビットと下位4ビットに分けてロムには格納してあります。
下位4ビット×8(=4バイト)が11〜14バイト目にあって、最上位ビット×8(=1バイト)が15バイト目にあります。
で、その下位4ビットと最上位ビットとの対応が逆順になっています。
これだと何を言っているのか分からないと思いますので図を交えて説明しますが、
例えばバズズの11〜15バイト目はこうなっています。

68 57 25 DB 75

11〜14バイト目を行動別に(4ビットずつに)区切ります。

6 8 5 7 2 5 D B 75

15バイト目をビット表示します。

6 8 5 7 2 5 D B 01110101

この同じ色で示しているのが一つの行動を表す5ビットということになります。
左から右に考えていくとちょうど逆の順番に対応しているのが分かると思います。
つまり、一番左の下位4ビットは一番右の最上位ビットと、左から2番目の下位4ビットは右から2番目の最上位ビットと、・・・・・・、という風に対応しています。
同じ色をまとめてみると、

16 08 15 07 12 15 1D 0B

となり、したがってバズズはメガンテ(16)、イオナズン(08)、ザラキ(15)、ベギラマ(07)、ラリホー(12)、2回攻撃(1D)、ベホマ(0B)を使うことが分かります。


ドラクエ2(FC) ロム解析(5)