【ポケモンエメラルド】任意コードを利用した菱形色違いミュウ乱数

さて、また色違いミュウの乱数記事です。

しかし今回は前回の記事と違い、ひし形の色違いミュウを狙っていきます。

ちなみに検索数を上げるためにタイトルでは「菱形」と表記していますが、俺は個人的に「ひし形」派なので以降はこちらの表記でいきたいと思います。(どっちでもいい)

 

※ゲーム内のバグを利用しています。ご了承ください。

 

追記

「うんめいてきなであい」のフラグが付いたポケモンは、色違い処理の計算結果を無視して強制的にひし形演出になることが判明しました...

というわけで、この記事は完全に黒歴史化いたしました...戒めとしてこのまま残しておくことにします...

(そもそも前回の記事で捕まえた色違いミュウをさっさと剣盾に送っていればもっと早く気づけた話)

 

f:id:NOKIApkmn:20200325044937j:plain

 

今回の記事では任意コードによるID変更を利用したひし形色違いミュウの乱数調整について書いていきます。(またほとんど任意コードに話になるかと思いますが...)

この方法を使えば実質どの個体でもひし形色違いにすることができます。

一部分は前回の記事と大体同じです。なのでこの記事では同じ部分は丸コピしていたり、長くなる説明は省略していたりします。省略項目に前回記事リンクを貼り付けておくのでそちらの記事を参考に行なってください。

この方法はIDを変更した状態でレポートを書きます。IDを戻したい方は事前に元の表IDと裏IDをメモしておいてください。(裏IDの特定方法は前回の記事に載っています)

正直言ってサブROMでやるのが一番安全だと思います。

正規の色違いミュウは記事執筆時点でポケモンエメラルドのさいはてのことうでしか入手することができません。

※VC向けに配信されたミュウは個体値が4F固定のため絶対に色違いにならないので、VC産の正規色違いミュウは存在しません。

 

 

用意するもの

ポケットモンスターエメラルド

GBAのソフトが挿せるハード

プログラマ電卓

Windowsのアクセサリに搭載されている電卓でいいです。Macは知りません...2進数と16進数が扱えれば何でもいいです)

・エメタイマー

・RNGReporter または 3gensearch (乱数調整ツール)

(今回の記事では一応両方使います)

 

まずこれらを用意します。

 

 

・バグポケモンの作成

最初に、任意コードを実行するためのバグポケモン0×085Fの作成を行ないます。こいつがいないと何も始まりません。

作成は以下のぼんじり氏の記事を参考に行ないました。

bzl.hatenablog.com

(記事掲載を許可してくださったぼんじり氏、ありがとうございます)

 

 

無事作成が完了したら次は任意コードの打ち込みに入ります。

(任意コードを提供、掲載許可してくださったデテロニー氏、ありがとうございます)

 

・汎用コードの導入

前回と同じように今回も汎用コードが必須となっています。

まだ導入できていない方は以下の前回記事を参考に導入してください。

nokiapkmn.hatenablog.com

ボックス11から13に汎用コードを打ち込んだら次の作業に移ります。

 

・色違い個体の検索

最初にダウンロードした乱数調整ツールを使用して、今回はまず色違いにする個体を先に決めます。俺はRNGReporterを使ったのでそれを使って説明します。

ツールを開いてStartingFrameを1、MaxResultsを100000くらいにしてGenerateボタンで検索します。すると個体情報が下の項目に表示されます。(Seedの欄は今回も特に触らなくていいです)

欲しい性格がいる場合はNatureの欄の指定の性格にチェックを入れて検索します。(英語なので調べましょう)

個体値を指定したい場合は希望の個体値を入力してNone欄を=に切り替えて検索します。(理想個体の指定は無謀すぎるのでやめておきましょう。やるとしてもA0、C0、S0くらいです)

Hidden欄がめざパのタイプです。(剣盾ではデータがありませんが...)

いい個体がヒットしなければStartingFrameを100000ずつ増やしていきながら検索してみてください。(MaxResultsを増やしていくと一度の検索数が増えていくので貧弱なPCだと下手すると固まります)

希望の個体のFrameの右側のTime欄が、ゲームを起動してからミュウに遭遇するまでの大体の待機時間となります。個体決定の目安にしてください。

俺は7951FのおくびょうA0C0個体を選びました。(攻撃技無しのサポート型です。Cも0なのはパワーシェア対策です)

欲しい個体を決めたらPID欄をメモしておきます。これがその個体の「性格値」です。この性格値を使って次の作業を行なっていきます。

 

・ID決定

色違いになるかどうかは

表ID

裏ID

性格値上4ケタ

性格値下4ケタ

を使って特殊な計算を行なった結果の値で決まります。

この計算結果が0から7(6世代以降は0から15)になれば色違いになります。

そしてそれが0だった場合のみ、8世代でひし形の演出になるというわけです。

性格値は先ほど特定したので今度はIDを決めていきます。

IDは表裏ともに00000から65535の65536通りあります。まず表IDにしたい数字をこの中から自分で決めます。俺は00000を選びました。

さて、これで性格値と表IDが決まりました。あとは計算結果が0になるような裏IDを求めます。

