バイナリエディタ(第二世代)

バイナリエディタ
メモリエディタ、RAMエディタとも。
RAMを自由自在に編集できるプログラム。任意コード実行の最高到達点の一つ。
これがあればもはや書き換え系のコードをいちいち作成する必要性がなくなり、任意コード実行用のプログラムの書き込みも非常に容易になる。
思わぬ範囲まで効果が及ぶ可能性があるので危険が伴います。実験・使用・使用後のセーブには充分注意しましょう。

目次


簡易型バイナリエディタ(flag3式)

参考資料
ポケモン金銀にバイナリエディタを移植したお話 - flag3833753
ポケモンクリスタルにおけるバイナリエディタ - flag3833753

2023/12/11更新!コードの見直しにより修正用メールが1通になりました。
最後に読んだメールからの任意コード実行を可能にした状態で、ボックスの名前を下記のものに書き換える。
(金銀は図鑑モード06hを利用してCF40hへ、クリスタルは図鑑モード0ChでD021hに飛ぶことを想定する)
ボックス1の「がヲ」とボックス2の「ぜナ」の部分が簡易型バイナリエディタの開始位置(この場合はAA94h)となる。
これはSRAM03hのオープンと合わせることで、バイナリエディタの本体をボックス9に書き込むものとなる。

金銀

  1. ぼギダへマがヲ
  2. ぜナダだグぼダ
  3. ぞてはりダムキづ
  4. ごヅまぱへごま
  5. ごまボぷへごま
  6. わたしひ ぐイ゛
  7. ダれへリダだイ゛
  8. ダダれダだな
  9. ぼヂてはリ

入力不可能な文字がある(「わたし」も1文字)ため、下記メールで修正を行う。

  1. ぼぴがづぜづに
    づぜ8ひラづのののののののだっ

     

文末の「だっ」は「てパま」(jp CF40)を使用する場合に対応するもの。

クリスタル

  1. ぼギダへマがヲ
  2. ぜナダだグぼダ
  3. ぞてアろダムキづ
  4. ごヅまぱへジみ
  5. ジみボぷへジみ
  6. ばん どうろひ ぐイ゛
  7. ダれエろダだイ゛
  8. ダダれダだな
  9. ぼヂてアろだあ

入力不可能な文字がある(「ばん どうろ」も1文字)ため、下記メールで修正を行う。

  1. ぼぴがづぜづに
    づぜづののののののののののだっ

     

ボックスの入力が終わったら、下記のメールを読んでコードを実行すると、簡易型バイナリエディタが起動する。
2023/12/11更新!バグ図鑑モード・分類違いわざマシンの両方に対応しました。

金銀
ロどいリなひだへづま
ぼダメに0ぞ?ムぞボデのののだっ
※「ののだっ」はCF40hから実行する場合のみ必要。
クリスタル
なづつぢおろなひだへドみ
ぼダメに0ぞ?ムぞボデのののだっ
※「ののだっ」はD021h(図鑑モード0Ch)から実行する場合のみ必要。

操作方法

左4桁にアドレスが表示され、右2桁が数値となる。
専用のフォントを呼び出せていない関係で、ABCの3文字が文字化けしている。
起動のたびにメールを読み直す必要がある点に注意。

数値の対応表
数値(文字) バッグ 図鑑
A g
B 青色の線
C 携帯マーク 携帯マーク
キー入力
キー 操作
A 指すアドレスを+01h
B 指すアドレスを-01h
指しているアドレスの内容を+01h
指しているアドレスの内容を-01h
指しているアドレスの内容を+10h
指しているアドレスの内容を-10h
START 簡易型バイナリエディタを終了

この簡易型バイナリエディタを使って、ボックス9の中にバイナリエディタのコードを打ち込んでいく。

開始地点であるAA94hから書き込むと預け数が異常な数になってしまうため、

  • AA94に崩壊防止のため1Eh
  • AAB3に終端をあらわすFFh

を入れ、AAB4から書き込み始めるとよさそう。
AA95~AAB2は、00hで埋めておくと見た目は誰もいないのにボックスがいっぱいという状況になるが、ボックス整理で無理やり上限突破をすることもできてしまうため、不安なら01h(フシギダネ)やFDh(タマゴ)などで埋めておくのが無難。一応、344バイトのデータはポケモン11匹分で収まるようになっている。

紹介するのはこちら。

おまけ:バイナリエディタをボックス6に退避させる

入力ミスがあった場合、ボックス7~9のデータが消し飛ぶ可能性がある(逆にボックス1~6が被害にあう可能性もなくはないけれど…)ため、余裕があるならボックス6にバイナリエディタのデータを退避させておくとリカバリーが容易になる。

