X68000エミュレータ XM6
-an eXcellent eMulator, type 6-

目次


はじめに

XM6はシャープ製パーソナルワークステーションX680x0シリーズのエミュレータです。X680x0シリーズは1987年のX68000初代発売以来ホビーストから絶大な支持を受け、最終製品である1993年のX68030以後も040turbo、060turboといったアクセラレータがユーザサイドによって開発、販売されました。XM6はこのX680x0シリーズの中で比較的標準といえるスペックを持つ、X68000EXPERT(1989年発売)をエミュレーションします。

XM6はXM7に続くXMシリーズ第2弾のエミュレータでもあります。XM7の基本設計を継承・改良し、XM7で得られたエミュレータ開発ノウハウを投入しています。

前バージョンからの変更点

今回の変更点は次の通りです。

動作環境

XM6を動かすためには、対応プロセッサ+対応OSの組み合わせが必要です。

対応プロセッサは、IA-32系でMMX拡張・CMOV命令を備えたものが必要です。次の表を見てください。
メーカ対応プロセッサその他
IntelPentiumII以降,Celeron以降2000年以降のプロセッサであれば、まず大丈夫です
AMDAthlon以降,Duron以降2001年以降のプロセッサであれば、まず大丈夫です
VIAC3-Nehemiah,C7C3(Ezra以前)はサポートしていません
TransmetaCrusoe,Efficeon全てOKです!

対応OSは、Windows98以降のWin32系OSです。次の表を見てください。
系列対応OS
Win9x系Windows 98, Windows 98(Second Edition), Windows Me
WinNT系Windows 2000, Windows XP, Windows Server 2003
(注)Windows Vista(RC)での動作テストは行っていません。レポートを求めます。

DLL

version1.60からコンパイラをMicrosoft Visual C++ .NET 2003に変更した関係で、今までのバージョンで不要だった外部DLLが必須になっています。以下のDLLが必要です。

ファイル名内容ファイルバージョン
MFC71.DLLMicrosoft Foudation Classlibrary(共有DLL版)7.10.3077.0以降
MSVCR71.DLLMicrosoft Visual C++ ランタイム(共有DLL版)7.10.3052.4以降

これらのファイルは通常のシステムには含まれていないため、再配布可能なファイルを準備しました。以下のファイルをダウンロードし、XM6.exeと同じディレクトリに配置してください。今後のXM6のバージョンアップでも、これらのファイルは引き続き使用できます。


MFC 7.1 (共有DLL)
VC++ランタイムライブラリ7.1 (共有DLL)

mfc71dll.lzhのダウンロード (710467 bytes, ipc東海)

mfc71dll.lzhのダウンロード (710467 bytes, K・H・C)


ROM

XM6を実行するには、X68000EXPERTのROMデータをファイル化したものが必要です。以下のファイル構成を想定しています。

ファイル名ファイルサイズ内容配置アドレス
IPLROM.DAT131072 byteIPL,IOCS,ROMデバッガ,ROM OS$FE0000-$FFFFFF
CGROM.DAT786432 byte英数フォント、漢字フォント$F00000-$FBFFFF
(注)CGROM.DATが見つからない場合は、代替ファイルとしてCGROM.TMPを探します。


SCSIインタフェースを有効にする場合、上記に加えSCSI IOCSのROMデータをファイル化したものが必要です。インタフェースの種類にあわせて、以下のいずれかを使います。

ファイル名ファイルサイズインタフェース種類配置アドレス
SCSIINROM.DAT8192 byte内蔵SCSIインタフェース$FC0000-$FC1FFF
SCSIEXROM.DAT8192 byteSCSIインタフェースボード$EA0000-$EA1FFF
SCSIEXROM.DAT8160 byteSCSIインタフェースボード$EA0020-$EA1FFF
(注1)IPLROM30.DATは使用できません。
(注2)SCSIEXROM.DAT(8160byteタイプ)はWinX68k高速版と互換性があります。

実装状況

基本方針とversion 2.06の実装状況です。前バージョンから進んだ部分はで表記しています。

