ポケモンWikiでは記事の投稿、加筆、検証、修正等に参加、協力してくださる方を必要としています。方法や詳細はポケモンWikiに投稿するにはをご覧ください。

エメラルドループ

提供: ポケモンWiki
ナビゲーションに移動検索に移動

エメラルドループとは、狭義にはポケットモンスター エメラルドおよび内部時間の停止したポケットモンスター ルビー・サファイアにおいて、リセット厳選を行う際に、まったく同じ個体が何度も出現する現象のことである。これを応用した乱数調整手法も存在し、その手法自体もエメラルドループ(あるいはその略称であるエメループ)と呼ばれていた。[1]

発生事象

ここでは主な事例を挙げるが、これ以外にもエメラルドループの関連する事象は存在する。特に「リセットして粘っても、同じ何かが出続ける」というのはエメラルドループが関連しているとみなしてよい。

  • フィールド上で話しかけると対戦になるポケモン(特に伝説のポケモン)の個体値などを粘るために、リセットなどを繰り返して何度も再試行するが、個体値、性別性格などが全く同じになる。
  • ミナモデパートのクジを同様に行っても同じ当選番号になる。

発生原因

毎回個体値が違うポケモンを出す、エンカウントを発生させる、与えるダメージを変動させるなど、ゲームでは「ランダム」な要素が必要不可欠となる。これを作るためにゲームでは「乱数」といわれる要素が用いられる。ただし、コンピューターは完全にランダムな数字を作成することはできない(ハードウェア乱数発生器を除く)。そのため、完全にランダムではないが、使用用途からすればランダムとみなせる、「擬似乱数」が用いられる。擬似乱数のほとんどは一定の計算式に従って内部値を更新しながら、その計算結果を用いて「ランダムな」値を出力するものであるため、初期値が定まれば、それ以降の擬似乱数の系列がすべて確定する。乱数調整においては、この内部値の更新は乱数の消費と呼ばれる。

第三世代のGBAソフトでは、約1/60秒ごとに行われる画面の再描画に合わせて乱数が更新される仕様となっており、これ以外の消費の発生回数は無視できるほど少ないため、基本的には初期値と起動(あるいはソフトリセット)からの経過時間に依存して乱数が決定すると見なせる。

エメラルドでは、擬似乱数の初期値が0で固定されているため、乱数は起動からの経過時間のみに依存する。「個体値粘り」などの状況では、時間の短縮化を図ることが多く、このため前述の時間が等しくなるため、擬似乱数の出力が同じになってしまう。

ルビー・サファイアでは擬似乱数の初期値がRTC(ゲーム内時間の記録のために使われている)の値に依存して決定するため、通常であればループ現象は発生しない。しかしRTCを動かすための電池が切れている場合には初期値が固定されるため、エメラルドと同様にループ現象が起こる。

ファイアレッド・リーフグリーンでは、擬似乱数の初期値がシステムクロックから取得されており、通常の操作では値の再現が起こらないため、ループ現象が発生することは無い。[2]

予防

ゲーム開始からの時間を変えることでこの事象を防ぐことができるため、オープニングを止めるタイミングを変える、対象のポケモンに話すまでの時間を変えるなどが効果的である。ただし、時間を変えたとしてもリセットを行った場合は、「ゲームを開始してからの経過時間」がリセットされ、「リセットしてからの経過時間」が用いられるため同事象が発生することになる。

方法

特定のフレームに到達した段階でAボタンを押してエンカウントする、またはタマゴを貰うことによって決まった個体値の個体を手に入れることができる。

色違いに関してはIDと裏IDに依存しているため、効率良く色違いをエメラルドループで手に入れる場合はIDを乱数調整で特定のものに調整する。この場合、ニューゲーム時に特定のフレームに達した際にAボタンを押してIDを調整するという方法を取る(ルビー・サファイアのみ)。それができない場合は、自力で色違いを捕獲し、そのフレーム数と性格値をツールに入力して特定する。

目的フレームまでの待機時間が長い場合、IDを乱数調整で調整した上でニューゲーム開始からリセットしていないROMの現在seedを通信対戦を介してバトルビデオに保存すると良い。ニューゲーム開始からリセットの間のみIDに依存した初期seedとなるため、これを活かせば通常20日ほどの待機を必要とする現在seedにすらも短時間で到達でき、バトルビデオを再生するだけでそうしたseedまでスキップすることができる。

原始的な方法としては、ゲームキューブのワイヤレスレシーバーとウェーブバードを使って同時操作することでフレームを一致させ、IDと裏IDが同一のROMを作るというものがある。

関連項目

外部リンク

  1. 「乱数調整」という用語が一般化したことや、乱数調整の対象が多岐にわたり「ループ」という呼称が実情にそぐわなくなったことなどにより、この呼称は現在ではほとんど使われなくなっている。
  2. ただしキー入力受付の間隔はフレーム単位なので、初期値が決定するタイミングまでの時間を測り、なおかつキー操作も一定にすれば、意図的に初期値を再現させることは可能。