楽なEmのSID特定

今回は、Emの裏ID(以後SID)の特定が楽になる方法を述べたいと思います。

※ロムリセが出来る環境必須です

まずは、Emの表ID(以後TID)とSIDの決定方法について触れておきます。

さいしょからはじめるを押し、博士との会話で「トレーナーネーム(TN)を決定した瞬間」にTIDが決定されます。
この時にTIDに使われる数字はランダム(調べたところTimerのどれかという記述を発見。詳細は不明)。

次にTIDを16進数に変換したものを初期seedとして乱数列を形成し、ストーリーが始まるトラックのイベント中に
乱数列上位16bitを10進数に変換したものがSID
となります。

よって、TIDを任意の数字にすることはほぼ不可能なものの、TIDから乱数列のリストを出すことでSIDの候補を絞り込むことは可能になります。

用意するもの
・ロムリセ可能なEm
・乱数計算(ツール名)
・エメタイマー

step0 Emをロムリセする
さいしょからはじめるを選択、ロムリセします。
この時、TNを決定した瞬間からA連打で会話を飛ばしてください。

これで、TID決定からSID決定までの時間をある程度把握することが出来、SIDの候補を絞ることが出来ます。

step1 SIDリストを出す
乱数計算の「エンカウント用乱数出力:6」で乱数列を出力します。
初期seedはTIDを16進数に変換したものを入力。私の場合TIDが40702だったので、初期seedは0x9efeとなります。
フレームは620程度まで出力すれば十分です。

step2 SIDを特定する
step1で出力したリストからSID候補を出します。
ゲームを連打で始めた場合、SID決定タイミングは550~610Fと言われています(ロムや連打の精度により差異があるようです)。

私が出したリストはこれ↓
フレーム 乱数列    SID候補(上位16bit(上4桁)を10進数にしたもの)
580F|乱数:0x7E3EDF02 32318
581F|乱数:0xE643F04D 58947
582F|乱数:0x26B3273C 09907 ○
583F|乱数:0xA4A45CFF 42148
585F|乱数:0x68380601 26680
586F|乱数:0x57753CE0 22389
587F|乱数:0xEAB78BD3 60087
588F|乱数:0x94F3334A 38131
589F|乱数:0xFA69C2F5 64105
590F|乱数:0xD6ED08C4 55021
591F|乱数:0x4730D3E7 18224
592F|乱数:0xBC04FBCE 48132
593F|乱数:0xA22C5B29 41516
594F|乱数:0x7B5FAEE8 31583
595F|乱数:0xDE78893B 56952

あとは、これらのSID候補で光る個体を一つずつ出現させていき、虱潰しに探せばいつか色違いが出現します。
その辺の個体検索はエメタイマーでやりましょう。

私は582FのSID09907で御三家が光りました。
一応、使ったフレームはこれ↓
3551F|性格:腕白|個体値:12-30-24-12-27-11|特性:1|性別値:241|性格値:0x92BD2AF1|乱数:0x2AF1C501 ★

ロムリセ出来る環境があるなら、自然遭遇よりも断然この方法が早いです。
SIDを特定できればEmで色孵化が出来るので是非やっておきたいものですね。

質問や問題点、意見がありましたらコメントもしくはツイッターにどうぞ。