現在ボックスの番号が金銀ではD8AFh、クリスタルではDB65hに記録されており、ここを書き換えてからレポートを書くことでボックスをコピーすることができる。
具体的には以下の手順となる。

  1. コピー元のボックスに切り替える。
  2. 現在ボックスのアドレスをコピー先のものに書き換える。
    • ボックスの番号は00hから始まる点に注意。(そのためボックス9は08h、ボックス6は05hになる)
  3. レポートを書く。(STARTメニューからでいい)

退避:ボックス9→ボックス6※要実行後レポート

金銀
デの空空空空空空空空空
空空空空空空空空空空空空空空だっ
クリスタル
はろひびデの空空空空空空空
空空空空空空空空空空空空空空だっ

復元:ボックス6→ボックス9※要実行後レポート

金銀
デの空空空空空空空空空
空空空空空空空空空空空空空空だっ
クリスタル
はろひびデの空空空空空空空
空空空空空空空空空空空空空空だっ

以下旧版。こちらはバイナリエディタの記述部分を一時領域経由でコピーするコードになる。
SRAMバンクが違うため、コピーはWRAMを経由してメール2通に分ける。
実行時に使うものと一時コピー先は同じなので、退避終了後に金銀では「てぬわ」、クリスタルでは「てあめ」でコードを実行してテストしてしまうのもいいだろう。
flag3式バイナリエディタ(金銀版)の場合はアドレスDCC6hから始めているので、アドレスの指定を「にわ」にすることを推奨。

退避:ボックス9(03h:AAB4h)→ボックス6(02h:BA92h)

金銀1
ぶぺぶぶヅぬわがへマだ空
ゾパひへよだてャだ空空空空だっ
金銀2
ぶぺぶヅテこがわぜぬへマだ空空
ゾパひへよだてャだ空空空空だっ
クリスタル1
ぶぶぺぶヅあめがへマぞ空
ゾパひへ/ぞてャぞ空空空空だっ
クリスタル2
ぶぶぺヅテこがめぜあへマぞ空空
ゾパひへ/ぞてャぞ空空空空だっ

復元:ボックス6(02h:BA92h)→ボックス9(03h:AAB4h)

金銀1
ぶぺぶヅぬわがへマだ空空
ゾパひへよだてャだ空空空空だっ
金銀2
ぶぺぶぶヅえヲがわぜぬへマだ空
ゾパひへよだてャだ空空空空だっ
クリスタル1
ぶぶぺヅあめがへマぞ空空
ゾパひへ/ぞてャぞ空空空空だっ
クリスタル2
ぶぶぺぶヅえヲがめぜあへマぞ空
ゾパひへ/ぞてャぞ空空空空だっ

豪華版バイナリエディタ V2(Teraman式、344バイト)

参考資料(最新版の情報あり)
簡単!?バイナリエディタ導入! ポケモン第二世代任意コード実行講座 Part.08【VOICEROID紲星あかり】

本体のコードは長くなるので最後に記載。なお、簡易型バイナリエディタは上記の動画とはプロセスの違うものである点に注意。

実行用コード

SRAM内にあるままだと実行時に不便なため、WRAM内の適当なアドレスに内容をコピーして使用する。
コピー先として使用するDCC7h(金銀)、D2B1h(クリスタル)は戦闘時に敵パーティの中身が入る領域。非戦闘時には自由に利用できる。

※AAB4hからのコピーなので、AA94hからコピーする場合は「ガヲぜえ」の「え」を「ナ」にする。

金銀
ぺぶぶヅぬわがヲぜへマ
ゾパひよだへャぬわ空だっ
クリスタル
ぶぺぶヅあめがヲぜへマ
ゾパひ/ぞへャあめ空だっ

メールでの実行が確認出来たら簡易型バイナリエディタは不要になるので、ボックスからの実行にするといちいちメールを読む必要がなくなり、他のメール使用コードを持ち運びやすくなる…かも。

金銀

  1. ぺぶがヲぜえ
  2. ぬわぶヘマ
  3. むゾパひァへよだ
  4. へャぬわ

クリスタル(始点はDB68h)

  1. ぶぺがヲぜえ
  2. あめぶヘマ
  3. むゾパひァへ
  4. あめ

金銀版の場合は以下のニョロボンを作って手持ち3匹目に置くと、わざマシン17から一発でバイナリエディタに飛べる。
経験値や努力値にコードを書きこんでいる関係上、戦闘で経験値が入ると崩壊することに注意。

Teraman式バイナリエディタ実行用ニョロボン
  内容 数値 ニモニック
