JavaScriptを有効にすると、ここにメニューを表示します。

FM Towns エミュレータ「津軽」プロジェクト

ysflight.com

クイック・スタート

FM TOWNSエミュレータ津軽

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を作成してくださいました。ありがとうございます!ご利用ください。

https://wiki3.jp/fmtowns

津軽ユーザのみなさんによる動作確認リストも↓にあります。大半のFM Towns/Martyアプリケーションが実行できるようになってきました!ユーザの皆さんにテストしていただけるようになってから、互換性の向上が加速しました。協力していただいている皆さんには非常に感謝しています!

https://wiki3.jp/fmtowns/page/10

推奨動作環境

Windows 10 Professional, Core i7 8650U 2GHz, 16GB RAM. -> これで486SX 33MHz相当程度のパフォーマンスが出る模様

互換ROM (Free FM Towns Project)

津軽を利用するには、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: 

Back to http://www.ysflight.com