RPGツクール3 バイナリエディタ導入チャート

簡易メモリエディタは便利なツールではありますが、「過去の入力を確認できないので入力ミスを完全に根絶するのが困難」、「毎回16進数を10進数に変換して入力しないとならない」等の欠点もあり使い勝手はあまり良くないです。
これらの欠点を解消するべく開発したのが今回紹介するバイナリエディタになります。
 

 

概要

前回の記事で導入した簡易メモリエディタを駆使してより複雑なプログラムの改変やメモリの改ざんを行うことでバイナリエディタを実装します。
入力ミス以外で失敗する余地はありませんが、なにぶん書き換え量が多いので最後までミスしないというのは結構難しいと思います。複数のパートに分割してリカバリー用のセーブデータを作りつつ進める手順を組んでいますが、慣れないうちは休憩を挟みながらやった方がいいかもしれません。
 

導入手順

前回の記事の手順により、簡易メモリエディタの導入が終わったところからスタートします。
 

手順1:ゴールドの編集ボックスを×ボタンで閉じた時の書き換えを無効化する

魔法耐性(下から3番目)は3999で固定とし、EXP(下から2番目)とゴールド(1番下)に以下の値を入力していきます。
※ここは必ず上から順番通りに入力しないとフリーズの危険があるので注意

EXP ゴールド
206 38529
204 156
232 32
234 37955
252 55
254 4193
246 0

これで×ボタンでゴールドの編集ボックスを閉じた時はメモリの上書きは行われなくなるので、アドレスを間違えた状態でゴールドを選択してしまった場合でも〇ボタンで確定しなければキャンセルできるようになります。
 

手順2:リカバリー用セーブデータを作成可能にする

まず以下の入力を行います。 

魔法耐性 EXP ゴールド
4817 232 55732
4817 234 32882

 
入力し終わったら1つ前の画面(モンスター指定画面)に戻ってからもう一度No24のモンスターデータ編集画面に入り直します。
簡易メモリエディタが正しく機能していればパラメーター名が正常なものに戻るはずです。
戻らなかったらどこかで間違えているので残念ながら簡易メモリエディタの導入からやり直しです。
 
次に以下の入力を行います。

魔法耐性 EXP ゴールド
1654 192 47843
1654 194 2052

 
ここからしばらく魔法耐性は4808で固定とし、EXPとゴールドに以下の値を入力していきます。

EXP ゴールド
220 32476
222 32659
EXP ゴールド
512 43746
514 32876
EXP ゴールド
4736 60300
4738 18
4740 60352
4742 18
4744 48
EXP ゴールド
4748 30464
4750 6
4752 60720
4754 18
4756 192
EXP ゴールド
4768 0
EXP ゴールド
9100 19
9102 15377
9104 55936
9106 36388
9108 55940
9110 36389
9112 2553
9114 3074
9116 55944
9118 38438
9120 65531
9122 5188
9124 12
9126 9777
9128 30
9130 15361
9132 20602
9134 40992
9136 15
9138 15361
9140 39505
9142 2049
9144 31120
9146 42016

  


ここまで入力したら一度□ボタンを押す (これ以降、指定されたタイミング以外で□ボタンを押さないこと)


 
□ボタンを押したら引き続き入力を行います。

EXP ゴールド
4738 20
EXP ゴールド
4742 21
EXP ゴールド
9140 40404
EXP ゴールド
9164 2557
EXP ゴールド
9548 1
9550 9219
EXP ゴールド
9592 47843
9594 3076

 

ここで魔法耐性の固定は終了とし、さらに以下の入力を行います。

魔法耐性 EXP ゴールド
1654 192 47856

 


ここまで入力したら一度□ボタンを押す 


 
□ボタンを押したら引き続き入力を行います。
ここからは魔法耐性は4826で固定とし、EXPとゴールドに以下の値を入力していきます。

EXP ゴールド
128 40248
130 15
132 57000
134 18
136 920

 


ここまで入力したら一度 L2 ボタンを押す (これ以降、指定されたタイミング以外でL2ボタンを押さないこと)


 
L2ボタンを押したらメインメニューまで戻り、スタートボタンを押しながら[メモリーカード]を選択して[圧縮情報]を表示し
 
