数ヶ月前に書いたこの記事の情報が色々と古くなってきたので新しく纏め直しました。
bzl.hatenablog.com
この記事では0x085F入手後~バイナリエディタ起動までの流れについて解説します。
この記事で紹介しているコードは0x2B5Cによる呼び出しを推奨していません。
使用しているRAM改竄方式にもよりますが、技アニメスクリプト用のコードを挟ませていないので状況次第でクラッシュに繋がります。
0x085Fをまだ持っていない場合はこの記事の手順を踏んで生成させてください。
bzl.hatenablog.com
以下実行手順の説明です。
この記事で使用されている『へ』『べ』『ぺ』は全て平仮名になります。
1)RAMコピー用のダメタマゴ生成
ボックスRAMへ効率良くデータをコピーする為に、メモリコピー処理を埋め込んだダメタマゴをボックス1/15に生成します。
以下の通りにボックス名を編集した後、0x085Fのステータスを開いて処理を実行してください。
ボックス | ボックス名 |
---|---|
ボックス1 | 『ォめンばつい『は』 |
ボックス2 | 『アこぅほょ l』 |
ボックス3 | 『せもっめコづグね』 |
ボックス4 | 『アCTなGけl』 |
ボックス5 | 『ロば むいぽゆリ』 |
ボックス6 | 『アアアzをけd』 |
ボックス7 | 『CTぃGCTるG』 |
ボックス8 | 『アへTなGねl』 |
ボックス9 | 『9をうW l99』 |
ボックス10 | 『アアアキっうぅ』 |
ボックス11 | 『アアオエあぅ』 |
ボックス12 | 『アっるあV』 |
ボックス13 | 『あゃポば l99』 |
ボックス14 | 『アアアミBィC』 |
正しく処理が実行できていれば、以下のようにダメタマゴが配置されます。
このダメタマゴは動かさないでください。
2)バイナリエディタ実体コピー
バイナリエディタのプログラムデータをボックス1/2~1/13にコピーします。
まず先程生成したダメタマゴを参照するための処理を入力します。
以下の通りにボックス名を編集してください。
ボックス | ボックス名 |
---|---|
ボックス1 | 『ォらぜいっむきぼ』 |
ボックス2 | 『アぼづワば l』 |
ボックス3 | 『oひせみぶづボね』 |
ボックス4 | 『アひねねゃポば』 |
この処理で先程のダメタマゴを呼び出すことでボックスRAM上に0x50byteのデータをコピーできます。
データのコピー先はボックス5の最初の4文字で決定され、『 』(0x00000000)の場合はボックス1/2、『ふ 』(0x0000001C)の場合はボックス1/30といったようにポケモンの位置に対応したコピー先を指定できます。
ボックスのポケモン1匹分のデータサイズは0x50byteで、バイナリエディタは0x3C0byte(ポケモン12匹分)のデータで構成されているので合計12回のコード実行でコピーが完了します。
以上の通り、ボックス5-ボックス13のボックス名は任意コードの呼び出し毎に変更してください。
1回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『 ィ♂ミ」』 |
ボックス6 | 『fぶYぴァばおが』 |
ボックス7 | 『Dばルl9おふV』 |
ボックス8 | 『ぴァばおがDばム』 |
ボックス9 | 『l みUぴ9ァば』 |
ボックス10 | 『おがDばノl9く』 |
ボックス11 | 『むUぶPぴァば9』 |
ボックス12 | 『けがDばセlOべ』 |
ボックス13 | 『9すメSぶ』 |
2回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『あ くタ リ』 |
ボックス6 | 『くム みべムミB』 |
ボックス7 | 『ィCPぶ9たむけ』 |
ボックス8 | 『いぞね めMべあ』 |
ボックス9 | 『ィあぅあも9あも』 |
ボックス10 | 『あもあもあも9あ』 |
ボックス11 | 『もあもあもいぃ9』 |
ボックス12 | 『あィあぇせれxW』 |
ボックス13 | 『9あぅあィ』 |
3回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『い あぅAぶ』 |
ボックス6 | 『ぞもためついィね』 |
ボックス7 | 『あィGイ9いぅふ』 |
ボックス8 | 『ぃあィGイあぅ♀』 |
ボックス9 | 『ぶためつい9ィね』 |
ボックス10 | 『あィあぅ め9あ』 |
ボックス11 | 『もあもあもあも9』 |
ボックス12 | 『あもあもあもあも』 |
ボックス13 | 『9あもあも』 |
4回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『う いぃあィ』 |
ボックス6 | 『あぇせれxWあぅ』 |
ボックス7 | 『あィミび96ばF』 |
ボックス8 | 『ばィ♂ミ」ャ…ビ』 |
ボックス9 | 『ぷりレちむ9ッぴ』 |
ボックス10 | 『ァばけがDば9ヲ』 |
ボックス11 | 『l やんふりリ9』 |
ボックス12 | 『あけけるいeたぅ』 |
ボックス13 | 『90ぅぅヤ』 |
5回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『え そむあぞ』 |
ボックス6 | 『ける eたぅ0ぅ』 |
ボックス7 | 『ムヤあゅ9いょあ』 |
ボックス8 | 『ゃおわおVえわp』 |
ボックス9 | 『Wあょns9ィぷ』 |
ボックス10 | 『んふぇふたゲ9W』 |
ボックス11 | 『ゲVェちェっゲ9』 |
ボックス12 | 『ダゲゾェアェ み』 |
ボックス13 | 『9ぃツミツ』 |
6回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『お …ツミル』 |
ボックス6 | 『えりきVぞ たぃ』 |
ボックス7 | 『ぅコたぃ9ぅイき』 |
ボックス8 | 『lミンるむミエ…』 |
ボックス9 | 『ンれむミエ9ァみ』 |
ボックス10 | 『ィぃぃラ…ュ9た』 |
ボックス11 | 『ょいバ みあゾ9』 |
ボックス12 | 『ノぶ ゾりレ む』 |
ボックス13 | 『9 め も』 |
7回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『か ミぴィゃ』 |
ボックス6 | 『ァばおがDばはl』 |
ボックス7 | 『たょいバ9 みあ』 |
ボックス8 | 『ゾタぶ ゾりレ 』 |
ボックス9 | 『む め も9ニぴ』 |
ボックス10 | 『ィゃァばけが9D』 |
ボックス11 | 『ばえlえ…ミB9』 |
ボックス12 | 『ィC6ばィ♂ミ」』 |
ボックス13 | 『9きふリば』 |
8回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『き おぃョば』 |
ボックス6 | 『てsぷぷサぺょギ』 |
ボックス7 | 『たみぃぞ9おVネ』 |
ボックス8 | 『ルえりヤVあぃネ』 |
ボックス9 | 『ムヒlみみ9ぃぞ』 |
ボックス10 | 『けVネル り9ヌ』 |
ボックス11 | 『Vあぎネムセl9』 |
ボックス12 | 『ぞみぃぞつVネル』 |
ボックス13 | 『9えりいV』 |
9回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『く Fづうむ』 |
ボックス6 | 『くぞるシあぅるエ』 |
ボックス7 | 『えりぴV9りネ 』 |
ボックス8 | 『リりムばlィみぃ』 |
ボックス9 | 『ぞそVネル9えり』 |
ボックス10 | 『えVFづうむ9く』 |
ボックス11 | 『ぞるシあぐ ぐ9』 |
ボックス12 | 『osネルえりとW』 |
ボックス13 | 『9たみ あ』 |
10回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『け ぃぞうV』 |
ボックス6 | 『るルたぅるムよl』 |
ボックス7 | 『みみ あ9ぃぞえ』 |
ボックス8 | 『Vえみるルたぐる』 |
ボックス9 | 『ムひlあみ9ぃぞ』 |
ボックス10 | 『おVりネるル9あ』 |
ボックス11 | 『ミたlいみぃぞ9』 |
ボックス12 | 『ちVぎふよぴァば』 |
ボックス13 | 『9けがDば』 |
11回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『こ ァsやぶ』 |
ボックス6 | 『 むあミおlァば』 |
ボックス7 | 『けがDば9trミ』 |
ボックス8 | 『BィCFば けけ』 |
ボックス9 | 『せいそゼ 9 い』 |
ボックス10 | 『う えお 9っ』 |
ボックス11 | 『ぇ くシょ く9』 |
ボックス12 | 『ぶめ くリギこく』 |
ボックス13 | 『9 bうい』 |
12回目
ボックス | ボックス名 |
---|---|
ボックス5 | 『さ シYうい』 |
ボックス6 | 『どXういネYうい』 |
ボックス7 | 『フYうい9 』 |
ボックス8 | 『いたv かとn 』 |
ボックス9 | 『 っv か9Vv』 |
ボックス10 | 『 かねご く9ワ』 |
ボックス11 | 『ボのくゾも う9』 |
ボックス12 | 『トグこくわそ う』 |
ボックス13 | 『9アアアア』 |
以上のコード実行を終えるとボックス1が以下のような状態になります。
コピー先のミスはタマゴの位置で判別可能ですが、細かいデータ内容のミスまでは判別できません。
(チェック用のコードを書くことも可能ですが、できればミスのないよう慎重に打ち込んでもらうのが望ましいです)
3)バイナリエディタの起動
バイナリエディタを起動する為のコードです。
以下の通りにボックス名を編集した後、0x085Fのステータスを開いて処理を実行してください。
ボックス | ボックス名 |
---|---|
ボックス1 | 『ォめリばついィは』 |
ボックス2 | 『アこぃおべ l』 |
ボックス3 | 『しふみぅリめヂ 』 |
ボックス4 | 『アさkいべおl』 |
ボックス5 | 『 Vういりぃ も』 |
ボックス6 | 『アみふいふ l』 |
ボックス7 | 『むぇえぱせFいぶ』 |
ボックス8 | 『ア むあタおl』 |
ボックス9 | 『ぎせ うらい 』 |
ボックス10 | 『アGタあむ l』 |
ボックス11 | 『あメあぅだメえチ』 |
ボックス12 | 『アミBィC』 |
バイナリエディタの打ち込み、起動コードの打ち込みにミスが無ければバイナリエディタが実行されます。
操作に関しての簡潔な纏めは以下の通り
バイナリエディタ導入後、セーブハックを行うと更に自由度が高まります。
bzl.hatenablog.com
操作ミスでセーブデータが破損する可能性があるので実践する方はセーブデータのコピーを推奨します。
(一見するとセーブデータコピーの方が危険そうですが割と安全です)
bzl.hatenablog.com
おまけ
スクリプト実行
0x03000E40 <- 0x01
0x03000E41 <- 0x02
0x03000E44 <- 0x00000000(word)
0x03000E48 <- イベントスクリプトのアドレス(word)
0x03000E38 <- 0x00 ※このアドレスの上書きは必ず最後に行う
任意ポケモンエンカウントスクリプト
個体値等はランダムです
乱数調整したいならMethod1で計算するといいかもしれないです
B6 PP PP LV IT IT B7 02PP PP = ポケモンコードLV = レベル(100 = 0x64)IT IT = アイテムコード
任意マップワープスクリプト
39 MP MP 00 00 00 00 00 02MP MP = マップID1A 38 = さいはてのことう1A 09 = みなみのことう1A 3A = たんじょうのしま1A 42 = へそのいわ18 67 = うみのどうくつ18 69 = りくのどうくつ
フラグ書き換えスクリプト
フラグをONにする29 FL FL 02フラグをOFFにする2A FL FL 02FL FL = フラグID91 00 = ルギア捕獲済み92 00 = ホウオウ捕獲済みAD 01 = デオキシス捕獲済みBB 01 = レジロック捕獲済みBC 01 = レジアイス捕獲済みBD 01 = レジスチル捕獲済みBE 01 = カイオーガ捕獲済みBF 01 = グラードン捕獲済みC0 01 = レックウザ捕獲済みC9 01 = 孤島ラティ捕獲済みCA 01 = ミュウ捕獲済みC0 01 = レックウザ捕獲済み50 0D = むげんのチケット配達員出現