全体の方針
1CPU、メモリ、スケジューラなど全体の枠組みを早期に構築する
2基本的なデバッグ環境を整え、その充実を図る
3デバイスおよび時間の仮想化を徹底。仮想マシンとWin32サポートを完全分離した設計とする
4個々のデバイスはフルスペック実装を見越した設計とする。中途半端な進め方はしない
5レンダラ(画面合成、画面表示)は優先度最低とし、なるべく作業の後ろに回す

仮想マシン
項目実装レベル(☆=20%)コメント
システムコントロール☆☆☆☆☆完了
スケジューラ☆☆☆☆☆完了
CPU☆☆☆☆☆完了
メモリ☆☆☆☆☆完了
グラフィックVRAM☆☆☆☆☆完了
テキストVRAM☆☆☆☆☆完了
CRTコントローラ☆☆☆☆☆完了
ビデオコントローラ☆☆☆☆☆完了
DMAC☆☆☆☆☆完了
エリアセット☆☆☆☆☆完了
MFP☆☆☆☆☆完了
キーボード☆☆☆☆☆完了
RTC☆☆☆☆☆完了
プリンタ☆☆☆☆☆完了
システムポート☆☆☆☆☆完了
FM音源☆☆☆☆☆完了
FM音源合成☆☆☆☆☆完了
ADPCM☆☆☆☆☆完了
FDC☆☆☆☆☆完了
FDD☆☆☆☆☆完了
フロッピーイメージ☆☆☆☆☆完了
SASI☆☆☆☆☆完了
SxSI☆☆☆☆☆完了
SCSI☆☆☆☆☆完了
SCC☆☆☆☆☆完了
マウス☆☆☆☆☆完了
PPI☆☆☆☆☆完了
ジョイスティック☆☆☆☆☆完了
I/Oコントローラ☆☆☆☆☆完了
スプライトレジスタ☆☆☆☆☆完了
スプライトVRAM☆☆☆☆☆完了
SRAM☆☆☆☆☆完了
MIDI☆☆☆☆☆完了

Win32サポート
項目実装レベル(☆=20%)コメント
フレームウィンドウ☆☆☆☆☆完了
デバッガ☆☆☆☆セッション保存を計画
サブウィンドウ管理☆☆☆☆☆完了
サブウィンドウ(システム)☆☆☆☆☆完了
サブウィンドウ(プロセッサ)☆☆☆☆☆完了
サブウィンドウ(デバイス)☆☆☆☆スプライト強化が必要
サブウィンドウ(ビデオRAM)☆☆☆☆☆完了
サブウィンドウ(レンダラ)☆☆☆☆BG・スプライト関連を拡張予定
サブウィンドウ(Win32)☆☆☆OS情報、サウンド出力、画面描画
スケジューラ☆☆☆☆☆完了
画像表示(ウィンドウ)☆☆☆☆☆完了(特殊系の追加を予定)
画像表示(フルスクリーン)☆☆☆☆☆完了(特殊系の追加を予定)
サウンド出力☆☆☆☆☆完了
MIDI☆☆☆☆☆完了
キーボード入力☆☆☆☆☆完了
ジョイスティック入力☆☆☆☆☆完了
マウス入力☆☆☆☆☆完了
ポート☆☆☆☆☆完了
TrueKey☆☆☆☆☆完了
設定☆☆☆☆☆完了
ツール☆☆☆☆☆完了
レジューム☆☆☆☆☆完了

ダウンロード

XM6 (version 2.06)
XM6.exeおよびドキュメントです。
別途、MFC7.1およびVC++7.1ランタイムの共有DLL、X68000EXPERTのROMデータが必要です。

xm6_206.lzhのダウンロード (451792 bytes, ipc東海)


XM6 ソースコード (version 2.05)
XM6の全ソースコードです。このソースコードから実行可能ファイルを生成するためには、Microsoft Visual C++ .NET 2003とNetwide Assembler 0.98.39が必要です。

xm6_205s.lzhのダウンロード (807596 bytes, ipc東海)