種族 ニョロボン 3E ld a,03
持ち物 ひかりのこな 03
技1 ころがる CD call 309D
技2 いわなだれ 9D
技3 ちょうおんぱ 30
技4 たいあたり 21 ld hl,AAB4
ID 46250 B4
AA
経験値 90113
(Lv.46)
01 ld bc,0160
60
01
H努力値 4551
(H152)
11 ld de,DCC7
C7
A努力値 56525
(A121)
DC
CD call 30D6
B努力値 54832
(B125)
D6
30
S努力値 52653
(S107)
CD call 30AD
AD
C努力値 12483
(C93/D111)
30
C3 jp DCC7
AB個体値 A12/B7 C7
SC個体値 S13/C12 DC

クリスタル版の場合は分類違いわざマシンの実行位置に以下のコードを書き込むのも有効。(21バイト)

3E 03 CD 9D 2F 21 B4 AA 11 B1 D2 01 60 01 D5 CD F2 2F C3 AD 2F
; ld a,03→call 2F9D→ld hl,AAB4→ld de,D2B1→ld bc,0160→push de→call 2FF2→jp 2FAD

画面表示

左から順に、

  1. ROM、sRAMバンクナンバー
  2. アドレス
  3. カーソル、書き込みモード時は白抜きになる
  4. 左のアドレスに格納されている値

操作方法

通常モード
キー 操作
アドレスを-01h
アドレスを+01h
アドレスを-10h
アドレスを+10h
SERECT+上 アドレスを+100h
SERECT+下 アドレスを-100h
SERECT+左 アドレスを-1000h
SERECT+右 アドレスを+1000h
START+上 バンクを+01h
START+下 バンクを-01h
START+左 バンクを-10h
START+右 バンクを+10h
A 書き込みモードに移行
B バイナリエディタを終了
START+A カーソル位置のプログラム実行
書き込みモード
キー 操作
数値を+01h
数値を-01h
数値を-10h
数値を+10h
SERECT 数値を00hにする
A 数値を書き込む
B 書き込みをキャンセル

説明

簡易型バイナリエディタでは1バイトずつしかアドレスを表示できなかったが、豪華版では画面全体を使って16バイト分のアドレスを表示できるようになっている。
他にも桁ごとの増減、ROMバンク切り替え、プログラムの実行などの高度な機能が実装されている。
ちなみにvRAMおよびwRAMのバンク切り替え機能は付いていないが、これはどちらも必要になる状況が非常に限られている上、実装に非常に手間と容量がかかるためである。
このバイナリエディタには開始アドレスとROMバンクの情報を記録する機能があるが、この情報は「おかあさん」の名前データ(未使用)に書き込まれている。(金銀ではD1BBh~、クリスタルではD494h~)
これで不具合が起こるのは意図的に文字列49h(通常なら「おかあさん」と表示される)を表示したときぐらいである。
仕様上、sRAM内のデータを弄ろうとすると書き込みモード開始時に初期値が現在値と関係なくFFhになってしまうことに(最初は書き込み前の値が表示されることを含めて)注意。

書き込むコード

