|
FM Townsエミュレータ作ってます。多分、CPUコアとか音源コアとか出回ってるものを使えばもっと楽なのかと思いますが、それだと自分の経験値にならないので、いばらの道を覚悟でCPUコアから作り始めました。
FM Townsエミュレータとしては、Kasanovaさん作のUNZが非常に再現性が高く、最近はMAMEの再現性も上がってきたと聞きます。が、これは自分の考えですが、こういうソフトは同じような機能を持ったものが3種類ぐらいあるのが良いと思ってます。例えば、ある機能を持ったプログラムが一種類しか無いとして、あるとき突然そのプログラムが使えなくなってしまったら、手も足も出ません。とくに、最近OSを開発する企業が無責任かつ不必要かつ頻繁に後方互換性を切り捨てる悪習が蔓延しているので、使ってるプログラムがある日突然使えなくなる危険はコンピュータ史上ありえないレベルで高くなっています。
数年前からFM TOWNS実機の動態保存プロジェクトを進めてますが、頻繁に「くっ、386DEBUGさえあれば」と、「さらば宇宙戦艦ヤマト」で艦の右舷かなたを通過していく白色彗星帝国に向かって波動砲が撃てないヤマトのような思いを味わってきました。FM-7の動態保存ではXM7の強力なデバッガのおかげでかなり必要なプログラムの開発や既存プログラムの解析が進んだのですが、UNZには残念ながらそのレベルのデバッガは付属していません。
という状況で2019年の暮れあたりからEXPファイルをまるごと逆アセンブルして人間CPUとなって実行を追跡するというまるで1980年代のでバッギングのようなことをしているうちに、だんだんTOWNSが内部でどんなことをしていたのかわかってきて、これはエミュレータ書けるかも?という気になってきて、自分はプログラマーなんだから、欲しいプログラムは書こう!と、思い立って書き始めたのが2020年1月17日、約1年でユーザの皆さんの協力もあり少なく見積もっても95%の市販ゲームタイトルは動作するレベルに到達しました。
ちなみに、デバッガが欲しくて書き始めたのですが、そのすぐあとにヤフオクで386ASM, 386DEBUGが落とせてしまったんですがね。
そんなわけで、動態保存プロジェクトに使いたかったので、結構協力なデバッガがついてます。また、FM Townsのソフトを実行するだけであれば、SCSI接続のCD-ROMドライブをエミュレートする意味はまったくないですが、僕は実機を稼働状態に維持するためのドライバ YSSCSICD.SYS の開発と必要に応じたパッチ開発のためにエミュレータを使いたいという個人的な需要があるので、SCSI接続のCD-ROMドライブもサポートしました。
ソースコードは既にGithub上に公開しています。
https://github.com/captainys/TOWNSEMU
実行ファイルは、とりあえず仮に↓で公開しています。GitHubでコンパイルしたやつをそのままアップロードしています。"Assets"の中からダウンロードできます。
https://github.com/captainys/TOWNSEMU/releases
なお、現状コマンドユーザーインターフェースです(^_^;) GUIなんかつけるからプラットフォーム依存になったり、ものすごく重たいライブラリに依存したりになるんです。
とかいいながら、GUIも作ってみました。Tsugaru_GUI.exeで起動します。中からTsugaru_CUI.exeを呼ぶので同じディレクトリに両EXEが入っている必要があります。macOSの場合だと数々のセキュリティの警告を突破してAppを起動するとGUIで使えます。
WindyさんがWikiを作成してくださいました。ありがとうございます!ご利用ください。
津軽ユーザのみなさんによる動作確認リストも↓にあります。大半のFM Towns/Martyアプリケーションが実行できるようになってきました!ユーザの皆さんにテストしていただけるようになってから、互換性の向上が加速しました。協力していただいている皆さんには非常に感謝しています!
https://wiki3.jp/fmtowns/page/10
Windows 10 Professional, Core i7 8650U 2GHz, 16GB RAM. -> これで486SX 33MHz相当程度のパフォーマンスが出る模様
津軽を利用するには、ROMイメージが必要です。もしも、お手元に実機FM TOWNSがあれば、実機から抽出したROMイメージを使うと最も高い再現性を得ることができますが、 実機を所有していない場合でも、互換ROMセットを使うことで津軽をある程度利用することができます。
互換ROMについて詳しくは このリンクを参照してください。
一応、1月中旬(2020年)に開発を開始して、約4か月でAfterburner IIがプレイできるレベルになりました。まさかこんなに早くここまで実行できるようになるとは思ってませんでした。自分のプログラミングの技術を過少評価していた(自分で言うな)。
ソフトウェアタイトル | 開発元 | 確認日 | 確認内容 |
Towns OS V1.1 L10 | 富士通 | (Unit Test) | 起動、基本的な操作、デモプログラム |
Towns OS V1.1 L30 | 富士通 | (Unit Test) | 起動、基本的な操作 |
Towns OS V2.1 L10 | 富士通 | 2020/05/23 | 起動、ただし -PRETEND386DX オプションが必要 (フリコレ4 DiscBで確認) |
Towns OS V2.1 L10B | 富士通 | 2020/05/23 | 起動、基本的な操作 |
Towns OS V2.1 L20 | 富士通 | (Unit Test) | 起動、基本的な操作、ハードディスクイメージへのインストール |
Towns OS V2.1 L31 | 富士通 | 2020/05/23 | 起動、基本的な操作 |
Towns OS V2.1 L50 | 富士通 | 2020/05/23 | 起動、基本的な操作 (フリコレ11で確認) |
F-BASIC 386 V2.1 L10 | 富士通 | 2020/05/23 | 起動、簡単なプログラムの動作 |
MS-DOS V3.1 | 富士通 | (Unit Test) | 起動、基本的な操作 |
Afterburner II | SEGA/CRI | 2020/05/23 | ステージ8入るところまで確認 (オートデモまで定期的に動作確認) |
Turbo Out Run | SEGA/CRI | 2020/05/23 | 二つ目のチェックポイント通過後ぐらいまで確認 (オートデモまで定期的に動作確認) |
Galaxy Force II | SEGA/CRI | 2020/05/23 | ステージ3(?)ぐらいまで確認 (タイトル画面まで定期的に動作確認) |
Wing Commander 1 | Origin | 2020/05/25 | VEGA星域キャンペーンクリア確認! |
遥かなるオーガスタ | T&E Soft | 2020/06/07 | デモ画面~ショット練習、ホール1クリアまで。 |
Alone in the Dark | INFOGRAMES | 2020/06/07 | ゲーム開始まで |
RAYXANBER | DATAWEST | 2020/06/12 | ゲーム開始まで (オートでもまで定期的に動作確認) |
Afterburner III | SEGA/CRI | 2020/06/12 | ゲーム開始~ステージ5ぐらいまで。 |
Air Combat II Special | System Soft | 2020/06/13 | ミッション開始して飛行可能なことを確認。ユーティリティメニューでキー割り当てを変更しないとデフォルトの割り当てはちょっと変。ユーティリティのユーザディスク作成を選ぶと、CDDAを止めないままCD上のファイルを読もうとして固まってしまうが、ただフォーマットしたブランクディスクをAドライブに入れておけばいいだけの模様。 (オープニングまで定期的に動作確認) |
Super大戦略 | System Soft | 2020/06/13 | ゲーム開始、昔のセーブデータから初めてIsland Campaignクリア、エンディング |
VIEWPOINT | SNK/VING | 2020/06/17 | オートデモ、ゲーム開始。 (オートデモまで定期的に動作確認) |
Chase HQ | TAITO/VING | 2020/06/19 | ゲーム開始~ステージ2クリアまで。 (オートデモまで定期的に動作確認) |
A列車で行こう3 | ARTDINK | 2020/06/20 | ユーザーディスク作成、ゲーム開始、線路敷設 (オープニングまで定期的に動作確認) |
F-29 Retaliator | Imagineer | 2020/06/23 | オートデモ、Zulu-Alertで飛行 |
Libble Rabble | namco/電波新聞社 | 2020/06/30 | 普通にプレイ可能。 |
VSGP Drivers | T's (フリコレ6) | 2020/06/30 | FD1マップ一周。ただし、タイマーを見ていないようで (逆アセンブルして結構調べたんだけど)、 12MHzぐらいまで下げないと速すぎてついていけない。実機でもそうだったっけ? |
Sky Duel | Makken (フリコレ9) | 2020/06/30 | Snowy ValleyをFINまで飛行。 僕がポリゴン3DやってたときMakkenさんのこのプログラムはインパクトでかかった。 |
ぷよぷよ | COMPILE/CRI | 2020/07/01 | ステージ1 |
Dungeon Master | FTL | 2020/07/02 | 起動に妙に時間がかかって動かないかと思ったら単に時間がかかっていた模様。 キャラクター一名復活させて歩き回る、手裏剣を投げるなど確認。 |
Emerald Dragon | GLODIA | 2020/07/03 | 起動、タイトル~戦闘開始まで確認。 |
Advantage Tennis | INFOGRAMES | 2020/07/03 | プレイ可能。ただし、そのままだと速すぎるのでクロックを下げた方がいい鴨。 |
Lemmings | Imagineer | 2020/07/08 | マウスで操作するには -APP LEMMINGS オプション。プルプル震えるけど。 |
DINOSAUR | Falcom | 2020/07/11 | 起動から町を歩くとこまで確認。BIN (生イメージ)ではコピープロテクトが再現できないためプレイ続行不可能。.D77イメージでクリア確認。 |
Xak II | MICRO CABIN | 2020/07/11 | データディスク作成、ゲーム開始まで確認。 |
Strike Commander | Origin/EA Victor | 2020/07/11 | 2020/09/06 クリア確認!要8MB RAM。-APP STRIKECOMMANDERでマウスインテグレーション。-FLIGHTMOUSEオプションで、USB接続のジョイスティックをマウス座標に変換することで操縦が楽になる。-STCMTHR gameDevId axisId オプションでスロットルレバーの位置をキーボード1,2,3,...,0に置き換えて送信する機能追加。クリア確認。 |
Strike Commander Plus | Origin/EA Victor | 2020/07/17 | HDDインストール、トレーニングミッションで飛行。-APP STRIKECOMMANDERでマウスインテグレーション。クリア確認。 |
New Zealand Story | TAITO/VING | 2020/07/19 | ステージ1-3までクリア確認。 |
Fractal Engine Demo | Psygnosis/Fujitsu | 2020/07/19 | 30分ほど流して問題無さそう。 |
Scavenger 4 | Psygnosis | 2020/02/28 | ステージ1のボスにやられるところまで確認 |
Microcosm | Psygnosis/Fujitsu | 2020/07/29 | 最初の分岐で右に行って、雑魚戦には勝ったけど、最初のボスにやられるとこまで確認。血管とかスプライトで描画してるとは思わなかった。 |
Shadow of the Beast | Psygnosis | 2020/08/02 | 一応うろうろして正常だった。 |
Megamorph | Psygnosis | 2020/08/02 | 画面がちょっと上に寄ってるけどプレイ可能。最初のボスを倒すとこまで確認。 |
Vain Dream | GLODIA | 2020/08/02 | 起動、ゲーム開始、セーブ・ロード |
Vain Dream II | GLODIA | 2020/08/02 | 起動、ゲーム開始、セーブ・ロード |
Shadow of the Beast 2 | Psygnosis | 2020/08/03 | 起動、ゲーム開始。しかし、CD-ROMのMODE1READコマンドの強制終了のやり方はああいう書き方はどうかと思った。 |
Lemmings 2 | Psygnosis | 2020/08/04 | 画面がちらつくもののプレイ可能。-APP LEMMINGS2 でマウスインテグレーションも対応。 |
Wing Commander II | Origin | 2020/08/16 | インストール時、実行時にメモリ5MB以上が必要。4MB以下でインストールしてしまうとオプションにram=3と設定されてしまって起動しない。ram=4以上が必要。クリア確認。 |
Towns OS V2.1 L51 on MS-DOS V6.2 | Fujitsu/Microsoft | 2020/08/18 | 動いちゃった。 |
Railroad Tycoon | Microprose | 2020/08/19 | 起動~練習マップ開始まで確認 |
FM-OASYS | Fujitsu | 2020/09/12 | ハードディスクにインストールされたOASYSの起動に成功。まだ文書作成まで行ってないけど。大体正常に動作している模様。 |
Music Pro Towns | Musical Plan | 2020/11/02 | デモ曲をいくつか演奏。 |
BestPlay Baseball | ASCII | 2020/11/04 | 観戦モードで一試合通してみた。 |
Operation Wolf | TAITO/VING | 2021/01/25 | プレイには -APP OPERATIONWOLF オプションで起動するか、GUIならApplicationから OPERATIONWOLF を選んで起動が必要。 ステージ1というか、弾薬庫ステージクリア確認。 |
Hyper Planet | DATT JAPAN | 2021/01/26 | 普通に動作する模様。 |
今思えば当時志願してThe CockpitのFM Towns用移植をさせてもらえばよかった。当時そういう発想は無かった。ポリゴンエンジン自作したんだから頑張ればTop Landingぐらい移植できたかもしれん。
Comments are welcome. Send E-Mail to: |