サイファーの日記

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

ポケモンの瞬きによるTSV特定

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

scrapbox.io

 

現在、七世代のTSVを特定する手法は、御三家の個体値を利用する方法とID調整を事前に済ませる方法の2種類が存在しています。今回は、3つ目として御三家の瞬きを利用する手法を提案します。利点は御三家を受け取ったその場で行うことができ、作業自体が数分で終わるところ。個体値を特定する手間が省け、人によっては困難である針の観測も不要です。*1

手持ち画面の瞬きの仕組み

七世代の手持ち画面にいるポケモンの瞬きは64bit SFMTを使い、次のようにして決定します。30fpsです。

次の瞬きまでの間隔(F) = 乱数値 % 120 + 130

すごく簡単ですね!*2引いたG7TIDとこれらの複数個の瞬きの情報があればTSVとTRVが特定できます。

七世代の御三家はみな目が大きいため、観測するにはうってつけです。

実践

まず、ゲームを始めて御三家を受け取るところまでソフトを終了させずに進めます。名前決定時に「いいえ」を一回以上選択するのもアウト。ホームボタンを押して一時的に中断するのはOK。ここについては個体値を利用した方法と同様です。

そして、手持ち画面に移ります。ここで瞬きを連続で12回程度観測します。下画面の御三家をタッチすると不都合が起こる(モーションのために乱数が余計に消費される?)ようなので、観測の最中はタッチしないように。

御三家がヒノアラシじゃなくて本当に良かった

 

観測した瞬きを自作ツールに入力します。G7TIDと消費数の上限も入力します。無印だと順当に進めれば8万消費くらいでした。USUMの消費数はもっと少ないはず。APIを利用させて頂いているので10秒ほどで結果が求まります。API作成者のニアトさんに感謝。それらしい結果が求まったらゲームを終了しても構いません。

おわりに

説明は以上になります。ニアトさんのAPIを使用させて頂いているので、ツールの配布予定はありません。瞬き中の画面を動画として撮影しておくと、後になっても見返せるので安心だと思います。

*1:任意のIDを狙う場合は、ID調整を行う以外にありません。あくまでTSVを早急に特定したい人向けです。

*2:フィールド上ということもあり、SOS乱数の時は少しややこしくなります。詳しくは割愛。