金銀(書き込み先はDCC7h~)
cd a8 34 11 b2 4e 21 00 90 01 23 3e cd 76 0e cd
b4 0e cd 87 0d cd 95 0d cd b8 33 f0 9f f5 21 bb
d1 2a 47 2a 4f 56 3e ed ea e2 c3 c5 7a cd 9d 30
d7 21 a0 c3 cd 26 dd d5 11 14 00 19 d1 1e 10 78
cd 26 dd 79 cd 26 dd 23 0a cd 26 dd 03 d5 11 0d
00 19 d1 1d 20 e9 c1 cd ad 30 cd 37 dd 18 cc c5
0e 02 47 cb 30 3e 0f a0 c6 f6 22 0d 20 f5 c1 c9
c5 cd f4 36 c1 67 f0 aa cb 5f 20 1e cb 57 20 30
cb 7c 20 3e cb 74 20 3c cb 6c 20 3a cb 64 20 3b
cb 4c 20 3e cb 44 20 6c 18 d6 cb 7c 20 4b cb 74
20 49 cb 6c 20 47 cb 64 20 47 cb 44 20 30 18 e0
cb 7c 20 42 cb 74 20 40 cb 6c 20 3e cb 64 20 3f
18 ce 03 c9 0b c9 21 f0 ff 18 03 21 10 00 09 44
4d c9 21 bb d1 78 22 79 22 72 f1 f1 d7 c9 c5 d5
7a 21 02 00 09 cf d1 c1 c9 15 c9 14 c9 3e f0 18
02 3e 10 82 57 c9 05 c9 04 c9 21 00 f0 18 cf 21
00 10 18 ca 03 03 0a 5f 21 e2 c3 3e ec 77 c5 cd
f4 36 c1 cb 7f 20 1a cb 77 20 19 cb 6f 20 19 cb
67 20 19 cb 57 20 1a cb 4f 20 27 cb 47 20 1a 18
dd 1d 18 01 1c 7b 18 0b 3e f0 18 02 3e 10 83 18
01 af 5f 23 cd 26 dd 18 bf 7a cd 9d 30 7b 02 cd
ad 30 3e ed 77 0b 0b c9
クリスタル(書き込み先はD2B1h~)
cd c5 32 11 c0 4d 21 00 90 01 22 3e cd c6 0d cd
c5 0f cd 3b 0e cd 49 0e cd cc 31 f0 9d f5 21 94
d4 2a 47 2a 4f 56 3e ed ea e2 c4 c5 7a cd 9d 2f
d7 21 a0 c4 cd 10 d3 d5 11 14 00 19 d1 1e 10 78
cd 10 d3 79 cd 10 d3 23 0a cd 10 d3 03 d5 11 0d
00 19 d1 1d 20 e9 c1 cd ad 2f cd 21 d3 18 cc c5
0e 02 47 cb 30 3e 0f a0 c6 f6 22 0d 20 f5 c1 c9
c5 cd 1b 35 c1 67 f0 a9 cb 5f 20 1e cb 57 20 30
cb 7c 20 3e cb 74 20 3c cb 6c 20 3a cb 64 20 3b
cb 4c 20 3e cb 44 20 6c 18 d6 cb 7c 20 4b cb 74
20 49 cb 6c 20 47 cb 64 20 47 cb 44 20 30 18 e0
cb 7c 20 42 cb 74 20 40 cb 6c 20 3e cb 64 20 3f
18 ce 03 c9 0b c9 21 f0 ff 18 03 21 10 00 09 44
4d c9 21 94 d4 78 22 79 22 72 f1 f1 d7 c9 c5 d5
7a 21 02 00 09 cf d1 c1 c9 15 c9 14 c9 3e f0 18
02 3e 10 82 57 c9 05 c9 04 c9 21 00 f0 18 cf 21
00 10 18 ca 03 03 0a 5f 21 e2 c4 3e ec 77 c5 cd
1e 35 c1 cb 7f 20 1a cb 77 20 19 cb 6f 20 19 cb
67 20 19 cb 57 20 1a cb 4f 20 27 cb 47 20 1a 18
dd 1d 18 01 1c 7b 18 0b 3e f0 18 02 3e 10 83 18
01 af 5f 23 cd 10 d3 18 bf 7a cd 9d 2f 7b 02 cd
ad 2f 3e ed 77 0b 0b c9

表形式でまとめたものは別ページへ。


バイナリエディタ(flag3式、185バイト)

参考資料

概要

2023/10/4更新:ROMバンク切り替え機能が追加されました。

こちらは初代のバイナリエディタを金銀に移植する形で作られたもので、操作感覚は初代のものに近い。(十字キーの長押し対応とsRAMバンクの切り替え機能が付いたぐらい)
サイズはTeraman式の半分程度で、手軽に導入できるのが利点。
開始位置の保存機能やROMバンクの切り替え機能はついていない。ROMバンクを切り替えたいときはaレジスタにバンク番号を入れてrst 10を実行することになる。(例:3E xx D7 C9)
ROM及びsRAMバンクナンバーはおかあさんの名前の「あ」の部分に保存するようになっている。(そのため、初期値はB1となる)バグ図鑑モードからの起動だと10h、分類違いわざマシンでの起動だと03hで始まる。

実行用コード

SRAM内にあるままだと実行時に不便なため、WRAM内の適当なアドレスに内容をコピーして使用する。
コピー先として使用するDCC6h~(金銀、DD7Fhまで使用)、D2B1h~(クリスタル、D36Ahまで使用)は戦闘時に敵パーティの中身が入る領域。非戦闘時には自由に利用できる。
金銀版の開始位置がTeraman式と異なることに注意。

※AAB4hからのコピーなので、AA94hからコピーする場合は「ガヲぜえ」の「え」を「ナ」にする。

金銀
ぺぶぶぶヅにわがヲぜへマ
ゾけへよだへャにわ空空空だっ
※空空空だっはCF40hから実行する場合のみ必要。
クリスタル
ぶぺぶぶヅあめがヲぜへマ
ゾけへ/ぞへャあめ空空空だっ

メールでの実行が確認出来たら簡易型バイナリエディタは不要になるので、ボックスからの実行にするといちいちメールを読む必要がなくなり、他のメール使用コードを持ち運びやすくなる…かも。

金銀

  1. ぺぶぶがヲぜえ
  2. にわぶヘマ
  3. むゾよだ空空
  4. へャにわ

