洞窟物語 チート三昧

先日紹介したゲーム「洞窟物語」についてである。 無敵化の改造といったズルい方法を駆使したり、ファンサイトに掲載されている攻略法を参考にしたりしながらもトゥルーエンドを見ることが出来て、シナリオ的な部分は堪能した。
しかし、アクション部分は単に自キャラを前に進めるだけというのもちょっともったいない。 かと言ってあらためて改造なしでクリアできるほどの技術はない。 難しいからこそ燃えると言った意見もあるだろうが、ゲームの中くらい爽快に敵を薙ぎ倒したり、ややこしい地形もひとっ飛びしたいのである。
と、言うわけで攻撃や移動に関する改造をしてみた。 コードの表記は fc コマンドの出力に準じる。 即ち、実行ファイル内での位置、書換え前の値、書換え後の値を16進数で表記したものである。

弾数無制限

武器によっては弾数に限りがある場合がある。 マシンガンやバブリンは時間経過で弾数が増えるが、ミサイルは敵を倒して弾を入手しなければならない。
ミサイルは連射性能と威力のバランスの取れた武器で使い勝手がよいだけに弾切れがあるというのは大きなデメリットだ。 そこで、改造である。

00001FE1: 45 4D

この改造でマシンガンやバブリンも弾数が減らなくなる。
弾数を気にせずとにかく撃ちまくる。 とても爽快だ。

シュプールが常にフルパワー

ミサイルをバカスカ撃って爆発を楽しむのは爽快であるが、敵が密集しているときには一気に薙ぎ払えた方が手っ取り早いだろう。 それに適した武器と言えばシュプールである。
しかし、シュプールは溜め撃ちが必要なのが欠点だ。 レベルMAXまで溜めるには数秒かかってしまう。 そこで常にフルパワーで撃てるように改造を施した。

000198A1: 01 03
000198B4: 00 C8

溜める必要なく常にフルパワーで発射される。 このゲームの中で最強の攻撃が常に行えるというのはとても爽快だ。

ブースターv2.0で無制限に飛ぶ

武器が最強でも空中ステージなどは細かい移動操作が必要で苛立つことがある。 複雑な地形を無視して飛んで行きたい。
ブースターv2.0を入手していれば空中でも自由度の高い移動が可能になるが、滞空時間には限りがあり、いくらでも飛ぶというわけにはいかない。
そこで、ブースターv2.0での滞空時間が無制限になるよう改造した。

00015C63: E8 E9

これで面倒なステージを眼下にどこまでも飛べる。 爽快である。
移動速度もかなり速くなるし、ボス戦でも必要な角度から狙いを付けられるのでタイムアタック用途にも良いだろう。 尤も、タイムアタックに挑戦するような人は改造は好まないだろうが。

バブリンで飛ぶ

マシンガンのレベル3は下向きに撃つと飛ぶことが出来る。 しかし、シュプールを入手するルートではマシンガンを入手できないのでバブリンにマシンガンの効果を付加する改造をしてみた。
バブリンのレベル3を下に向けて撃ったときのみマシンガンになる。

0001F3F8: 83 A0
0001F3F9: 3D CA
0001F3FA: 40 E6
0001F3FB: E6 49
0001F3FC: 49 00
0001F3FD: 00 FE
0001F3FE: 00 C0
0001F3FF: 75 3C
0001F400: 4C 06
0001F401: 6A A2
0001F402: 03 CA
0001F403: 8B E6
0001F404: 15 49
0001F405: 58 00
0001F406: E6 7D
0001F407: 49 09
0001F408: 00 6A
0001F409: 81 0C
0001F40A: C2 6A
0001F40B: 00 03
0001F40C: 10 E9
0001F40D: 00 82
0001F40E: 00 F1
0001F40F: 52 FF
0001F410: A1 FF
0001F411: 54 C6
0001F412: E6 05
0001F413: 49 CA
0001F414: 00 E6
0001F415: 2D 49
0001F417: 06 00
0001F418: 00 E9
0001F419: 00 5C
0001F41A: 50 01
0001F41B: 8B 00
0001F41C: 4D 00

シナリオの方を改造すればシュプールとマシンガンの両方を入手することも可能なはずだし、ブースターがあれば飛ぶのに不自由はないわけだからあまり意味が無いのだけれど、武器の効果を組合せる改造をやってみたかった次第である。
今回のような改造は割と簡単なので、なるべく少い書換えで実現するという縛りでやっていたのだが、さすがに武器の意味まで変えるとなると結構な量になってしまった。
Document ID: 60825efd1555613e0b095136ed7e2f3c