1.はじめに
この記事は Pokémon Past Generation Advent Calendar 2023 の250日目の記事です。
ポケモン3世代を始めとした過去作の乱数調整は、ゲーム起動時に初期Seedが決定され、そこから目標Seedまで消費するのが基本となります。
3世代の場合はEmは「0x0」で固定、RSは電池入りだと分刻みで「0x5A0」から1ずつ増加しますが、FRLGは起動からOP画面を抜けるまでの時間、起動までにキー入力した回数・長さ、ゲーム内設定、使用言語や前期・後期ROMで細かく変動します。
そのため、「起動から何フレームでOP画面を抜ければ、どの初期Seedが出るか」というように、実際に出る初期Seedを収集していく作業が必要となります。
今の時代では眼鏡ポッポさんが集めた初期Seedリストを公開していますので、基本的にはこちらで網羅できますが、後期LGや海外版の初期Seed、あるいは初期Seed追加する場合はイーブイの受け取りや、サンダーを捕獲するなどし、その実数値を元に初期Seedを逆算して集める必要があります。(参考記事)

夜綱さんが公開している「いーぶいでしょきしーどをもとめるつーる」で作業が簡略されているとはいえ、手作業で大量に集めるとなると、かなりの時間がかかり、なおかつ精度も悪いと思いますので、イーブイ受け取り(またはサンダー、ルギア、ホウオウ捕獲) → 実数値を画像認識で読み取り → 個体値特定から初期Seed特定までの作業を自動化するプログラムを作成しました。引いた初期Seedはcsv (またはtxt) ファイルに書き込み。
FRLGでイーブイ受け取りから、個体値を特定して、初期Seedを自動で集めるプログラムを作成しました。
— 奈都 (@Natu5307051) 2024年8月9日
引いた初期Seedはcsv (またはtxt) ファイルに上から追記してくれます。眼鏡ポッポさんの初期Seedビューアーにもそのまま使える親切設計です。 pic.twitter.com/xwwrn3FEEK
2.初期Seed集め自動化プログラム
以下のGoogle Driveからプログラムを入手してください。
※ NX Macro Controller用です。GC(GBA)自動化の導入はこちらの記事を参考にしましょう。
プログラム作成にあたっては夜綱さんのPokemonPRNGをお借りしました。(めっちゃ使いやすかった。)
ゲームでの設定
・「はなしの はやさ」を「はやい」にする。
・ ゲームボーイプレイヤーの画面設定を「フル」にする。
・ ステータスを確認するため、手持ちを1枠以上開けておく。
・ イーブイ以外の場合はマスターボールを手持ちの一番上に配置する。
NX Macro Controllerでの設定
マクロを実行すると、設定画面が表示されますので、各設定を入力してから実行して下さい。
初期Seedが見つからない場合は個体フレームのオフセットを調整して、個体決定フレームと乱数ツールの出力結果を合わせる必要があります。
初期SeedオフセットはGC版の場合は既存の初期Seedリストと合わせるため、Switch版の場合はswitch1とswitch2の起動時間のズレを解消するために使用します。一般的にswitch1はswitch2よりも95F程度起動が遅いようです。

実践
準備ができたら、「タマムシマンション」の屋上でイーブイが入ったモンスターボールの前でレポートを書いて実行します。サンダー、ルギア、ホウオウの場合はそれぞれ固定シンボルの前で実行してください。
初期Seedを取得する度に、初期Seed決定フレームを1ずつ増やしていきますが、うまく取得できなかった場合や、複数のSeedを取得した場合は個体決定フレームを変えてやり直してくれます。

3.サーバー送信について
frlg-seed-serverを起動すした状態で、設定.exeの「送信する」をチェックしてSeedを特定すると、初期Seedをサーバーに蓄積することができます。連携方法はリソースフォルダの「サーバー連携について.txt」に記載しております。

4.各種モードの仕様について
初期Seed集めには複数のモードを用意していますので、状況に応じて、使い分けるとよいです。
最終行から
リソースフォルダ内のcsvまたはtxtの最終行から再開します。例えば、該当ファイルで、2000Fまでの初期Seedが集め終わっていた場合は2001Fから追記していきます。ファイルがない場合はファイルを生成して、GCなら2090F、switchなら1860FからSeedを収集します。
指定フレームから開始
入力したフレームを起点にして、Seedを収集します。2100Fから開始した場合は、2100F → 2101F → 2102F... のように収集します。
初期Seed固定
同じフレームで初期Seedを取得し続けます。既存のリストとのズレを特定するために使うのが主な目的になると思います。
連続
ファイル名のテキストボックスで指定したファイルを参照し、4列目に「連続」と記載されているフレームの±1Fを含む3フレーム分取得し、新たにファイルに書き出します。
リソースフォルダ内の「連続追加.exe」にcsvを読み込ませることで、4列目に「連続」つ自動で入力することが可能です。


5.キー入力調査タブ
初期Seedだけではなく、キー入力調査用のタブも用意しております。押下するボタン、タイミングのパターンは計14パターンあります。
「暗転時から~」のキー入力の場合は押下までのタイミングを少しずつ増やして、何FからSeedが安定するかを調査することが可能です。

以上となります。switch版にも対応しており、活用してくれる方もちょこちょこ見られるので、うれしい限りです。