ここから本文です

ポケモンエメラルドの乱数調整について質問です。

kor********さん

2019/5/617:24:39

ポケモンエメラルドの乱数調整について質問です。

色ちがい乱数をしたかったので、裏IDを特定するためにエメラルドで捕獲したポケモンをYにおくり、KeyBVにてTSVを特定しました。

表ID:08116 裏ID:0842
ということが判明しました。

手始めに3genSerchというツールで101番道路で出る色ちがいポケモンを検出しました。

フレーム:2125F 性格値:96F68A08
ケムッソ 性格:おだやか
が色違いで出現するという結果がでました。

第3世代から第5世代の色ちがいはxor(排他的論理和)という演算をしていて、演算結果が7以下になると色ちがいになるということで、実際に計算してみます。

表ID:08116を2進数にすると、
0001111110110100
裏ID:0842を2進数にすると、
0000001101001010

xorすると、0001111000010001

性格値上位:96F6を2進数にすると、
1001011011110110

xorすると、1000101000001000

性格値下位:8A0Bを2進数にすると、
1000101000001011

xorすると、0000000000000011

これを10進数にすると3となり、色ちがいにになるはずです。しかし、何度やっても2125Fのケムッソは出るのですが、色ちがいになりません。(ツール結果の個体値等も一致してます)

原因は何が考えられるでしょうか。
詳しいかたいましたら、アドバイスください。

閲覧数:
40
回答数:
1

違反報告

ベストアンサーに選ばれた回答

tui********さん

2019/5/619:14:17

エメラルドの表裏IDは
主人公の名前入力の終了時にtimerの値から決定され
以降それを初期SEEDとしてLCG乱数列が計算されていき
博士の最後のセリフにAボタンが押されることを契機として
その時点近くのLCG乱数で裏IDが決まる
という仕組みになっています

したがって、表IDを初期SEEDとしたLCG乱数列をたどっていけば
裏IDになった乱数が見つかる ということは理解できるでしょう

裏IDがどの程度のフレームで決まるのかは
表ID決定から裏ID決定までの時間経過によって変動しますが
最短でも600F辺り、最大は状況次第ですが大きくても3000F程度には収まるかと

質問に書かれた表裏IDについて、この点を確かめてみると
表IDを初期SEEDとした乱数列上の5000Fまでの範囲には裏IDに該当する乱数がありません

表裏IDの特定に誤りがある というのが仕組みからの判断です

質問した人からのコメント

2019/5/7 19:08:17

回答ありがとうございます。
やはり裏IDが間違っており、自分の導き出したものは裏IDではなくTSVでした。
再度算出し直して、無事色野生乱数できました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる