かけらの記録ノート

かけらの記録ノート

主にポケモンの乱数について語るブログ

【チャンネル乱数】ポン円ジラーチ

ポン円年初来高値更新記念。

受け取り時
f:id:sina_poke:20211103015426p:plain
f:id:sina_poke:20211103015444p:plain

NN変更画面
f:id:sina_poke:20211103043035p:plain
f:id:sina_poke:20211103043018p:plain

NN変更後
f:id:sina_poke:20211103015510p:plain
f:id:sina_poke:20211103015527p:plain

seed: 0x76EC87FD なまいき xx-xx-xx-30-29-0

ゲームボーイプレイヤーではありません。為替の方ね
受け取り言語がイギリスなのでポンドにしました。円からめたNN難しいですよね。
ポンドなのに最遅なのはちょっとアレな気がしますが、いい個体が見つからなかったのです。ゆびふりガチ対戦(古のスペシャルレート)では最遅が理想なので良しということで。

さて、この個体ですが、デモ消費を利用し、かつXDでしか実現できないIDとなっております。

デモ消費での猶予も短めで、少し工夫が必要な個体です。XDでのNN変更ということで、Coと同じように変換されるか不安でしたが、問題ないみたいでした。

例によって自動化で初期シードの厳選を行ったので、2日で成功できました。
GCマクロコンの解説記事などを近日上げるかもしれないので、知識のある人は使ってみてください。

【チャンネル乱数】意地っ張り◆最高個体ジラーチ

チャンネルジラーチの乱数調整を久しぶりにやりました。
f:id:sina_poke:20210717090049p:plain
f:id:sina_poke:20210717090107p:plain
seed:E23F3FFA いじっぱり◆ xx-xx-xx-30-xx-30 (個体値は伏せます)

この個体をツールで調べてみると分かりますが、通常の消費方法では到達不可能な個体だと思います。目標のシードがタイトル消費の再計算によって飛ばされてしまうためです。これを狙うにはペイントによる消費が必要になりますが、現実的ではありません。
そこで、新しい消費の手法が発見されたので、それを用いて消費を行いました。詳しくは伏せますが、理論上はすべての個体がペイントなしで現実的に狙えるようになると思われます。今回の個体では、0x96b64698から0x99d106ceまでの消費を行いました。
試しに適当にやってみただけなのでまともなツールができていません。仕組みの詳細な解析や消費行動の最適化など、結構難しい問題があるためです。その辺はポさんがまとめてくれているので続報を待ちましょう。

以下日記です。
こいつをやるに当たって、自動化用のツールを色々作りました。
f:id:sina_poke:20210717091243p:plain
初期シードの厳選や最後のシードの調整部分など。pythonの画像認識が💩なせいで実装がとても大変でした。テンプレートマッチングのゴリ押しだけでは無理だった。
マクロコンの方からソフトリセットはできないと思うので、Arduinoを通してサーボを使って物理的にソフトリセットを行いました。ガチャガチャうるさいのがアレですが、完全放置でシード厳選してくれるのが強いです。上のような神シードを引いてくれました。
GC自動化もっと流行れ。

製作したツールの一覧

CoTool
コロシアム乱数汎用ツール。
f:id:sina_poke:20210607015831p:plain
sina-poke.hatenablog.com
sina-poke.hatenablog.com

XDQuickBattleSearch
いますぐバトルでのシードの特定やID調整を行うことのできるXD乱数用ツール。
[サイドン/ファイヤー検索]というのははダメ計や素早さから検索できるやつです。
f:id:sina_poke:20210607015844p:plain
sina-poke.hatenablog.com
sina-poke.hatenablog.com

XYBlinkSearch
XYのID調整用のツール。マイコンを使うことで初期シードの調整に成功しました。
f:id:sina_poke:20210607024236p:plain
sina-poke.hatenablog.com
WISHMKR 表ID:20043 / 裏ID:00000
f:id:sina_poke:20210607015910p:plain

SMBlinkSearch
7世代で瞬きを利用したシードの調整を行うことができるツール。配達員乱数でのTImeLeapの使用やタイプ:ヌル(エーテル)を簡略化することができる。サトピカやベベノムもいけるらしいです。
f:id:sina_poke:20210607015953p:plain
sina-poke.hatenablog.com

GCmacroController
マイコンを使ってGCの自動操作を行うことのできるツール。EmID調整やCoの初期シード厳選自動化など。P○keControllerのパクリです。
f:id:sina_poke:20210607020011p:plain

カスタムレイド
8世代乱数用の個体検索ツール。(もう更新する気はないです)
sina-poke.hatenablog.com

以上のツールに関して欲しい人がいれば、(信頼できると思った人に限り)Twitterを探してDMをいただければ差し上げます。
ヒントの一部はブログの中に書いてあるので、それをたよりにとても頑張って探せば見つかると思います。
情報の意図を汲み取っていただければ分かりますが、乱数調整に対するある程度を前提としています。

私のアカウントは、プロフィール上のウェブサイトの情報が私のブログになっています。それ以外のアカウントは私ではないので、ご迷惑をおかけしないようにしてください。
また、ツールをお渡しする条件として、ある程度の難易度を伴った乱数調整の実績を求めています。初心者の方はある程度実績を積んだ上でご相談ください。

【コロシアム乱数】ダブルバトルカードeの乱数調整

この記事はPokémon RNG Advent Calendar 2020の10日目の記事です。
adventar.org

手に入れる機会があったのでやってみました。今となってはほぼカセキみたいなものですが、ちゃんとした仕組みとかがのってなかったと思うので書き殴っておきます。

カードeとは何ぞや?という人向けに説明すると、古の装置であるカードeリーダーGBAに差し込んで、専用のカードeを読み込ませることによって簡単なミニゲームが遊べたりするものです。

ポケモンコロシアムではカードeに対応したトレーナーカードが全部で20枚あり、それらすべてを倒すことでダークポケモンがゲットできます。それぞれのトレーナーに対して強さが「やさしい」「ふつう」「てごわい」の3種類あり、各難易度のトレーナーをすべて倒すことでダークポケモンを持ったトレーナーが出現します。
f:id:sina_poke:20201207185114p:plain
ゲットできるダークポケモンは「トゲピー」、「メリープ」、「ハッサム」の3匹で、性格と性別は固定ですべての個体値は0になっています。

ポケモン 性格 性別
トゲピー なまいき
メリープ おっとり
ハッサム せっかち

ではこいつらを乱数すると何ができるのかというと、一応光らせることだけできます。
・色◆トゲピー
f:id:sina_poke:20201206233912p:plain
・色◆メリープ
f:id:sina_poke:20201206233924p:plain
・色◆ハッサム
f:id:sina_poke:20201206233935p:plain
トゲピーメリープはコロシアム本編で進化後のトゲチックとモココが出現するので2番煎じ感ありますが、ハッサムは完全オリジナルなので少しはやる価値はあると想います。メリープに関しては、本編でモココの乱数がとても難しめになってるのでこっちでやるものありです。

肝心の難易度については、手順を間違えなければ1/2で成功します。こいつらは性格と性別が固定な上、全て生成順が4なのでとても広い展開を持つのです。なんとあのリングマよりも広い。

ただしこいつらには強制消費が存在します。フィールド上では消費はありませんが、トレーナーに話しかけてから個体の生成までに不定消費が起こります。よく調べてないので詳細は分かりませんが、フェナスコロシアムに移る直前に発生するので、フィールドの初期化かなにかに使われているのだと思われます。これについてはエミュで再現性が取れなかったので諦めました。しかし、消費の範囲としてはおよそ390~450と安定しているため、とても広い展開を持つこいつらにはあまり関係がありません。性格値の再計算に係る2消費分のずれが運要素として絡む程度です。なのでおよそ1/2となります。

ツールをこいつらに対応させたりと色々アップデートしておきましたのでやりたい人がいればやってみてください。やり方は普通のコロシアム乱数と同じで、強制消費を350程度に設定すればできます。

【ポケモン(U)SM】timeleapを利用した乱数調整

今更タウンって感じですが、やりたい乱数調整ができたので調べてみました。
まず初めに、timeleapについて簡単に説明します。timeleapとは、7世代における瞬きによる消費(timeline)を正確に考慮しながら乱数調整を行う一つの方法を指します。ここら辺は海外の解説サイトでとても詳しく説明されているのでそちらを参照してください。

では、具体的に何を行ったのかというと、上のサイトで説明されている極悪違法ツールを使わずに、これらの作業を無改造の実機上で行えるツールを作成しました。主人公の瞬きから消費数を特定することでtimelineを生成、調整し目標消費までの正確な待機時間を計算する。timeleapの性質上、2連続で1Fの調整をしなければならないが、timeleapは狙うフレームによっては展開のようなものができるので、とても多くnpcがいる場合を除いて安定して行うことができる。
これを用いることで、複数npcがいる場合でも安定して目標の消費数を調整することができます。今回はミスの許されない配達員乱数を成功させたかったので頑張って調べました。

