ポケモン 第二世代 時間再設定 (任意コード実行)

はじめに

ポケモン 第二世代では一度設定した時間を変更することは不可能だとされています.

3DSバーチャルコンソールに関しては 3DS の本体設定で日付と時刻を大幅に進めて時計の時刻をオーバーさせることで再設定することはできますが 3DS のゲームでペナルティが発生するというデメリットがあります.

本記事では (本体設定で時刻を進めずに) 時間を再設定する方法について解説します.

方針

以下の 2 通りの方針を紹介します.

1. ゲーム起動時に時計の時刻を不明にする.
2. 時間を再設定するプログラムを直接呼び出す.

方針1 ゲーム起動時に時計の時刻を不明にする.

ゲーム起動時に時計の時刻を不明にするというのはこういう状態のことです.

この状態のままゲームを開始しようとすると時間を合わせてくださいと言われ以下の画面が現れます.

この画面で時間を設定することで時間を再設定することができます.

方針1のやり方

金銀ではバンク 00 のアドレス B000,クリスタルではバンク 00 のアドレス AC80 の中身を 80 にしてセーブを行わずにリセットをすることで時計の時刻を不明にすることができます.バイナリエディタを導入している場合は数字を書き換えてください.

バイナリエディタを導入していないが「最後に読んだメール」による任意コード実行環境を導入していれば以下のメールを読んで任意コード実行をしてください.

金銀版

ョへマだぼアヅアィひさデへャだの
              だっ

クリスタル版

ョへマぞぼアヅアッデへャぞの  
              だっ

方針2 時間を再設定するプログラムを直接呼び出す.

上記の時間を設定する画面を任意コード実行で直接呼び出すという方針です.

方針2のやり方

金銀とクリスタル共通で ROM バンク 08 の アドレス 4027 を実行することで呼び出せます.バイナリエディタ*1から実行する場合には時間の再設定後に Start を押して処理を終了させる必要があることに注意してください.

バイナリエディタを導入していないが「最後に読んだメール」による任意コード実行環境を導入していれば以下のメールを読んで任意コード実行をしてください.

金銀版

へロどぼゲがパぜぎまの
              だっ

クリスタル版

へなづぼゲがパぜぎまの  
              だっ

*1:ROM バンク切り替え機能付きのものを使う必要があることに注意してください.2023/12/04 現在公開されている記事のバイナリエディタは全て ROM バンク切り替え機能に対応しています.