剣心の戯言

廃墟

てきとうに何か書きます。

ポケモンボックスの乱数調整をしよう

はじめに

この記事はPokémon Past Generation Advent Calender 2022 十日目の記事です。

剣心です。ここではポケモンボックスルビーサファイアで受け取ることができるポケモンについて調べたことをメモしていきます。

 

調査結果

アドレス周りを少し調べただけです。

 

個体生成直前にタイムベースレジスタの値を使って0x80209D90にseedを格納。この時、同様の値を0x80001FD0にも格納。0x80001FD0の値を初期seedとして、LCGを回し、個体が生成される。生成方法はreverse method1と呼ばれるもの(通常のmthod1と性格値の上位16bitと下位16bitの生成順が逆)。

生成されるseedはGC、もしくはWiiの本体時間によって決まるということで問題なさそう。1秒につき、およそ40500000加算される。

 

USB GECKOを用いた際には、0x80001FD0にブレークポイントをかけ、任意のseedに書き換えることで目標の個体を生成することができました。

画像

 

 

乱数調整の検討

乱数調整の手法はエミュですが下記のサイトに掲載されています。

devonstudios.it

これを参考にします。

現状の手段で有効そうな手順は以下のものです。

 

 1. GC、もしくは本体時刻を設定し、決まったフレーム数でタマゴを受け取る。

 2. タマゴを孵化し、初期seedを逆算する。

 3. 1~2の手順を繰り返し、出やすい初期seed(基準seedと仮称する)を探す。

 4. 目標seedと基準seedとの差から、本体時刻を決める。

 5. 1の操作を目標の個体が出るまで繰り返す。

 

 

この手順で私も何度か試しましたが、近くのseedを引けたことは数回で、かなりの試行回数を要すると思います。タマゴは複数個集めてから孵化すると効率が上がります。

また、コロシアムやXD同様に、GCよりもWiiのほうがseedの再現性が取れるようにも感じました。

 

個体生成タイミングは以下の画面でAボタンを押し、タマゴの表示が消えるくらいです。

チルット

 

ジグザグマ

 

最後に

未だに実機(正規環境)の成功例を見たことのない乱数調整です。

しんそくジグザグマの理想個体が欲しい人、実績が欲しい人、ぜひ挑戦してみてはいかがでしょうか。私が喜びます。

 

明日の記事は、ごにさんによるポケモンの捕まえやすさを表す語」についてです。何やらとても面白そうな予感がします。楽しみです。