バイナリエディタ(第一世代) > 未使用領域型バイナリエディタ

初代ポケモンにおいてアドレスD56Fh~D66Ehの256バイト分はマップごとの小さなイベントの進行状況などを管理するために使われている。
しかし、実際に使われるのはD5E8hまでで、D5E9h~D66Ehまでの134バイトは通常プレイで書き換わることがない模様。

そこで、この領域にバイナリエディタのコードを仕込むことで、ボックスやPCを自由に使えるようにできる。

ROMバンク切り替え機能付きのバイナリエディタは193バイトあるのでこの領域だけでは無理だが、出入り口周り?の管理用アドレス(D3AFh~D42Ehの128バイト)にも未使用領域があるので、コードを二か所に分割すれば実装できる。(ピカチュウ版では一部がピカチュウのごきげん度周りに使われているため、パソコンの道具周りを弄った方が良さそう)

コード引用

RAM Writer for Pokemon Red/Green/Blue/Yellow (JPN) · GitHub
D5E9hから書き込むバイナリエディタ。E9hが「ァ」で初代では入力不能なため、起動位置がD62Ch「じよ」からになっている点に注意。

参考動画

データ消去からバイナリエディタ起動までを通しで動画化したもの。
この動画自体に解説は無いため、詳しい内容は別の場所を参考に。(開始位置が違うため、使用するコードの違いに注意)

RAM Writer in Pokémon Red/Green/Blue (JPN) - YouTube
赤緑青版。
どこかしらドアからのDry Underflowで道具欄を破壊して必要な素材を揃え、無限イーブイによるコーディングを行う。
解説→ポケットモンスター 赤・緑・青 バイナリエディタ - flag3
RAM Writer in Pokémon Yellow (JPN) - YouTube
ピカチュウ版。(前期・後期両対応)
レポートバグで手持ちポケモンと道具欄を破壊して必要な素材を揃え、無限イーブイによるコーディングを行う。
解説→ポケットモンスター ピカチュウ バイナリエディタ - flag3

簡易型バイナリエディタ

導入

こちらは従来同様、ボックスのニックネームで記述する。
書き込み位置の違いから、一部使用するニックネームが異なる点に注意。

  1. 下記コードのニックネームのポケモンをボックスに預ける。(計21~22匹)
    • (ピカチュウ版の場合)
      • かいがらバッヂ使用→1~18匹目には適当なポッポまたはコラッタ、19匹目にメノクラゲ、20匹目にウツボットが必要。
      • はやぶさバッヂ使用→DE64h(ボックス1匹目のニックネーム1文字目)に飛べるようにする。
        • 初期版の場合はボックス5匹目の親名を「○○てEん」にする。(「○○」は任意)
          • 例:手持ち3匹目の親名に「てEん」を付与するコード
            これで書き換えた「ぼヂてソん」をボックス5匹目に置けば共通のコードが使える。
            1. がめぜぱぼ(26 D2 2E 44 3E 50)
              • アドレスD244hは手持ち3匹目親名の終端(6文字目)
                主人公の名前が4文字以下だと50hが入らないための予防線
            2. づぼんづダ(32 3E DE 32 0F 50)
              • rrcaでDEhを6Fhにする。
            3. よジづぼて(D6 0B 32 3E C3)
              • 6Fhから0Bhを引いて64hにする。
            4. づの
        • 後期版の場合はパソコンの道具9番目から以下のように並べる。(これは個数限定品を使わないパターン)
          1. かみなりのいし×32
          2. わざマシン07×1
          3. スペシャルアップ×15
          4. まひなおし×9
          5. わざマシン33×任意
        • ちなみに上記導入チャート(後期版用)ではパソコンの中身が以下のようになっている。
          1. キズぐすり×1(14 01)
            • これは初期状態で入っているもの。
          2. やめる(FF 01)
            • 道具欄から預けたもの。
          3. カードキー(30 01)
            • やめるの下のアイテムは個数まとめ処理が行われないため、1個ずつ預けられる。
          4. カードキー(30 01)
          5. カードキー(30 01)
          6. カードキー(30 01)
          7. カードキー(30 01)
          8. カードキー(30 01)
          9. ポケモン×1(C3 01)
            • ライバルの名前「て」(C3h)から取ったもの。
          10. わざマシン22×1(DE 01)
            • ライバルの名前「ん」(DEh)から取ったもの。
            • ポケモン×1と合わせてC3 01 DE [jp DE01]となり、ボックス14匹目の親名4文字目から実行。
              ここで主人公に付けた「がんョぜメ」が活きる。
  2. 育て屋に特定のニックネームのポケモンを預ける。(ピカチュウ版では不要)
    • サファリボールの残り個数を0にする必要もあるが、これは適当なダンジョンで「あなをほる」「あなぬけのヒモ」を使えばいい。
    • 赤緑の場合は「ーゆてん」を預けた状態にする。
    • 青の場合は「パパてん」または「パパてEん」を預けた情報を残す。(「パパてEん」の場合、22匹目は不要になる)
  3. 赤緑青ではなかよしバッヂ、ピカチュウ版ではかいがらバッヂ(はやぶさバッヂ)を使用する。
    成功すればD5E3hからの簡易型バイナリエディタが起動する。

すでに他のバイナリエディタを導入済みならD5E9hからバイナリエディタ本体のコードを書きだせばいい。(そのままコピペしても参照位置の違いからうまくいかない)

コード(簡易型バイナリエディタ)