クリスタル(始点はDB68h)

  1. ぶぺぶがヲぜえ
  2. あめぶヘマ
  3. むゾ空空
  4. あめ

金銀版の場合は以下のニョロボンを作って手持ち3匹目に置くと、わざマシン17から一発でバイナリエディタに飛べる。
経験値や努力値にコードを書きこんでいる関係上、戦闘で経験値が入ると崩壊することに注意。

flag3式バイナリエディタ実行用ニョロボン
  内容 数値 ニモニック
種族 ニョロボン 3E ld a,03
持ち物 ひかりのこな 03
技1 ころがる CD call 309D
技2 いわなだれ 9D
技3 ちょうおんぱ 30
技4 たいあたり 21 ld hl,AAB4
ID 46250 B4
AA
経験値 112896
(Lv.49)
01 ld bc,00B9
B9
00
H努力値 4550
(H157)
11 ld de,DCC6
C6
A努力値 56525
(A128)
DC
CD call 30D6
B努力値 54832
(B132)
D6
30
S努力値 52653
(S114)
CD call 30AD
AD
C努力値 12483
(C99/D118)
30
C3 jp DCC6
AB個体値 A12/B6 C6
SC個体値 S13/C12 DC

クリスタル版の場合は分類違いわざマシンの実行位置に以下のコードを書き込むのも有効。(21バイト)

3E 03 CD 9D 2F 21 B4 AA 11 B1 D2 01 B9 00 D5 CD F2 2F C3 AD 2F
; ld a,03→call 2F9D→ld hl,AAB4→ld de,D2B1→ld bc,00B9→push de→call 2FF2→call 2FAD

画面表示

左から順に、

  1. ROM、sRAMバンクナンバー(sRAMバンクナンバーは表記上00h~ffhまでに見えるが、中身は00h~0fhをループしている。)
  2. アドレス
  3. カーソル
  4. 左のアドレスに格納されている値
操作方法
キー 操作
アドレスを-01h
アドレスを+01h
アドレスを-10h
アドレスを+10h
B+上 アドレスを-100h
B+下 アドレスを+100h
B+左 アドレスを-1000h
B+右 アドレスを+1000h
SELECT+上 バンクを+01h
SELECT+下 バンクを-01h
SELECT+左 バンクを-10h
SELECT+右 バンクを+10h
SELECT+A カーソル位置のプログラム実行
A+下 数値を+01h
A+上 数値を-01h
A+左 数値を-10h
A+右 数値を+10h
START バイナリエディタを終了

書き込むコード

(金銀)
DCC6:
                 CD A8 34 11 B2 4E 21 00 90 01
23 3E CD 76 0E CD 87 0D CD 95 0D AF 3C E0 D6 F0
9F F5 21 00 D0 CD 24 DD E5 11 F8 FF 19 E5 D1 21
A9 C3 F0 9F D7 CD 9D 30 CD 72 DD 01 0C 00 36 7C
23 7A CD 72 DD 7B CD 72 DD 36 7F 23 1A CD 72 DD
13 36 7C 09 7C FE C5 20 E5 CD AD 30 3E ED EA 4B
C4 E1 18 C1 CD F4 36 F0 AB 5F 01 01 00 07 38 14
0B 0B 07 38 0F 0E F0 07 38 0A 01 10 00 07 38 04
48 07 38 09 CB 53 28 0F CB 43 28 05 E9 E1 F1 D7
C9 F0 9F 81 E0 9F C9 79 CB 43 20 06 CB 4B 20 0F
09 C9 F5 F0 9F CD 9D 30 F1 86 77 CD AD 30 C9 84
67 C9 F5 CB 37 CD 79 DD F1 E6 0F C6 F6 22 C9
(クリスタル)
D2B1:
  CD C5 32 11 C0 4D 21 00 90 01 22 3E CD C6 0D
CD 3B 0E CD 49 0E AF 3C E0 D4 F0 9D F5 21 00 D0
CD 0F D3 E5 11 F8 FF 19 E5 D1 21 A9 C4 F0 9D D7
CD 9D 2F CD 5D D3 01 0C 00 36 7C 23 7A CD 5D D3
7B CD 5D D3 36 7F 23 1A CD 5D D3 13 36 7C 09 7C
FE C6 20 E5 CD AD 2F 3E ED EA 4B C5 E1 18 C1 CD
1B 35 F0 A9 5F 01 01 00 07 38 14 0B 0B 07 38 0F
0E F0 07 38 0A 01 10 00 07 38 04 48 07 38 09 CB
53 28 0F CB 43 28 05 E9 E1 F1 D7 C9 F0 9D 81 E0
9D C9 79 CB 43 20 06 CB 4B 20 0F 09 C9 F5 F0 9D
CD 9D 2F F1 86 77 CD AD 2F C9 84 67 C9 F5 CB 37
CD 64 D3 F1 E6 0F C6 F6 22 C9

