ホーム > ドラクエ アラカルト > ドラクエ2(FC) ロム解析
解析結果を並べてみましょう。
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 | 仲間を呼ぶ | 1D | 2回攻撃 | 1E | 通常攻撃? | 1F | 不思議な踊り |
1E はいろいろ試してみても通常攻撃しかしてきませんでした。
もしかしたら開発段階では何かの特殊攻撃に割り当てられていたのか、それとも何か特殊なケースでのみ通常攻撃以外の行動が発動されるのか、のどちらかでしょう。
ちなみに行動は11〜15バイト目を使っていますが、そこが少し複雑ですので説明を。
行動は 00 〜 1F までですから5ビット必要です。
この5ビットを最上位ビットと下位4ビットに分けてロムには格納してあります。
下位4ビット×8(=4バイト)が11〜14バイト目にあって、最上位ビット×8(=1バイト)が15バイト目にあります。
で、その下位4ビットと最上位ビットとの対応が逆順になっています。
これだと何を言っているのか分からないと思いますので図を交えて説明しますが、
例えばバズズの11〜15バイト目はこうなっています。
11〜14バイト目を行動別に(4ビットずつに)区切ります。
15バイト目をビット表示します。
この同じ色で示しているのが一つの行動を表す5ビットということになります。
左から右に考えていくとちょうど逆の順番に対応しているのが分かると思います。
つまり、一番左の下位4ビットは一番右の最上位ビットと、左から2番目の下位4ビットは右から2番目の最上位ビットと、・・・・・・、という風に対応しています。
同じ色をまとめてみると、
となり、したがってバズズはメガンテ(16)、イオナズン(08)、ザラキ(15)、ベギラマ(07)、ラリホー(12)、2回攻撃(1D)、ベホマ(0B)を使うことが分かります。
ドラクエ2(FC) ロム解析(5)