# ポケモンXD 表裏ID調整&メソッドずれ個体乱数調整 乱数調整がテーマなので、苦手な方はブラウザバックをお願いします。 ## はじめに <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">XD TID/SID両方を指定したID調整に成功しました。(2021/12/31)<br><br>初期seed:0x0B106E6A<br>108749F(207回パーティ生成+1280F待機)<br>TID:0<br>SID:28552 <a href="https://t.co/tBMK3MqpCj">pic.twitter.com/tBMK3MqpCj</a></p>&mdash; メイユール (@meilleur_pkmn) <a href="https://twitter.com/meilleur_pkmn/status/1476859137208504320?ref_src=twsrc%5Etfw">December 31, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">XD ダークポチエナの乱数調整に成功しました。(2022/1/9)<br>事前にID調整を行い意図的にメソッドずれを起こすことで出現する個体です。<br><br>意地っ張り 31-31-24-23-30-21<br>seed:0xF5BB3531+(32+2*8+63*14+2*6)消費<br>強制消費1:0 <a href="https://t.co/qpFOwkw7qd">pic.twitter.com/qpFOwkw7qd</a></p>&mdash; メイユール (@meilleur_pkmn) <a href="https://twitter.com/meilleur_pkmn/status/1480182271256952835?ref_src=twsrc%5Etfw">January 9, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ポケモンXDでは前作ポケモンコロシアムと異なり、ダークポケモンの色違いは入手不可能である一方、相手が繰り出すポケモンが色違い回避処理によって再計算された場合に通常入手不可能な個体が出現します。ポケモンXD乱数調整の開拓者であるギンザルさんはこれを「メソッドずれ」(ダークポケモンの性格値が再計算される)/「位置ずれ」(通常ポケモンが再計算されることで通常はスキップされる乱数からダークポケモンが生成される)と呼んでいます。 かけらさんのXDQuickBattleSearchや夜綱さんのXDSearch(同梱のID調整ツール)では、色違いになる性格値を指定することで、任意の「ずれ個体」を生成するIDを引き当てることができます。ただしこの場合、TIDが好みのものになるかはわかりません。 表裏IDを指定すること...例えば、TID:0でSIDをずれが発生するように調整すること...は、人力ではたいへんですが、[初期seed厳選を自動化](https://hackmd.io/@meilleur-pkmn/xd-initial-seed-sorter)すれば現実的に狙えます。 ## 解説 ### ID調整 今回はジュペッタのいじっぱり31-11-31-0-31-31のメソッドずれ個体が出現するTID:0, SID:28552を狙います。表が0なので表xor裏を28552にする裏は当然28552というわけです。 ずれ個体の検索には、ギンザルさんのxdcheckを使用します。「色違い回避ルーチンを考慮する」を有効にしてID欄を空白にすると総当たりで表示されます。 ![](https://i.imgur.com/oCmEEY2.png) 意地っ張りで、できるだけ多くのVを指定して、使わないCは形が綺麗なVか逆Vであってほしくて...と指定したら大事なAが欠けてしまったけど、最新世代には王冠があるので問題なしとします。 目標にしたIDが実際に出現するか確認し、自動化ツールに指定する目標seedを調べるためには、かけらさんのXDQuickBattleSearchを使用します。リストになければその表裏IDの組み合わせはポケモンXDには存在しません、諦めましょう。 あとは、求められたIDのseedを拙作XDInitialSeedSorterのsetting.jsonにセットして回してあげるだけです。アプリケーション終了時の現在seedを夜綱さんのツールにかければ、指定した表裏IDが候補に挙がることを確認できるでしょう。 <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">XDSearchを使ったID調整講座 <a href="https://t.co/6nj3VHzo69">https://t.co/6nj3VHzo69</a></p>&mdash; 夜綱🦜<🎍 (@sub_827) <a href="https://twitter.com/sub_827/status/1383353440194031616?ref_src=twsrc%5Etfw">April 17, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 余分に残す消費数は500000のままでいいでしょう。おおよそ300000~800000Fの範囲に出ます。それならもう少し少なく出来そうですが、いますぐバトルのパーティ生成が数百回程度、AB連打は簡単に自動化できるので問題ありません。越えてしまうほうが大問題です。後述します。 ついでですが、最後のフレーム押しもArduinoに任せてしまいましょう。おすすめは夜綱さんの[OCRA GC Controller](https://twitter.com/sub_827/status/1367618472671289345)です。「はじめから」>「はい」に手動でカーソルを合わせてからArduinoに繋ぎ替えて実行する、TN「キリン」で1280F待機するサンプルを載せておきます。 ``` Press A -s=0 Wait 1500 Press A Wait 500 Press dD,dR,A,dD,dD,dR,dR,dR,dR,dR,dR,A,dD,dR,A,dD,dD,dD,A -i=300 Hit A 1280 -c=-5 ``` ### ダークポケモンの乱数調整 ID調整が成功したことの確認がてら、試しにポチエナのメソッドずれ個体を狙ってみます。ポチエナはフィールドのNPC等不定消費がない上、戦闘突入時のnずれもないため、ポケモンXDでは最も乱数調整が簡単な部類のポケモンです。 狙う個体に対して、色違い回避が発生しなかった場合の個体を調べてXDSearchの目標個体に設定します。 ![](https://i.imgur.com/K0EA2O1.png) ![](https://i.imgur.com/yxqis93.png) 開始時seedを対象にXDInitialSeedSorterを回します。いまさらですが、ダブルクリックで実行するより、Powershellなりコマンドプロンプトなりから実行したほうが良いアプリケーションです。最後に現在のseedを出力しているのを確認することができます。 ここからは任意の手段で消費数を合わせれば、色違い回避ルーチンが発生したずれ個体が出現するはずです。 <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">XDSearchを使ったXD乱数講座 本番編</p>&mdash; 夜綱🦜<🎍 (@sub_827) <a href="https://twitter.com/sub_827/status/1299340779412889601?ref_src=twsrc%5Etfw">August 28, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 私は、今回はロード後に再びseedを求めて微調整しました。本命のジュペッタのように不定消費があるフィールドではどうしましょう。事前に強制消費の範囲を調べておいて当てにいくことになるでしょうか。成功したらこの記事を更新するかもしれません。 <blockquote class="twitter-tweet"><p lang="und" dir="ltr">[1/2] <a href="https://t.co/bXi2SGHQZh">pic.twitter.com/bXi2SGHQZh</a></p>&mdash; メイユール (@meilleur_pkmn) <a href="https://twitter.com/meilleur_pkmn/status/1480186808885743616?ref_src=twsrc%5Etfw">January 9, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ## ID調整向け おまけ 拙作ツールは大量消費のためにファイヤーを出している時間を厳密には管理していないため、時折消費数を超過したり、(夜綱さんのツールでチェックできる最大の)1000000消費に収めることができないことを確認しています。仕事に行く前にセットして、帰ってきて失敗していたらがっかりですよね(後者は手計算すればいいですが) これを防ぐために、Verifier4IDManipulation.ps1 というおまけスクリプトをリポジトリに置いてあります。Powershell 7以上 / [PokemonCoRNGLibrary](https://github.com/yatsuna827/PokemonCoRNGLibrary)の現在Releasesに置いてあるものより新しいバイナリ / [PokemonPRNG](https://github.com/yatsuna827/PokemonPRNG)が必要なので準備に少し手間がかかりますが、確実にXDSearchのID調整と連携したID調整ができるseedに誘導することができます。 XDInitialSeedSorter.exeと同じディレクトリにPokemonCoRNGLibrary.dllとPokemonPRNG.dll、Verifier4IDManipulation.ps1を置き、Powershellから `.\Verifier4IDManipulation.ps1` としてやるだけです。XDInitialSeedSorterの結果を監視し、上述の目的を達成していなければ再びXDInitialSeedSorterを実行します。 ## おわりに 以上簡単にですが、表裏ID調整とずれ個体の乱数調整についてのメモとします。 更新予定...