リバイバル・ザナドゥ(PC98/1995年) チートコード
リバイバル・ザナドゥ(PC98版/1995年)の自作改造コード。リバイバル版にもチートネームがあることは後で知りました(゜▽゜*)
これらの改造を適用しても武器やcrawnを集めるための探索に時間が掛かるので、すぐにクリアできるわけではありません。私の場合は7時間ほど掛かりました。まあ普通の人にとってはゲームを楽しむには十分でしょう(ぉぃ)
チートコード
操作対象のファイルはX_MAIN.EXE(43720バイト,1995/04/12)です。バイナリエディタやPATCHコマンドを使って適用して下さい。
ゲーム開始時の所持金(GOLD)やエリクサー(ELX)、鍵(KEY)の所有数を増やす
GOLDの上位16ビットを変えるコードを入れるために初期HPを設定するコードを削除しています。レベル1進入時はHPが0になっているので、Red potionなどで回復して下さい。
変更箇所
上段が元データ、下段が変更データ。
+3 +4 +5 +6 +7 +8 +9 +d +e
45f0: A3 18 27 C7 06 10 27 DC 05 C7 06 14 27 DC 05 C7
C7 06 1A 27 7F 00 FF FF
4600: 06 1C 27 64 00 C6 06 29 27 01 C6 06 2A 27 03 C6
FF FF FF FF
4610: 06 74 27 0A C6 06 75 27 01 C6 06 2B 27 00 C6 06
80 80
4620: 2C 27 00 C6 06 2D 27 00 C6 06 2E 27 00 C6 06 2F
アセンブルコード
元データは次の通り。
;Offset_45F0h
mov word[2718h], ax ;A3 18 27 ;gold_l
mov word[2710h], 5dch ;C7 06 10 27 DC 05 ;hp_l
mov word[2714h], 5dch ;C7 06 14 27 DC 05 ;maxhp_l
mov word[271ch], 64h ;C7 06 1C 27 64 00 ;food_l
mov byte[2729h], 1 ;C6 06 29 27 01 ;key
mov byte[272ah], 3 ;C6 06 2A 27 03 ;elx
mov byte[2774h], 0ah ;C6 06 74 27 0A ;spectacles
mov byte[2725h], 1 ;C6 06 75 27 01 ;red potion
上の3行目はGOLDの上位バイトを書き換えるためmov word[271Ah], 7f00h ;C7 06 1A 27 7F 00
に変更します。GOLDはオーバーフロー対策のため9999999ではなく中途半端な値にしています。必要ないかもしれませんが念のため。
ゲーム開始時の能力値設定上限を100から250に。
変更箇所
+b
7c00 E8 6C 04 8B 1E 20 B1 80 BF 20 27 64 72 03 E9 92
F0
+a
7c50 44 B9 8B 1E 20 B1 80 BF 20 27 64 73 46 BB B4 20
F0
アセンブルコード
;元データ
cmp byte[bx+2720h], 64h ;80 BF 20 27 64
;変更データ
cmp byte[bx+2720h], F0h ;80 BF 20 27 F0
アイテム装備・使用時に経験値を255(FFh)にする
変更箇所
+9 +a
4bd0 85 27 3C 01 1A E4 80 E4 1E 0A C4 88 82 85 27 83
B0 FF
アセンブルコード
;元データ
;Offset_4BD9h
or al, ah ;0A C4
mov [bp+si+2785h], al ;88 82 85 27
;変更データ
mov al, FF ;B0 FF
mov [bp+si+2785h], al ;88 82 85 27
PATCHコマンドを使う
NEC版MS-DOSに付属するPATCHコマンドを使って上記のコードを適用する方法です。
A:\RX_98>patch
PATCH version 1.00
対象ファイル名: x_main.exe
オフセットを入力してください: 45F3
0045FX 0 1 2 3 4 5 6 7 8 9 A B C D E F
OLD C7 06 10 27 DC - 05 DC 05
NEW C7 06 1A 27 7F - 00 FF FF
x_main.exe への入力を続行しますか (Y/N)? Y
オフセットを入力してください: 4603
00460X 0 1 2 3 4 5 6 7 8 9 A B C D E F
OLD 64 00 - 01 03
NEW FF FF - FF FF
x_main.exe への入力を続行しますか (Y/N)? Y
オフセットを入力してください: 4613
00461X 0 1 2 3 4 5 6 7 8 9 A B C D E F
OLD 0A - 01
NEW 80 - 80
x_main.exe への入力を続行しますか (Y/N)? Y
オフセットを入力してください: 7C0B
007C0X 0 1 2 3 4 5 6 7 8 9 A B C D E F
OLD - 64
NEW - F0
x_main.exe への入力を続行しますか (Y/N)? Y
オフセットを入力してください: 7C5A
007C5X 0 1 2 3 4 5 6 7 8 9 A B C D E F
OLD - 64
NEW - F0
x_main.exe への入力を続行しますか (Y/N)? Y
オフセットを入力してください: 4BD9
004BDX 0 1 2 3 4 5 6 7 8 9 A B C D E F
OLD - 0A C4
NEW - B0 FF
x_main.exe への入力を続行しますか (Y/N)? N
x_main.exe に対する変更データ
0 1 2 3 4 5 6 7 8 9 A B C D E F
0045FX C7 06 1A 27 7F - 00 C7 06 14 27 FF FF
次のデータを表示します
どれかキーを押してください
0 1 2 3 4 5 6 7 8 9 A B C D E F
00460X FF FF C6 06 29 - 27 FF C6 06 2A 27 FF
次のデータを表示します
どれかキーを押してください
0 1 2 3 4 5 6 7 8 9 A B C D E F
00461X 80 C6 06 75 27 - 80
次のデータを表示します
どれかキーを押してください
0 1 2 3 4 5 6 7 8 9 A B C D E F
007C0X - F0
次のデータを表示します
どれかキーを押してください
0 1 2 3 4 5 6 7 8 9 A B C D E F
007C5X - F0
次のデータを表示します
どれかキーを押してください
0 1 2 3 4 5 6 7 8 9 A B C D E F
004BDX - B0 FF
変更データを訂正しますか (Y/N)? N
これらのデータで x_main.exe を変更しますか (Y/N)? Y
ファイル x_main.exe を変更しました
他のファイルの内容を変更しますか (Y/N)? N
A:\RX_98>