DQ2(SFC)グレムリンバグに関する調査結果と考察

更新履歴:
2011/02/11 「具体的な条件と回避法」を新たなページに記述 ←基本的にはこちらを参照ください
2011/02/08 「6.追記:バグ遭遇時の「対処法」」にリンクを追加

目次

  1. 大灯台宝箱のグレムリングループ分け方法
  2. グレムリンバグの発生条件
  3. 実際の発生パターン
  4. まとめ
  5. 終わりに
  6. 追記:バグ遭遇時の「対処法」

1.大灯台宝箱のグレムリングループ分け方法

敵の所属グループ番号を格納する場所が$7E0F3D〜にあり、
通常エンカ時は、一番左の敵からグループ毎に0,1,2…と割り振られる。
grebug_group.jpg
例えば、5匹エンカでグループ番号が上の画像の場合、
「3匹、1匹、1匹」のエンカウントということになる。

大灯台のグレムリンの場合は、宝箱を開けた時にはグループ分けの再施行はされずに、
宝箱前までのエンカで用いられた$7E0F3D〜のメモリが再利用される。

例えば、宝箱以前の最終戦闘で「1匹、1匹、2匹」というグループでエンカウントが起こっていた場合、
$7E0F3Dから順に、「0」「1」「2」「2」という数値が格納され、
グレムリンもそのまま、「0」「1」「2」「2」つまり「1匹、1匹、2匹」というグループで出現する。
(グループ分けの情報は階層やマップを切り替えても保持される。)


宝箱前での最終エンカが3匹以内だった場合、(必ずしもそうなるとは限らないが
最終エンカ以前で4匹以上敵が出現した場合に格納されたグループ番号が残っているため、それが用いられる。
grebug_1.jpg  → grebug_2.jpg
例えば、「1匹、1匹、2匹」のエンカ後、「2匹、1匹」のエンカが発生すると、
上記のように3つ目までが書き換えられ、4つ目は変わらず保持される。

実際出現する画面上の敵より多く、敵の種別IDおよびグループ分けが設定される場合がある。
その場合は、この限りでない。

2.グレムリンバグの発生条件

大灯台イベントでのグレムリンは必ず4匹出現するため、グループ分けに関してはメモリを4匹分、
つまり$7E0F3D〜$7E0F40まで参照する。
その際、グループ番号が飛んでいるとグループ分けが正しく行われず、グレムリンバグが発生してしまう。
例えば、
grebug.jpg
この場合、「1」が飛んでいる(存在しない)ため、バグが発生することになる。

なお、必要な番号が「存在しない」ことが条件となるため、
例えば「0120」のように、後ろに若い番号が来てもバグにはならない。
ただしこの場合は、1匹目と4匹目が同一グループとなる。

3.実際の発生パターン

文章化が難しいため、グループ所属番号で例を挙げる。(下線がバグ対象)
一例であるため、これが全てのパターンとは限らない。
「⇒」以降はバグ回避例であるが、「4匹」以上エンカの場合は全てに共通のため省略する。

画面外設定

ただし、項目1の末尾に注釈を入れたとおり、
戦闘画面の表示以上の敵の敵IDとグループ分けが設定されていることがある。
しばらく調査をしたところ、どうやら、敵のグラフィックサイズの関係で
画面内に全ての敵が収まりきらない場合に起こる現象のようである。
(これはバグではなく、正常な動作であると思われる。)

「画面外の敵ID」が設定されたエンカが絡んだ場合、プレイ画面とは違った結果になる可能性があり、
見た目とは裏腹にグレバグを回避できたり、逆に、バグが発生してしまう場合も考えられる。

など、画面上3匹(複数グループ)で「画面外」が設定され、
その後の戦闘で2〜3匹エンカになった場合が危険である。
ただし、「3匹」といっても必ずしも画面外が設定される可能性があるわけではなく、
例えばドラゴンフライ×3は画面外設定は発生しないように見えたが、これは確実な情報とは言えないかもしれない。
(ちなみに大灯台2〜4Fの調査では、2匹以下のエンカで「画面外」が設定されることはなかった。)

4.まとめ

「具体的な条件と回避法」を新たなページに記述したのでご利用ください。
以下の情報は間違ってはいないが条件が曖昧です。

基本的には、最終エンカが「2,3匹の単一グループ」“以外”であれば、バグはおおよそ回避できると思われる。
この場合の例外は、「3匹エンカで全てが別グループ※」「4匹全てが別グループ」「5匹以上で4匹目まで全て別グループ」のエンカ後に、
3匹以内の2グループでのPT構成
が最終戦闘となる場合である。
(※上記の「画面外設定」により、4つ目に更に別グループが形成されていた場合のみアウトである。)
なお、最終が1匹単体エンカの場合は1つ前倒して考えること。

バグの可能性があるエンカウントを引いてしまった場合の“簡易”回避策

4匹全て別グループ・3匹全て別グループ→最終「2グループ・単一グループ」

 ⇒4匹以上のエンカ、3匹全てが別グループのエンカ

それ以外で、最終「2,3匹の単一グループ」

 ⇒4匹以上のエンカ、2グループ以上のエンカ

・・・と筆者は考えたものの、他にパターンがあっても責任は持てない。

※グレムリンのグラフィックが別モンスターになる現象については未調査です。

5.終わりに

大灯台のグレムリンイベント戦闘のグループ分け設定が「直前戦闘のPT構成に由来する」ことを発見されたのは
筆者の私ではなくbamboo氏であります。
氏の調査結果がなければ今回のバグ発生条件の解明は決して成し得なかったことです。
最後になってしまいましたが、この場を借りて改めて御礼申し上げます。
本当にありがとうございました。

6.追記:バグ遭遇時の「対処法」

グレムリンのPT構成の由来を発見なさったbamboo氏が、なんと「バグ発生時の対処法」をも発見されました。
“バグモンスターも実は選択可能である”という衝撃的な内容です。
記事にまとめて下さいましたので、ぜひこちらからご利用ください。
SFC版DQ1・2 大灯台2F宝箱のグレムリンバグの回避と遭遇時の対処法

文責:Kri (http://com.nicovideo.jp/community/co381358)