XM6ユーティリティ (version 2.06)
XM6Util.exeおよびドキュメントです。
別途、MFC7.1およびVC++7.1ランタイムの共有DLLが必要です。

xm6_206u.lzhのダウンロード (122643 bytes, ipc東海)


過去のバージョン(K・H・Cサーバ)
公開日バージョンファイル名サイズ
2006/10/23version 2.05xm6_205.lzh447557 bytes
2006/09/23version 2.04xm6_204.lzh446091 bytes
2006/02/23version 2.03xm6_203.lzh526499 bytes
2006/01/23version 2.02xm6_202.lzh517508 bytes
2005/02/23version 2.01xm6_201.lzh409871 bytes
2005/01/23version 2.00xm6_200.lzh409378 bytes
2004/12/23version 1.95xm6_195.lzh401245 bytes
2004/11/23version 1.90xm6_190.lzh400206 bytes
2004/10/23version 1.85xm6_185.lzh394885 bytes
2004/09/23version 1.80xm6_180.lzh387660 bytes
2004/08/23version 1.74xm6_174.lzh380869 bytes
2004/06/23version 1.70xm6_170.lzh375852 bytes
2004/05/23version 1.68xm6_168.lzh361475 bytes
2004/04/23version 1.65xm6_165.lzh357165 bytes
2004/03/23version 1.60xm6_160.lzh350480 bytes
2004/02/23version 1.52xm6_152.lzh533833 bytes
2004/01/23version 1.50xm6_150.lzh531495 bytes
2003/11/23version 1.45xm6_145.lzh514747 bytes
2003/10/23version 1.42xm6_142.lzh507235 bytes
2003/09/23version 1.40xm6_140.lzh498580 bytes
2003/08/27version 1.36xm6_136.lzh492797 bytes
2003/08/24version 1.35xm6_135.lzh492719 bytes
2003/07/23version 1.30xm6_130.lzh488780 bytes
2003/06/23version 1.23xm6_123.lzh477286 bytes
2003/03/23version 1.20xm6_120.lzh468634 bytes
2003/02/23version 1.10xm6_110.lzh459352 bytes
2003/01/23version 1.05xm6_105.lzh456298 bytes
2002/12/23version 1.00xm6_100.lzh446443 bytes
2002/11/23version 0.96xm6096.lzh443472 bytes
2002/10/23version 0.92xm6092.lzh437888 bytes
2002/09/23version 0.90xm6090.lzh431764 bytes
2002/07/23version 0.85xm6085.lzh429597 bytes
2002/06/23version 0.82xm6082.lzh418352 bytes
2002/05/23version 0.75xm6075.lzh406577 bytes
2002/03/23version 0.71xm6071.lzh401961 bytes
2002/02/23version 0.64xm6064.lzh385567 bytes
2001/12/23version 0.55xm6055.lzh376595 bytes
2001/11/23version 0.50xm6050.lzh371793 bytes
2001/10/23version 0.41xm6041.lzh363297 bytes
2001/09/23version 0.24xm6024.lzh349294 bytes
2001/08/23version 0.10xm6010.lzh319556 bytes

スクリーンショット

メイジリィ

[解説]
どこかで見たロゴ、どこかで見たメッセージ....、「メイジリィ」は有名な古典をベースに、独自の味付けを施した3Dダンジョン探索型RPGです。発表年は1991年、制作は「日本洗脳倶楽部」となっています。やり込むと、古典よりも楽しめる部分があるとの評判もあります。このタイトル画面で[S]を押してCASTLE(城)のメニューに入ると、お約束ではありますが、オリジナルの「BOLTAC'S TRADING POST」(ボルタック商店)が、「BOTTAKUL'S TRADING POST」(ボッタクル商店)になっているのが笑えます。

なお、これとは別に「ウィザードリィ」のクローンも存在しますが、またの機会に紹介したいと思います。


