最終更新:2011/02/11
基本的には3のまとめのみ見れば充分です。
まず、大灯台2〜7階のエンカウントテーブルは以下のように設定されている。
No. | 00 | 01 | 02 | 03 | 04 | 05 | 06 |
---|---|---|---|---|---|---|---|
名称 | ランダム0 | ランダム1 | ランダム2 | ランダム単数 | 単一グループ出現 | 単体出現 | 固定PT |
大灯台2-3F | サーベルウルフ | ミイラ男 | ゴーゴンヘッド | アンデッドマン | ドラゴンフライ | FF(なし) | FF(なし) |
大灯台4-7F | アンデッドマン | ゴーゴンヘッド | ラリホーアント | グレムリン | ドラゴンフライ | ゴールドオーク | FF(なし) |
参考:SFC DQ1・2 RomMap ver.1.01(86 ◆bC2iBDWl3o氏)
No.04と05(単一グループと単体出現)は、他のグループを絡まずに単一グループ(もしくは単体)で出現する。
そして反対に、No.00〜03(ランダムエンカ)は必ず2グループ以上設定され、
エンカNo.は重複設定されず、かつランダムエンカ同士でしか連結しないので、最大は4グループである。
また、No.03(ランダム単数)選択後は必ずもう1グループ形成される。
前回のまとめに書いた通り、バグの起きる可能性の大半は
“最終エンカが単一グループ”の場合である。
これと上記のエンカ設定とを併せて考えると、
バグの可能性のある「2,3匹の単一グループ」の最終エンカとは「ドラゴンフライ」に限定されることになる。
現実には「サーベルウルフ3匹のみ」「ミイラおとこ3匹のみ」のエンカが存在する。
しかし、上記の設定を加味すると、実は単一グループではないことが分かる。
詳しくは後述するが、グラフィックサイズの関係で4匹目以降が画面外に追い出されているため、
一見1グループしかエンカウントしていないように思えるのである。
つまり、グレムリンバグに沿った記述をすると、
最終エンカがサーベルウルフ3匹のみ・ミイラおとこ3匹のみの場合は、絶対にグレバグは起こらないということになる。
(画面外に最低1グループは居る=最低でも4匹目まではモンスターが新規設定されているため。)
バグの起こる条件の一つとして、
“「4匹4グループ」「3匹3グループ+画面外1グループ」 → 最終:「2グループ」「単一グループ」”というものがあった。
しかし、Lapse Pointer様(T氏)の情報、および筆者自身の解析の結果、
PTが4グループ設定されるのは非常に限定的ということが分かった。
05C804 | LDA $0EF1 | ;"A"=$0EF1(第3グループ) |
05C807 | CMP #$03 | |
05C809 | BNE #$0E ? -> $05C819 | ;第3グループ≠03の時、処理を飛ばす |
05C80B | JSR $C60A -> $05C60A | ;第4グループのモンスターテーブルNo.決定 |
05C80E | CMP #$FF | |
05C810 | BEQ #$07 ? -> $05C819 | ;(敵ID=FF(モンスターテーブル空白)の時、処理を飛ばす) |
05C812 | STA $0EF2 | ;$0EF2=A(第4グループ) |
05C815 | TAY | |
05C816 | JSR $C745 -> $05C745 | ;第4グループの個体数決定 |
05C819 | RTS |
上記がPT決定ルーチンの一部抜粋であるのだが、
第3グループが03(ランダム単数)モンスターの時のみ「第4グループ」が設定されることが読み取れる。
バグに関係する、大灯台2〜7階のエンカウントテーブルに照らし合わせると、
3グループ目が「アンデッドマン(2-3F)」「グレムリン(4-7F)」の場合のみ、4グループ目が設定されると分かる。
なお、この箇所に入るにあたり確率による分岐は見られなかったため、
この条件の場合は“確実に”4グループ設定されると思われる。
前回の記事でも紹介したが、画面上のモンスター以上に敵IDおよびグループ分けが設定されていることがある。
解析を行った結果、敵グラフィックの“横サイズ”合計に応じて合計出現数が制限されていることが分かった。
敵種類 | 横サイズ | 最大出現数 |
---|---|---|
ラリホーアント | 4 | 4 |
グレムリン | 5 | 4 |
ゴーゴンヘッド | 5 | 4 |
ドラゴンフライ | 5 | 5 |
ミイラおとこ | 6 | 4 |
アンデッドマン | 6 | 4 |
サーベルウルフ | 7 | 4 |
参考:SFC DQ1・2 RomMap ver.1.01(86 ◆bC2iBDWl3o氏)
$05C502以降のルーチンによると、
個体の横サイズ×2+個体間(同種同グループ:+1、別種/別グループ:+2)の合計が53以下まで
が実際に出現可能である。
「アンデッドマン・ゴーゴンヘッド・ラリホーアント・グレムリン」の合計サイズは、
(6+5+4+5)×2 + 2×3 = 46 (≦53)
となり、4匹4グループが設定された場合は、必ず画面上に4匹出現する。
(なお、このエンカウントは実際に確認済みである。)
つまり、グループ番号でいうところの012(3)になっている可能性は全く無いということになる。
また、012(2)の可能性についても考察する。
一番大きい組み合わせの例として「ゴーゴン・グレムリン・アンデッド・アンデッド」を計算すると、
(5+5+6+6)×2 + 2×3 = 50 (≦53) となる。
つまり画面内に4匹が収まることとなり、012(2)の可能性も消滅する。
以上のことから、大灯台4〜7階において「4匹目が画面外に設定される」ことは全くない、
つまり、3匹エンカの場合、4匹目は絶対に設定されていないと考えられる。
まずは4種4匹エンカについて考える。
「サーベルウルフ・ミイラ男・ゴーゴンヘッド・アンデッドマン」の横サイズを計算すると、
(7+6+5+6)×2 + 2×3 = 54 (>53)
つまり、4種4匹全てが画面内に収まることはありえない、
言い換えると、012(3)の可能性が存在することになる。
ここで、項目b.の「第4グループの設定条件」を考える。
4グループ目が設定されるのは第3グループにNo.03モンスターが選ばれた時、
つまり、大灯台2〜3階の3匹3グループエンカで「3グループ目(右端)がアンデッドマン」の時、
画面外に確実に4匹目が存在し、しかも別グループ=012(3)のエンカウントということになる。
次に012(2)の可能性を考える。
ミイラ6 | アンデッド6 | サーベル7 | サーベル7 | :(6+6+7+7)×2 + 2+2+1 = 57 |
ゴーゴン5 | アンデッド6 | サーベル7 | サーベル7 | :(5+6+7+7)×2 + 2+2+1 = 55 |
サーベル7 | アンデッド6 | ミイラ6 | ミイラ6 | :(7+6+6+6)×2 + 2+2+1 = 55 |
サーベル7 | ゴーゴン5 | ミイラ6 | ミイラ6 | :(7+5+6+6)×2 + 2+2+1 = 53 |
サーベル7 | ミイラ6 | ゴーゴン5 | ゴーゴン5 | :(7+6+5+5)×2 + 2+2+1 = 51 |
012(2)の“可能性がある”のは、
「3グループ目がサーベルウルフ(他の条件不問)」「ゴーゴンヘッドを含まず3グループ目がミイラおとこ」の場合である。
“可能性”としたのは、3グループ目が1匹のみの可能性もあるからである。
また、001(2)の場合は先の表を右から眺めると良いだろう。
「サーベルウルフ×2+任意の1匹」「ミイラおとこ×2+アンデッドマン」「ミイラおとこ×2+サーベルウルフ」
が、001(2)の可能性があることが分かる。
これを裏返すと、「絶対に001/011(画面外無し)となる具体例」も把握することができる。
つまり、「ゴーゴンを含む2種3匹エンカは、“サーベル2匹”がいない限り画面外4匹目の設定はない。」
(4匹目が設定された場合、サイズに余裕があるため絶対に画面内に現れる。)
(※大灯台2,3階において右端がアンデッドの場合は絶対に安全。
逆に、4〜7階の全ての3匹2種エンカ、および
ゴーゴンを含み「サーベルが0〜1匹」の3匹2種エンカは必ずバグが発生する。はず。)
基本的に、この後に「2匹2グループ以上」のエンカを引けばバグは回避できる。
しかし、
の場合は、2グループを引いても回避できないパターンなので注意すること。
(グループ番号で表すと、012(3) → 0003/0013/0113 → 2グループ の場合。)
回避条件は色々あるものの、一々確認するなんてめんどくさい。そんな時。
ベギラマを習得する。
全体攻撃であれば、選択できるグレムリンが全滅後でも残りの個体にダメージを与えることができる。
ベギラマ未習得、もしくはサマル死亡の場合。
なお、最終エンカウントが1匹単体の時は、エンカ状況を一つ前倒して考えること。
グレムリンバグ発生時のフリーズは、「存在しないグループを攻撃しようとした時」に起こる。
攻撃対象のグループが全滅しそうな時に3人全員で攻撃してしまうと
コンピュータが自動で別のグループを選択してしまい、フリーズする可能性がある。
つまり、攻撃対象“グループ”がターン途中で全滅しそうな時は、防御するなどして手数を調整する必要がある。
(元々2グループ選択可能な時に、別々のグループを「プレイヤー自身が」選択する分には問題ない。)
(ちなみに、ベギラマ等の全体攻撃は「グループを選択する過程がない」ため、フリーズしないのである。)
“コンピュータにグループを選択させないでください”
表示されている個体を全て倒すと、“何も書かれていない枠”のみが残る。
その際、実はカーソルを下に動かすことが出来る。
カーソル位置は、初期位置から順にグループ0、グループ1、グループ2、グループ3に対応しているため、
正しいグループ位置を選択してやると実は攻撃が可能なのである。
逆に言えば、バグ遭遇時に適当に攻撃するとフリーズするのは、存在しないグループを攻撃しようとしているせいである。
(カーソル位置が分からなくなった時は、落ち着いてBボタンでキャンセルすれば問題ない。)
なお、この「選択不可な個体に対する攻撃方法」「カーソル位置と各グループの対応」はbamboo氏の発見である。
参考:SFC版DQ1・2 大灯台2F宝箱のグレムリンバグ遭遇時の対処法(bamboo氏)