原理的には外野席さんのテキストや2chのループ検証スレの書き込みで詳しく検証されています。

249 名前:ゲーム好き名無しさん[sage] 投稿日:2009/01/20(火) 23:31:35 ID:Q46nAD7C0
なんとなくRSのシードの決定方法を調べてみました。
あまり実用的ではなさそうだけど誰かがすごい方法を思いつくかもしれないのでとりあえず適当に書いてみます。
シードはやはりカートリッジの中に入っている内蔵時計RTCの時刻によって変わるようで、
RTCが初期化されてから現在までに経過した日数を分に換算した値と、
RTC内におけるBCD表記の時間と分をそのまま16進数の値として扱い、それを分に換算して計算した値と1440を足して、
その上位2バイトと下位2バイトをxorしたものが最初のシードになっているようです。
初回起動時と時計が壊れている場合はシードは0x5A0になっていると思います(たぶん)
エミュレータ等を使っていると発売日との兼ね合いで現時点であり得ないシードが生成されるかもしれません。
基本的に1分ごとに値が変わるのでいつ起動したらこのシードになるという予測はしやすいですが、
時間は調整できないしチャンスは一度きりなのでエメラルドのループのような方法でいいのを狙うのは難しそうです。
時計バグの対策とかでロットによって変わってるかもしれません(上のはルビーのロット番号15B E4でしらべました)
適当なので間違ってる可能性もかなりあります。

この書き込みだけでは意味不明だと言う方もおられるでしょう。その場合はヨミさんの記事で簡単な式として表現されています。

それでも駄目だというのでしたら、ジェラートさんの記事に具体的なリストが5日分出されています。

内容はともかくとして、確かなことは「手計算で変動を追うのは難しい」ということでしょう。
まあ59分までなら「5a0~5a9,5b0~5b9,~」というふうに変動しているので多少は解りやすいかと。

具体的にどうやって狙いの初期seedを選ぶのかといいますと

1.まずは内蔵電池を外し、適当にセーブをする
ソフトの背面を見るとY時ドライバーが必要そうな形をしたネジで留められていますが、小さなマイナスドライバーを使って力技でこじ開けることも十分可能です。私は100円ショップで売っていたドライバーで外しました。
2.電池を入れ、起動とともにストップウォッチやタイマーをスタートさせる
電池切れを起こしたセーブデータでは、ミシロタウンの自宅の時計が最初に設定した時間に戻っています。つまり、自宅の時計を見ることで起動から何分経ったのかを把握することも可能です。
3.時間が来たら、リセットをする
どのようなタイミングで変動するかは不明ですが、少なくとも1分単位で変動しているのは確かです。余裕を持ってリセットしましょう。

あとは狙いのフレームでエンカウントできるように微調整をしていくだけです。失敗した場合、1.からやり直しましょう。電池切れ状態でセーブをしないと初期seedが初期化(変な表現ですね)されません。