システム: 15872( 2) >> 6868 ( 1)
 
となっていることを確認したらセーブします。
なっていなければどこかで間違っているので簡易メモリエディタの導入からやり直しです。
 
これでここまでの作業内容を復旧可能なセーブデータが作成された状態となります。
 
●セーブデータからの復旧方法

  1.  タイトル画面(PUSHSTART)まで戻る。
  2.  システムデータをロードする。
  3.  No24のモンスターデータ編集画面に入り、ゴールドの値を310000に変更する。
  4.  ×ボタンを3回押して「データを更新して終わる」を選択する。
  5.  モンスター指定画面まで進み、□ボタンを押す。
  6.  再度No24のモンスターデータ編集画面に入る。

これで復旧完了となります。
この後も何度かリカバリー用のセーブデータを作成する場面がありますが、全て同じ方法で復旧可能です。
 

手順3:数値表示を16進数表示に変更

復旧用のセーブデータがちゃんと作成できているかを確認するため、一度タイトル画面(PUSHSTART)まで戻ってから再び入り直し、システムデータをロードします。
上述の復旧手順を行い、No24のモンスターデータ編集画面に入ってから以下の入力を行います。

魔法耐性 EXP ゴールド
7760 106 99

 
入力したら1つ前の画面に戻ってからもう一度モンスターデータ編集画面に入り直します。
正しく復旧できていればHPの値が99になっているはずです。
問題なければ次の作業に進みます。
 
ここから魔法耐性は4826で固定とし、EXPとゴールドに以下の値を入力していきます。

EXP ゴールド
152 33104
154 2
156 56100
158 18
160 856
EXP ゴールド
164 35288
166 6
168 57920
170 18
172 2356
EXP ゴールド
184 0

 


ここまで入力したら一度L2ボタンを押す


 
L2ボタンを押したら引き続き入力を行います。

EXP ゴールド
292 2
294 0
EXP ゴールド
314 4096
EXP ゴールド
960 10
EXP ゴールド
984 15
986 12421
EXP ゴールド
1016 8450
1018 4
1020 10
1022 11433
EXP ゴールド
1028 3
1030 4384
1032 55
1034 9378
EXP ゴールド
1144 65535
EXP ゴールド
2112 8448
EXP ゴールド
2120 8227
EXP ゴールド
2612 15
EXP ゴールド
2636 8448
EXP ゴールド
2644 8227
EXP ゴールド
4314 4096
4316 8320
4318 4
EXP ゴールド
4356 4100
4358 131
EXP ゴールド
4460 2
4462 0
4464 15

 


ここまで入力したら一度□ボタンを押す


 
□ボタンを押したら1つ前の画面に戻り、もう一度モンスターデータ編集画面に入り直すと16進数表示に切り替わります。
16進数化に成功したらメインメニューまで戻り、スタートボタンを押しながら[メモリーカード]を選択して[圧縮情報]を表示し
 
システム: 003E00(02) >> 001C94(01)
 
となっていることを確認したらセーブします。
なっていなければタイトル画面(PUSHSTART)まで戻って1つ前のセーブデータからやり直します。
 

手順4:バイナリエディタの作成1/3 (アドレス移動機能(表示のみ)の追加) 

モンスター指定画面まで進んで□ボタンを押し、No018(16進数表示なので実際はNo24)のモンスターデータ編集画面に入ります。
 
ここから魔法耐性は12DAで固定とし、EXPとゴールドに以下の値を入力していきます。

EXP ゴールド
00B0 9410
00B2 000F
00B4 EE00
00B6 0012
00B8 0784
EXP ゴールド
00BC A110
00BE 000F
00C0 F600
00C2 0012
00C4 0750
EXP ゴールド
00D0 0000

 


ここまで入力したら一度L2ボタンを押す


 
L2ボタンを押したら引き続き入力を行います。

