サイファーの日記

過去作の乱数について書きます

BDSP捕獲乱数に挑戦してみた

この記事はPokémon Past Generation Advent Calendar 2023 42日目の記事です。

※2024/1/30追記   Googleドライブにてツールを公開しました。作成するにあたってPokemonPRNGライブラリを利用させていただきました。ライブラリ作成者の夜綱さんに感謝。
※2024/1/31追記 Googleドライブにてツール(v1.11)を公開しました。先日のものと比べて利便性を少し向上させたつもりです。
※2024/2/5追記 修正版を再公開。リストビューが若干使いにくかったのを修正。
※2024/3/2追記 諸事情により非公開

ここでは「ブリリアントダイヤモンド/シャイニングパール」の捕獲乱数について書きます。今から3年前のソフトなので過去作と言えます(?)。バグ技使用でもしないとガンテツボールにあまりゆとりがないので行いました。今回はハマナスパークのカイオーガを狙っていきます。

基本情報

・戦闘乱数にはXoroshiro128+が使用されている。32bit分しかないので今回は総当たりを行った。生成されるまでのプロセスが判明すれば総当たりの必要がなくなるかもしれません。孵化と同じく、0x80000000以上の初期seedはbit反転処理がされている


全体の総当たりには10分弱くらいかかった

・総当たりに必要な情報はムラっけの能力変化を8-9ターン観測して得る。基本的には乱数値(64bit)%20で決定。例えばA↑B↓は0、B↑C↓は5、C↑D↓は10、D↑S↓は15、S↑D↓は19。ただし、どこかが上がり切ってたりすると20の部分が変化する。今回は色々な技も使えるドーブル(こんげんのはどう/れいとうビーム/ふういん/くろいきり)を採用。

カイオーガの技消費はれいとうビームが4、こんげんのはどうが3、アクアリングとぜったいれいど(こちらのレベルの方が高い時)は0。今回は前2つの技を封印して、消費を管理しやすくした。グラードンも調べたが、BDSPは追加効果のある攻撃技は4、ない技は3と全て統一されているのかもしれない。USUM、お前なんだったんだ...

・しゅうかくやこおり等の判定時にムラっけと同じように消費が1つ入る。しゅうかくについては失敗(50%)に終わった場合にも行われる。相手が木の実を持っている場合には行われない。

・捕獲(HP満タン、状態異常なしでモンボの場合)については、乱数値%65536の結果が4連続23193未満となる消費を狙う。23193の数値についてはこちらの計算ミスで若干の誤差があるかもしれない。クリティカル判定が直前に存在するようなので、10消費までしたあとにボールを投げると11でクリティカル判定、12-15で通常の揺れ判定となる。

やってみた

色違いの最大カイオーガを何とか出せたので、実際に捕獲乱数をやりました。とりあえず初手でふういんを行い、れいとうビームこんげんのはどうを封じます。これによってドーブルがやられにくくなり、消費の管理もしやすくなりました。

その後ムラっけの能力変化は「2,18,18,12,8,16,7,11,0」となったので、適当に作ったプログラムにそれを入力。結果は0x2ADB449Dとなりました。PokeFinderのResearcherで「Xoroshiro(BDSP)」を選択し、このseedを入力します。そして、Customを以下の画像のように2つ設定します。1つ目はムラっけ用、2つ目は捕獲判定用です。

すると、256-259の判定を狙えば捕獲できると分かりました。いつもは100消費以内に見つかったのに今回は少し運が悪い。PP的にきついので、しゅうかくスキスワを使います。そして、ドーブルが使うれいビの4消費などを利用しながら15分以上かけて254消費目(数値は「1」でA↑C↓)に到着しました。あとはボールを投げるだけ。しゅうかく判定がされた場合、追加で消費が入るので注意。

感想

HPを全く減らさず、無事にラブラブボール1個でGETできました。正しく管理すれば誰でもできる難易度だと思います。他の伝説ポケモンの技構成は調べていませんが、工夫すれば同様にできるはず。少なくともグラードンは同じようにできそうでした。残りの体力や、状態異常の有無に対応したツールが実装されればもっと便利になりますね!(基本は7世代と同じ)

最後になりますが、戦闘乱数のことについて助言をして下さったニアトさんにこの場をお借りして御礼申し上げます。

いわゆる「でっカイオーガ」。つやが出ていて好き