ピカチュウ後期版でのコード例。(赤緑以外では「てEん」または「てん」、赤緑では「ーゆてん」預けで実行)
上記導入チャートでは親名(主人公の「がんぜメ」)からコードを実行する関係で1匹目が省略されており、一部絶対ジャンプやアドレス指定の位置がずれているので注意。

  1. がんぜル
  2. よヂづよく
  3. ひせがゆ※C0hのbit7を折ることで40hにする。(ピカチュウ初期版ではBFh→3Fh)
    • 赤緑後期では「よむづ※38hからD1hを引いて67hを作る。
    • 赤緑初期では「よそづ※38hからBFhを引いて79hを作る。
    • 青では「空空がゆ」※「タ」(8F)のままでいいので空白で構わない。
  4. ぜーダだグ
    • 赤緑初期では「ゅョダだグ」※push bc→pop hlでhlレジスタをD5E3hにする。
  5. ぼヂてソん※ピカチュウ初期ではこのポケモンの親名を「○○てEん」または「○○てょん」にする。余計なジャンプを起こさない主人公名なら親名変更の必要はない。
  6. ダだギムツ
  7. てソんダム
  8. キづごヅー
  9. ぱへにんぴ
  10. へにんボぷ
  11. へにんへ※5、6文字目は冒頭のコードで「ね゜」に書き換えられる。これは初期版と記述を統一するためのもの。
    • 赤緑では「へにんへ」※5、6文字目は冒頭のコードHね゜」(後期)ね゜」(初期)に書き換えられる。
    • 青では「へにんへ※6文字目は冒頭のコードで「ね゜」に書き換えられる。5文字目は書き換えない。
    • ピカチュウ初期では「へにんへ※5、6文字目は冒頭のコードで「ま゜ね゜」に書き換えられる。
  12. うゾダグ※1文字目は冒頭のコードで「円」に書き換えられる。
  13. ダめいんど
  14. ダれチんダ
  15. めしんざダ
  16. じよダリ※この部分が従来と異なる
  17. だいなひだ
  18. へみんちレ
  19. ぼダメギて
  20. よザれんん
  21. よメボデの
  22. だアの※「てょん」を使う場合のみ必要。ここから相対ジャンプで1匹目のニックネームに飛ぶ。

操作方法(簡易型バイナリエディタ)

A 指すアドレスを+1h
数値を入力したらAで進めていくことになる。
B 指すアドレスを-1h
指しているアドレスの値を+1h
指しているアドレスの値を-1h
指しているアドレスの値を+10h
指しているアドレスの値を-10h
SELECT アドレスD62Chからプログラム実行。バイナリエディタが完成してから行うこと。
START 簡易型バイナリエディタを終了。長いコードを打ち込むので、セーブしながら進めるのが吉。
始点はD5E3hで固定されている点に注意。

バイナリエディタ本体

以下のコードをD5E9h(初期位置D5E3hの6バイト先)から書き込み、D62Chからコードを実行(「てじよ」)するとバイナリエディタが起動する。

D5EAhの部分はバージョンによって数値が異なる。

操作方法(バイナリエディタ)

開始位置はD62DhとD62Ehで指定している。

キー 操作
アドレスを-01h
アドレスを+01h
アドレスを-10h
アドレスを+10h
B+上 アドレスを-100h
B+下 アドレスを+100h
B+左 アドレスを-1000h
B+右 アドレスを+1000h
SELECT カーソル位置のプログラム実行
A+下 数値を+01h
A+上 数値を-01h
A+左 数値を-10h
A+右 数値を+10h
START バイナリエディタを終了

コード(バイナリエディタ本体)

バイナリエディタ本体(121バイト)
アドレス 備考
D5E9 CD  
D5EA 赤緑初期:79
赤緑後期:67
青:8F
ピカチュウ初期:3F
ピカチュウ後期:40
 
D5EB 38  
D5EC F0  
D5ED B3  
D5EE 01  
D5EF 01  
D5F0 00  
D5F1 07  
D5F2 38  
D5F3 18  
D5F4 0B  
D5F5 0B  
D5F6 07  
D5F7 38  
D5F8 13  
D5F9 0E  
D5FA F0  
D5FB 07  
D5FC 38  
D5FD 0E  
D5FE 01  
D5FF 10  
D600 00  
D601 07  
D602 38  
D603 08  
D604 07  
D605 38  
D606 03  
D607 07  
D608 D0  
D609 E9  
D60A E1  
D60B C9  
D60C 79  
D60D CB  
D60E 43  
D60F 20  
D610 06  
D611 CB  
D612 4B  
D613 20  
D614 05  
D615 09  
D616 C9  
D617 86  
D618 77  
D619 C9  
D61A 84  
D61B 67  
D61C C9  
D61D F5  
D61E CB  
D61F 37  
D620 CD  
D621 24  
D622 D6  
D623 F1  
D624 E6  
D625 0F  
D626 C6  
D627 F6  
D628 F6  
D629 60  
D62A 22  
D62B C9  
D62C 21 実行時はここからスタート
D62D 00 開始アドレスを指定
D62E D0
D62F CD  
D630 E9  
D631 D5  
D632 E5  
D633 11  
D634 F8  
D635 FF  
D636 19  
D637 E5  
D638 D1  
D639 21  
D63A AB  
D63B C3  
D63C 01  
D63D 0C  
D63E 00  
D63F 36  
D640 7C  
D641 23  
D642 7A  
D643 CD  
D644 1D  
D645 D6  
D646 7B  
D647 CD  
D648 1D  
D649 D6  
D64A 36  
D64B 7F  
D64C 23  
D64D 1A  
D64E CD  
D64F 1D  
D650 D6  
D651 13  
D652 36  
D653 7C  
D654 09  
D655 7C  
D656 FE  
D657 C5  
D658 20  
D659 E5  
D65A 3E  
D65B ED  
D65C EA  
D65D 4B  
D65E C4  
D65F E1  
D660 18  
D661 CD  

タグ:

+ タグ編集
  • タグ:
最終更新:2024年06月11日 17:44