ここでプログラマ電卓の出番です。ここからは俺が選んだ性格値と表IDで説明していきます。

まず性格値を上4ケタと下4ケタに分けて、それぞれ16進数から2進数に変換します。

 

性格値:EB91F7F8

EB91→1110101110010001

F7F8→1111011111111000

 

次に表IDを10進数から2進数に変換します。

 

00000→0

 

変換で出たこれら3つの数字を順にXorで計算し、その計算結果を10進数に変換します。

俺の場合表IDが0ですが、その場合は計算後の数字はそのままでいいです。

 

1110101110010001 Xor 1111011111111000 = 1110001101001

1110001101001 Xor 0 = 1110001101001

1110001101001→7273

 

最後に出たこの値がひし形になる裏IDとなります。俺の場合は07273でした。

3gensearchには星菱判定機能が付いているので、不安な方はそれにIDと性格値を打ち込んでチェックしてみてください。

 

 

・ID変更

もう既にかなりめんどくさいですが、本当に大変なのはここからです。

ここでようやく任意コードを使って先ほど特定したIDに変更します。

まず指定のボックスのなまえを以下のように変更します。

(基本的にボックス名の「べ」は平仮名、「l」は小文字のLです。隙間がある所は空欄を押して、隙間の分だけスペースを入力します)

 

ボックス名1:[もけぬうい]

ボックス名5:[かぶ ノきべくぼ]

ボックス名6:[アアぞだゥ l]

ボックス名7:[けしゥゥぃBFC]

ボックス名8:[アlコ う]

ボックス名9:[①②③④①②③④]

 

ボックス9のなまえですが、ここの①②に表ID、③④に裏IDのデータを入力します。

①②③④の枠には基本的にスペースを入力します。が、①②③④のどれかに使えない文字コードが必要になった場合は、対応する紫数字の位置に適切な文字を入力します。

ボックス9のなまえの入れ方を実際に俺のIDで説明します。

まず変更したい表IDと裏IDを16進数に変換し、上2ケタと下2ケタを分けて逆にします。

 

表ID:00000→0000→00 00

裏ID:07273→1C69→69 1C

 

次に以下のサイトを参考に、変換した値に対応する文字コードをボックスに順に打ち込みます。

文字コード - 改造ポケモン制作資料 Wiki*

 

00→スペース

00→スペース

69→ノ

1C→ふ

 

というわけで、俺のボックス名は

ボックス名9:[  ノふ    ]

となります。

もし万が一変換した値に対応している文字コードがゲーム内で打ち込めない文字だった場合の対処法を、デテロニー氏のYouTube動画コメント欄より引用します。

 

「まず、表IDは19191なので16進数に変換すると0x4AF7となります これを1バイト毎に区切って逆順にするとF7 4Aとなり、F7は使えない文字コードなので取り敢えずE0としておき、これを文字に変換すると[lぼ]となります 同様に、裏IDは56519→0xDCC7→C7 DC→[Mh]となります このようにして、①②③④の文字列は[lぼMh]であると求まります そして、①にはF7の片割れのE0[l]を入力したので、もう一つの片割れである17[ぬ]をに入力します 結果、ボックス名9に入力する文字列は[lぼMhぬ   ]となります」

 引用動画


【任意コード実行】ポケモン エメラルド バッジ0個で殿堂入り+α【任意テレポート】 

(引用元はコメント欄を漁れば見つかります)

 

ようするに、使えない文字コードは使える文字コードの値を合計して表すわけです。

 このようにしてボックス名を変更して任意コードを実行すると、表IDと裏IDが変更されています。表IDはトレーナーカードで確認することができます。もし裏IDも確認したい場合は、前回の記事で紹介した裏ID特定の任意コードを使用してください。

nokiapkmn.hatenablog.com

 

 

・乱数調整(+BV保存)

IDの変更が終わればあとは乱数調整をするだけです。

基本的にはBV保存を利用して乱数調整を行ないます。詳しいやり方はここで書くとクソ長くなるので調べてください。すぐに見つかります。ミュウの鳴き声も考慮して、大体待機時間-10秒ぐらいになるように調整するとちょうどいい感じになると思います。

待機時間を調整してBVを保存したら、さいはてのことうに行ってミュウの隣でレポートを書いて、エメタイマーを使用して乱数調整を行ないます。

たいせんのきろくを押すと同時にエメタイマーをスタートさせて、0になるタイミングでミュウに話しかけて捕獲。ステータスを確認し、ツールで検索して待機時間のズレを調整してリセット。これを繰り返していけばいずれ目当ての色違いミュウが降臨します。

 

その結果がこちらです。

 

これにてひし形色違いミュウの乱数調整は終了です。

あとはXDに送ってさいみんじゅつを覚えさせれば最高の†ひし形†色違いミュウが完成します。(ねこだましとさいみんじゅつを両立できないクソ仕様)

まださいみんじゅつを覚えさせられてないので8世代でのひし形確認はできていませんが、確認次第すぐに画像を掲載する予定です。

興味のある方はぜひ頑張ってやってみてください。

 

 

以上