ポケセンタマゴ配布無補正菱形夢色♀ヒドイデ
f:id:sina_poke:20201030203801p:plain
0xdf55371c 96641078消費 素直 31-0-31-31-31-31

タマゴを割らないと個体の確認ができないため、色理想を狙う場合だとミスが許されません。EmのRS輸送孵化乱数のような感じ。個体値の乱数調整をtimeleapを使って行い、色の調整は従来のID調整を使ったSV孵化を行いました。こいつらには色回避ルーチンがないので受け取りROMで光らせることもできたが、色理想を行うにはSV孵化が必要である。オハナタウンのポケセン(npc4)で調整を行い、試行回数も1回で成功できた。

日本での7世代の各種やり方を説明しているブログを見ると、<2F>を利用したやり方などが書かれていることが多いが、これはただ開始消費数から目標消費数までの待機時間が一致するものを指すだけでtimelineを考慮できていないため、仕組みとしての根拠は全く無いので注意してください。npc数が安定していてもQRから戻るときの針でずれるので使い物にならない。
今回は配達員乱数のみで検証したが、主人公の瞬きを観測できる場所なら、CFWなしにnpc数がとても多いベベノムや、会話前後でnpc数の変動が起こるタイプ:ヌルなども安定して行うことができるようになると思われる。
案の定ここまで書いておいてツールは公開しないので、やりたい人は各自調査してみてください。

【ポケモンXY】任意性格値を光らせるID調整

以前にXYでID調整ができたという記事を上げましたが、そこから調査を重ねて色々と便利になったので記録としてまとめておきます。今までは任意TIDが簡単にできる程度でしたが、頑張れば任意TID&SIDの調整ができました。

①Co産無補正C抜け5Vが菱形で光るID
seed : 0xb920fea0 86129消費
f:id:sina_poke:20201031004221p:plain
f:id:sina_poke:20201031004235p:plain

②RSDPtHGSS産無補正C抜け5Vが菱形で光るID
seed : e5a519ee 382304消費
f:id:sina_poke:20201031004255p:plain

プレイ時間を見てもらえば分かりますが、どちらも数日単位で消費を行っています。下のIDに関しては1周間くらいかかった。従来の方法と比べて高速に消費ができるようになった、ということはありませんので注意してください。やるには根気が必要です。
便利になった点は主に以下の2つです。

①seedの特定に画像認識を使えるようになった
画像認識を使うことで博士とお見合いしなくても自動でseedを求めることができる。これを使うことで目に対する負担が減るだけでなく、効率的にseedの厳選が行えるようになりました。

②長時間の待機に対応した
6世代のfpsは一般に「59.8261」とされているが、これは厳密には正しくないと思われる。数分程度なら誤差はほとんど見られないが、数時間程度待機すると結構ずれた。よってこのずれを修正しながら待機する必要がある。さらには、待機時間が事前に分からないという特性から、都合の悪い時間を引いたときに調整を行えるようにする必要があった。一度これに対応させてなかったせいで色理想IDが死んだ。あとは長時間待機することになるため、PCの電源を落とした状態でも動作するように工夫した。一度WindowsUpdateで10日待機が破壊されたので、これにも対応させた。

作っていく上で色々思いついたり破壊されたりして、とても大変でした。
ここまで書いといてなんですが、今のところはツールを配布する予定はありません。そもそも公開してもやる人いなそう。

【ポケモンXY】ID調整

5億年前にできないと言った気がするけど、調べてみたらできた。もちろん無改造本体のみでP○Calcなどは使っていません。
f:id:sina_poke:20200822135306j:plain
検証目的でやったので適当な表IDを狙いましたが、頑張れば任意IDもいけます。
f:id:sina_poke:20200823203902j:plain
任意IDもできました。
ID調整をすることで、KeyBVなどのゲームデータに関与するツールなしにTSV、TRVなどの値を求めることができます。
肝心の乱数調整の難易度についてですが、XYだと1/4くらいで成功します。感覚的には7世代のID調整に近い感じで、良い候補を見つけるためにシードの厳選と場合によっては長時間の消費が必要です。
ORASでもできそうですが、1msあたりの時間調整が必要です。3世代の1Fはおよそ16.7msなので単純にいつもの16倍難しい。ただし、こっちだと狙える候補の数がとても多くなるのでシードの厳選が必要ありません。頑張ればできそうですが、検証がめんどうだったのでとりあえずXYでやってみました。

ツールとやり方については気が向いたら公開するかもしれない。