ポケモン金銀にバイナリエディタを移植したお話

注意: 2023/12/11 に内容をアップデートしました.ver.20230407 を見たい方はこちらからどうぞ
注意: 2023/04/07 に内容をアップデートしました.ver.20220817 を見たい方はこちらからどうぞ

はじめに

以前,初代でバイナリエディタを導入する記事を出させていただきました.

このバイナリエディタポケモン金銀に移植しました.


そういうことで導入する方法について書こうと思います.

簡易版バイナリエディタ導入の方法

まずは簡易版バイナリエディタを導入します.
環境:ポケモン金銀での動作を確認しております.
準備:「最後に読んだメール」による任意コード実行環境*1

「分類違いわざマシン」で準備をする場合は次のブログ,動画にお任せします.Teraman64DD さんの動画だと Part.04 で導入しています.

「バグモード図鑑」で準備をする場合は次をご参照ください.

以下の手順を踏むと簡易版バイナリエディタが起動します.

  1. ボックスの名前を表 1 の通りにする.
  2. 表 2, 3 のメールを用意する.
  3. 表 2 のメールを読んで任意コード実行を行う.
  4. 表 3 のメールを読んで任意コード実行を行う.

手順 3. の前にセーブすることをオススメします.

表 1

  1. ぼギダへマだがヲ
  2. ぜナョダだグぼダ
  3. ぞてはりダムキづ
  4. ごヅまてぱへごま
  5. へごまボぷへごま
  6. へォひひ ぐとど
  7. ダれへりダださざ
  8. ダダれャだダだな
  9. ぼヂてはり

表 2

ぼぴがりぜゆづぜゅよダづにひぜ?
ずづぜ8ひラづのののののののだっ

表 3

へロどへュでていりなひだへづまち
ぼダメに0ぞ?ムぞボデのののだっ

簡易版バイナリエディタを起動するとこんな感じになると思います.


左 4 桁がアドレス,右 2 桁がその中身となっています.

見ての通り表示がおかしいのですが気にせず使いましょう.
「分類違いわざマシン」を使っている場合は ■は A,▲は B,携帯マークは C だと思ってください.「バグモード図鑑」を使っている場合は g は A,青色の線は B,携帯マークは C だと思ってください.特に 9 と g を混同しないように注意しましょう.ちなみに上の画像はアドレスが AB11 で中身は CB です.

簡易版バイナリエディタの操作方法

以下の操作方法でアドレスとその中身を書き換えることができます.
操作方法

A: アドレス+1h
B: アドレス-1h
↓: 中身+1h
↑: 中身-1h
→: 中身+10h
←: 中身-10h
Start: 終了

簡易版バイナリエディタを再度起動する場合は表 3 のメールを読んで任意コード実行をすると良いです.表 2 のメールを再度読む必要はありません.

バイナリエディタを起動するまで

以下の URL にあるプログラムを入力してバイナリエディタを作りましょう.
miniatur_memory_editor_GS.asm · GitHub
簡易版バイナリエディタを使って AA94 から AB4D のアドレスの中身をリンク先のものに書き換えてください.

次の内容のメールを用意して,内容を読んでから任意コード実行を行うことでバイナリエディタを起動することができます.起動するとこのページの上の方にある画像のような感じとなります.

ョぺぶぶぶヅにわがヲぜナへマだ空
ゾそへよだへャだてにわ空空空だっ

二重線で囲まれた領域の左 4 桁がアドレス,右 2 桁がその中身となっています.
ゲーム画面の上部にも (16 進数で) 2 桁の数字があるのですが,これは SRAM バンクと ROM バンクの数字が表示されています.アドレス A000 から BFFF の中身を扱う際に必要になってきます.

バイナリエディタの操作

初代でのバイナリエディタと殆ど同じですが「SELECT」のみ少し違います.

↓: アドレス+1h
↑: アドレス-1h
→: アドレス+10h
←: アドレス-10h
B+↓: アドレス+100h
B+↑: アドレス-100h
B+→: アドレス+1000h
B+←: アドレス-1000h
A+↓: 中身+1h
A+↑: 中身-1h
A+→: 中身+10h
A+←: 中身-10h
SELECT+↓: バンク+1h
SELECT+↑: バンク-1h
SELECT+→: バンク+10h
SELECT+←: バンク-10h
SELECT+A: 指しているアドレスを実行
START: 終了

「SELECT+A」は不用意に押すとフリーズする可能性が高いので気をつけましょう.

注意

DCC6 から DD7F のアドレスを用いてバイナリエディタを作成しているので,
この部分をバイナリエディタでいじると壊れるので注意してください.

*1:「分類違いわざマシン」と「バグモード図鑑」の両方に対応しています.またメールの 1 文字目から実行するもの,31 文字目から実行するもの両方に対応しています.