EXP ゴールド
1480 0062
1482 1000
EXP ゴールド
160C 0020
160E 3C05
1610 FFF0
1612 24A5
EXP ゴールド
162C 0006
EXP ゴールド
1644 0013
1646 3C01
1648 FE00
164A 8C24
164C 0008
EXP ゴールド
1654 0024
EXP ゴールド
1948 0077
EXP ゴールド
1B28 FFFF
1B2A 2401
1B2C 0167
1B2E 1461
EXP ゴールド
1B60 0013
1B62 3C01
1B64 FE00
1B66 8C23
EXP ゴールド
1B74 FFFE
1B76 2404
1B78 9024
1B7A 0044
1B7C 0162
1B7E 1000
1B80 FE00
1B82 AC32
EXP ゴールド
1E12 2411
EXP ゴールド
1E18 0013
1E1A 3C01
EXP ゴールド
1E28 FE00
1E2A 8C32
EXP ゴールド
1E38 0006
1E3A 2406
EXP ゴールド
1E42 0232
1E44 A02D
EXP ゴールド
1E64 000E
1E66 2401
1E68 FFF0
1E6A 1621
1E6C 0002
1E6E 2631
1E70 00BB
1E72 1000
EXP ゴールド
2400 0000
2402 0001

 


ここまで入力したら一度□ボタンを押す


 
「戦闘と宝箱の設定」を選択して000000を入力し、左側のパラメーター名が000000~00000Eに変化することを確認します。確認出来たらメインメニューまで戻り、スタートボタンを押しながら[メモリーカード]を選択して[圧縮情報]を表示し
 
システム: 003E00(02) >> 001BE4(01)
 
となっていることを確認したらセーブします。
なっていなければタイトル画面(PUSHSTART)まで戻って1つ前のセーブデータからやり直します。
 
この時点ではまだパラメーター名の表示を書き換えただけなので右側の数値はアドレスの中身とは無関係です。簡易メモリエディタはまだ有効なので引き続き使用していきます。
 

手順5:バイナリエディタの作成2/3 (書き込み機能を追加) 

モンスター指定画面まで進んで□ボタンを押し、No018(No24)のモンスターデータ編集画面に入ります。
魔法耐性(下から3番目)は12EEで固定とし、EXP(下から2番目)とゴールド(1番下)に以下の値を入力していきます。

EXP ゴールド
0000 FFFE
0002 2463
0004 004A
0006 1000
0008 8840
000A 0003
EXP ゴールド
0138 FFFF
013A 3405
EXP ゴールド
0158 002C
015A 0620
EXP ゴールド
0160 0013
0162 3C01
0164 FE00
0166 8C22
0168 1880
016A 0011
EXP ゴールド
016E 0051
0170 0000
EXP ゴールド
017C 1021
017E 0043
EXP ゴールド
0560 2040
0562 0003
EXP ゴールド
058C 0013
058E 3C01
0590 FE00
0592 8C21
EXP ゴールド
0598 8021
059A 0024
059C 0000
059E 9603
EXP ゴールド
05E0 1840
05E2 0004
05E4 F021
05E6 03C3
EXP ゴールド
0634 0000
0636 A604

 


ここまで入力したら一度□ボタンを押す


 
□ボタンを押したら「戦闘と宝箱の設定」でアドレス12FE00にジャンプし、12FE00の中身の値(右側の数値)をFE00からF000に書き換えてみます。1つ前の画面に戻ってからもう一度モンスターデータ編集画面に入り直し、一番上のアドレスが12F000に変化していれば成功です。 
そのままメインメニューまで戻り、スタートボタンを押しながら[メモリーカード]を選択して[圧縮情報]を表示し
 
システム: 003E00(02) >> 001C38(01)
 
となっていることを確認したらセーブします。
なっていなければタイトル画面(PUSHSTART)まで戻って前回のセーブデータからやり直します。
 

手順6:バイナリエディタの作成3/3 (読み取り機能を追加)

モンスター指定画面まで進んで□ボタンを押し、No018(No24)のモンスターデータ編集画面に入ります。
 
この時点で簡易メモリエディタは消滅しているので、ここからはバイナリエディタで書き換えを行います。
まだ読み取り機能が有効になっていないので、アドレスの右側に表示されている値と実際の中身の値が一致していないことに注意が必要です。(編集ボックスを開いた時に出てくる値の方が正しい値)

アドレス 値
12FC98 0006
12FC9A 2411
アドレス 値
12FCC0 0000
12FCC2 9644
アドレス 値
12FD30 0002
12FD32 2652
12FD34 0000
12FD36 9644
アドレス 値
12FD40 FFFF
12FD42 2631
12FD44 FFE1
12FD46 0621
アドレス 値
12FD4C FE1D
12FD4E 1000

 


