fMSX MS-DOS 1.6b2 MSX emulator for the MS-DOS platform. Core emulator code copyright (C) 1994, 1995, 1996 Marat Fayzullin This version copyright (C) 1996,1997 Marcel de Kogel MS-DOS(tm) is a trademark of Microsoft Corp. 翻訳(translate): ohemu@hucard.com (Oh!Emulator) 必須ハードウェア ================ 486SX-25 (P66以上推奨) VLB- 又は PCI の VGA ビデオカード PCスピーカ/Adlib/SB2.0/SBPro/SB16/GUS/SB AWE32/MPU401 対応 ジョイスティック対応 本アーカイブの内容 ================== FMSX-DOS.EXE エミュレータ本体 FMSX-DOS.TXT ドキュメント CWSDMI.ZIP FMSX-DOS用DPMIサーバ 手持ちのDPMI環境(例:OS/2,MS-Windows,Linux DOSEmu,QDPMI等)で動作 しなかった場合、このアーカイブ内のCWSDPMI.EXEをパスの通ったディ レクトリ若しくはエミュレータ本体と同じディレクトリに置いて下さ い。 FILE_ID.DIZ 簡易説明 fMSX MS-DOS用の各種ツールは、http://www.komkon.org/~dekogel/fmsx.htmlの fMSX MS-DOS 配布サイトにあります。 使用しているZ80エミュレーションのソースコードは、http://www.komkon.org/ ~dekogel/misc.html にあります。 fMSXやMSX一般に関する情報は、http://www.freeflight.com/fms/fMSXのfMSX配 布サイトにあります。 本アーカイブ以外に必要なファイル ================================ 正しく動作させるには以下のファイルが必須ですが、著作権の関係で同梱はし ていません。 MSX2.ROM MSX2 BIOS と BASIC コード MSX2EXT.ROM 拡張システムに含まれる MSX2 ExtROM MSX.ROM MSX BIOS と BASIC コード MSX2P.ROM MSX2+ BIOS と BASIC コード MSX2PEXT.ROM 拡張システムに含まれる MSX2+ ExtROM DISK.ROM BDOS と DISK BASIC に含まれる MSX DiskROM RS232.ROM RS232 BIOS と 拡張BASIC [非必須] FMPAC.ROM FM-PAC 拡張ROM [非必須] PAINTER.ROM PAINTER 拡張ROM [非必須] CMOS.ROM 自動的に作成される、MSX2とMSX2+で使われる不揮発メモリ。書き 換えが起こったときのみ、終了時に上書きされる。 「以上のファイルはどこにあるのか」という質問にはお答え出来ません。 キー配置 ======== GRAPH - 左alt CODE - 右alt SELECT - PageDown STOP - PageUp 特殊キー ======== F6 - カセットテープ巻戻し F7 - カセットテープ早送り F8 - サウンドON/OFF F9 - ポーズ F10 - エミュレータ終了 F11 - ボリュームUP F12 - ボリュームDOWN 右CTRL+F8 - サウンドON/OFF 右CTRL+F9 - オプション変更 右CTRL+1...0 - ディスクオフセット変更 Win95及びポインタキー - スペース 左Ctrl+左Alt+右Ctrl+右Alt - ソフトリセット 左Ctrl+左Shift+右Ctrl+右Shift - ハードリセット コマンドラインオプション ========================  以下に全コマンドラインオプションのリストを示します。多くのオプションは 省略形が使える様になっています。実際の省略形リストは、-helpオプションを 使用して確認して下さい。[]内はデフォルト時の値です。 -help 全てのコマンドラインオプションを表示する -verbose <フラグ> デバッグ用メッセージ選択 [1] 0 - 非表示 1 - スタート時メッセージ 2 - V9938 ops 4 - ディスク関連 8 - メモリ 16 - Z80不正命令 -ifreq <周波数> 割込み周波数設定 [50Hz] デフォルトの割込み周波数はPALシステム(ヨーロッパ版) 用の50Hzで、NTSC(アメリカや日本・韓国)の場合は60Hz を指定します。もしゲームの動作が遅く感じるなら、 -ifreq 60 を指定して見て下さい。 -sync <モード> 同期モード設定 [1] 0 - 同期のエミュレートを行わない 1 - 毎VDP割込みで同期をエミュレートする -adjust <モード>? VDP画面ポジションエミュレート設定 [0] 0 - 画面ポジションのエミュレートを行わない 1 - 水平方向のみエミュレートを行う 2 - 垂直方向のみエミュレートを行う 3 - 全方向のエミュレートを行う 画面ポジションのエミュレートを行うと、数ライン分の 画面が表示されなくなる場合があります。 -linedelay <値> 画面リフレッシュ遅延設定 [3 scanlines] -cpuspeed <パーセント> 標準Z80相当のスピード設定 [100%] -uperiod <回数> 何回の割込み毎で画面のリフレッシュを行うか設定 [2] -sprite <モード> スプライトエミュレートモード選択 [0] 0 - 全てのスプライトを表示する 1 - 横方向4/8個のスプライト制限を付ける 幾つかのゲームは正しい表示のために-sprite 1が必要で すが、他の多くのソフトの場合はひどいスプライト点滅 の原因となります。 -printer <ファイル名> プリンタ出力のリダイレクト先ファイル名 [stdout] -serial <ファイル名> シリアルI/Oのリダイレクト元/先ファイル名 [stdin/stdout] -ram <ページ数> 16kB RAM ページ数 [4/8/8] 多くのディスク版ゲームは128KBのRAMが必要です。もし ディスク版のソフトが問題を起こす場合は、-ram 16 も しくは -ram 32 を指定して見て下さい。 -vram <ページ数> 16kB VRAM ページ数 [2/8/8] -msx1/-msx2/-msx2+ MSXモデル指定 [-msx2] -rom <タイプ> メガROMのメモリマップタイプ設定 [0,0] (2通りの-romオプションを指定出来ます) 0 - コナミ 8kB 1 - コナミ 16kB 2 - コナミ5 8kB 3 - コナミ4 8kB 4 - ASCII 8kB 5 - ASCII 16kB -diska <ファイル名> ドライブAのディスクイメージファイル名 [DRIVEA.DSK] フロッピーを直接使用したい場合は、"-diska A:"等の ように指定します。片面・両面どちらのフロッピーにも 対応しています。 -diskb <ファイル名> ドライブBのディスクイメージファイル名 [DRIVEB.DSK] -tape <ファイル名> テープイメージファイル名 [MSX.CAS] テープイメージには、長さの制限はありません。 -font <ファイル名> テキストモードのフォントファイル指定 [なし] -logsnd <ファイル名> 曲出力をファイルに書き込み [なし] -painter <モード> PAINTER ROMの読込み有無 [0] 0 - PAINTER.ROM を読み込まない 1 - PAINTER.ROM を読み込む -video <モード> videoモード選択 [0] 0 - 320x200 1 - 320x240 2 - 640x480 3 - 256x212 モード1とモード3は、お使いのVGAカードやディスプレ イでは使用出来ないかもしれません。また、モード2は、 VESA対応のビデオカードが必要です。 -chipset SVGA チップセット選択 [255] 0 - VESA 1 - S3 255 - 自動認識 将来的には、更に多種のビデオチップに対応予定です。 -modeswitch <モード> VGAモード許可/不許可 [0] 0 - VGAモード不許可 1 - VGAモード許可 このオプションを許可にすると、ソフト内でMSXのvideo モード2と3双方が使用出来る様になります。 -gamma <値> ガンマ補正値指定 [1.0] -sound <モード> 音源モード選択 [255] 0 - 無音 1 - 内蔵スピーカ 2 - Adlib 3 - Sound Blaster 4 - Gravis Ultrasound 5 - SB AWE32 255 - 自動認識 -stereo <レベル> ステレオパンニングレベル設定 (SB AWE32 のみ) [0] 0 - モノラル 100 - 最高レベル -speakerchannels 音源チャネルの優先順位設定 (内蔵スピーカのみ) [3,2,1] 1-3 = PSG 音チャネル 4-6 = PSG ノイズチャネル 7-11 = SCC音源 多くのゲームはチャネル3を効果音に、1と2をメロディに 使用しています。もしデフォルトで曲がうまくならない様 なら、このオプションで 3,1,2 等を設定してみて下さい。 -volume ボリューム初期値設定 [10] 0 - 無音 15 - 最大 -reverb リバーブレベル設定 (SB AWE32 only) [7] 0 - 無し 100 - 最大 -chorus コーラスレベル設定 (SB AWE32 only) [0] 0 - 無し 100 - 最大 -soundquality [-sq] サウンド品質設定 (SoundBlaster only) [3] <値> 値は 1(最低)から5(最高)まで -scc <モード> SCCエミュレートモード設定 [1] 0 - SCCをエミュレートしない 1 - SCCをエミュレートする -fmpac <モード> FM-PACエミュレーションモード設定 [0] 0 - FM-PACをエミュレートしない 1 - FM-PACをOPL2 (Adlib)でエミュレートする 2 - FM-PACをMPU401 (General MIDI)でエミュレートする 3 - FM-PACをMPU401とOPL2でエミュレートする FMPAC.ROMが存在する場合のみ、このオプションが有効に なります。 -joystick <モード> ジョイスティックモード設定 [1] 0 - ジョイスティックを使用しない 1 - ポート1のジョイスティックに設定 2 - ポート2のジョイスティックに設定 現在の所ポート2はサポートしていません。 -swapbuttons <モード> ボタン1/2の交換指定 0 - ボタンの場所を交換しない 1 - ボタンの場所を交換する カセットテープのエミュレート ============================  テープのエミュレートは完成していません。ベーシックでのセーブとロードは正し く動作しています(メタルギアのデータセーブも大丈夫です)が、本物のカセットテー プからテープのイメージを吸い出すことが問題です。今の所、そのようなソフトは公 開されていません。 マルチディスクのサポート ========================  バージョン1.6b1と同様、マルチディスクイメージをサポートしています。 イメー ジの作成は、 単に"COPY /B DISK1.DSK+DISK2.DSK MULTI.DSK"の様にコピーするだけ です。出来たファイルを-diskaで設定してfMSXを立ち上げ、ディスク入れ替えの指示 があったら右CTRL+1..0で切り替える事が出来ます。なお、この方法は両面倍密(720KB) のディスクイメージでしか使用出来ません。 スクリーンショット ================== いつでもF8を押す事によって、その時の画面をファイルに保存する事が出来ます。エ ミュレータはfMSXxxxx.BMPというファイルを作成し、xxxxは0000から増加して行きま す。なお、256色のWindowsBMPファイルです。 オプションの受け渡し方法 ========================  fMSXがサポートしてるコマンドラインオプションの量では、コマンドラインはすぐ にDOSの限界である126バイトを超えてしまいます。もしコマンドラインの長さで問題 が起きた時は、オプション指定部分をテンポラリファイル(例えば"TempFile.tmp")に 入力し、"fMSX-DOS @TempFile.tmp"の様に立ち上げてください。また、この方法を使っ た場合でも、さらにオプションを追加することが可能です("fMSX-DOS @MyConfig.cfg -ifreq 60 Pacman.rom"の様に)。 環境ファイル ============  fMSXは、MSXとして立ち上がる前に、 (もし存在すれば)fMSXと同じディレクトリに ある"fMSX-DOS.cfg"、カートリッジのイメージと同じディレクトリにある"CARTA.cfg"、 "CARTB.cfg"の3つの環境ファイルを読み込みます。それぞれ通常のテキストファイル で、コマンドラインオプションを含みます。オプションは、スペースもしくはタブ・ 改行で分ける事が出来ます。 トラブルシューティング ====================== - ゲームの実行スピードが遅すぎる場合は、-ifreq 60 オプションを試してください。 - かなり遅くしか動作しない場合は、CPUスピードを50%-70%あたりまで下げてみてく ださい。-sync 0 を試すのもいいでしょう。もしSoundBlasterを使用している場合 は、サウンドの品質を落とすか、Adlibモードで使用してみて下さい。 - もっと速くゲームを動かしたい場合は、 ifreqの値を大きくして下さい。逆にゆっ くり動かしたい場合は、値を小さくして下さい。 - フロッピードライブ付きのMSX本体を持っていなくてMSX用フロッピーディスクを作 成するには、以下の説明に従って下さい。 ・3.5inch2DDのディスクを720KBフォーマットでDOSで初期化する。 ・fMSXを"-diska A:"(又は"-diska B:")オプション付きで、ディスクは 入れずに立ちあげる。 ・MSX-BASICが立ち上がったら、フロッピーを入れて"CALL FORMAT"と入 力する。 ・ドライブAと両面を選択し、少々待てばフォーマット完了。 履歴 ==== 1.6b2 -sprite、-gamma及び-painter オプションと、スクリーンショット機能サポー ト。いくつかのVDPエミュレート部のバグを修正。エミュレートのスピードア ップ、Z80エミュレート部をMarat氏の物からZ80Em1.2に置き換え。 1.6b1 いくつかの割り込み関連バグの修正、マルチディスクのサポート、標準MIDI サポートといくつかのオプション追加 1.4.1 SoundBlasterサポートの大幅改善、FM-PACエミュレートの追加、いくつかの バグ修正 1.3.1 処理速度向上、多数のバグ修正、PCスピーカ、SB、GUS、AWE32サポート追加、 S3アクセラレータサポート追加、テープエミュレーションと環境ファイルの サポート追加 1.2.3 音量コントロール、ジョイスティックオプション、画面モードオプション、 ビデオモード3追加、サウンド改善、処理速度向上、いくつかのバグ修正 1.2.2 ジョイスティックサポート追加、SCCエミュレート追加、PSGエミュレート改 善、VESA対応追加、処理速度向上、いくつかの重大なバグ修正 1.2.1 公開開始 クレジット ========== - fMSX MS-DOSは、DJ Delorie's DJGPP v2.0でコンパイルされています。DJGPPは MS-DOS用の32bitCコンパイラです。http://www.delorie.comに、DJGPPのソース とバイナリが存在します。 - SB AWE32 のルーチンは、かなりの部分で"Judge Dredd" Vince Vu氏の作成した "The Unofficial Sound Blaster AWE32 Programming Guide"に依っています。 良い参考書をありがとうございます。 - Martijn Zeedijk氏は、GUSルーチンのテストと多くのバグ修正に協力をいただき ました。 - いくつかのコードは"Allegro"を使用しました。"Allegro"は、Shawn Hargreaves 氏作成のDJGPP用ライブラリです。ftp://x2ftp.oulu.fi/pub/msdos/programming /djgpp2に存在します コメント等は以下のアドレスまで(訳注:日本語で送らない様に) m.dekogel@student.utwente.nl