今回の初期seedは時間依存の値+MACアドレス。後者は本体によって変動、前者は本体に寄らずこれをraw初期seedと勝手に呼んでいる
狙う初期seedを決めるところから始める場合は左上に目標個体の条件を入力して「計算」ボタンを押せば、
raw初期seedとそこからの消費個数と生成される個体の情報のリストが出力される。
狙う初期seedが決まっていて初めての場合は、左下のストップウォッチで起動からロードまでの時間を計り、
ロード後エンカウントした個体の情報とDSを起動した時の内部時計の時間を入力して「初期seed計算」を押す。
ストップウォッチで計測した秒数と出てきたraw初期seedの下4桁を、右下の「〇〇秒で下位〇〇」の部分にそれぞれ入力する。
初期seedが決まっていて相対時間基準のデータもある場合は右下の「計算」を押す。
起動・ロード時間の一例が表示されるのでそれを元にストップウォッチなりで調整。
エンカウントするポケモンの情報、初期seedから何個目の個体を狙うかを入力して「〜確認リスト」のボタンを押せば、
初期seedがずれた場合の捕まる個体のリストが前後16フレームずつ出力される。
あくまで相対時間基準なのでお好きなタイミングで。
自分はDSメニューで時計見ながら15秒の時点でポケモンBWを選択し起動(←この時点でストップウォッチ開始)
ロードして下画面でCギアオン、「はい」を押すと同時にストップウォッチ停止でやってる。
今までと違ってseedの逆算式で遡る事ができないので、初期seed総当りになる=HGSSroopの順処理と同じことをやっている だから下位の範囲とか消費数の条件を緩くすると計算時間はかなり長くなる。(個体値の条件は関係ない)
とりあえず野生一匹捕まえてみて初期seed特定しましょう
初期seed合わせにまず必要なのは「ロードする時刻(秒単位)を合わせる」こと。
例えば狙う初期seedが0x79010e15の時は9月13日1時4秒など。
この計算は式見て自分で考えるかBWroop、bowline等のツールを使えばいい。
これが合ってれば上位の時刻部分(0xXXXX----、この場合だと7901)が一致する。まずはここが合っていることを確認する。
次に「ロードフレーム(約1/60秒単位)を合わせる」こと。
これは起動から2フレーム毎にロード時まで進み続けるので、A連打して「つづきから」の画面に入ったら、足りない分を待つ。
ロードフレームは絶対的な時間に対応するものではないので一度試してみた結果との差で相対的に算出する。
これを計算するのがBWroop左下のツール。
これが合っていれば下位のフレーム部分(0xXXXX----、上の場合だと0e15)が一致する。
これら二つが一致することで初めて狙った初期seedが出せたことになる。
時刻部分が合うようになったら、フレーム部分のずれを60で割って秒に直して「起動する時刻」を変えればいい。
上の話より、「ロードする時刻(秒単位)」は絶対なので、こっちを弄って時刻部分が合わなくなったらどうしようもないので。
例えば上の例で、9月13日0時58分58秒にDSメニューでポケモンを押して起動し、同日1時0分4秒にロードして実際に出た初期seedのフレーム部分がdffだった(少し早かった)場合、
0xe15-0xdff = 0x16 → 22(フレーム) → 0.367秒
なので起動する時刻を早めて9月13日0時58分57.63秒にすればよい。
H:HP、A:こうげき、B:ぼうぎょ、S:すばやさ、C:とくこう、D:とくぼう
上部の「徘徊」というところにチェックを入れると計算が全て徘徊用になる。
ちなみに個体値生成は小屋から出てボルトロス・トルネロスと会う時。
時刻・消費数をよく確認しましょう。 あと下位2byteが0x1000を超えると出ない。要望があればもっと計算できるようにします
年は「年-2000の値をフレームカウントに加える」というぐらいしか影響しない。
BWroopの初期seed合わせの方法では一度測定した後その測定値との相対時間で目標を算出しているので、
「ロードフレーム測定」と「初期seed合わせ」のときの年が一致すれば何年であっても問題なし。
孵化産の場合は7個消費なので「すぐに受け取った卵の個体」=「ツールの消費数7の個体」でいける
今回は「性格値乱数」と「個体値乱数」が別々に存在し、1秒単位で時間に依存し今まで解析しようとしてたのは前者、Cギアでリセットされこのツールで調整できるのは後者。
Cギアでリセットした個体値乱数は性格値乱数とは独立なので当然性格は不定。
今のところ「128歩毎に手持ちの数だけ消費」しかわかってない。
ペラップで消費するのは性格値乱数の方。