ここまで入力したら一度□ボタンを押す


 
□ボタンを押したら1つ前の画面に戻ってからもう一度モンスターデータ編集画面に入り直し、「戦闘と宝箱の設定」でアドレス130000にジャンプして右側の値が全て0000になることを確認します。
確認できたらメインメニューまで戻り、スタートボタンを押しながら[メモリーカード]を選択して[圧縮情報]を表示し
 
システム: 003E00(02) >> 001C64(01)
 
となっていることを確認してセーブします。
なっていなければタイトル画面(PUSHSTART)まで戻って前回のセーブデータからやり直します。
 
これで最低限の機能(メモリの読み書きおよびアドレス移動機能)を持つバイナリエディタが完成したので、ここからは「バイナリエディタを使ってバイナリエディタに機能を追加する」という作業を行っていきます。
 

手順7:チェックサム表示機能の追加

手始めに、入力ミス防止用のチェックサム表示機能を追加します。
 
モンスター指定画面まで進んで□ボタンを押し、No018(No24)のモンスターデータ編集画面に入ります。
バイナリエディタが起動したら以下の入力を行います。

アドレス 値
12ED00 0013
12ED02 3C01
12ED04 FE00
12ED06 8C22
12ED08 0007
12ED0A 2404
12ED0C 2821
12ED0E 0040
アドレス 値
12ED10 0000
12ED12 9446
12ED14 0002
12ED16 2442
12ED18 3004
12ED1A 0086
12ED1C FFFF
12ED1E 2484
アドレス 値
12ED20 FFFB
12ED22 0481
12ED24 2826
12ED26 00A6
12ED28 0008
12ED2A 03E0
12ED2C 0094
12ED2E AE85
アドレス 値
12F444 FC94
12F446 1000
アドレス 値
12F608 BB40
12F60A 0C04

 


ここまで入力したら一度□ボタンを押す


 
これで一番上にある「モンスターエディット 残り」の右側の6桁の数値部分にチェックサムが表示されるようになります。 現在表示中のアドレスと中身の値が順番含めて全て同一ならチェックサムも同じ値となります。
適当なアドレスにジャンプしてチェックサムが変化することを確認したらセーブします。
 

手順8:左右ボタンによるアドレス増減機能の追加

移動をやりやすくするため、左右ボタンでアドレスの値を10hずつ増減する機能を実装します。
 
モンスター指定画面まで進んで□ボタンを押し、No018(No24)のモンスターデータ編集画面に入ります。
バイナリエディタが起動したら以下の入力を行います。(括弧つきの値は元のまま変更しなくてよいことを意味します)
チェックサムは必要な入力が全て終わった後の値を記載しています。

アドレス 値 チェックサム
12DAC0 (F600)  
12DAC2 (0012)  
12DAC4 (0750)  
12DAC6 (1011)  
12DAC8 7A54  
12DACA 0006  
12DACC EDF0  
12DACE 0012 6A3C1A
アドレス 値 チェックサム
12DAD0 0004  
12DAD2 (2315)  
12DAD4 (2011)  
12DAD6 (0000)  
12DAD8 (A69B)  
12DADA (A69B)  
12DADC 0000  
12DADE (2020) 199124
アドレス 値 チェックサム
12EC00 000C  
12EC02 3C01  
12EC04 F230  
12EC06 9428  
12EC08 0013  
12EC0A 3C01  
12EC0C FE00  
12EC0E 8C29 0B6E75
アドレス 値 チェックサム
12EC10 4800  
12EC12 2402  
12EC14 0014  
12EC16 1102  
12EC18 1800  
12EC1A 2402  
12EC1C 0012  
12EC1E 1102 3EBF1E
アドレス 値 チェックサム
12EC20 000C  
12EC22 2402  
12EC24 000F  
12EC26 1482  
12EC28 2000  
12EC2A 2402  
12EC2C 0004  
12EC2E 1102 1B2262
アドレス 値 チェックサム
12EC30 0010  
12EC32 2403  
12EC34 8000  
12EC36 3402  
12EC38 000A  
12EC3A 1502  
12EC3C FFF0  
12EC3E 2403 092B6B
アドレス 値 チェックサム
12EC40 4821  
12EC42 0123  
12EC44 (0000)  
12EC46 2923  
12EC48 0002  
12EC4A 1060  
12EC4C 0008  
12EC4E 8CA2 34EB12
アドレス 値 チェックサム
12EC50 (0000)  
12EC52 2409  
12EC54 0002  
12EC56 2403  
12EC58 0081  
12EC5A A043  
12EC5C 0008  
12EC5E 03E0 1B2894
アドレス 値 チェックサム
12EC60 FE00  
12EC62 AC29  
12EC64 9E9B  
12EC66 0801  
12EC68 4382  
12EC6A 0008  
12EC6C 004E  
12EC6E 2508 578CF4
アドレス 値 チェックサム
12EDF0 BB00  
12EDF2 0C04  
12EDF4 (0000)  
12EDF6 (0000)  
12EDF8 (0000)  
12EDFA (0900)  
12EDFC (0000)  
12EDFE (0000) 4C48F0

 