表形式でまとめたものは別ページへ。


簡易型バイナリエディタ(Teraman式)

参考資料(最新版の情報あり)
簡単!?バイナリエディタ導入! ポケモン第二世代任意コード実行講座 Part.08【VOICEROID紲星あかり】

動画で解説している方法についての補足。事前にメールとボックス両方からコードを実行できるようにしておく必要がある点に注意。
特にクリスタルは図鑑モード42hから実行しており、図鑑モード0Chには対応していない。図鑑モード42hのセットアップは以下の動画を参考に。

ポケモン第二世代任意コード実行講座 Part.04【VOICEROID紲星あかり】 - YouTube

ボックス入力1

まずは、以下の内容をボックスに書き込む。これは直接実行するためのものではなく、育て屋と虫取り大会の領域にコピーして使うものとなる。

金銀1

  1. ぞひ空ぐぎ
  2. グひ空ぐだグひ空
  3. ぐずグひ空ぐビグ
  4. グペひ空ぐゼグひ
  5. 空ぐデグひ空ぐヅ
  6. ひパたちて
  7. べだゼぼヂぐ
  8. ぶだガブのぼ
  9. ダペピアデの

※には適当な文字を入れておく。
ボックス入力後、以下のメールでコードを実行する。

グヅえりデの

これにより、※の部分が「わたし」に書き換わる。

クリスタル1

  1. ぞひ空ぐぎ
  2. グひ空ぐだグひ空
  3. ぐずグひ空ぐビグ
  4. グペひ空ぐゼグひ
  5. 空ぐデグひ空ぐヅ
  6. ひパたちて
  7. べだゼぼヂぐ
  8. ぶだガブのぼ
  9. ダペピアデの
※には適当な文字を入れておく。
ボックス入力後、以下のメールでコードを実行する。

グヅルろひでデの

これにより、※の部分が「ばん どうろ」に書き換わる。

ボックスの入力が終わったら、今度はこのコードをコピーするメールを作成して実行する。

コピー用メール

ボックス1~9の名前を(終端文字を抜いて)育て屋や虫取り大会の領域にコピーするコード

金銀
ヅガわョペゾゲへよだそひ
ズゴぼギダすつぐま
クリスタル
みひゼヅガわョペゾゲそひ
/ぞズゴぼすつジみ

ボックス入力2

コピーが終わったら、今度はバイナリエディタのメインループ部分を作成する。

金銀2

  1. ぬわ
  2. ビヘぼまざョエ
  3. ぼまガわョプ
  4. だ?

ボックス2の末尾は空白でも何も入力しなくてもいい。

クリスタル2

  1. へなづあめ空プ
  2. ビへガみ
  3. ざョエへガみ
  4. きんョだ?

ボックス3の末尾は空白でも何も入力しなくてもいい。

バッグからの実行の場合、「へなづ」は不要?
不整合を防ぐために空白で埋めておくべきか。

ボックスの入力が終わったら、以下のメールを読んでからボックス実行する。

実行用メール(ただし実行はボックスから)

ボックスだけでは足りない画面表示部のルーチンを最後に読んだメールに仕込むためのコード。
文頭に「の」が付いているため、メール実行では何も起こらない。

金銀
のののなぺゾ9ぼダメに0だガそひ
よメづひだズはぐまちョのそぐー
クリスタル
のののなゾアぺぼダメに0だガそひ
よメづひだひピつゴみちョの

ここまで正しくできていれば、このメールを読んでボックスからの実行を行うことで簡易型バイナリエディタが起動するはず。
指すアドレスの初期位置は金銀だとDCC7h、クリスタルではD2B1hからになる。

数値の対応表
数値(文字) バッグ 図鑑
A g
B 青色の線
C 携帯マーク 携帯マーク
操作方法
キー 操作
アドレスを-01h
アドレスを+01h
数値を-10h
数値を-01h
B 数値を+10h
A 数値を-01h
START
SERECT
簡易型バイナリエディタを終了

簡易型バイナリエディタが起動出来たら、wRAM内にバイナリエディタ本体のコードを書き込み、金銀では「てぬわ」、クリスタルでは「てあめ」でコードを実行することでバイナリエディタを起動できる。
…が、先に下記のメールを用意しておいた方がいいだろう。(入力中は戦闘を行わないこと!)

バイナリエディタのコピー

