XM7は、1982年に富士通より発売された8bitパソコン、FM-7のエミュレータです。FM-7は「究極の8bitMPU」6809を2つ搭載したホビーパソコンで、FM-8の後継機種として登場しました。FM-7がベストセラーとなった後、FM-77→FM77AV→FM77AV40と拡張を続け、1988年発売のFM77AV40SXをもってシリーズ終了となっています。
1999年6月から初版の試作を始め、2001年公開のV2.5L20/V3.0L30までは私PI.がを行いましたが、その後は、複数の方の尽力によって拡張版や派生版の開発が行われてきました。
その結果、2022年現在ではFM-7/8/77AVシリーズのエミュレータの標準となっています。
上記の通り様々な拡張版・派生版が生まれてきたXM7ファミリーですが、この度、以下の方々の協力により、XM7ファミリーのライセンス体系をCC-BY-NC-SA 4.0に統一することになりました。
協力いただいた方々:
ここでは、それぞれの作者の方の了解に基づき、上記ライセンスに基づいたバージョンを幾つか公開します。
XM7の特徴は以下の通りです。
- FM-8(1981年)~FM77AV40SX(1988年)までのFM-7/8ファミリ各世代機種をエミュレーション
- 各種情報をリアルタイム表示できる、豊富なサブウィンドウ表示機能
- XM7本体の改良だけでなく、実機向けソフトの開発でも威力を発揮するGUIデバッガを装備
- FM音源はFM-77L2/FM77AV準拠の純正機能のみならず、FM-7用FM音源カードを改造したWHG(2枚差し)、THG(3枚差し)に対応
- Z80カード・400ラインカード・拡張RAMカード・MIDIアダプタ・シリアルドットプリンタなどの周辺機器に幅広く対応(ただしバージョンにより差異あり)
- 実FM音源(ROMEO・SCCI)サポート
- FDXディスクイメージサポート(XM7g)
XM7dash R47系列→R48系列の更新情報一覧です(トマ氏提供)
<変更>
<修正>
- 音源ディスプレイ/レジスタサブウインドウの表示チップ数をコンテキストメニューから指定できるよう変更
- MS用makefileをDirectX9 SDKのインストールを不要とするように対応
- XM7 L77SX+z10 R4で実装された、ホットリセットした際にブートROMが無効になるまでF-BASIC ROMの制御を制限するNEW7ブートROM対策仕様を、FM-77モード限定で移植
- XM7 L77SX+z10 R4で実装された、Windows 11対応シーケンスを移植
- バージョン情報にGIMONS氏によるXM7g技術を使用していることを明記
- バージョン情報にnenecchi氏によるExternal DLL技術を使用していることを明記
- opn_scaleのリセット初期値を6に修正(FM-7/77実機でホットリセット直後にFM音源を鳴らした際の挙動に準拠)
- SXGA(1280x1024)、VGA(640x480)のフルスクリーンモード時、画面周囲にゴミが表示される可能性があった問題を修正
- サブウインドウからのクリップボード登録時に改行コードが付加されない場合がある不具合を修正
XM7 V3.4 / V2.9 / V1.1 L77SX+z10 R3 ソースコード(VS2017版)(2021/06/23)
L77SX+z10 R3系列のソースコードをベースに、Microsoft Visual Studio 2017でビルドできるよう修正したものです。
xm7_3477sxz10r3s_vs2017.zipのダウンロード (600094 bytes, retropc.net)
この作品はクリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際 ライセンスのもとに提供されています。
XM7 V3.4 / V2.9 / V1.1 L77SX+z09 R3c ソースコード(VS2017版)(2021/06/23)
L77SX+z09 R3c系列のソースコードをベースに、Microsoft Visual Studio 2017でビルドできるよう修正したものです。
xm7_3477sxz09r3cs_vs2017.zipのダウンロード (598778 bytes, retropc.net)
この作品はクリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際 ライセンスのもとに提供されています。
XM7dash (V3.4 / V2.9 / V1.2 R48 ソースコード&バイナリ(2023/08/23)
dash R48系列のソースコード・バイナリのアーカイブです。トマ氏の了承のもと、ここで配布します。
xm7dash_r48.zipのダウンロード (1923809 bytes, retropc.net)
この作品はクリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際 ライセンスのもとに提供されています。
XM7gはGIMONS氏のFDX68 enabled emulatorsで公開されています。
過去のXM7のスクリーンショットを一部再掲し、当時の開発状況を振り返ります。
F-BASIC V3.0 (1999/07/17)
XM7の初公開が1999/08/22のV0.43となっているので、それより1ヶ月ほど前の状況です。開発はWindows 98上で日々行いましたが、Windows向けは敢えて公開せずX680x0向けgcc1(真里子版)でビルドしたものを初版として公開しました。「FM-7エミュレータは良いけど、今さらX68k版なの?」という声も結構ありました。EX68のバージョンがv106なのも時代を感じます。
ぐっちゃんばんく (1999/08/06)
この頃はまだFDCのエミュレーションは行っておらず、F-BIOS(BOOT ROM)の$FE02,$FE05,$FE08にジャンプすると疑似的にロード・セーブを行う仕組みを設けてソフトの動作チェックをしていました。
ぐっちゃんばんくは雑誌Oh!FMにミニ版が掲載されたFM-7向け大作ゲームソフトで、その後PC-8801へ移植もされました。ゲームデザイン&プログラムは天内 潤氏(後にテンゲンで活躍)で、Oh!FM誌によると天内氏はFM-16βを用いてクロス開発していたとのことです。
XANADU (1999/09/22)
1999/09/23のv0.55でPC-9801(MS-DOS)版と、SAVEROMユーティリティ(FM77AV20/AV40以降専用)を追加しました。SAVEROMはPC-9801BX4上でクロス開発を行いました。FM77AV40EXとPC-9801BX4をRS-232Cクロスケーブルでつなぎ、FM77AV40EXからRS-232C経由で出力したCPUレジスタ表示をPC-9801BX4側のターミナルで確認してデバッグしていたことが思い出されます。
他機種からかなり遅れて発売された(雑誌「ポプコム」の「円丈のドラゴンスレイヤー」では、「これ以上遅れたらファルコムに火をつけるぞ」という毒舌もあった)FM-7版ですが、木屋善夫氏が自ら6809へ苦心して移植されたとのことで、先行の他機種と比べても遜色ない出来栄えになっています。FM-7版はこのようにCHRが特定の値のとき、アイテムショップでアイテムが5gpで買い放題という特徴があります。
リザード (1999/11/6)
1999/11/23のv0.72でBorland Turbo-C++ 3.1(ObjectWindowsクラスライブラリ)を使用してビルドしたWindows 3.1(Win16)版を追加しました。意図的にWindows 95/98では動作しないようにバージョンチェックを入れたのですが、Windows NT4で動作してしまったのは盲点でした。
T77フォーマットの設計とテープの実装が出来たのがこの頃です。マイクロキャビン移植のFM-7版リザードはオリジナル(XTALSOFT開発)PC-6001mkII版同様のローレゾ表示で、リバーヒルソフト移植のPC-8801版に比べるとちょっと見劣りしました。
アルファ(ALPHA) (2000/01/04)
2000/01/23のv0.90で、FM音源合成エンジンfmgenを初めて搭載しました。ただしIBM-PC(PC/AT互換機)のMS-DOS向け版です。16bitコンパイラでビルドされたfmgenは、XM7 for IBM-PCが唯一ではないでしょうか。fmgenが合成するPCMデータを再生するため、Sound BlasterおよびSound Blaster16のドライバを自作して組み込みました。初めて綺麗に鳴ったときはとても感動したことを覚えています。セオリー通り環境変数BLASTER=を見るようにしましたが、ユーザ環境によっては正常に鳴らなかったようです。
画面下の入力コマンドは実は逆で、「トル メガネ」の後で「ミル」が正しかったようです。この「お遊び」ギミックも当時話題になりました。
内蔵デバッガ (2000/02/12)
2000/02/23に至り、V1.00として一通りの完成を見ました。このバージョンで初めてWin32版を公開し、既存のX68k,PC-98,Linux,IBM-PC,Win16,FM-TOWNSの各版とあわせて計7プラットフォームとしました。
これはV1.00の頃のデバッガで、後年のV2/V3系や、XM6につながる機能がWin32APIで実装されています。背景の白黒縞模様はWizardry #1 (Proving Grounds of the Mad Overlord)と思われます。
PACRIS (2000/02/14)
見てわかる通りTETRISのクローンですが、完成度は非常に高いです。私はオススメTETRISクローンとしてX68000向け清水順氏のTETPИC SEMIPRO-68kと並び、このFM-7向けPacrisを推します。右上のウィンドウに時折メッセージが表示されるのですが、「現場に臨んでは臨機応変!状況は常に変化している」は「機動警察パトレイバー」の太田功のセリフからと思われます。
シルフィード (2000/04/04)
2000年3月、ちょうど開発開始から9か月経った頃にFM77AVの機能実装と、スケジューラの書き直しを始めました。これは2000/4/23のV2.1向けに準備したスクリーンショットです。
発売延期を繰り返したPC-8801mkIISR版「シルフィード」ですが、8bitマシンでの疑似3D処理、CSM音声合成、シューティングゲームとしてのゲーム性など高い完成度を誇り、発売後ユーザから絶賛されました。「他の機種への移植は不可能」という説もありましたが、FM77AV版はオープニングデモが4096色同時表示を使用した美しい画面に差し替えられ、ある意味オリジナル以上の仕上がりになっています。この傑作の生みの親であり、「PC-8801mkIISR版が完成したときには泣いていた」というゲームアーツ創業スタッフの宮路 武氏は2011年7月に逝去されました。ご冥福をお祈りします。
ディーヴァ STORY2 ドゥルガーの記憶 (2000/04/28)
2000/5/23のV2.2でWin32版のGUI部分を全て作り直し、開発環境をMicrosoft Visual C++ 4.0(Standard Edition)からBorland C++ Builder 5(Professional Edition)に変更しました。このGUI部分の設計は現在まで変わっていません。この頃のMicrosoftの開発環境はまだまだ高価で、エントリー価格のStandard Editionは最適化が全く効かないというペナルティが付いており、それを嫌ってコンパイラを変更したものです。
ディーヴァは全7機種のストーリー、最後の機種PC-9801版は当初は"?"という触れ込みで展開されました。FM77AV版はT&E SOFTの特攻隊長こと太田真一氏によるプログラムで、アクションゲーム性が強くなっています。パレット設定を活かした320×200ドット 64色×2画面重ね合わせを使用しているものと思われます。
デジタル・デビル・ストーリー 女神転生 (2000/09/07)
2000/9/23のV2.3L20(バージョン2.3レベル20)の頃です。このようにバージョン+レベル表記としたのは、富士通F-BASICが同様の表記法(例えばV3.3L20など)を採用していたためです。この頃には完成度が相当高くなっていました。
ただ女神転生はその前のバージョンV2.3L10まで表示が正しく行われず、「何故だろう」とずっと頭を抱えていました。原因は6809がPSHS命令,PSHU命令実行時にプッシュでメモリに書き出す前にダミー読み込みを行うため、それを利用して直線補間・論理演算LSIをドライブしていたことでした。(そんなのわかるか)
FM音源ディスプレイ (2000/11/22)
2000/11/23のV2.4L10でFM音源ディスプレイを実装しました。ソーサリアン for X680x0のミュージックデバッグモードで同様の開発実績があったので、表示色(パレット)はそこから流用し、仮想VRAMを活用した最小限の書き換え+BitBltで描画速度を稼いでいます。
BASICリストに見えている作者名"YmoH.S"に注目ください。有限会社ベイシスケイプ代表取締役の著名な作曲家、崎元 仁氏その人です。後年「リボルター」「伝説のオウガバトル」等でその地位を不動のものとしましたが、それより前にFM-7ファミリのOPN×2構成を用い、このようにゲーム音楽のコピーなどで修行されていたことがわかります。
FM77AVデモンストレーション (2001/05/19)
2001/04/23のV3.0で、FM77AV40/EX/SXのエミュレーションに対応しました。このバージョンアップではたけがみりう氏が多くのコードを作成され、それを私がマージ・調整するという共作になっています。
FM77AVのデモソフト開発はハミングバードソフトが行い、FM77AVの機能をかなり深く使っています。このスターウォーズ風のスクローラーも直線補間・論理演算LSIを駆使した大変凝ったもので、V3.0L10までは正しく表示することができませんでした。余談ですが、PC-8801mkIISRの店頭デモ(システムソフト開発)もCRTC・ALU・パレット等で特殊な使い方をしており、エミュレータ作者泣かせのソフトとなっています。
Comrade-HG 音楽ディスク (2001/06/17)
2001/06/23のV3.0L20で、電波新聞社製ジョイスティックインタフェース(FM-7向け)に対応しました。その他は細かなバグ修正に留まっています。
Comrade-HGはOh!FMでも紹介された音楽ソフトのサークルです。この「オーダイン」は大変良くできており当時よく聴いていました。作者GunBuster氏はMMLの名手で、その後ハンドル名を数回変えながら、2022年現在もMMLの世界で活躍されています。私はFM音源ドライバは作れてもMMLの創作はサッパリなので、大変羨ましいです。