過去のスクリーンショット(ipc-tokaiサーバ)
公開日内容
2006/10/23女帝戦記V4 Heroines Forever
2006/09/23魔法のシューター プッチンプリン
2006/02/23CH30_omake.sys v2.15
2006/01/23Macエミュレータ
2005/02/23ドラゴンスピリット
2005/01/23スコルピウス
2004/12/23移植サウンドドライバ集
2004/11/23SEED#0
2004/10/23BM68 0.54Σ
2004/09/23Special天安門
2004/08/23STed v2.07m
2004/06/23リトルチャイニーズ Final
2004/05/23サバッシュ (無償公開版)
2004/04/23RCD v3.01q + RCP v3.01f
2004/03/23XM7 on XM6 (The BLACK ONYX)
2004/02/23ASK アドバンスドAI-V1辞書
2004/01/23mmvp 0.70d
2003/11/23SIONII
2003/10/23OS-9/68000 ver2.4
2003/09/23超連射68k
2003/08/24MuTerm v.23 (+MuDial Rel.6)
2003/07/23X1エミュレータ(太陽の神殿)
2003/06/23Prostitue Maker
2003/03/23女帝戦記V3 The Queen of Fighters
2003/02/23MLD v2.47 + MLS v1.06
2003/01/23組み込みデバッガ(version 1.05)
2002/12/23MADRV v2.01l + MMDSP v0.29 Rel.31
2002/11/23聖まりあんぬ 宣伝ぱにっく
2002/10/23MXDISP v1.05m
2002/09/23ソーサリアンより戦国ソーサリアン エンディング
2002/07/23動画デモ「マクロス」
2002/06/23MCDISP v0.47
2002/05/23カラオケPRO68K v1.01
2002/03/23ビジュアルシェル(VS.X)
2002/02/23DCII v0.65
2001/12/23サウンド・エクスプレス
2001/11/23Z-MUSIC 2.08, LMZ 1.00
2001/10/23MXDRV v2.06+16 Rel.13a(mxw), PCM8 v0.48b, MDXS v1.09p+
2001/09/23Falcom Driver(FALDRV) v2.9 + FALDISP v1.39
2001/08/23Human68k version 2.02

TrueKey

TrueKeyとは、X680x0のキーボードを変換基板を介してWindows側PCのシリアルポートに接続し、X680x0キーボードからXM6の仮想マシンを操作できる、というものです。

X680x0標準のキーボードには「XFキー」「OPTキー」「登録キー」など特殊なものを含め合計112個のキーがあり、一般的な日本語キーボードである106/109キーボードでは、物理的にキーの数が足りません。このため特にかな漢字変換時などで制約を受けていましたが、X680x0のキーボードを接続することでこれらの制約なしに、スムーズに操作できます。

接続にはMAX232Aなどを用いたレベル変換回路が必要です。またX680x0のキーボードに電源を供給するため、PS/2コネクタ又はUSBコネクタを用いて給電します。以下にTAKE氏による参考回路図を示します。

開発環境

開発に使用しているハードウェアは以下の通りです。

ターゲット1:X68000XVI(68000 24MHz+68882), 12MB RAM, 1GB HDD
Mercury-UnitV4, Neptune-Evolution, CZ-6BM1A, SX-68SC
Human68k version 3.02

ターゲット2:X68000PRO(68000 10MHz), 2MB RAM, 80MB HDD
Human68k version 2.03

開発ホスト:PC/AT互換機(Athlon64X2 4400+), 1024MB RAM, 250GB HDD
NVIDIA GeForce6600, AUDIOTRAK Prodigy7.1XT, M-AUDIO Dio2496
Roland MT-32, SC-55
WindowsXP Professional Edition(SP2)

評価マシン:PC/AT互換機(Celeron 1.3GHz), 512MB RAM, 137GB HDD
ATI RADEON9550, ONKYO SE-90PCI
Windows98 Second Edition

参考文献

☆書籍

