スーパーファミコン「超魔界村」 処理落ち軽減ハックロム

スーパーファミコンで1991年に発売されたアクションゲーム「超魔界村

アーケードゲームだった「魔界村」シリーズの3作目、家庭用ゲーム機オリジナルにして正式な続編タイトルで、魔界村らしい硬派な難易度で評判も十分ではあったものの、スーパーファミコンの処理速度の問題で一部のシーンで処理落ちが目立つことが難点の一つに挙げられることが少なくなかった。

海外版の超魔界村用に、一部グラフィック・敵の名前を日本版と同じになるよう変更、更に処理落ち軽減を行うというハックロムを見つけたが、日本版超魔界村には適用できないので、どうやって処理落ちを軽減させたかYoutubeにある比較動画から情報を得て一から製作してみた。

製作したハックロムの比較動画

完全ではないが処理落ちが大分軽減されており、ほぼ一緒の動きなのにハックロムの方が進行速度が速い。

 

まだ完全にプログラムを書き換えておらず、メインゲームのメインループと一部のサブルーチンのみを高速化、1周目までしかテストプレイはしていないが、テスト用のIPS形式の差分パッチも載せておく。

ほとんどのプログラムをFastROM化、2週プレイしてエンディングも見れることを確認したが、バグがある可能性もある。

 

※6月21日更新、ほぼすべてFastROM化、ステージセレクト&サウンドテストの出し方を変更

※6月23日更新、オリジナル版からあるボタン配置を変えるとデモプレイがおかしくなるバグを修正

Google ドライブ - スーパーファミコン 超魔界村 処理落ち軽減 ハックロム

使用してみて、特定のシーンでフリーズする、グラフィックやサウンドが化ける、敵の出現パターンやアルゴリズムがおかしいシーンがあれば、blogのコメント欄で報告していただけると直しておくかもしれない。

 

元々スーパーファミコン動作周波数3.58MHzという当時の水準からしても遅すぎるCPUが載っているから処理が追い付かず処理落ちするのだが、更にゲームプログラム&データを書き込んでいるROMが製造コストを抑えるためにアクセス速度が遅いROM(SlowROM、200ns)を採用しているゲームが存在する。、超魔界村もこのSlowROMを使用しており、当時のCPUにはキャッシュメモリなども採用されておらずメモリ読み込み速度=CPU速度と言っていいので実質CPUが2.68MHzで動作しているのと変わらないのである。

処理落ちを軽減する原理は、このSlowROMをアクセス速度の速いROM(FastROM、120ns)から読み込むようにプログラムを書き換えることで本来のCPU動作周波数3.58MHz、2.68MHzからは約1.33倍の実行速度で動作するようにすればいいというのが大まかな流れ。

ただし、単純に設定一か所を変えるだけで済む話ではなく、FastROMを使用するように改造するにはFastROM有効化レジスタを変更した後、プログラム上にあるすべての分岐命令の分岐先アドレスやデータ読み込み命令の読み込みアドレスをFastROMを使用するアドレス($80:8000)以降に書き換えなければならない。