任意コード実行
任意コード実行(英: Arbitrary Code Execution、以下ACE)とは、ゲーム内に存在するバグを応用して、任意のプログラムを実行するバグである。
現在までに、第四世代まででセットアップが確立されている。本項ではACEのセットアップ、およびその大まかな仕組みを紹介する。
これらのバグはファイルのデータを破壊したり、ゲームが進行、起動不可能になる危険があります。実行の際は自己責任でお願いします。
第一世代
赤・緑・青
現在ではバイナリエディタを導入してからが本番なので、ここではまずバイナリエディタの導入方法を紹介する。 どこかしらドア(2番目バグ)でタマムシデパートに行き、Dry Underflow(255個の道具を利用して道具の所持数を異常な数にするバグ) で所持金の千の位、百の位をそれぞれ6、7(要は6700円台に調整)にして「なかよしバッヂ」を入手。 イーブイの部屋(タマムシマンション屋上部屋)にワープ。どこかしらドアの副産物でイーブイが無限に取得できるのでニックネームでコーディング。簡易版プログラムマシンを作り、アドレスD5E9hからバイナリエディタのコードを入力する。 D5E9h~D66Ehはイベントフラグの未使用領域であり、ここにバイナリエディタのコードを入力することで、パソコンを自由に使えるようになる。
任意コード実行アイテム いしはら(78h、D037hに飛ぶ)バトルのモードに関わるメモリ。ここに絶対ジャンプ命令(C3h)を入れると操作不能に陥るので、D038h以降に入力するのが普通。
5かい(5Ah、D123hに飛ぶ)手持ちのポケモンの数に関わるメモリ。メノクラゲやニャースを使って、相対ジャンプ命令を行い、操作しやすいメモリに飛ばす。
てふ/てへ(7Bh、D806hに飛ぶ)闇市ができるアイテムでお馴染み。エンカウントテーブルに関わるメモリに飛ぶ。 トキワシティの酔っ払っていたおじいさんからポケモン捕獲のレクチャーを受けるとD807hから主人公の名前の2文字目以降が書き込まれる。つまり、主人公の名前を「アて○○」(アは00hで上書きされるので無意味、○○は操作しやすいメモリに飛ばすとよい。ヤめ、ウんあたりが有力。)にすればよい。ただ画面左上に50hのマップタイル(木や商品棚など)がないと選択した瞬間フリーズする。
なかよしバッヂ(67h、D983hに飛ぶ)サファリボールの個数のメモリ。その後にはそだてやのデータがあり、ニックネームが「パパて○○(任意)」のポケモンを預ける。てふ/てへ同様に操作しやすいメモリに飛ばすとよい。
4かい(59h、FA67hに飛ぶ)手持ち5匹目のHP努力値上桁のミラー。ACEの成立条件不明。
やまぐち(77h、FA58hに飛ぶ)現在HP下桁のミラー。主人公の名前が「てぽめだド」かつボックスのポケモンが1~6匹のときのみ可能。
ピカチュウ
はやぶさバッヂ(65h、DDCAh(v1.0)、D4CAh(v1.1~(VC含む))に飛ぶ) v1.0ではボックスのポケモン5匹目の親名3文字目、それ以外ならPC道具欄の9番目の種類に飛ぶ。ピカチュウ版ではバグアイテムの入手が困難なのでジャンプ命令を差し込めない。初期版では主人公の名前を調整すればよい。やはり「て○○」がおすすめ。
シルバー(6Eh、FCCDh(v1.0)、FDCDh(v1.1~(VC含む))に飛ぶ) 初期版ではボックスのポケモンのステータスのミラー領域に飛ぶ。 それ以外なら初期版のはやぶさバッヂと同じようなコーディング方法が採れる。しかし参照アドレスに終端文字50hが混入してしまうことがあり、コーディングが困難になってしまうことがある。したがって主人公の名前は4文字以下にすること。 バイナリエディタが導入できたらシルバーで起動できるようにして、PC道具欄を使えるようにする手もあり。
かいがらバッヂ(62h、D9B2hに飛ぶ) ジャンプ先はボックスのポケモンの数。コーディング方法は赤・緑・青の5かいに近い。 4かい(FA66hに飛ぶ)コーディング方法は赤・緑・青とほぼ同じ。
他にかみなりバッヂ、バラバッヂがボックスのポケモンのステータスのミラー領域に飛ぶ。
5かい:赤・緑・青のいしはらと同じ。