最終更新:
2011/02/26 ↓の聖水トヘロス効果について訂正。
2011/02/23 ロンダルキア大地に関する記述を「補足」に追加
基本的には3.まとめのみ見ればよい。
ヘッダ部を削除したROMにて$059700以降がエンカウント判定のルーチンである。
このルーチンでは、以下の処理が行われている。
ノーエンカフラグと思われるRAMアドレスの取得処理がいくつか存在するが、
詳細未解析のためここでは省略する。
現在位置での地形タイプは$7E0081に書き込まれており、00h〜0Bhまで存在する。
取得後にDQ2の場合のみ+0Ch(12)してから$05B515のデータアドレスを参照し、基礎エンカ指数を取得する。
以下が基礎エンカ指数の設定値である。
DQ1 | DQ2 | |||||
---|---|---|---|---|---|---|
00h | 高山・浅瀬 | 0 | 0Ch | 高山・浅瀬 | 0 | |
01h | 海 | 0 | 0Dh | 海 | 3 | |
02h | 毒沼 | 12 | 0Eh | 毒沼 | 7 | |
03h | 草原・茂み | 5 | 0Fh | 草原・茂み | 5 | |
04h | 氷原 | 10 | 10h | 氷原 | 7 | |
05h | 森林 | 10 | 11h | 森林 | 9 | |
06h | 山 | 14 | 12h | 山 | 12 | |
07h | 砂漠 | 10 | 13h | 砂漠 | 7 | |
08h | 城・町・塔 | 0 | 14h | 城・町・塔 | 0 | |
09h | 洞窟 | 0 | 15h | 洞窟 | 0 | |
0Ah | 橋 | 10 | 16h | 橋 | 10 | |
0Bh | 不明 | 0 | 17h | 不明 | 0 |
参考:SFC DQ1・2 RomMap ver.1.01(86 ◆bC2iBDWl3o氏)
なお、この表とは別に、ダンジョンの基礎エンカ指数は「6」という設定がなされており、
地形タイプに関わらず「ダンジョン判定」が優先される。
DQ1の砂漠は山や毒沼並みにエンカ指数が高いとの説があったが、
上記を見る限りでは誤りであることが分かる。
基礎エンカ指数ごとに「歩数閾値(仮称)」が存在する。
歩数が多いほどエンカ指数が高くなる(詳細は後述)のだが、その閾値の一部は基礎エンカ指数毎に異なっている。
$0597DD以降のデータアドレスで設定されており、以下がその値である。
基礎エンカ指数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
歩数閾値 | 0 | 255 | 128 | 85 | 64 | 51 | 42 | 36 | 32 | 28 | 25 | 23 | 21 | 19 | 18 | 17 | 16 |
例:DQ1の山=基礎エンカ指数14、歩数閾値18
$7E0EEE(エンカテーブル配置番号)が00かつ、$7E0070が80未満の時にエンカ指数の1/2処理がなされる。
調査した限りでは$7E0070の値は
「DQ1フィールド:00、DQ1町・洞窟:01、DQ2フィールド80、DQ2町・洞窟81」であった。
つまり、DQ1のエンカ配置00地域=
ラダトーム地域(以下の範囲)でエンカ指数が半分になっていると分かる。
参考:モンスター遭遇テーブルデータ(dq_analyzer / Shingo Endo氏)
$7E0027に歩数カウントが格納されており、その数値に応じてエンカ指数が増減する。
歩数が少ない場合は、地形に関係なく条件は同一である。
歩数 | エンカ指数係数 |
---|---|
歩数<5 | ×1/8 |
5≦歩数<9 | ×1/4 |
9≦歩数<12 | ×1/2 |
なお、除算の小数点以下は切り捨てられる。
単純な歩数による分岐のほかに、歩数閾値に応じた条件分岐が存在する。
歩数 | エンカ指数係数 | ||
---|---|---|---|
歩数 | <歩数閾値×1 | ×(1-1/4) | |
歩数閾値×1 | ≦歩数 | <歩数閾値×2 | ×(1+1/2) |
歩数閾値×2 | ≦歩数 | <歩数閾値×3 | ×2 |
歩数閾値×3 | ≦歩数 | ×4 |
除算は小数点以下切り捨てのため、必ずしも、1+1/2=1.5や1-1/4=3/4になるとは限らない。
乱数取得サブルーチン$05A550を呼び出し、8bitの乱数を取得する。
(線形合同法のアレンジで16桁の乱数値を生成しており、その一部を8bitの乱数として取得している。)
その後、2c〜2eでの係数を加味したエンカ指数と比較を行う。
乱数≧エンカ指数の時は、歩数カウントを1つ増やし、以上のエンカウント判定ルーチンを終了する。
つまりエンカウントしない。
(なお、歩数カウントの上限は250であるが、カウントが増えなくなるだけで、250歩でエンカが発生するわけではない。)
乱数<エンカ指数の時、歩数=0(,255※)の際は歩数カウントを1つ増やしてエンカウント判定ルーチンを終了する。
歩数≠0の場合は、トヘロス・聖水効果の有無を取得しに行く。2gに続く。
(※歩数カウントFFh(255)とは、マップ切り替え後に格納される値のようである。)
トヘロス・聖水の効果判定は$0597EEのサブルーチンで取得する。
効果が認められる場合は、歩数カウントを1つ増やしてエンカウント判定ルーチンを終了する。
効果がない場合、$7E10B9を+1し、エンカウント判定ルーチンを終了する。
詳細は未解析であるが、フィールド上で$7E10B9=01になるとエンカウントが発生するようである。
(戦闘終了後、$7E10B9は0に戻っている。)
エンカウントの条件は、歩数カウント≠0(・0xFF)、トヘロス・聖水未使用かつ、
乱数(最大255)<エンカ指数 の時であり、
エンカ指数は、地形と歩数に応じて変わる。
確定エンカ歩数等は無く、常に確率エンカウントである。
また、DQ1ラダトーム城周辺はエンカ指数が1/2処理される(歩数閾値には影響しない。)
これらをまとめると以下の表になる。
(エンカ“率”として見たい場合は、下記の「エンカ指数」を256で割れば良い。)
なお歩数は、いわゆる「半歩」につき1増加とカウントする。
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜50 | 51〜101 | 102〜152 | 153〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 0 | 1 | 2 | 4 | 7 | 10 | 20 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜41 | 42〜83 | 84〜125 | 126〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 0 | 1 | 3 | 5 | 9 | 12 | 24 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜24 | 25〜49 | 50〜74 | 75〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 1 | 2 | 4 | 8 | 15 | 20 | 40 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜20 | 21〜41 | 42〜62 | 63〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 1 | 3 | 5 | 9 | 18 | 24 | 48 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜17 | 18〜35 | 36〜53 | 54〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 1 | 3 | 6 | 11 | 21 | 28 | 56 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜50 | 51〜101 | 102〜152 | 153〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 0 | 0 | 1 | 2 | 3 | 4 | 8 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜24 | 25〜49 | 50〜74 | 75〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 0 | 1 | 2 | 4 | 7 | 10 | 20 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜20 | 21〜41 | 42〜62 | 63〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 0 | 1 | 3 | 5 | 9 | 12 | 24 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜17 | 18〜35 | 36〜53 | 54〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 0 | 1 | 3 | 6 | 10 | 14 | 28 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜84 | 85〜169 | 170〜 |
---|---|---|---|---|---|---|
エンカ指数 | 0 | 0 | 1 | 3 | 4 | 6 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜50 | 51〜101 | 102〜152 | 153〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 0 | 1 | 2 | 4 | 7 | 10 | 20 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜41 | 42〜83 | 84〜125 | 126〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 0 | 1 | 3 | 5 | 9 | 12 | 24 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜35 | 36〜71 | 72〜107 | 108〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 0 | 1 | 3 | 6 | 10 | 14 | 28 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜27 | 28〜55 | 56〜83 | 84〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 1 | 2 | 3 | 7 | 13 | 18 | 36 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜24 | 25〜49 | 50〜74 | 75〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 1 | 2 | 4 | 8 | 15 | 20 | 40 |
歩数 | 1〜4 | 5〜8 | 9〜11 | 12〜20 | 21〜41 | 42〜62 | 63〜 |
---|---|---|---|---|---|---|---|
エンカ指数 | 1 | 3 | 5 | 9 | 18 | 24 | 48 |