ここまで入力したら一度□ボタンを押す


 
これで左ボタンでアドレス-10h、右ボタンでアドレス+10hされるようになります。
 

手順9:任意コード実行機能の追加

特定のアドレス以降に記述されたコードを実行して、自作のプログラムを動作させることができる機能を追加します。
バイナリエディタで以下の入力を行います。

アドレス 値 チェックサム
12ED30 (0060)  
12ED32 (8E22)  
12ED34 (800C)  
12ED36 (3C05)  
12ED38 (F230)  
12ED3A (24A5)  
12ED3C 0013  
12ED3E 3C10 25AB42
アドレス 値 チェックサム
12ED40 (0028)  
12ED42 (1200)  
12ED44 (0000)  
12ED46 (0000)  
12ED48 (0000)  
12ED4A (94A2)  
12ED4C FE10  
12ED4E 9603 1541EB
アドレス 値 チェックサム
12ED50 (0000)  
12ED52 (0000)  
12ED54 (1024)  
12ED56 (0043)  
12ED58 (001D)  
12ED5A (1040)  
12ED5C FE12  
12ED5E 9603 11C62F
アドレス 値 チェックサム
12ED60 (0008)  
12ED62 (94A2)  
12ED64 (0000)  
12ED66 (0000)  
12ED68 (1024)  
12ED6A (0043)  
12ED6C 0018  
12ED6E (1040) 3751BC
アドレス 値 チェックサム
12ED70 FE20  
12ED72 8E0F  
12ED74 (2021)  
12ED76 (0220)  
12ED78 F809  
12ED7A 01E0  
12ED7C (00FF)  
12ED7E (30C6) 4DAE60
アドレス 値 チェックサム
12EDE0 0004  
12EDE2 (2610)  
12EDE4 (0000)  
12EDE6 (9603)  
12EDE8 (1021)  
12EDEA (0080)  
12EDEC (0086)  
12EDEE (A623) 122FF7
アドレス 値 チェックサム
12FE10 0100  
12FE12 0010  
12FE14 0100  
12FE16 0800  
12FE18 (0000)  
12FE1A 0000  
12FE1C 0000  
12FE1E 0000 12DA10
アドレス 値 チェックサム
12FE20 0000  
12FE22 0014  
12FE24 FF20  
12FE26 0012  
12FE28 0000  
12FE2A 0000  
12FE2C 0000  
12FE2E 0000 0D1E00

 


ここまで入力したら一度□ボタンを押す


 
この後、SELECTボタンを押したまま△ボタンを押すとアドレス140000以降に入力したコードが実行されるようになります。
なお、コードの最後は jr ra で終了しないとバイナリエディタに処理が戻ってこないので注意が必要です。
(raレジスタの中身が破棄されるようなコードならスタックに退避する等の処理も必要になります)
 

手順10:メモリーカードの読み書き機能の追加

メモリーカードの任意のセクタを指定して読み書きを行う機能を追加します。
バイナリエディタで以下の入力を行います。

