ミルクの日記

ポケモンの乱数調整方法を紹介しているサイト

【第5世代乱数】BW BW2 御三家乱数補助資料 生成処理について

https://imgur.com/RjA4c2S.jpeg

BW御三家乱数の仕様について


 

目次

 


 

参考記事

実際のやり方については下記の記事を参照

*bw御三家乱数*

 


 

解説

 

固定乱数用の初期seedを流用する場合

■使用初期seed

年,月,日,時,分,秒,Timer0,消費数,H,A,B,C,D,S,めざパ,威力,初期seed
27,4,14,15,17,14,0,31,31,31,31,31,31,あく,70,9E02B0AEDDD8D30F,←↑

上記の固定乱数で6Vが出る初期seedを使用する場合、『bwseedlist』の固定リストを出力して良さそうな性格値を調べてID乱数を行います

https://imgur.com/L5bqfSB.jpeg

59,95810965,いじっぱり,○,1D814D94,

上記の性格値(0x1D814D94)を光らせるようにID乱数を行った場合、
御三家色違いになるかというとなりません

※固定乱数では色違いになります

58,2DD5725E,ひかえめ ,×,95800965,

上記の性格値(0x95800965)を光らせるようにID乱数を行った場合、
御三家は色違いなります

https://imgur.com/IVTfWpY.jpeg

 

消費数,乱数,性格,シンクロ,性格値,色違い
58,2DD5725E,ひかえめ ,×,95800965,
59,95810965,いじっぱり,○,1D814D94,★
60,9D804D94,ようき  ,○,A13F7EA5,

違いは『性格値』と1つ下の『乱数値』の値を比較して、先頭の文字が一致しているかどうかです

58消費のひかえめ個体は先頭の文字が『9』で一致しているため光りますが、
59消費のいじっぱり個体は『1』と『9』と異なっているので光りません

 


 

■色違いになるかどうかのポイント

性格値の先頭の文字1つ下の乱数の先頭の文字

 


ここまでは、多くの解説ブログでも紹介されている内容ですが、
次の乱数値を何故参照するのかまで説明されているサイトはほぼありません

今回はこのことを踏まえたうえでの解説となります


 

なぜ失敗するのか?

 

固定シンボル・野生ポケモンの性格値には乱数値に一定の補正(ID補正)が入りますが、御三家にはその補正がかからないためです

性格値・性格の決定(固定シンボル・野生)
御三家受け取りや固定シンボルエンカウント・野生ポケモンの出現時に、性格値と性格が決定されるのに使われる。
次に使われる乱数をr1[n]とすると、

・(r1[n]*2)>>32でシンクロ判定
・r1[n+1]^0x00010000が性格値(r1[n+1]^0x80010000の場合もある)

(引用:BW乱数調整解説 乱数の仕組み)

bwseedlist』で『固定リスト』を出力した場合、
赤文字の補正のため、本来の御三家の性格値ではありません

性格値(r1[n+1]^0x80010000』の補正が入った性格値の個体を選んでしまった場合は光りません

 

■IDの補正値

    性格値下位 ^ トレーナーID ^ 裏ID が
    奇数の場合 性格値 | 0x80000000
    偶数の場合 性格値 & 0x7FFFFFFF

(引用:bwpidseedの取説)

 


 

SSS4を御三家の生成処理に対応させる

 

御三家の個体生成処理

5genSearchを使いましょうで終わる内容なのですが、
SSS4で使う場合は下記のポイントを考慮して検索する必要があります

 

乱数の種類 ID補正 個体値生成順

固定乱数

あり HABCDS
御三家乱数 なし HABCDS

徘徊乱数

なし HABDSC

 

野生ポケモン・固定シンボル・化石復元の場合
次に使われるSEEDをS2[n]とすると、S2[n]~S2[n+5]から上記の方法で個体値を計算し、それをHABCDSの個体値とする

<中略>

徘徊ポケモンの場合
<中略>
次に使われるSEEDをS2[n]とすると、S2[n+1]~S2[n+6]から上記の方法で個体値を計算し、それをHABDSCの個体値とする

(引用:BW乱数調整解説 乱数の仕組み)

 


 

SSS4で対応する設定を行う

 

ID補正

https://imgur.com/gL4Knr3.jpeg
色違い性格検索で『徘徊』を選択することで、補正がかからなくなります

 

個体値生成順

https://imgur.com/aVQlbCt.jpeg
個体値の横の徘徊チェックの有無で、個体生成順が変更されます

 

■【検証例】2000年1月1日0時0分0秒の結果

年,月,日,時,分,秒,Timer0,消費数,H,A,B,C,D,S,めざパ,威力,初期seed
①0,1,1,0,0,0,c68,0,8,2,29,22,28,16,かくとう,41,0DB49CFBC3914565 固定
②0,1,1,0,0,0,c68,0,2,29,22,25,28,16,いわ,33,0DB49CFBC3914565 徘徊

https://imgur.com/ObbwTH7.jpeg
個体値の生成処理を踏まえて固定の結果をS2[n+1]に変更してから比較すると、
徘徊ポケモン個体値生成順(HABDSC)に並び替えられていることが確認できます

御三家乱数の場合は、チェックをつけてはいけないボタンとなります

 


 

まとめ

生成処理を調べて、それに対応するツールの設定を行えば、
本来対応していない処理にも対応することができる(ことがあります)