タイトル著者出版社発行年
「Inside X68000」桑野 雅彦ソフトバンク1992
「Outside X68000」桑野 雅彦ソフトバンク1993
「X68030 Inside/Out」桑野 雅彦ソフトバンク1994
「X68000テクニカルデータブック」アスキー出版局テクライトアスキー出版局1987
「M68000マイクロプロセッサ ユーザーズ・マニュアル」Motorola Inc.CQ出版1984
「68000プログラマーズ・ハンドブック」宍倉 幸則技術評論社1986
「CZ-600CE 全回路図」「I/O」 1987年7月号工学社1987
「HD68000,HD68HC000 MPU データシート」日立製作所日立製作所1989
「HD63450,HD68450 DMAC データシート」日立製作所日立製作所1989
「トラ技SPECIAL No.11 フロッピ・ディスク・インタフェースのすべて」藤井 敦、ほかCQ出版社1988
「非互換ハードウェア用のソフトを実行する‐Windows用X68000エミュレータの仕組み」(Cマガジン2000年7月号)yamamaソフトバンク・パブリッシング2000
「X68000環境ハンドブック」吉沢 正敏、市原 昌文工学社1989
「RS-232C制御と通信プログラム」(Inside Windows1998年2月号)柳沢 正明ソフトバンク1998
「トラ技SPECIAL No.27 ハードディスクとSCSI 活用技術のすべて」松村 清明、ほかCQ出版社1991
「CZ-6BM1A 取扱説明書」SHARPSHARP1989
「最新SCSIマニュアル」二上 貴夫、ほかCQ出版社1989

☆電子文書

タイトル発行者
「M68000 8-/16-/32-bit Microprocessors User's Manual」Motorola Inc.
「MC68HC901 Multi-Function Peripheral User's Manual」Motorola Inc.
「MK68901 Multi-Function Peripheral」SGS-Thomson
「SCC/ESCC USER'S MANUAL」Zilog
「μPD765A/765B Floppy Disk Controller」NEC
「i82C55A Programmable Peripheral Interface」Intel
「RP/RF/RJ5C15 データシート」リコー
「Inside X68000正誤表」立花えりりん
「ぷにぐらま〜ずまにゅある 第七版第一刷」立花えりりん
「68000プログラマーズ・ハンドブック正誤表」Missy.M
「アナログジョイスティックドライバ簡易説明書」SHARP
「SMALL COMPUTER SYSTEM INTERFACE - 2 (SCSI-2) [ANSI X3T9.2/86-109 Rev.10c] Draft proposed ANSI
「Small Computer System Interface - 2 (SCSI-2) [ANSI X3T9.2 Rev.10L]t10.org

参考リンク

EX68 (X68000 Emulator for Windows95/98/NT/2000) (yamama氏)
Win32で動作するX68000エミュレータ、EX68のページです。
けろぴーのぺぇじ (けんじょ氏)
Win32で動作するX68000エミュレータ、けろぴー(WinX68k)のページです。
WinX68k高速版 (tamu氏)
WinX68kをベースに、高速化などを施したバージョンです。
X68000 Emulator in Java (M.Kamada氏)
Javaで実装されたX68000エミュレータです。Java仮想マシンが動く環境であればOSを問わず、Webブラウザ上でX68000の環境を体験することができます。

co Homepage
XM6をベースに、独自の拡張を施されています。WindrvXMの使用法について詳しい解説があります。
Isaki's Web Page
XM6のNetBSDへの移植を進められています。最新のバージョンではEthernet(Neptune)サポートを独自に追加されているようです。
GIMONSのページ
XM6のW-ZERO3への移植を実験されています。

RetroPC.NET (Molice氏)
X68000のほかX1,FM-7などレトロPC関係のニュースを扱っています。
Info X68k (卓氏)
X680x0関係のニュースや、Human68k v3.0のオンラインマニュアルがあります。
Fountain of GAME!(ざん氏)
XM6の導入ガイド、3Dシューティングゲーム「SIONII」の紹介、イメージファイルのダウンロードがあります。
Yokhai's Page (よ〜かい氏)
XM6およびXM7の負荷分散用ダウンロードページを用意していただきました。
MC68000 Maniacs! (Team ENDLESS)
SHARP X68000と OLD Macintosh(SE/30,Classic2)関連の情報を中心に発信しています。


$4E75
yasushi@tanaka.ネット