DQ3 エンカウント時の出現モンスター決定方法1

以前ふとしたところから見つけたエンカウント情報を掲載していたサイトがいつの間にかなくなってしまっていたようなので、まじめに解析しながらどういうルールでエンカウントするモンスターが決定されているのか見ていきます。エンカウント時に使用されるデータは主に以下の2つです。

  • $08ADD1- エンカウント(20Byte * 105rec)
範囲(Byte) 範囲(bit) 意味 RAM上セット先アドレス
0-1Byte エンカウント率
2Byte 0-2bit エンカウント種別
3-5bit 先制強襲率
6bit 混成モンスター1が出現決定したら他は出現させない 7EF7D4
7bit 混成モンスター2が出現決定したら他は出現させない 7EF7D6
3Byte 0bit 混成モンスター3が出現決定したら他は出現させない 7EF7D8
1bit 混成モンスター4が出現決定したら他は出現させない 7EF7DA
2bit 混成モンスター5が出現決定したら他は出現させない 7EF7DC
3bit 単体出現モンスターが出現決定したら他は出現させない 7EF7E8
4-7bit 空き?
4Byte 混成モンスター1ID 7EF7B8
5Byte 混成モンスター2ID 7EF7BA
6Byte 混成モンスター3ID 7EF7BC
7Byte 混成モンスター4ID 7EF7BE
8Byte 混成モンスター5ID 7EF7C0
9Byte 1体のみ+混成5種をお供にするモンスターID 7EF7C2
10Byte 単一種出現モンスター1 7EF7C4
11Byte 単一種出現モンスター2 7EF7C6
12Byte 単一種出現モンスター3 7EF7C8
13Byte 単一種出現モンスター4 7EF7CA
14Byte 夜のみ出現するモンスター 7EF7CC
15Byte 単体出現モンスター 7EF7CE
16Byte 固定パーティ1ID 7EF7D0
17Byte 固定パーティ2ID(夜のみ出現) 7EF7D2
18Byte エリアレベル
19Byte 最大出現数
  • $08B6D8- エンカウント種別(21Byte * 4rec)
範囲(Byte) 意味 RAM上セット先アドレス
0-13Byte 混成モンスター1~固定パーティ2の出現閾値(1Byteずつを2Byte領域にセット) 7EF798-B3
14Byte 単一種出現モンスター1出現数ID 7EF7F0
15Byte 単一種出現モンスター2出現数ID 7EF7F2
16Byte 単一種出現モンスター3出現数ID 7EF7F4
17Byte 単一種出現モンスター4出現数ID 7EF7F6
18Byte 単一種出現モンスター5出現数ID 7EF7F8
19Byte 3グループ出現確率分子(分母256) 7EF7B4
20Byte 4グループ出現確率分子(分母256) 7EF7B6

$08B6D8- エンカウント種別のインデックスは$08ADD1- エンカウントの2バイト目下位3ビットの値を使用します。3ビットなので0-7までセットできますが、実体は4レコードしかないので4以上の値をセットすると壮絶にバグる(はず)ので注意してください。

というわけで次回からプログラム部分の説明をしていきます。プログラム部分の解析がいらないという人はこのエントリだけ見れば十分です。