ミルクの日記

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

【第5世代乱数】SSS4⇔5genSearchの互換性について

5genSearchの登場で本格化した初期seedの概念の違いについて

掲題のツールを使ったことがある人はぜひご一読ください


 

目次

目次を閉じる

 


 

はじめに

 

登場する乱数調整ツール

 

乱数調整ツール

  • 5genSearch
  • SSS4
  • bwseedlist
  • RNG Repoter
  • プラスルツール

 


 

各乱数調整ツールの互換性について

 

SSS4で使っていた初期seedを5genSearchそのまま使用すると、
個体値は同一で性格値乱数列がズレた個体が出現します(逆も然り)

同一作成者のSSS4bwseedlistを使った場合は、このような事象は起こりません

 


 

実際の例

起動時間:2000年1月1日00時00分00秒

同一本体かつ同一ソフト使用して、同じ時間に起動した場合、
同一個体値の結果が出力されますが、ツールによって違う初期seedとなります
※Timer0ズレは考慮しないものとする

 

SSS4の結果例

https://imgur.com/jc7bGJ1.jpg

年,月,日,時,分,秒,Timer0,消費数,H,A,B,C,D,S,めざパ,威力,初期seed
0,1,1,0,0,0,c79,0,30,15,27,18,16,17,じめん,44,58D529DB29A9ED57

 

5genSearchの結果例

https://imgur.com/5gwH02B.jpg

初期seed Vcount Timer0 初期seed
(個体値列)
任意消費 H A B C D S めざパ 入力キー
A022D86E3C927504 2000 1 1 0 0 0 60 C79 58D529DB 0   30 15 27 18 16 17 地44 無し

 


 

初期seedの意味

 

初期seedとは?

乱数調整ツール利用者側の認識としては、
パラメータなどを考慮して起動時間に始めたときの最初のseed値

 

概ね、この認識があれば利用者としては問題ない範囲かと思われます

オフセットとの兼ね合いも、【最初から/続きから】の始め方によって、性格値乱数列の消費数が『補正』されるので0からではない

5genSearchの場合はオフセットが考慮されているので、0からという認識で辻褄が合います

 


 

初期seedの概念の違い

https://imgur.com/aizCo8O.jpg

■結論

SSS45genSearchでは同一個体値でも初期seedが異なるのは、
初期seedの概念が作成者によって異なるからです

 


 

SSS4の初期seed

共通初項から1つ進んだ乱数を初期seed定義している ※1
(※1 違ってたらこっそりご指摘ください)

3.性格値乱数列の決定方法(線形合同法)

性格値seed列{S1[n]}は

S1[n+1] = S1[n] * 0x5D588B656C078965 + 0x269EC3

となる。ただしS1[0]=初期seedで、65bit以上は切り捨て。

乱数r1[n]はS1[n]の上位32bitとなるが、メモリの初期値はS1[0]であり、
上に書いたように最初に使われる乱数はS1[0]ではなくS1[1]の上位32bitなので、実際の乱数として使われるのはr1[1]から。

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


 

5genSearchの初期seed

 

https://imgur.com/A932v9P.jpg

RNG RepoterResearcherタブや、計算結果より共通初項を初期seedと定義しているようです

■計算式(性格値乱数列の決定方法』に基づく)

0xA022D86E3C927504* 0x5D588B656C078965=
0x3a640bcccebcaf7058d529db29834e94

0x58d529db29834e94+ 0x269EC3 =

0x58d529db29a9ed57

 


 

運用上の留意点

性格値乱数列消費数を別途考慮することで、初期seedの互換を持たせることが可能です
※別途オフセットの考慮は必要

 
  • SSS45genSearch・・・性格値乱数消費数を-1
  • 5genSearchSSS4・・・性格値乱数消費数を+1

 


 

プラスルツールでの検索

 

 https://imgur.com/1IfD7zb.jpg

プラスルツールは両方ツールの初期seedに対応して結果を出力させることが可能です

プラスルツールでの『初期seed』に該当する、「seed0」「seed1」はそれぞれ以下の初期seedに対応しています

  • S1[1] SSS4
  • S1[0]5genSearch

(参考:PlusleSeedCalculator.Library.ICalculator インターフェース - Plus Le Tool)

 


 

bwseedlistでの比較

 

 https://imgur.com/FDHTOwe.jpg

性格値乱数列を1消費させる手段として、オフセット+1としております
②と③のリスト結果が一致していることから互換性を持たせることができています

 

①5genSearchの初期seed(オフセット0)

<固定リスト(初期seed:0xA022D86E3C927504+オフセット:0)>
(ID:0-0、ID補正無し)

消費数,乱数,性格,シンクロ,性格値,色違い
0,A022D86E,ひかえめ ,○,D8D429DB,
1,58D529DB,いじっぱり,×,1EE380DC,
2,9EE280DC,ようき  ,○,1FF97FEA,
3,1FF87FEA,おとなしい,×,89EE5FD5,

 

②5genSearchの初期seed(オフセット1)

<固定リスト(初期seed:0xA022D86E3C927504+オフセット:1)>
(ID:0-0、ID補正無し)

消費数,乱数,性格,シンクロ,性格値,色違い
0,58D529DB,いじっぱり,×,1EE380DC,
1,9EE280DC,ようき  ,○,1FF97FEA,
2,1FF87FEA,おとなしい,×,89EE5FD5,
3,89EF5FD5,てれや  ,○,D9036CF7,

 

③SSS4の初期seed(オフセット0)

<固定リスト(初期seed:0x58D529DB29A9ED57+オフセット:0)>
(ID:0-0、ID補正無し)

消費数,乱数,性格,シンクロ,性格値,色違い
0,58D529DB,いじっぱり,×,1EE380DC,
1,9EE280DC,ようき  ,○,1FF97FEA,
2,1FF87FEA,おとなしい,×,89EE5FD5,
3,89EF5FD5,てれや  ,○,D9036CF7,

 


 

さいごに

 

乱数調整ツールによって初期seedの定義が違う実情は、
ツール使用者が正しく仕様を把握して対処するしかないと思われます