Teraman式での入力はwRAM内に直接書き込むが、書いている領域がクリスタルだとセーブされないという事情もあり、完成した時や入力を中断したいときはセーブデータ内に退避させておく必要がある。
そこで、wRAM→ボックス9へのコピー及びその逆を行うコードを用意しておく。動画では03h:AA94hから書き込んでいるが、預け数が異常になってまともに見られなくなるので(他との記述を統一するためにも)03h:AAB4hから書き込み始めることにしておく。

退避:wRAM→ボックス9(03h:AAB4h)

金銀
ぺぶぶヅえヲへマ
ゾパひよだてャ
クリスタル
ぶぺぶヅえヲへマ
ゾパひ/ぞてャ

復元:ボックス9(03h:AAB4h)→wRAM

金銀
ぺぶぶヅぬわへマ
ゾパひよだてャ
クリスタル
ぶぺぶヅあめへマ
ゾパひ/ぞてャ
 

預け数を30匹にしておきたい場合(AAB3hにFFhも入れておく)

金銀
ぼギダヅナヲへマぼグダデひひブ
ョべデてャ
クリスタル
ぼギダヅナヲへマぼグダデひひブ
ョべデてャ

簡易型バイナリエディタ旧版(クリスタル専用)

今この方法をとる必要はない、旧時代の資料

導入準備

以下のメールを準備。

がりぜクごぺぽじごぺなむじごデざ
ョべづぜクどたじじどの空空空だっ

どうぐポケット1番目の個数をアドレス下位、2番目の個数をアドレス上位とし、3番目の個数をそのアドレスに書き込むコード。
書き込み後、道具ポケット3番目の個数を255個にし、次のアドレスを指すようにしているため連続で入力できる。

なお、最初に道具ポケット1~3番目の個数を255個にするには以下のコードを使用する。実行前に適当なアイテムを並べておくこと。

がりぜショべづざづざづの空空空空
空空空空空空空空空空空空空空だっ

簡易型バイナリエディタ

上記のコードを用いて以下のコードを書き込む。(長いので最後に)

「育て屋爺さんが預かっているポケモン」「育て屋婆さんが預かっているポケモン」「育て屋が預かっているタマゴの中身」「虫取り大会で捕まえたポケモン」
の領域に書き込んでいることに注意。特に育て屋の婆さんに関しては「話しかけたことがあるフラグ」の領域も使用しているため話しかけることすらしてはいけない。虫取り大会も参加するだけでアウト。

書き込み終わったら以下のコードで実行?(ボックス、メールどちらでもおk)

がわひしョオぜマ
ひすまてサん

画面表示

左から順に、

  1. sRAMバンクナンバー(表記上は00h~ffhまでに見えるが、中身は00h~0fhをループしている。)
  2. 現在のアドレス
  3. 現在のアドレスの中身
  4. 書き込みモード時であることを示す表示、書き込みモード時以外は表示されないか黒い三角となる。

一度に1バイトずつしか表示されないのは上述のflag3式同様。

操作方法

通常モード
キー 操作
アドレスを-01h
アドレスを+01h
アドレスを-10h
アドレスを+10h
START sRAMバンクを+01h
SERECT sRAMバンクを-01h
A 書き込みモードに移行
B バイナリエディタを終了
書き込みモード
キー 操作
数値を+01h
数値を-01h
数値を-10h
数値を+10h
SERECT 数値を00hにする
A 数値を書き込む
B 書き込みをキャンセル

以降はこれを利用して上述の豪華版バイナリエディタをD2B1hから書き込む。

ちなみにこの簡易型バイナリエディタも最新版では導入方法が変わり、ボックスからデータをコピーする形で作成するようになった。

