00これは何か
ポケモンエメラルド(日本語版・実機)には、パソコンのボックス名として保存した文字列を そのまま機械語として実行させる手口がある。デテロニー氏が公開している汎用コード環境を組んでおくと、 以後は「ボックス名を書き換えて 0x085F の様子を見る」だけで任意の処理が走る。
目的は珍しいバグ個体を作ることではない。正規の手順でも到達できる個体を、時間をかけずに用意することにある。 最終的にポケモンHOMEまで送れる形で完結させるのが前提。
コードはすべて1マスずつ「文字・字種・16進値」を並べて表示する。
ペが平仮名かカタカナか、ベが濁点か半濁点かを、打つ前に画面で確認できる。
01環境を用意する
任意コードを走らせるには2段階の準備が要る。バグポケモン 0x085F を手に入れることと、
そこに汎用コード環境を載せること。ここまで済めば、以後の操作はボックス名の書き換えだけになる。
第1段階 — 0x085F を作る
ザロクの実で手持ちを全滅させて破損バグを起こし、ボックスのポケモンをタマゴに化けさせる。
その化け方は材料にしたポケモンの性格値と努力値で決まるので、条件を揃えれば
0x085F のタマゴが出る。要点だけ書くと次のとおり。
材料と補助を作る。 カナズミのNPCとラルトスを交換して手に入るタネボー(NN セブン)を バトルタワーの通信マルチで増やす。1匹に HP努力値95・攻撃努力値8 を振ってこれを材料にする。 別の1匹に素早さ努力値を10だけ振ってダーテングまで進化させ、これを補助にする。 努力値を1でも間違えると出ないので、ここが一番慎重にやるところ。
ザロクバグの道具を揃える。 ザロクの実、瀕死にする用のポケモン2匹、のろいを覚えたゴースト、マックスアップ。 のろい役は最大HPが奇数になるまでマックスアップを与えておく。
並べる。 ボックス2の1〜24番目に材料と補助を交互に置く。実際に当たるのは24番目付近なので、 面倒なら数を減らしてよい。手持ちは1〜2番目が瀕死役、3番目がのろい役、4〜6番目は空き。 のろい役の現在HPは1にしておく。
101番道路の草むら手前でレポート。 ここが失敗時の戻り先になる。 草むらでエンカウントして逃げ、コトキタウンのポケモンセンターで瀕死役を1匹預ける。 手持ちが2匹になった状態でのろい役にザロクの実を与えると、現在HPが0になって手持ちが全滅する。
破損バグ。 その状態で再び101番道路でエンカウントすると、味方に「?」のバグポケモンが出る。 手持ち選択画面で2番目の強さを見て戻り、Bで選択を解除し、そのまま十字ボタン↑を2〜3秒長押しする。 長押しが長すぎると別のデータまで壊れる。
結果を見る。 ボックスの材料が ネストボール入りのタマゴ になっていれば成功。 ダメタマゴやプレミアボール入りタマゴは失敗。1つでも成功があればレポートを書く。 なければリセットしてやり直す。
孵す前に場所を空ける。 ボックス12の12番目からボックス14の30番目までを全部空にし、 ボックス名を下の2つに変える。これをやらずに孵すとフリーズしたり別のデータが壊れる。
孵す。 約1536歩。孵化ムービーに入るまでの暗転が1分近く続くことがあるが待つ。 けつばん形のバグポケモンが孵ったらそれが
0x085F。ボックス上の種族名があ▼と表示されていれば同定できる。孵化直後はデータが荒れているので、 一度レポートを書いてリセットする。
第2段階 — 汎用コード環境を載せる
0x085F による任意コード実行の成功率は100%。ここに、ボックス名11〜13の3箇所だけで
ボックス名1〜10のスクリプトを実行できるようにするプログラムを仕込む。これが汎用コード。
1匹目の色フシギダネを作る。 ボックス12の12番目からボックス14の30番目までを空にしたまま、 ボックス名を次のようにして、手持ち3番目を空けて 0x085F の様子を見る。 手持ち3番目に NN
ォッいべぞの色フシギダネが出る。これを ① とする。2匹目を作る。 ① を退かして手持ち3番目をまた空け、ボックス名5だけを
ャl(l は英小文字のエル)に変えてもう一度実行する。NNャlの色フシギダネが出る。これを ② とする。配置して固定する。 ① をボックス12の15番目、② をボックス14の28番目に置き、 ボックス名11〜13を次のようにする。以後、① の前3マスと ② の前後2マスにはポケモンを置かない。 ①② の位置とボックス名11〜13は基本固定。
ボックス名1〜10に書いたものはスクリプトとして走る。
その中に もけぬうい を置くと、ボックス名5〜10と14に書いたプログラムへ飛ぶ。
乱数値を指定するプログラムのように、他のスクリプトと連携させる必要があるときは
もけぬ で打ち止めて終端の 0xFF を第4バイトに使う形(もけぬ終い)を使う。
このページの生成器は、コードごとに正しいほうを出す。
ボックス名データは9バイトで、9バイト目は必ず 0xFF。7文字以下しか入れなければ
余った可変部にも 0xFF が埋まる。この 0xFF はスクリプトの終了コードとして働くので、
次のボックスへ処理を続けたいときは8文字目に ビ(0x97)を置いて
終端を「画面フェードの引数」に化けさせ、間を あ か空白で埋める。
生成器が出す [… ビ] という形はこれ。末尾の空白もマスとして数えるので省略しない。
02文字と値
文字コードは1バイト。並びは平仮名 → 小書き → 濁点 → 半濁点 → っ → カタカナ(同じ並びで +0x50)→ 数字 → 記号 → 英大文字 → 英小文字。
同じ音の平仮名とカタカナは、ちょうど 0x50(80)離れている。
濁点と半濁点は 5 離れている。
値 ⇄ 文字 変換
全表
入力できないのは 0xB7(¥)・0xB8(,)・0xB9(×)と 0xEF 以降。
記号ブロックのうち実際に打てたことを確認しているのは 。(AD)・♂(B5)・♀(B6)。
03コード生成
04ID一覧
値はすべて pret/pokeemerald の定数から取っている。2バイト入力の欄はそのまま打てる文字列。
| 名前 | 10進 | 16進 | 入力する文字 |
|---|
05乱数値の出し方
エメラルドの乱数は線形合同法で進む。次の値は seed × 0x41C64E6D + 0x6073(32bit で切り捨て)。
任意乱数値指定では、ボックス名9に書いた値そのものではなく、そこから数回進んだ値が個体生成に使われる。
原典は「指定した seed[n] の [n+2] が使われる」と定数で書いている。
陸上は2回、水中は3回進む
| 場所 | ボックス名9に書いた値 | 実際に使われた値 | 進んだ回数 |
|---|---|---|---|
| 102番道路(陸上) | 4A0C8C78 | A91448A2 | 2 |
| 102番道路(陸上) | 6DE20A4F | 59663BD1 | 2 |
| さばくのちかどう(陸上) | 24C16DAD | DA48895F | 2 |
| 124/126番水道 海底(潜水) | 7C279188 | 38B2FDBD | 3 |
| 原典の用例(メタモン) | EEC6F716 | 91A90F70 | 2 |
生成器の「実行地形」はこの2択。あさせのほらあな・りゅうせいのたき・111番道路・釣り場は未測定。 出会った場所も入手レベルもパルパークで消えるので、陸上の1箇所でまとめて作れば測り直しは要らない。
目標乱数値の探し方
狙う個体の乱数値そのものは、外部の乱数調整ツールで探す。 このページの生成器には 目標乱数値(狙う個体を生成する値)を入れる。 指定乱数値への変換とボックス名9への符号化は生成器がやる。
06作例 — WISHMKR の色違いジラーチ
第3世代で色違いになり得るジラーチは WISHMKR と CHANNEL の2種だけ。 日本の第3世代配布ジラーチはすべて非色違いなので、色違いを正規の姿で持つには 海外配布の素性をそのまま作ることになる。乱数調整は要らない。
WISHMKR の仕様
| NN | JIRACHI | TN | WISHMKR |
|---|---|---|---|
| ID | 表 20043 / 裏 00000 | レベル | Lv5(入手レベル値 5) |
| ボール | モンスターボール | 出身 | ルビー固定 |
| 親性別 | 男 | 国籍 | 北米(英語=2) |
| 出会った場所 | 0xFF(運命的な出会い) | リボン | なし |
| 持ち物 | カムラの実 または リュガの実 | イベントフラグ | なし |
セーブデータのチェックサム2バイトが初期シードになるため、出現し得る個体は65536通りしかなく、 そのうち色違いは9個体。生成方式はリバースメソッド1。
色違いになる9個体
| 性格 | PID | H | A | B | C | D | S |
|---|---|---|---|---|---|---|---|
| てれや | BA7DF435 | 24 | 3 | 30 | 12 | 16 | 11 |
| しんちょう | C90E8744 | 10 | 0 | 10 | 10 | 26 | 12 |
| すなお | 987ED636 | 19 | 7 | 10 | 19 | 10 | 16 |
| せっかち | BCFAF2B0 | 3 | 12 | 12 | 7 | 11 | 9 |
| ようき | 7B053548 | 11 | 8 | 6 | 14 | 5 | 20 |
| さみしがり | 2EC1608D | 31 | 23 | 26 | 29 | 18 | 5 |
| やんちゃ | 4633087D | 21 | 31 | 31 | 18 | 24 | 19 |
| まじめ | BF98F1D5 | 29 | 10 | 31 | 25 | 23 | 21 |
| おくびょう | EB0DA543 | 15 | 28 | 29 | 3 | 0 | 7 |
実行手順
以下は やんちゃ(PID 4633087D) を作る場合のコード。別の性格を選ぶなら 手順01のボックス名1・2と手順04の個体値だけが変わる。値は生成器で出せる。
準備。 ボックス1の1番目を空きにする。手持ちの3番目も空きにする。 ボックス名11〜13は汎用コード環境のまま触らない。
性格値 4633087D のダメタマゴを作る。 ボックス1の1番目に生成される。
強制孵化させる。 ダメタマゴを手持ちに入れてから実行し、手持ち選択でそのタマゴを選ぶ。 性格値だけを引き継いだ
0x019Cが孵る。これを手持ち3匹目に置く。 以降のコードはすべて手持ち3匹目を対象にする。親IDを 表20043・裏00000 にする。ここで色違いになる。 手持ちデータ書き換えでID値をいじるとダメタマゴ化するが、このコードは暗号化データの 再マスキングまでやるので通る。主人公のIDを変える必要はない。
種族をジラーチにする。ここで初めて見た目がジラーチになる。 手持ちデータ書き換えコード。
0x0199がジラーチの種族コードで、 ボックス名1の4〜5マス目に下位バイト・上位バイトの順で入る。 ボックス名3・4・7・8は不問。ベはカタカナの濁点(0x99)。半濁点のペ(0x9E)にすると 5ずれた別の種族になる。残りの14項目を埋める。 前の手順のボックス名2・5・9・10はそのまま触らない。 ボックス名1と6だけを上から順に打ち替えて、1行ごとに実行する。 5〜8番はボックス名1が同じなので、ボックス名6の1文字だけ替えれば済む。この並びはそのために組んである。
項目 値 ボックス名1 ボックス名6 経験値を入れる。これは最後にやる。 4バイト値なので行が1本増え、
もけぬういがボックス名3へ下がる。先にこれをやると、 ボックス名3にもけぬういが残ったまま前の手順に戻ったときに余計な行が走る。 下は Lv49(147061)にする場合。ボックス名5・9・10は前の手順のまま。Lv5に戻すなら経験値は156。
TN を入れる。 ボックス名9がここだけ変わる(
リメうい→ネふいい)。WISHMKRは7文字ちょうどで、8文字目を入れないことで8バイト目に終端が入る。 ボックス名3にもけぬういが残っていても、ボックス名2で終端するので読まれない。NN を入れる。 直前の状態からボックス名6とボックス名14だけ替える。
出会った場所を運命的な出会いにする。 3文字で打ち止めると、 終端の
0xFFがそのままマップ名IDとして読まれる。 ボックス名1が3文字で終わるので、他のボックス名が残っていても影響しない。技を入れる。 ボックス名1だけを4回打ち替える。ROM側の処理を通るのでPPも一緒に入る。 Lv5時点で覚えている技はこの3つだけ(スピードスターはLv10)。
仕上げと確認。 ねむるにポイントマックスを使うとPPが16になる(基礎10×1.6)。 ステータス画面でボールがモンスターボールであること、色違いになっていること、 トレーナーメモが「運命的な出会い」になっていること、特性が てんのめぐみ であることを目で見る。
特性はスロットを1にすると「なし」になる。ジラーチに第2特性が無いため。0で てんのめぐみ。 ポケルスがバグポケモン由来で付いていることがあるので0に潰す。 やんちゃは特攻ではなく特防を下げる性格。 ねむるのPPは第3世代でも10。
07作例 — ミュウとフラグ付きの5体
ミュウ・デオキシス・ルギア・ホウオウ・孤島ラティは、第3世代では 運命的な出会いフラグが立つ特別な扱いになっている。 このフラグは「リボンと従順」32ビットの bit31 で、立っていない個体はバッジに関係なく必ず言うことを聞かず、 他ソフトへの交換にも出せない。だから、この5体は普通の任意ポケモンエンカウントでは作れない。 専用の フラグ付きポケモンエンカウント を使う。
実行手順
ジラーチと違ってこちらは1回で終わる。データを組み立てるのではなく、 狙った個体をその場で生成して普通に捕まえるだけ。
目標乱数値を決める。 外部の乱数調整ツールで、狙う性格・個体値になる乱数値を出す。 個体生成はメソッド1。乱数値の出し方のリンクを使う。
捕獲の用意をする。 ボールと、麻痺か眠りを入れられる要員。 レベル30のミュウなので長期戦になる。
ボックス名を打って 0x085F の様子を見る。 下は原典の用例そのままで、 Lv30 ようき 5VC0 のミュウ@マッハじてんしゃ(目標乱数値
82B03804)が出る。 戦闘BGMは自動でミュウ専用のものに切り替わる。ボックス名1が種族(ミュウ 0x0097)、2がレベル(30)、3が持ち物(マッハじてんしゃ 0x0103)と プログラム呼び出し、4が飛び先。5〜9が乱数指定のプログラム部。 別の個体・別の種族にするときはボックス名1〜3と9を替える。生成器の 「フラグ付きポケモンエンカウント」がそのまま出す。
捕まえる。 普通の野生戦なので、投げたボールがそのまま入る。
出会った場所を確認する。 トレーナーメモが「運命的な出会い」になっていない場合は、 下のコードで
0xFFにする。3文字で打ち止めると終端がそのままマップ名IDとして読まれる。 手持ち3匹目に置いてから実行する。持ち物を外す。 マッハじてんしゃを持たせたままにする理由がなければ取り上げる。 持ち物はどのみちポケムーバー通過時にバッグへ移されて外れる。
孤島ラティ(みなみのことう・Lv50・こころのしずく)/デオキシス/ルギア/ホウオウ。
種族コードに入力できない文字が混じる場合は加算行が1本増えてボックス名が1つずれるが、
構造は同じで生成器が自動で出す。ホウオウ(0x00FA)とルギア(0x00F9)が該当する。
レジ3体と三竜、徘徊ラティはフラグが立たない側なので、普通の任意ポケモンエンカウント
(徘徊ラティは専用の生成コード)を使う。
ふるびたかいずやしんぴのチケットで実際に島へ行ってから実行しても、別の場所で実行しても、 できあがる48バイトは変わらない。出会った場所はどのみちパルパークで消える。
フラグが立つことの裏づけ
通常このフラグは配布個体にしか立たない。ただし第3世代の島イベント産は例外として立つ、と Bulbapedia の Fateful encounter に明記がある。 任意コードで生成した個体にも同じフラグが立つことは、 最果ての孤島でミュウを同じ手順で作って第5世代まで送り「運命的な出会い」の表記が付いた、という 個人ブログの実践報告がある。一次資料ではないので、1体目で バッジ8個で言うことを聞くか・交換に出せるかを実機で確かめる価値はある。
08作例 — コロシアム産のダーク6体
ポケモンコロシアムでスナッチし、リライブしたダークポケモンを、エメラルド側で丸ごと組み立てる作例。 ライコウ・エンテイ・スイクン・ムウマ・ベイリーフ・ヘルガーの6体を、全て色違い・ゴージャスボールで揃え、 リボンとコンディションまで仕上げる。本書に載せたなかで最も工程が長い。
出身バージョンは 15(VERSION_GAMECUBE)。コロシアムとXDを区別しない単一の値になっている。
アースリボンはこの出自だから自然に付く。
仕様
OT名・表ID・裏IDは筆者が使った値。読者は自分のトレーナー名とIDに置き換えてよい。 書き換えるのは個体データ側のIDだけなので、セーブ側のトレーナー情報とは独立に決められる。
| OT名 | やぐも | ID | 表 26411 / 裏 59106 |
|---|---|---|---|
| ボール | ゴージャスボール(内部値 11) | 出身 | 15(VERSION_GAMECUBE) |
| レベル | 6体とも Lv50 | 親性別 | 男(0) |
| 運命的な出会い | 立てない | リボン | 12種(アース・ナショナルを含む) |
| 種族 | PID | H/A/B/C/D/S | 合計 | 性格 | 性別 | 特性 | 色違い | 出会った場所 | 成長率 |
|---|---|---|---|---|---|---|---|---|---|
| ライコウ | 302CB1E2 | 31/0/24/7/24/31 | 117 | ひかえめ | 無性別 | プレッシャー | 星 | 125 ボトムコロシアム | スロー |
| エンテイ | 7820F9EA | 31/12/21/18/24/31 | 137 | がんばりや | 無性別 | プレッシャー | 星 | 125 ボトムコロシアム | スロー |
| スイクン | 4146C08F | 31/23/13/26/5/31 | 129 | ずぶとい | 無性別 | プレッシャー | 四角 | 125 ボトムコロシアム | スロー |
| ムウマ | 6489E540 | 28/13/27/10/14/6 | 98 | おだやか | ♀ | ふゆう | 四角 | 015 パイラタウン | ファスト |
| ベイリーフ | 7CC7FD08 | 2/26/25/9/3/28 | 93 | きまぐれ | ♀ | しんりょく | 星 | 132 スナッチ団アジト | ミディアムスロー |
| ヘルガー | 83400288 | 31/30/29/14/30/31 | 165 | しんちょう | ♂ | もらいび | 星 | 118 ラルガタワーコロシアム | スロー |
ベイリーフはレベル上げの途中でメガニウムになる。出会った場所と入手レベルはパルパークで消えるので、 記録として正しい値を入れておく以上の意味は無い。
なぜ乱数調整ではなくPIDを直接指定するのか
コロシアム産の性格値(1匹ごとに持っている32ビットの数。性格・特性・色違いかどうかが全部ここから決まる。表の「PID」の列がそれ)は、 GBA本体の乱数ではなくGameCube側の別系統の乱数(XDRNG)から出ている。 エメラルドの乱数列をいくら巻き戻しても同じ値には辿り着けないので、 ミュウの章で使った「狙った乱数値でエンカウントさせる」やり方が使えない。 そこで、性格値を直接指定してダメタマゴを作り、それを強制孵化させて器にする。 ジラーチの章と同じ組み立て方で、残りの項目はすべて手持ちデータ書き換えで埋めていく。
この方式には副産物がある。乱数を消費させて狙ったフレームに合わせる必要が無いので、 マップごとに乱数消費が違う問題(102番道路・水中・りくのどうくつで挙動が変わる)を丸ごと踏まない。 どこで打っても同じ結果になる。
逆に罠もある。ダメタマゴ由来の器にはポケルスが付いていることがあるので、 ポケルスを 0 で潰す工程が要る。これを忘れると、あとで見たときに原因が分からなくなる。
要点
-
レベルは「現在レベル48を書いて、ふしぎなアメ2個でLv50」。
経験値を直接打ち込む工程は要らない。第3世代はレベルを
struct Pokemon側に持っていてstruct BoxPokemonの外側にあるため、ボックスに預けると引き出すときに経験値から計算し直される。 一方でふしぎなアメの処理は現在レベルを読んで経験値をそのレベルの値に直接代入する (pretsrc/pokemon.c4919〜4927行)。だから現在レベルを書いてアメを使えば経験値が確定する。 ベイリーフはこの2回の中でメガニウムに進化し、ニックネームはEvolutionRenameMonが 新しい種族名へ書き換えるので直さなくてよい。 -
個体値は32bit一括で1工程に圧縮できる。
MON_DATA_IVSに書き込み口があるので、6項目を別々に打つ必要はない。 ただしヘルガーだけは値の中に入力できないバイトが2つ入るため、 足し算の行が膨らんでコード本体と衝突する。ヘルガーのみ従来どおり6項目を個別に打つ。 - 特性スロットは6体すべてに明示的に書く。 第3世代は特性が1つしか無い種でもスロットのビットを無条件に引くので、 ビットが1のままだと特性なしになる。スイクンで実際に踏んだ。 ヘルガーは1(もらいび)、残り5体は0。
- リボンには一括の書き込み口が無い。12種を1つずつ打つ (コンテスト5系統は値4、一般7種は値1)。 個体値が一括で書けたのは書き込み口があったからで、リボンには相当するものが存在しない。 付けるのは クール/ビューティ/キュート/ジーニアス/パワフル/チャンプ/ウイニング/ビクトリー/ ブロマイド/がんば/ナショナル/アース。 除外した5種は マリン・ランド・スカイ(配布実績が無い)と カントリー・ワールド(大会の優勝者限定配布)。
- コンディションはコードで書くより金色ポロックの方が早い。 こちらも一括の書き込み口が無く6項目個別になるので、 辛渋甘苦酸=238・滑らかさ=238 のポロックを1体に2個食べさせる。 1個目で5系統と毛艶が238、2個目で両方255に達する。性格補正は±10%しか掛からないので無視できる。
- 正規の技構成をそのままは打てない。 原典の技構成のうち4本は、技IDの中に入力できないバイトを含む。 その4本を同じ種がレベルアップで覚える別の技に差し替えてある。 技を入れるとPPもROM側の処理で一緒に入る。
工程の流れ
全18工程。1〜2で器を6体分作り、3以降は1体ずつ項目を埋めていく。
ダメタマゴを6個作る。 6体分の性格値を1つずつ指定して、ボックスに6個並べる。
まとめて孵化させる。 性格値だけを引き継いだ器が6体できる。以降はこれを1体ずつ仕上げる。
表ID・裏IDを書く。 26411 / 59106。ここで色違いになる。
トレーナー名(TN)を書く。 やぐも。
ニックネーム(NN)を書く。 種族名をそのまま入れる。ベイリーフも「ベイリーフ」で入れておけば、進化で自動的に「メガニウム」になる。
種族を書く。 ここで初めて見た目がそのポケモンになる。
ボールを 11(ゴージャスボール)にする。
出身バージョンを 15 にする。
VERSION_GAMECUBE。ポケルスを 0 にする。 ダメタマゴ由来で付いていることがある。
イベントフラグを 0 にする。 運命的な出会いは立てない方針。
親性別を 0(男)にする。
ナショナルリボンを 1 にする。 リライブで自動的に付くリボンなので必須。工程17のリボン一覧にも同じものを再掲してある。
特性スロットを書く。 ヘルガーは1、残り5体は0。6体とも省略しない。
現在レベルを 48 にする。 このあと ふしぎなアメを2個使って Lv50 に合わせる(6体で計12個)。
個体値を書く。 32bit一括で1行。ヘルガーのみH〜Sの6項目を個別に打つ。
技を入れる。 1体4本で計24本。PPは自動で入る。末尾の空白マスを省くと終端が技IDに混ざるので必ず実入力する。
リボンを付ける。 12種。コンテスト5系統(値4)を先に流し、そのあと一般7種(値1)を流す並びにすると打ち替えが最小になる。
コンディションを上げる。 金色ポロックを作って2個食べさせる。作る→食べさせる→また作る、を6体分で12回。
つまずいた点
0xB1 を別の字として表示していたため、ライコウの1体目で性格値が壊れて作り直しになった。
値そのものは合っていて、画面に出す字が違っただけで詰む。
対策として、打ち込むコードは1マスずつ「平仮名・カタカナ・濁点・半濁点・小文字・数字・記号・英大文字・英小文字・空白」の別を併記して読むことにした。
へとヘ、りとリ、0とOは、字だけ見ても区別できない。
PKHeX による合法判定は未実施。コロシアム産のゴージャスボールが許容されるか、 コンテスト5系統がすべて255の個体を判定ツールがどう見るかも未確認。
09作例 — ファイアレッド産の色違い6体
フリーザー・サンダー・ファイヤー・ミュウツー・ニドキング・ニドクインの6体を、 ファイアレッド産の色違いとして作る作例。 選定の基準は「スカーレット・バイオレットやポケモンレジェンズZ-Aでは色違いを厳選しづらい種」で、 今の世代で普通に厳選できる種はわざわざここでは作らない。
リボンもコンディションも扱わない最小構成。色違いにして、ゴージャスボールに入れて、整合を取るだけで終わる。 前章のコロシアム産とは作り方が根本から違う。
仕様
OT名・表ID・裏IDは筆者が使った値。読者は自分の値に置き換えてよい。 ただし色違いになるかどうかは「表ID xor 裏ID xor PIDの上位 xor PIDの下位」で決まるので、 IDを変えるなら狙う乱数値の側も探し直しになる。
| OT名 | やぐも | ID | 表 50853 / 裏 30170 |
|---|---|---|---|
| ボール | マスターボールで捕獲 → 11(ゴージャスボール)に書き換え | 出身 | 4(ファイアレッド) |
| 実行マップ | 102番道路(陸上) | リボン | 付けない |
| 種族 | H/A/B/C/D/S | 合計 | 性格 | 色違い | 出会った場所 | 入手Lv |
|---|---|---|---|---|---|---|
| ミュウツー | 31/31/31/31/31/31 | 186 | ひかえめ | 四角 | 0x8D | 70 |
| フリーザー | 31/31/31/31/31/31 | 186 | おだやか | 四角 | 0x8B | 50 |
| サンダー | 31/17/26/31/31/31 | 167 | いじっぱり | 星 | 0x8E | 50 |
| ファイヤー | 31/17/26/31/31/31 | 167 | わんぱく | 星 | 0xAF | 50 |
| ニドラン♂ → ニドキング | 31/31/12/12/31/26 | 143 | なまいき | 星 | 0x67 | 6 |
| ニドラン♀ → ニドクイン | 31/31/21/31/10/22 | 146 | やんちゃ | 星 | 0x67 | 6 |
場所は 0x8B ふたごじま/0x8D ハナダのどうくつ/0x8E むじんはつでんしょ/
0xAF ともしびやま/0x67 3ばんどうろ。ニドラン2体だけが野生スロット産で、残り4体は固定シンボル。
なぜエンカウントで作れるのか
ファイアレッド産の個体はメソッド1、つまり本体機の乱数そのものから出ている。 エメラルドも同じ乱数を使っているので、狙った乱数値でエンカウントさせれば、 性格値と個体値の対応がひとりでに成立する。 前章のコロシアム産と決定的に違うのはここで、性格値を組み立てる必要がまったく無い。 捕まえたあとに、出自を示す項目だけを書き換えれば終わる。
色違いにする順序に制約は無い。 色違いかどうかは保存された値ではなく、表示のたびに計算される。 だから捕獲したあとで個体データ側のOT名・表ID・裏IDを書き換えれば、その時点で色違いになる。 セーブ側のトレーナー情報は触らない。 捕獲はマスターボールで済ませ、ボールはあとからゴージャスボールに書き換える。
6Vが2体しかいない理由
6Vとは、個体値6項目がすべて最大値の31である個体のこと。 メソッド1で6Vになる個体は、32ビットの全空間でちょうど6件しかない。 そしてこの6件は3組のペアに分かれる。乱数の乗数が奇数なので最上位ビットの差が何回進めても消えず、 ペアの2件は個体値も色違い判定値もまったく同じになる。 色違い判定値が実質3種類しか無いということは、 1組の表ID・裏IDで6体すべてを6Vにすることは数学的に不可能だということになる。
さらに、その3ペアのうち指定乱数値を実際にボックス名へ打てるのは1ペアだけだった。 残る2ペアは値の中に入力できないバイトを含む。 結果として6Vはミュウツーとフリーザーの2体に決まった。 サンダーとファイヤーは31が4個。ニドラン2体は後述の理由で個体値を選定条件から外したので31が3個になっている。
要点
- 個体値を書き換える工程は無い。 個体値は乱数で決まっていて、性格値と対応が取れている。 あとから書き換えるとその対応が壊れて、判定ツールから見て説明の付かない個体になる。
- ミュウツーだけ技の差し替えが要る。 エメラルド側で生成すると じこあんじ と みらいよち が入るが、 ファイアレッドではこの2つはそれぞれ Lv77・Lv88 で覚える技なので、Lv70 の個体が持っていると不正になる。 スピードスター/じこさいせい/しんぴのまもり/サイコキネシス に差し替える。 三鳥は両作で覚える技が一致するので、生成したままで正規。
- ニドラン2体は個体値ではなく「野生フレーム整合」で選んだ。 野生スロット産は、性格値と個体値が合っているだけでは足りない。 同じ乱数列から性格の抽選・スロットの抽選まで順に導ける必要がある。 個体値を優先して選ぶと、この整合が成立するフレームが見つからず判定ツールに警告が残った。 個体値と性格を選定条件から外して探し直したところ、警告の残らない個体を選べた。
- ファイアレッドの野生生成にはシンクロもメロメロボディも効かない。 pret/pokefirered の野生生成にその分岐が存在しない(エメラルドには存在する)。 先頭に置くポケモンの特性は結果に一切関係しない。
- レベルは前章と同じふしぎなアメ方式。 現在レベルを書いてからアメを使い、経験値をそのレベルに確定させる。 ニドラン2体は現在レベル15を書いてアメ1個でLv16にし、そこから つきのいし で進化させる。
- 指定乱数値の逆算は、乱数の逆関数を1回。 これは陸上・102番道路の場合の話で、水中は消費が違うので式も変わる。 この作例は6体とも102番道路の陸上で実行している。
工程の流れ
全11工程。工程2で1体ずつ完結させ、以降を6体分繰り返す。
道具と手持ちを用意する。 マスターボール、ふしぎなアメ、つきのいし。先頭ポケモンの特性は問わない。
個体を作って捕獲する。 102番道路で、狙う個体の指定乱数値を打ってエンカウントさせ、マスターボールで捕まえる。この時点ではまだ通常色に見える。
表ID・裏IDを書き換える。 50853 / 30170。ここで色違いになる。
トレーナー名を書き換える。 やぐも。
ボールを 11(ゴージャスボール)にする。
出身バージョンを 4(ファイアレッド)にする。
出会った場所を書き換える。 仕様表の場所IDを入れる。
特性スロットを 0 にする。 前章と同じ理由で、明示的に書かないと特性なしになることがある。
技を整える。 ミュウツーのみ4本を差し替える。他の5体はそのまま。
ニドラン2体を進化させる。 ふしぎなアメでLv16にし、つきのいしでニドキング・ニドクインにする。
最後に見るところ。 個体値・性格・性別は書き換えない。色違い表示・OT名・ID・ボール・出身・出会った場所・特性が仕様表どおりかを目で確かめて終わり。
つまずいた点
工程3で実機が固まった。コードを1バイトずつ前章のものと突き合わせて、ルーチン本体も値も正しいことを確認した末に、 原因はボックス名6の空白の数の打ち間違いだと分かった。 空白は画面上で数えづらく、1つ違うだけでコードが壊れる。 各行のマス番号と「全何マスか」を必ず突き合わせてから実行すること。
PKHeX による合法判定は未実施。本章の整合はすべて、PKHeX のソースを読んで同じ判定を書き直したうえでの机上の確認にとどまる。
10移送で残るもの、消えるもの
第3世代から先へ送ると、個体データの一部は書き換えられる。どこまで作り込む価値があるかはこの表で決まる。
3 → 4
4 → 5
ポケモンバンク
出会った場所を合わせても HOME での見え方には効かない。 HOME まで残って判定され得るのは、性格値と個体値の対応・出身バージョン・OT名・表裏ID・ 親性別・ボール・特性スロット・リボン・運命的な出会いフラグ・言語。作り込むならこちら側。
第3世代のデータに無いもの
48バイトの内訳は Growth / Attacks / EVs&Condition / Miscellaneous の4つ。 Miscellaneous に入っているのは ポケルス・出会った場所・出身情報・個体値/タマゴ/特性・リボンと従順 だけで、 「野生か固定シンボルか」「贈り物か化石復元か」を記録する領域は無い。 受け取り処理も個体データに印を付けない。記録が残るのはセーブ側のイベントフラグで、これは移送されない。
副作用として、任意コードで作った場合はイベントフラグが立たないため、 スティーブン宅のボールや化石が手つかずで残る。整合を気にするなら実物も回収しておく。
11リボン
リボンは手持ちデータ書き換えコードで直接付けられる。コンテストリボンだけはデータサイズが3ビットで、 値が「達成した最高ランク」を表す。生成器の項目に入っている。
| 種別 | サイズ | 値 |
|---|---|---|
| コンテストリボン5系統 | 3ビット | 0=なし / 1=ノーマル / 2=スーパーまで / 3=ハイパーまで / 4=マスターまで。5以上は不正値で次の部門のダミーリボンが付く |
| 一般リボン5種 | 1ビット | 0=なし / 1=付与。チャンプ・ウイニング・ビクトリー・ブロマイド・がんば |
| 特殊リボン7種 | 1ビット | 0=なし / 1=付与。マリン・ランド・スカイ・カントリー・ナショナル・アース・ワールド |
ダミーリボンが付いた個体は、リボン表示欄に収まりきらずフリーズすることがある。 第4世代以降に送ると不可視化されるが、内部データへの影響は不明。
第6世代で集約される
| 元 | 第6世代以降 | 金色版の条件 |
|---|---|---|
| ホウエンのコンテストリボン20種 シンオウのスーパーコンテストリボン20種 |
おもいでコンテストリボン 1個 | 40種すべてを持っていた個体 |
| タワー系8種 (第3世代2種+第4世代アビリティ系6種) |
おもいでバトルリボン 1個 | 8種すべて。ワールドは Wi-Fi 終了で入手不可のため事実上そろわない。SV以降は7種でも金色 |
| リーグリボン/メモリアルリボン/ギフト系 | そのまま保持 | — |
元々持っていたリボンの数はリボン名の横に表示される(BDSPを除く)。第7世代は条件にコーディングミスがあり別物になっている。
第4世代でしか取れない4グループ
- シンオウのスーパーコンテスト20種 — ヨスガシティ。DP/プラチナのみ。
- アビリティ系6種 — DP/プラチナ/HGSS のどれでも可。ワールドのみ入手不可。
- レジェンドリボン — HGSS のみ。シロガネやまでレッドを倒す。
- シンオウチャンプリボン — 第4世代と BDSP のみ。
それ以外(ゴージャス系3種・曜日リボン7種・あしあとリボン・がんばリボン)は ORAS で代替できる。ORAS は所持金の上限が 9,999,999 円で、第4世代と BDSP の 999,999 円より 10倍多い分だけ金策が楽になる。ゴージャス系3種は順番縛りがあり1体あたり 1,109,999 円かかる。
ORAS の「ホウエンチャンプリボン」は、第3世代の「チャンプリボン」(日本語名ホウエンチャンプリボン) とはデータ上まったく別のリボン。ORAS で殿堂入りしても第3世代のチャンプリボンの代わりにはならず、 両方取れば2個付く。
全世代で取れるリボン
第3世代の個体を上の世代へ送れば、送り先の世代で取れるリボンも重ねて付けられる。 どの世代の・どのソフトで何が取れるかを一覧にした。
◆=複数の世代で取れる同じリボン。右端の欄にある世代のどれか1つで取れば済む(数字は世代)。 「—」はその世代でしか取れない。
第3世代(27種)
| リボン名 | ソフト | 条件 | 他の世代でも取れるか |
|---|---|---|---|
| ホウエンコンテストリボン20種 | ルビー・サファイア エメラルド |
5部門×4ランク。エメラルドは4ランクともミナモシティ。ルビー・サファイアはランクごとに町が違う(ノーマル=シダケタウン/スーパー=ハジツゲタウン/ハイパー=カイナシティ/マスター=ミナモシティ) | — |
| ウイニングリボン | ルビー・サファイア エメラルド |
バトルタワーのLv50部門。7連戦のセットを勝ち抜いて連勝56以上 | — |
| ビクトリーリボン | ルビー・サファイア エメラルド |
同じくLv100部門(ルビー・サファイア)/オープンレベル部門(エメラルド)。連勝56以上 | — |
| ブロマイドリボン | ルビー・サファイア エメラルド |
ミナモシティ。マスターランクまたは通信コンテストを高得点(2回の合計でハート40個相当以上)で優勝し、美術館に絵を飾ることを承諾する。先に館長と一度話していないと声がかからない | — |
| チャンプリボン | ルビー・サファイア・エメラルド ファイアレッド・リーフグリーン |
殿堂入り。パーティ全員に付与。サイユウシティ(ルビー・サファイア・エメラルド)/セキエイ高原(ファイアレッド・リーフグリーン)。日本語名は「ホウエンチャンプリボン」 | — |
| ナショナルリボン | コロシアム/XD | ダークポケモンをリライブ(浄化)した個体に付与 | — |
| アースリボン | コロシアム/XD | バトル山100連勝。パーティ全員に付与 | — |
| がんばリボン ◆ | ルビー・サファイア エメラルド |
カイナシティ。努力値の合計が510 | 4・6・7・8・9 |
第4世代(39種)
| リボン名 | ソフト | 条件 | 他の世代でも取れるか |
|---|---|---|---|
| シンオウのスーパーコンテストリボン20種 | ダイヤ・パール・プラチナ | ヨスガシティ。5部門×4ランク。ハートゴールド・ソウルシルバーでは取れない | — |
| アビリティリボン | ダイヤ・パール・プラチナ ハートゴールド・ソウルシルバー |
バトルタワーのシングルで21戦目のパルマーを倒す。選出3体全員に付与。一度取ると、別の個体に取らせるには連勝を切って始め直すか、連勝を1813まで伸ばす必要がある | — |
| グレートアビリティリボン | ダイヤ・パール・プラチナ ハートゴールド・ソウルシルバー |
同じく49戦目。再取得は連勝を切るか1841連勝 | — |
| ダブルアビリティリボン | ダイヤ・パール・プラチナ ハートゴールド・ソウルシルバー |
ダブルの連勝がちょうど49なら、次のセットを始めて1勝すれば付与。連勝56以上なら次のセットを始めるだけで選出3体に付与 | — |
| マルチアビリティリボン | ダイヤ・パール・プラチナ ハートゴールド・ソウルシルバー |
NPCとのマルチで同条件 | — |
| ペアアビリティリボン | ダイヤ・パール・プラチナ ハートゴールド・ソウルシルバー |
通信のマルチで同条件 | — |
| レジェンドリボン | ハートゴールド・ソウルシルバー | シロガネやまでレッドを倒す。パーティ全員に付与 | — |
| シンオウチャンプリボン ◆ | ダイヤ・パール・プラチナ | 殿堂入り。ハートゴールド・ソウルシルバーは殿堂入りでリボンが付かない唯一の世代 | 8(BDSP) |
| 曜日リボン7種 ◆ | ダイヤ・パール・プラチナ ハートゴールド・ソウルシルバー |
各曜日に1種。先頭の1体のみ。ナギサシティのジュリア1人が7曜日ぶんを配る(ダイヤ・パール・プラチナ)/ジョウト各地の曜日兄弟7人。全員に会っていることが条件(ハートゴールド・ソウルシルバー) | 6・8 |
| ゴージャス系3種(ゴージャス/ロイヤル/ゴージャスロイヤル)◆ | ダイヤ・パール・プラチナ | リゾートエリアのリボンシンジケートで1万/10万/999,999円。ロイヤルはゴージャス所持が、ゴージャスロイヤルはロイヤル所持が条件。ハートゴールド・ソウルシルバーでは取れない | 6・8 |
| あしあとリボン ◆ | ダイヤ・パール・プラチナ | 213番道路のあしあとはかせ。なつき度が最大(この条件は第4世代のみ)。ハートゴールド・ソウルシルバーでは取れない | 6・7・8 |
| がんばリボン ◆ | ダイヤ・パール・プラチナ ハートゴールド・ソウルシルバー |
努力値の合計が510。ナギサ市場(ダイヤ・パール・プラチナ)/フスベシティ(ハートゴールド・ソウルシルバー) | 3・6・7・8・9 |
ワールドアビリティリボンは Wi-Fi 対戦の終了で入手できなくなったため、この表には入れていない。
第5世代
ブラック・ホワイト/ブラック2・ホワイト2で取れるリボンは無い。配布個体に付いてくるギフトリボンだけ。
第6世代(26種)
| リボン名 | ソフト | 条件 | 他の世代でも取れるか |
|---|---|---|---|
| かっこよさ/うつくしさ/かわいさ/かしこさ/たくましさ マスターリボン(5種)◆ | ORAS | コンテストのマスターランクで優勝。XY にコンテストは無い | 8(BDSP) |
| コンテストスターリボン ◆ | ORAS | 上の5種をすべて取ると自動で付く | 8(BDSP) |
| グレートバトルリボン | XY/ORAS | バトルハウスの20戦目でバトルシャトレーヌを倒す。ルールは問わない | — |
| マスターバトルリボン | XY/ORAS | スーパールールの50戦目でバトルシャトレーヌを倒す | — |
| カロスチャンプリボン | XY | 殿堂入り | — |
| ホウエンチャンプリボン | ORAS | 殿堂入り。第3世代のチャンプリボンとは別のリボンで、両方取れば2個付く | — |
| しゅぎょうリボン | XY/ORAS | スパトレを極めた状態。先頭の1体のみ。ミアレシティのカフェ・アルティメット(XY)/ムロタウン(ORAS) | — |
| 曜日リボン7種 ◆ | XY/ORAS | 各地のホテル(XY)/キンセツシティ(ORAS)。ORAS はパーティ全員に付与され、同じ日に別のパーティで何度でも受け取れる | 4・8 |
| ゴージャス系3種 ◆ | ORAS | キンセツシティのリボン専門店。第5世代以降は所持金の上限が 9,999,999 円なので貯め直しが少なくて済む | 4・8 |
| あしあとリボン ◆ | XY/ORAS | 現在のレベルが「捕獲・入手・第5世代へ移送した時点のレベル」より30以上高いこと。シャラシティ(XY)/バトルリゾート(ORAS) | 4・7・8 |
| なかよしリボン ◆ | XY/ORAS | なつき(なかよし度)が最大。先頭の1体のみ。ミアレシティのプリズムタワー(XY)/キンセツシティ(ORAS) | 7・8・9 |
| がんばリボン ◆ | XY/ORAS | 努力値の合計が510。クノエシティのポケモンファンクラブ(XY)/カイナシティ(ORAS) | 3・4・7・8・9 |
| おもいでコンテストリボン/おもいでバトルリボン | XY/ORAS | 第5世代から移送した時点で自動で付く。上の「第6世代で集約される」を参照 | — |
第7世代(7種)
| リボン名 | ソフト | 条件 | 他の世代でも取れるか |
|---|---|---|---|
| ロイヤルマスターリボン | サン・ムーン ウルトラサン・ウルトラムーン |
ロイヤルドーム。マスターランクのバトルロイヤルで優勝。参加した全員に付与 | — |
| グレートツリーリボン | サン・ムーン ウルトラサン・ウルトラムーン |
バトルツリーでバトルレジェンドに勝つ | — |
| マスターツリーリボン | サン・ムーン ウルトラサン・ウルトラムーン |
スーパーのバトルツリーでバトルレジェンドに勝つ | — |
| アローラチャンプリボン ◆ | サン・ムーン ウルトラサン・ウルトラムーン |
殿堂入り | 8(配布個体のみ) |
| あしあとリボン ◆ | サン・ムーン ウルトラサン・ウルトラムーン |
ハノハノリゾート。条件は第6世代と同じ | 4・6・8 |
| なかよしリボン ◆ | サン・ムーン ウルトラサン・ウルトラムーン |
マリエシティ。先頭の1体のみ | 6・8・9 |
| がんばリボン ◆ | サン・ムーン ウルトラサン・ウルトラムーン |
ロイヤルドーム。努力値の合計が510 | 3・4・6・8・9 |
第7世代のリボンはサン・ムーンでも取れる。ウルトラサン・ウルトラムーン限定のものは無い。
第8世代(25種)
| リボン名 | ソフト | 条件 | 他の世代でも取れるか |
|---|---|---|---|
| マスタータワーリボン | ソード・シールド BDSP |
ガラルのバトルタワーで MAX ランクのダンデを倒す(ソード・シールド)/シンオウのバトルタワーでマスタークラス10ランクのパルマーを倒す(BDSP) | — |
| ガラルチャンプリボン | ソード・シールド | シュートシティのスタジアムで殿堂入り | — |
| マスターランクリボン ◆ | ソード・シールド | シーズン中に MAX ランクへ到達した後、レンタルチームでないパーティでランクバトルに勝つたびに、まだ持っていないチーム全員へ付与(選出しなかった個体にも付く) | 9 |
| なかよしリボン ◆ | ソード・シールド BDSP |
なつきが最大。先頭の1体のみ。ナックルシティ(ソード・シールド)/ヨスガシティ(BDSP) | 6・7・9 |
| がんばリボン ◆ | ソード・シールド BDSP |
努力値の合計が510。ナックルシティ(ソード・シールド)/ナギサ市場(BDSP) | 3・4・6・7・9 |
| トゥインクルスターリボン | BDSP | ヨスガシティ。コンテストスターリボンを持つ個体だけが出られるマスターランクのコンテストで優勝 | — |
| コンテスト系6種(マスターリボン5種+コンテストスターリボン)◆ | BDSP | ヨスガシティ | 6 |
| 曜日リボン7種 ◆ | BDSP | ナギサシティ。各曜日に1種。先頭の1体のみ | 4・6 |
| ゴージャス系3種 ◆ | BDSP | リゾートエリアのリボンシンジケート。所持金の上限は 999,999 円 | 4・6 |
| あしあとリボン ◆ | BDSP | 213番道路。現在のレベルが捕獲・入手時より30以上高いこと | 4・6・7 |
| シンオウチャンプリボン ◆ | BDSP | 殿堂入り | 4 |
| ヒスイリボン | レジェンズアルセウス | コトブキムラの写真スタジオで撮影の準備をする(実際に撮らなくてよい) | — |
第9世代(5種)
| リボン名 | ソフト | 条件 | 他の世代でも取れるか |
|---|---|---|---|
| パルデアチャンプリボン | スカーレット・バイオレット | 殿堂入り。パルデアはリーグに再挑戦できないため、アカデミーエーストーナメント優勝でも付与 | — |
| パートナーリボン | スカーレット・バイオレット | リーグ部室の特別コーチとの交換で受け取った個体に付いている。自力では取れない | — |
| マスターランクリボン ◆ | スカーレット・バイオレット | 第8世代と同じ | 8 |
| なかよしリボン ◆ | スカーレット・バイオレット | カラフシティ。先頭の1体のみ | 6・7・8 |
| がんばリボン ◆ | スカーレット・バイオレット | ハッコウシティ。努力値の合計が510 | 3・4・6・7・8 |
現在どうやっても取れないもの
ワールドアビリティリボン(Wi-Fi 対戦の終了)/カントリーリボン・ワールドリボン(ポケモンフェスタの大会配布)/ レコードリボン・せんざいいちぐうリボン・エリアチャンプリボン・ナショナルチャンプリボン(正規の配布実績なし)/ その他のギフトリボン(配布個体限定)。
12DPへ続く
第3世代でできることには天井がある。リボンのうち20種以上は第4世代にしか無く、その中には公式のWi-Fiが終わった今、正規では二度と手に入らないものがある。そこから先はダイヤモンド・パールの任意コードの領域になる。この章は、その入口までの地図。DP側のコードそのものは本書にまだ収録していない。
実機のソフトだけで成立する
改造カートリッジもフラッシュカートも要らない。ゲーム内のバグの連鎖だけで任意コード実行に届く。命令列の打ち込みにはポケッチの電卓アプリを使う。
ただし入口はエメラルド側にある。特定の性格値を持つフシギダネ1匹とパッチール3匹をエメラルドの任意コードで作り、パルパークでDPへ送るのが前提になる。本書で組んだ環境がそのまま前提を満たす。
プラチナ・HGSSでは使えない
同じ穴はプラチナとHGSSでは塞がれている。発見者本人がそう書いている。第4世代で任意コードが走るのはDPだけ。プラチナ・HGSSに手を伸ばすには、DP側で任意コードを確立してから、ふしぎなおくりものの通信経由で送り込む別の道を通ることになる。
日本語版の初期版ROMに限られる
英語版は、なぞのばしょへ行くのに必要なメニューが開けない。日本語版でも初期版と後期版で挙動が違い、確立している手順が通るのは初期版のほう。手元のソフトがどちらかを外から見分ける確実な方法は見つかっていない。実質的には「なみのりでなぞのばしょへ行けるか試す」こと自体が判定になる。
下準備は重い
殿堂入りを28〜30回。28回目までは「なみのり」を使う短縮ルートが効くが、29回目から先は別のバグが要る。必要な正確な回数を断定した資料は無く、資料ごとに28・29・30と食い違っている。
なぞのばしょでレポートを書くと、脱出できなくなることがある。公式の救済プログラムは2018年2月に終了しているので、壊れたセーブは戻らない。
DPで書けるもの
| 書けるもの | 中身 |
|---|---|
| 第4世代限定のリボン39種 | シンオウのスーパーコンテスト20種 / アビリティ系6種 / レジェンドリボン / シンオウチャンプリボン |
| 個体データのほぼ全項目 | 種族・性格値・個体値・努力値・特性・技・持ち物・ボール・出会った場所・出身バージョン・TN・NN・親ID・国籍・コンディション・運命的な出会いフラグ |
| 配信専用アイテム | Wi-Fi終了後に配信物のフラグを立てる |
レジェンドリボンは本来「シロガネやまでレッドに勝つ」条件だが、DP側でビットを直接立てられる。シロガネやまへ行く必要が無くなる。ワールドアビリティリボンはWi-Fi終了によって正規入手が不可能で、任意コード以外の道が無い。
エメラルドで済ませること / DPまで持ち越すこと
| 項目 | どこで書くか | 理由 |
|---|---|---|
| 色違い化・個体値・性格 | エメラルド | 移送で保持される。第3世代で形を固めてから送る |
| 出会った場所・ボール・TN・NN・親ID・出身バージョン | エメラルド | どちらでも書けるが、移送前に済ませるほうが手戻りが無い |
| コンテストリボン5系統・一般5種・特殊7種 | エメラルド | 第3世代の書き換えコードで足りる |
| シンオウのスーパーコンテスト20種 | DP | 第4世代にしか無い |
| アビリティ系6種 | DP | 第4世代にしか無い。ワールドは正規入手不可 |
| レジェンドリボン | DP | HGSSの条件だがDP側で書ける |
| シンオウチャンプリボン | DP | 第4世代とBDSPにしか無い |
移送の道が2本に分かれる
第4世代限定のリボンが要る個体だけDPを通す。それ以外はHGSSへ直行させる。DPのパルパークは24時間に1回6匹までだが、HGSSではこの制限が撤廃されている。数を捌くならHGSS、リボンを書くならDP。DPで仕上げた個体は、DS本体2台の通信交換でHGSSへ移す。
まだ確かめていないこと
- リボンを書き込んだ個体がHOMEを通るか。色違い化と運命的な出会いフラグについては通った報告がある
- リボン39種のうち38種は単一の個人記録が根拠で、第三者の再現報告が見つかっていない
- 初期版ROMを外から見分ける方法
- ACEの前提として送る4匹が、パルパークの6匹枠を使うのかどうか
13使っている物PR
この作業に実際に要る物。以下のリンクは広告リンクを差し込む枠で、現時点ではリンク先が未設定。
広告リンクを含むページは広告であることを明示する必要がある(景品表示法のいわゆるステマ規制)。 実際の運用にあたっては消費者庁の告示・運用基準を確認すること。
14出典
- コード原典デテロニー「Em汎用コード用サンプルコード一覧」
- 汎用コード環境同「Em任意コード実行によるイベントスクリプトの実行」
- 0x085F の作製同「Em任意コード実行に向けたザロクバグの解説」
- リボン付与同「Em任意コード実行によるリボンの付与」
- 配布ジラーチ同「WISHMKR&CHANNELジラーチの基本情報及び個体一覧」
- 0x085F の概要ぼんじり氏のブログ
- 定数・内部処理pret/pokeemerald(species.h / moves.h / items.h / charmap.txt / region_map_sections.json / pokeblock.h)
- データ構造Bulbapedia: Pokémon data substructures (Generation III)
- 移送の仕様Pal Park / Poké Transfer / Poké Transporter
- 運命的な出会いFateful encounter
- リボン一覧List of Ribbons in the games
- 場所ID索引List of locations by index number (Generation III)
- 日本語名PokeAPI(種族・技・道具・地名の ja-Hrkt 表記)
- DP の ACERETIRE「Arbitrary Code Execution found in Pokémon Diamond and Pearl」
- DP 手法の整理Glitch City Wiki: ACE (Generation IV)
- DP 実践東方錆恋録
- DP 研究史古い土地
- DP 書き換え項目nakayoshibaddi's blog
- 第4世代リボンたけかわ「DP リボンの任意コード」