今度こそFM TOWNS マーティー版「Wolfenstein 3D」完成

FM TOWNS版「Quake」が完成して、ふと1年前近くに作っていたFM TOWNS版「Wolfenstein 3D」FM TOWNS マーティーでも動かせるようにできるんじゃないかと思って改良し実現させてみた。

Googleドライブ - FM TOWNS / マーティー版「Wolfenstein 3D」実行ファイル & ソースコード

WOLF4FMT.EXPがメモリ4MB向け、WOLF2MB.EXPがメモリ2MB機種(マーティー)向け。通常はWOLF4FMT.EXPのほうで起動してください。

 

FM TOWNSマーティー実機でのプレイ動画。初回ロード時間3分、フレームレートは最大でも10fpsと動きが遅いものの、問題なく動作することを確認。

 

本来FM TOWNS版Wolfenstein 3Dはマーティー(386SX 16MHz、メモリ2MB)にはDOOMは荷が重すぎると思って作っていたものなんだけど、やっぱりメモリ不足で対応を諦めていたものだったが、メモリ確保を最低限(今までは単純に1データを最低4KB間隔で確保していたが4KB以下のものを切り詰めて確保)して一気に約1MB削減、更に壁のテクスチャを64*64サイズから32*32サイズに縮小して約300KB削減、これでもTowns OS V2.1から起動してしまうとOS+ゲームデータがメモリ2MBに収まらないのでTownsOS V1.1からブートディスクを作成しベースはV1.1 & デバイスドライバ/APIにあたるTBIOSだけはTownsOS V2.1からコピーしてくるといった節約を行って収めることに成功。

 

メモリ2MB版(マーティー対応)でのグラフィック。壁テクスチャが32*32に縮小される。

 

比較用にこちらが4MB版。

 

それとFM TOWNS版「DOOM」や「Quake」は他の人から実機動作報告はあったんで問題ないことは確認できてたんだが、このWolfenstein 3Dは実機で確認しておらず動作報告も出てきてなかったんで、実は「津軽」エミュ上では問題なく動くのに実機ではグラフィックやPCM音がおかしい問題が発生していたことに今の今まで気づいていなかった。

今回はマーティーで自ら動作確認を行いその点も修正できたので、マーティー版完成というか今更になって真にFM TOWNS版Wolfenstein 3D完成したというべきか。

 

マーティーでの起動方法は以下を参考に。動かしても低解像度でも10fps以下、初回は3分にも及ぶ長いロード時間なんでデモと思っておいたほうがいい。

必要なもの

  • CD-R
  • TownsOS V1.1 L30とTownsOS V2.1 L20(L30以降はTBIOSが肥大化するので使えないと思う)
  • 1.2MBフォーマットのフロッピー

まずはCD-RにWolfenstein 3Dのゲームデータを書き込む。ImbBurnなどを使いSteamやGOGで買ったWolfenstein 3Dのゲームフォルダ内にあるWL6拡張子のファイルをISOファイルに書き込み、それをCD-Rに書き込む。一旦ISO化したのは「津軽」エミュで起動ディスクが作れたかどうか確認しやすくするため。

フロッピーをTownsにセットしてTowns OS V1.1 L30のCDからブート。上にあるメニューから「ディスク」→「初期化」を開く

初期化プログラムが開いたらAドライブ選択、システムの複写で「CD演奏システムを複写する」を選択し、ディスクの名前に適当な名前を入れた(今回はWOLFENSTEIN)ら「実行」ボタンを押してフロッピー初期化。起動ディスクができる。

次にTowns OS V2.1から起動(これはHDD上にあるL20以降のバージョンからでもいい)し、起動フロッピーとTownsOS V2.1 L20のCDをセット、L20のCD内にあるRUN386.EXE・TBIOS.SYS、TBIOS.BINの三ファイルをフロッピーの方にコピー(マーティーで起動する場合はこの作業は不要?)。

次にテキストエディタでフロッピー内のAUTOEXEC.BATを開き、

Q:

A:\RUN386 A:\WOLF2MB.EXP /fdd

と変更。面倒な場合は実行ファイル一式内のFDDフォルダに編集済みのAUTOEXEC.BATを入れておいたのでそれをコピーしてください。ってそっちの方が断然早い。

最後はFDDフォルダ内のCONFIG.WL6と、本体のWOLF2MBをフロッピー直下にコピーすれば完成。起動フロッピーとゲームデータを書き込んだCD-Rをセットし、フロッピーの方からブートすればロード後ゲームが起動するはず。