エンカウント 一覧

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

さて、前回の時点で、1番目のモンスターを決定する実装まで説明しました。

2番目以降のモンスターを決定するSRは

7F01混成モンスター1~5用
7F581体のみ+混成5種をお供にするモンスター用
7F71単一種出現モンスター1~4,夜のみモンスター用
7FAE1体のみ出現用
7FB5固定パーティ1,2用

の5種類です。これを順番に見ていきます。

続きを読む


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

今回からプログラム部分の実装を見ていきます。エンカウントの解析する上で一番やっかいなのは「RAMアクセスが多すぎて、そのアドレスの意味が何を表しているのかよくわからない」ことです。普通はその場で固定長のデータアクセス用のSRをコールするので、その場その場でこのアドレスにはどの値がセットされるというのはすぐわかるのですが、必要なパラメーターが多すぎるためにあらかじめ用意したRAM領域にごそっとコピーしてから処理を開始する、という実装になっているようです。この処理はSR: $068195で行っているので、それぞれの値がどのアドレスにセットされるのかをまずまとめておきます(その1のエントリ参照のこと)。なお、このSRでは延々とエンカウント、エンカウント種別から値を取得してRAMにセット、という処理しかしていないのでここでは省略します。

続きを読む


スポンサーリンク

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

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

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

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

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


DQ3 エンカウント解析+エンカウント率アップ変更

以前にもちょっと書きましたが、SFC版のDQ3のエンカウント率はFC版と比べると明らかに少ないです(特にダンジョンで)。移動スピードが上がった上に盗賊のしのびあしを使ってしまうとネクロゴンドの洞窟などピクニック気分で踏破できてしまいます。自分の経験では、FC版では洞窟の入口までたどり着くのに一苦労、稲妻の剣、刃の鎧を取るのにもう一苦労、それでようやく最終フロアをなんとか突破、という感じだったのですが、SFC版では下手すると稲妻の剣を回収してそのまま頂上まで行けてしまう、というのがプレイしていての実感でした。というわけで、エンカウントの仕組みを理解し、エンカウント頻度を上げるようにすることを目標とします。幸いバイナリwikiにエンカウント用のRAMの情報があるので($7EF796-7)、Snes9x Debuggerで$7EF796にWriteのブレイクポイントを張れば($7EF796の値を変更する部分でプログラムを止めるということ)、関係している部分は簡単に分かります。

続きを読む


スポンサーリンク

DQ3 エンカウント解析サイト他

某スレに張ってあったバイナリwikiとは別の解析メインのサイトです。

http://www14.atwiki.jp/dq3_gb/pages/1.html

自分が面倒くさくてまじめに解析するのをサボっていたエンカウント部分の解析が非常に意義があります。というわけで今後に期待。

このサイトを見ていて気が付いたのですが、「オルテガのかぶと」って商人が鑑定すると「特別な効果がある」と言われるくせに実際の効果があるのか疑問です。耐性アイテムの一覧には存在しない上に、おそらく対象と思われるラリホー・マヌーサ・ルカニ系の成否判定部分でオルテガのかぶと(アイテムID#$76)を装備している際の特殊処理があるようにも見えず、結果として耐性計算になにか影響を与えているとは思えません。これってバグなんですかね?「かかりにくくなる」といういまいち実感の湧きにくい部分なので誰も気が付いてないのかも知れません。情報お持ちの方がいればお願いします。(機能が実装されていないのならば実装するつもりなので)

(4/6追記)
コメント情報によると、やはりSFC版では鑑定メッセージだけで実際の効果は無いようですね。効果があるのはGBC版からだそうです。GBC版でも実際の効果は「ラリホー・マホトーン・ルカニ系」とか「補助呪文」とか各攻略サイトでもまちまちになってますね。効果を実装するには

  1. オルテガのかぶと装備時に運のよさも上げる
  2. 耐性種類に「補助呪文系」を追加し通常の耐性アイテムと同じ扱いにする

がありますが、幸いにして「耐性アイテム」のデータは2ビット余りがあるのでこのうち1ビットを使ってラリホー、マホトーン、マヌーサ、メダパニ、ルカニ耐性を設定できるようにします。情報どうもありがとうございました。


1 2