アドレス 値 チェックサム
12EC70 FFFF  
12EC72 A028  
12EC74 FE98  
12EC76 0C01  
12EC78 0010  
12EC7A 2404  
12EC7C (0000)  
12EC7E 2411 5ABE61
アドレス 値 チェックサム
12EC80 0001  
12EC82 2404  
12EC84 002C  
12EC86 0C00  
12EC88 005D  
12EC8A 2409  
12EC8C 0013  
12EC8E 3C01 1B866B
アドレス 値 チェックサム
12EC90 FFF2  
12EC92 9422  
12EC94 0010  
12EC96 2404  
12EC98 0008  
12EC9A 1222  
12EC9C FFF0  
12EC9E 9423 4B7C5B
アドレス 値 チェックサム
12ECA0 FFF4  
12ECA2 8C22  
12ECA4 31C0  
12ECA6 0011  
12ECA8 2821  
12ECAA 0071  
12ECAC 3021  
12ECAE 00C2 49077C
アドレス 値 チェックサム
12ECB0 002C  
12ECB2 0C00  
12ECB4 FFFF  
12ECB6 9029  
12ECB8 FFF1  
12ECBA 1000  
12ECBC 0001  
12ECBE 2631 009E7B
アドレス 値 チェックサム
12ECC0 9E97  
12ECC2 0801  
12ECC4 (0000)  
12ECC6 (0000)  
12ECC8 (0000)  
12ECCA (0000)  
12ECCC (0000)  
12ECCE (0000) 5FA700

 
ここまでの入力が完了すると

  • STARTボタンを押しながら下ボタンを押すことで、[セクタ番号, サイズ(セクタ数), dstアドレス]の指定に従ってスロット2のメモリーカードからデータをメモリ上に読み込む。

  • STARTボタンを押しながら上ボタンを押すことで、[セクタ番号, サイズ(セクタ数), srcアドレス]の指定に従ってスロット2のメモリーカードにメモリ上のデータを書き込む。

という状態になります。セクタ番号、セクタ数、dst/srcは以下のアドレスに入力することで指定が可能です。

アドレス 意味
12FFF0 読み込み/書き込みを開始するセクタ番号
12FFF2 読み込み/書き込みを行うセクタ数(1セクタ=0x80バイト)
12FFF4 dst/srcアドレス(下位2バイト)
12FFF6 dst/srcアドレス(上位2バイト)

※確認等は無しでいきなり読み書きするので操作には十分注意すること。
(特に書き込みの方は既存のデータを破壊しうるので)
 

手順11:ディスク入れ替え機能の追加

電源を入れたままディスクを交換して他のソフトを起動する機能を追加します。
バイナリエディタで以下の入力を行います。