簡易型バイナリエディタ旧版本体
1番目個数 2番目個数 3番目個数 アドレス
138 222 205 DE8A CD
139 222 178 DE8B B2
140 222 15 DE8C 0F
141 222 6 DE8D 06
142 222 208 DE8E D0
143 222 87 DE8F 57
144 222 33 DE90 21
145 222 70 DE91 46
146 222 197 DE92 C5
147 222 122 DE93 7A
148 222 205 DE94 CD
149 222 157 DE95 9D
150 222 47 DE96 2F
151 222 205 DE97 CD
152 222 73 DE98 49
153 222 222 DE99 DE
154 222 35 DE9A 23
155 222 120 DE9B 78
156 222 205 DE9C CD
157 222 173 DE9D AD
158 222 222 DE9E DE
159 222 121 DE9F 79
160 222 205 DEA0 CD
161 222 173 DEA1 AD
162 222 222 DEA2 DE
163 222 35 DEA3 23
164 222 10 DEA4 0A
165 222 205 DEA5 CD
166 222 173 DEA6 AD
167 222 222 DEA7 DE
168 222 205 DEA8 CD
169 222 198 DEA9 C6
170 222 222 DEAA DE
171 222 24 DEAB 18
172 222 227 DEAC E3
173 222 197 DEAD C5
174 222 14 DEAE 0E
175 222 2 DEAF 02
176 222 71 DEB0 47
177 222 203 DEB1 CB
178 222 48 DEB2 30
179 222 62 DEB3 3E
180 222 15 DEB4 0F
181 222 24 DEB5 18
182 222 2 DEB6 02
1番目個数 2番目個数 3番目個数 アドレス
185 222 160 DEB9 A0
186 222 198 DEBA C6
187 222 246 DEBB F6
188 222 48 DEBC 30
189 222 2 DEBD 02
190 222 214 DEBE D6
191 222 160 DEBF A0
192 222 34 DEC0 22
193 222 13 DEC1 0D
194 222 32 DEC2 20
195 222 237 DEC3 ED
196 222 193 DEC4 C1
197 222 201 DEC5 C9
198 222 197 DEC6 C5
199 222 205 DEC7 CD
200 222 27 DEC8 1B
201 222 53 DEC9 35
202 222 193 DECA C1
203 222 203 DECB CB
204 222 127 DECC 7F
205 222 32 DECD 20
206 222 29 DECE 1D
207 222 203 DECF CB
208 222 119 DED0 77
209 222 32 DED1 20
210 222 27 DED2 1B
211 222 203 DED3 CB
212 222 111 DED4 6F
213 222 32 DED5 20
214 222 25 DED6 19
215 222 203 DED7 CB
216 222 103 DED8 67
217 222 32 DED9 20
218 222 23 DEDA 17
219 222 203 DEDB CB
220 222 95 DEDC 5F
221 222 32 DEDD 20
222 222 21 DEDE 15
223 222 203 DEDF CB
224 222 87 DEE0 57
225 222 32 DEE1 20
226 222 19 DEE2 13
227 222 203 DEE3 CB
228 222 79 DEE4 4F
229 222 32 DEE5 20
230 222 17 DEE6 11
231 222 203 DEE7 CB
232 222 71 DEE8 47
233 222 32 DEE9 20
234 222 17 DEEA 11
235 222 201 DEEB C9
236 222 11 DEEC 0B
237 222 201 DEED C9
238 222 3 DEEE 03
239 222 201 DEEF C9
240 222 5 DEF0 05
241 222 201 DEF1 C9
242 222 4 DEF2 04
243 222 201 DEF3 C9
244 222 20 DEF4 14
245 222 201 DEF5 C9
246 222 21 DEF6 15
247 222 201 DEF7 C9
248 222 241 DEF8 F1
249 222 195 DEF9 C3
250 222 173 DEFA AD
251 222 47 DEFB 2F
252 222 33 DEFC 21
253 222 80 DEFD 50
254 222 197 DEFE C5
255 222 62 DEFF 3E
0 223 236 DF00 EC
1 223 119 DF01 77
2 223 10 DF02 0A
3 223 95 DF03 5F
4 223 24 DF04 18
5 223 11 DF05 0B
1番目個数 2番目個数 3番目個数 アドレス
17 223 197 DF11 C5
18 223 205 DF12 CD
19 223 27 DF13 1B
20 223 53 DF14 35
21 223 193 DF15 C1
22 223 203 DF16 CB
23 223 127 DF17 7F
24 223 32 DF18 20
25 223 14 DF19 0E
26 223 203 DF1A CB
27 223 119 DF1B 77
28 223 32 DF1C 20
29 223 13 DF1D 0D
30 223 203 DF1E CB
31 223 71 DF1F 47
32 223 32 DF20 20
33 223 18 DF21 12
34 223 203 DF22 CB
35 223 79 DF23 4F
36 223 32 DF24 20
37 223 16 DF25 10
38 223 24 DF26 18
39 223 233 DF27 E9
40 223 29 DF28 1D
41 223 24 DF29 18
42 223 1 DF2A 01
43 223 28 DF2B 1C
44 223 123 DF2C 7B
45 223 46 DF2D 2E
46 223 78 DF2E 4E
47 223 205 DF2F CD
48 223 173 DF30 AD
49 223 222 DF31 DE
50 223 24 DF32 18
51 223 221 DF33 DD
52 223 123 DF34 7B
53 223 2 DF35 02
54 223 62 DF36 3E
55 223 237 DF37 ED
56 223 119 DF38 77
57 223 201 DF39 C9

10進数版データの作成に、れんだ様の固定長配列ビューアを使用しました。 

タグ:

+ タグ編集
  • タグ:
最終更新:2024年03月13日 08:56