アドレス 値 チェックサム
12DAD0 (0004)  
12DAD2 (2315)  
12DAD4 7094  
12DAD6 0004  
12DAD8 FEF0  
12DADA 0012  
12DADC 0004  
12DADE (2020) 13D8B0
アドレス 値 チェックサム
12DAE0 (2020)  
12DAE2 (2020)  
12DAE4 (2020)  
12DAE6 (2020)  
12DAE8 0000  
12DAEA (0405)  
12DAEC (090C)  
12DAEE (0109) 0CC7E5
アドレス 値 チェックサム
12FEF0 33D2  
12FEF2 0800  
12FEF4 (0000)  
12FEF6 (0000)  
12FEF8 (0000)  
12FEFA (0000)  
12FEFC (0000)  
12FEFE (0000) 0917F0
アドレス 値 チェックサム
12FF00 6463  
12FF02 6F72  
12FF04 3A6D  
12FF06 5953  
12FF08 5453  
12FF0A 4D45  
12FF0C 432E  
12FF0E 464E 3A9D0E
アドレス 値 チェックサム
12FF10 313B  
12FF12 (0000)  
12FF14 (0000)  
12FF16 (0000)  
12FF18 (0000)  
12FF1A (0000)  
12FF1C (0000)  
12FF1E (0000) 0A6290
アドレス 値 チェックサム
12FF20 CF48  
12FF22 3404  
12FF24 0013  
12FF26 3C05  
12FF28 FF48  
12FF2A 24A5  
12FF2C 09FD  
12FF2E 0C02 7CEF3C
アドレス 値 チェックサム
12FF30 00B8  
12FF32 2406  
12FF34 0002  
12FF36 2404  
12FF38 1789  
12FF3A 0C02  
12FF3C 0001  
12FF3E 2405 194AF7
アドレス 値 チェックサム
12FF40 1BF3  
12FF42 0C01  
12FF44 0000  
12FF46 0000  
12FF48 0013  
12FF4A 3C04  
12FF4C FF00  
12FF4E 2484 1D2C8C
アドレス 値 チェックサム
12FF50 08B3  
12FF52 0C02  
12FF54 0001  
12FF56 2405  
12FF58 2021  
12FF5A 0002  
12FF5C 001E  
12FF5E 3C05 16DB19
アドレス 値 チェックサム
12FF60 08BB  
12FF62 0C02  
12FF64 0800  
12FF66 2406  
12FF68 001E  
12FF6A 3C01  
12FF6C 0000  
12FF6E 9022 1682D6
アドレス 値 チェックサム
12FF70 0020  
12FF72 2403  
12FF74 102A  
12FF76 0043  
12FF78 FFFC  
12FF7A 1040  
12FF7C 0001  
12FF7E 2421 1E7403
アドレス 値 チェックサム
12FF80 FFFF  
12FF82 A020  
12FF84 001E  
12FF86 3C04  
12FF88 0013  
12FF8A 3C05  
12FF8C FF00  
12FF8E 24A5 47E1A9
アドレス 値 チェックサム
12FF90 0006  
12FF92 A0A0  
12FF94 0028  
12FF96 0C00  
12FF98 0024  
12FF9A 2409  
12FF9C 2021  
12FF9E 0002 3AC0D4
アドレス 値 チェックサム
12FFA0 CE00  
12FFA2 3405  
12FFA4 0028  
12FFA6 0C00  
12FFA8 0042  
12FFAA 2409  
12FFAC 0001  
12FFAE 3C01 7895D7
アドレス 値 チェックサム
12FFB0 D000  
12FFB2 8C22  
12FFB4 0000  
12FFB6 0000  
12FFB8 0003  
12FFBA 1040  
12FFBC 0000  
12FFBE 0000 59B628
アドレス 値 チェックサム
12FFC0 3400  
12FFC2 0C00  
12FFC4 0000  
12FFC6 0000  
12FFC8 CE00  
12FFCA 3404  
12FFCC 8020  
12FFCE 3C02 0C6392
アドレス 値 チェックサム
12FFD0 FFF0  
12FFD2 2442  
12FFD4 0020  
12FFD6 AC82  
12FFD8 0024  
12FFDA AC80  
12FFDC 0001  
12FFDE 2405 6C4C57
アドレス 値 チェックサム
12FFE0 0000  
12FFE2 2406  
12FFE4 0028  
12FFE6 0C00  
12FFE8 0043  
12FFEA 2409  
12FFEC 0000  
12FFEE 0000 1BA95C

 


ここまで入力したら一度□ボタンを押す


 
ここまで進めるとディスク入れ替え機能が有効になるのでセーブしておきます。
これで上述の機能を全て内包したバイナリエディタを復元可能なセーブデータが作成された状態になります。

その後、モンスター指定画面まで進んで□ボタンを押し、No018(No24)のモンスターデータ編集画面に入って再びバイナリエディタを起動します。
 
ディスクを他のPS1ソフトのものに入れ替えてトレイを閉じ、SELECTボタンを押したままSTARTボタンを押すと入れ替えたソフトが起動します。(SYSTEM.CNFから実行ファイル名を自動で取得するようにしているのでファイル名を入力する必要はありません)
 
この際、メインの実行ファイルがメモリにロードされた後、ゲームが起動する直前にアドレス00D000以降に記述してあるコード(最終的に jr ra で終了している必要あり)が一度だけ実行されます。
(ただし00D000と00D002が両方0000の場合コードの実行は無効化され、入れ替えたゲームが起動するだけになります)
 
これにより、メインの実行ファイルにパッチを当てた状態でゲームを起動できるようになります。
例えば、前回の記事のようにINT版FF7でデバッグルームから開始したいなら

アドレス 値 チェックサム
00D000 0001  
00D002 3C01  
00D004 0041  
00D006 2402  
00D008 0008  
00D00A 03E0  
00D00C 1BD8  
00D00E A422 0D0492

と入力するだけで済みます。
 

参考資料

 
 

コメント

タイトルとURLをコピーしました