MSX Emulator Reports!

 このページは、MSXエミュレータについて、いろいろと書くところです。
 筆者自身はAT互換機しかMSXエミュレータが動く環境を持っていないので、AT互換機上の話をメインに進めていきます。

[目次]

御意見、御感想、御希望等ありましたら何でもE-Mailでどうぞ

This page is presented by Tatsuhiko Syoji(rxk16664@nifty.ne.jp)


複数のMSXエミュレータを共存させよう!

 AT互換機で動くエミュレータといっても、fMSX98/AT,fMSX MS-DOS、fMSX-FAN,BRMSX,さらに、Windows上の物も含めると、2種のfMSX for WindowsやRuMSX,MSXSOとさまざまなエミュレータがありますが、エミュレータ毎に、システムROMイメージやディレクトリを作っていると、煩雑な上、ディスクの容量を食うことになります。そこで、なるべく同じファイルや同じ働きをするディレクトリは共有するようにするとこのような無駄は防げそうです。
 そこで、今回は、fMSX98/AT,fMSX-MSDOS,BRMSX,徳山版fMSX for Windows,RuMSX,MSXSO,fMSX-FANの自分なりの共存法を書こうと思います。

1.RuMSX
 RuMSXはディレクトリ構成が複雑になっている上に、ディレクトリ構成が固定なので、真っ先にインストールします。
 RuMSXのアーカイブとRuMSXのホームページからダウンロードできるシステムROM(違法なんだけどこの方がインストールが楽なんです。)を同じディレクトリに展開すると、その過程で必要なディレクトリが構築されるので、そのディレクトリ構成・ファイルをそのまま利用します。

2.fMSX98/AT,fMSX-FAN
 fMSX98/ATはシステムROMイメージファイルとそれ以外のROMイメージファイル、ディスクイメージファイルのディレクトリを指定できるので、 -path RuMSXのシステムROMイメージファイルがあるディレクトリ とfmsx.cfgなどを利用して指定してやるとシステムROMイメージファイルを共有することができます。
 そして、本体は、独立したディレクトリに置いてやれば、ディレクトリ内がすっきりして、管理が容易になります。
 システム以外のROMイメージファイル、ディスクイメージファイルには、それぞれの入るディレクトリをそれぞれ、-rpath,-dpathオプションで指定してやれば良いでしょう。
 fMSX-FANでも同様に設定ファイルを書けば任意のディレクトリにシステムROMを置く事ができるので、これを利用することで、本体を独立したディレクトリに置くことができます。

3.fMSX MS-DOS,BRMSX,徳山版fMSX for Windows,MSXSO
 これらの5つは、システムROMイメージファイルの位置を指定できないので、RuMSXのシステムROMイメージファイルがあるディレクトリにインストールすることで、システムROMイメージファイルを共有することができます。
 余り美しくはありませんが、これらのエミュレータの必要とするファイルは少ないので、ドキュメントを他のディレクトリ上に置いてやればある程度はすっきりすると思います。
 また、BRMSXのDISK BIOS ROMは相性問題が激しく、これも著作権的には違法ですが、BRMSX同梱の物を使うしかないと思われるので、一番最後に展開して、上書きしてやるとよいでしょう。

 他にも、RuMSXの作ったUTILディレクトリにPhyLoCPなど関連するソフトを置いたりすれば、よりすっきりとしたファイル管理ができると思います。
 本当は、各エミュレータがシステムROMイメージのディレクトリを指定できるようになり、同じファイルを同一のファイル名にすると、MSXエミュレータ関連のファイル管理はより楽になるので、各エミュレータの改良が期待されます。


Windows 98とエミュレータ Part 1

 見た目では、Windows 98はWindows 95とそう変わりがないように見えます。確かに、DOS上で動作し、Windows 95のDOSプロンプトで動作するMSXエミュレータもWindows 98で動作します。(少なくとも、fMSX98とfMSX MS-DOSの最新版に関しては)
 しかし、Windows 95とWindows98の間での変更点には、エミュレータの実行にとって問題となる点があります。
 Windows 98では、次世代のWindows NTとなるWindows 2000 Professionalと共通のデバイスドライバーアーキテクチャーWDM(Win32 Driver Model)が導入され、グラフィックカードのドライバーのような速度が問題となるドライバー以外はWDMドライバーとなりましたが、これとDOS上のエミュレータは相性が良くないようです。
 このことが問題となるのがサウンド周りのエミュレーションです。私のESS ES1868搭載のサウンドカードでは、エミュレータの設定を行うことで、Windows 95/98のMS-DOSモードやWindows 95のDOSプロンプトでは、FM,PSG,SCC音源のエミュレートを行うことができました。
 しかし、Windows 98にアップグレードした状態では、うまくFM,PSG,SCC音源のエミュレートを行うことができず、fMSX98では全く音が鳴らない状態に、fMSX MS-DOSではPSGとSCCだけが鳴る状態になりました。
 音周りでWindows 95と98の違いを見ると、サウンドカードのドライバーがWDM対応の物となっていたので、マシンを購入した際に付属していたWindows 95用のドライバーに変更することで、FM音源の音も鳴るようになりました。
 しかし、これで終わりかと思うと、そうは問屋が卸しませんでした。マシンを購入した際に付属していたWindows 95用のドライバーがWindows 98の終了時に正常に終了しないようで、毎回起動時にscandiskが行われるようになってしまいました。設定を変更して、起動時のscandiskを飛ばすようにすればよいのでしょうが、副作用が出るとまずいので元のWDM対応ドライバーに戻すことにしました。Wingrooveのセットアップで計測しても、WDM対応ドライバーよりWindows 95用のドライバーの方がパフォーマンスも良く、相性問題がなければ、一件落着だったのですが。
(すっきりしないまま終わった1998/11/21)

 で、1998年12月9日。そういえば、ESSのサイトから(URL失念)マシン付属のドライバーより新しいバージョンのWindows 95用ドライバーを入手していたので、こちらで試したらどうだろう?とおもい、マシン付属のドライバーより新しいバージョンのWindows 95用ドライバーを入れて再挑戦。FM音源の音は無事に鳴っている。今度はWindows 98終了時の問題はどうなったのだろうと思い、一回電源を落としてから再起動。
 今度は無事に起動する。これで、Windows 98からもエミュレータ三昧です。動作確認などを考えると、Windows 95のほうがMSXエミュレータ向きだとは思いますが、どうやら、Windows 98もMSXエミュレータ用のプラットフォームとしては有力な選択肢になり得るといえるでしょう。

余談
 ハードウェアを直接叩くDOS版エミュレータとPCIサウンドカードなどの最新のデバイスとの相性はどうなのだろう?とか、Windows 95の延長線にあるWindows系OSは98が最後になりそうだから、なるべく最新を追った上でDOS用エミュレータも使いたいとなると、Windows 98で行けるうちにマシンを組まないと最強のエミュレータマシンは組めないのではと思った次第。
 テストリポートとかをホームページで書く人っていないかな?


Windows 98とエミュレータ Part 2

 Part 1では、WDM対応ドライバを使うとDOS版エミュレータでFM音源の音が鳴らないという話をしましたが、どうやら、WDM対応ドライバで引っかかるのはサウンドカードだけではないようです。
 第3回MSXのつどいで、エミュレータのテストのために、☆ESTRELLASさん所有のVAIO C1にfMSX MS-DOSをインストールし、-diska a:オプションを指定して、実ディスクを利用する設定にして、フロッピーを使おうとしました。
 ところが、いくら試しても、エラーメッセージを出すだけで、フロッピーディスクはうんともすんとも言ってくれません。
 竹のさんのWinbook Trimでは-diska a:オプション指定で、フロッピーディスクが使えています。これは一体どういうことでしょう?
 では少し、考えてみましょう。
 Winbook TrimのOSはWindows 95 OSR2で、フロッピーディスクはパラレルポート接続です。
 VAIO C1のOSはWindows 98で、フロッピーディスクはUSB接続になっています。
 ここで曲者なのが、Windows 98上でUSB接続ということです。
 Windows 98ではUSBのドライバがWDM対応ドライバになっています。(少なくとも筆者のマシンではそうでした)WDM対応ということは、Windows NT後継のWindows 2000 Professionalと共通のドライバになっていることを意味します。Windows NTでは、DOS用プログラムのようなハードウェアを直接制御するプログラムの動作は念頭にありません。
 このことから、推測するとfMSX MS-DOSのフロッピーディスクサポートがハードウェアを直接制御するものだったため、DOS上からハードウェアを直接制御することに対応しないWDM対応ドライバが制御するUSBで接続されていたため、VAIO C1のフロッピーディスクが使えなかったということが言えるのではないでしょうか?
 このことから分かるのは、USB接続のフロッピーディスクはfMSX MS-DOSでは使えないということです。
 どうやら、MSXエミュレータを使うためにノートPCを選ぶ際は、フロッピーの接続法にも気を使う必要がありそうです。

余談
 では、USB接続のキーボードはどうなるのでしょうか?上で述べたような図式が成り立つとなると、fMSX MS-DOSでは全く使い物にならないということになるのですが。
(2000/02/24 追記)
 と思いましたが、USB接続のゲームパッドが使えるのを見ると、キーボードに関しても使える可能性があるのかもしれません。
 けど、自分では確かめてないので、確認が取れてないのですが。


Windows Meとエミュレータ

 自分のマシンを新調する際に、「せっかくだから」ということでWindows Meを選択してMSXエミュレータを動かしてみました。

 Windows Meは基本的にWindows 98の延長線にあるものなので、fMSX98/AT、fMSX MS-DOS、BRMSX、fMSXFANといった一連のMS-DOS版MSXエミュレータは問題なく動作します。
 Windows 95の流れを汲むWindowsはWindows Meで最後になるということからこの時期にエミュレータ用にマシンを買いたいという人は買うのを検討するのも良いと思います。
 ただ、Windows Meでは、デバイスドライバのWDM化が進むということで、MS-DOSプロンプトでFM音源が鳴るサウンドカードの選択には注意する必要があると思います。
 デバイスドライバのWDM化とエミュレータについてはWindows 98とエミュレータ Part 1にも書いていますので、なんのこっちゃというひとはこちらをどうぞ。


RuMSXを快適に使うには

 現在もバージョンアップが進んでいることや、MSX Turbo R対応などで人気のWindows用MSXエミュレータRuMSXですが、Windows上で動作するということもあり、CPUパワーのそう高くないマシンで実行して、快適な動作を得るには、色々とコツがいりそうです。
 今回は、このコツに付いて挙げてみようと思います。
 なお、この話は、Version 0.17を前提にして話します。

  1. 画面書き換え回数を減らす
     これは、他のエミュレータでも常套手段で、画面の書き換え回数が減る分CPUエミュレーションにCPUパワーをまわすことができ、ソフトの実行速度が速くなります。
     RuMSXでは、メニューのEmulator-Performance-VideoのSkipped-Framesでこの値を調節できます。
  2. 動作速度制御を行わない
     メニューのEmulator-Performance-CPU-LoadでTry to run at 100% MSX-Speedのチェックをオフにすることで、動作速度のチェックを行わなくなる分、CPUエミュレーションにCPUパワーをまわすことができ、ソフトの実行速度が速くなります。
     CPUパワーのないマシンでは、どうあがいてもMSXと同じ速度でCPUエミュレーションを行えない場合もあるので、その場合は、チェックしても無駄なわけで、
  3. サウンドを使わない
     メニューのEmulator-Performance-SoundでPSG/SCC以外のエミュレーションをオフにすることで、サウンドのエミュレーションにかかる負荷をなくして高速化を図ることができます。
     V0.17の段階では、PSG/SCCの再現度はなかなか良い線をいっていると思うのですが、他に関しては、ぼろぼろなので、エミュレーションしなくても、別に良いと私は思います。
  4. エミュレーションレベルを下げる
     MSX Turbo Rでは、CPUが速くなっただけでなく、2つのCPUを切り替えて使うためのチップS1990やPCMなど、エミュレートしなければならないハードウェアが増えています。そのため、CPUパワーの消費が大きくなり、エミュレーション速度が低下します。
     エミュレーションレベルをMSX2+など、下位の機種に下げることで、エミュレートするハードウェアの数が減り、その分エミュレート速度を速くすることができます。
     メニューのFile-ConfigurationでMSX2やMSX2Plusを選ぶことで、エミュレーションレベルを下げることができます。
     この効果は想像以上に大きく、同じコンフィグレーションでもMSX Turbo Rエミュレーションでは、ウインドウ表示・画面拡大なしでもややもたついていたのが、MSX2+エミュレーションでは、画面を2倍に拡大しても快適に動作しました。
  5. DOSプロンプトのバックグラウンド実行を止める
     意外と忘れがちですが、DOSプロンプトを多用する人には、DOSプロンプトを常時立ち上げている人も多いと思います。(筆者含む)
     その場合、RuMSXに限らず、DOSプロンプトをバックグラウンド実行しているとWindowsプログラムの実行速度が低下します。
     これを防止するには、DOSプロンプトのバックグラウンド実行をツールバー等から止めるようにします。
     これにより、パフォーマンスを改善することができます。
  6. Cheatオプションを使う
     Cheatオプションを使うと時間当たりの機械語命令の実行数を下げる代わりに、画面描画などにCPUを使うことができ、結果として、スムーズな描画が実現されます。
     このオプションはMSX Turbo Rエミュレーション時にCPUの使用率が低い「軽い」ソフトを動かす時に使うと、良いでしょう。

 RuMSXは確かに面白そうだけど、Windowsだから遅いだろうと思って敬遠していた方はこれらの点に気をつけてもう一度設定を練って使ってみてはいかがでしょうか?
 きっと意外なパワーを感じることができると思います。
 それでは。


PCIサウンドカードとMSXエミュレーター

 fMSX-MSDOSなどDOSベースのエミュレータでは、PCI接続のサウンドカードに直接対応することはできないのか、ISA接続のサウンドカードにしか、対応できていません。
 そこで、PCI接続のサウンドカードでは、レガシーエミュレーションと呼ばれる機能を使ってISA接続のSound BlasterをエミュレーションさせることでDOS上で動作するMSXエミュレータにも対応させることができます。

 とはいえ、レガシーエミュレーション機能はサウンドカードのドライバによってうまくいく場合とそうでない場合があるようです。
 私が所有するSound Blaster PCI Digitalを購入したのですが、このレガシーエミュレーションは、どうもあてにならないようです。
 fMSX MS-DOSで試したところ、PSG,SCCは鳴っているようですが、FM音源はうまく鳴っていないようでした。
 一方でMonster Sound MX300では、レガシーエミュレーション機能を有効にすることで、fMSX MS-DOSでFM,PSG,SCCの各音源を鳴らすことに成功しました。
 自分の場合は今まで使っていたISAのサウンドカードも差して、DOS用エミュレータでは、ISAの方のサウンドカードを使って音が鳴るようにしましたが。
 fMSX MS-DOSなど、DOS上のエミュレータでうまく音が鳴るPCIサウンドカードに関する情報の充実が望まれるところです。


USB接続ゲームパッドは使えるか?

 MSXエミュレータ上で、USB接続ゲームパッドは使えるのでしょうか?
 USBはWindows 98でまともなサポートが始まったデバイスなので、Windows上のエミュレータはともかくとして、DOS上のエミュレータでは使えない可能性があります。
 現に、USB接続FDDはfMSX MS-DOSでは使えませんでした。
 今回は、Microsoft SideWinder GAME PAD PROをfMSX MS-DOSで使ってみました。
 結果は、全く問題なく使えました
 Windows 98のDOSプロンプト上では、OSがUSB接続のゲームパッドをゲームポート接続のゲームパッドに見せているようです。
 これなら、ノートPCだろうが、ゲームポートを使えないデスクトップPCだろうが、ゲームをする分には、入力デバイスに関しては、問題ないのではないでしょうか。


fMSX MS-DOSのキー割り付け

 なんか、誰も書いていないようなので、日本でよく使われる106/109キーボードでのfMSX MS-DOSでのキー割付を書いてみます。
 かなキーとか結構はまりそうな所なので、あるとそれなりには使えるのではないでしょうか?

106/109キーボードでのキーMSXでのキー
]円記号
半角/全角]
NumLock_(アンダーバー)
PageUpSTOP
PageDownSELECT
左AltGRAPH
右Altかな

 この表にないものはキー上の刻印とfMSX MS-DOSでのキー割付が一致するので特に問題はないと思います。

MSXエミュレータとCPU切り替え器

 MSXエミュレータを使う場合、CPU切り替え器はなるべく使わないほうが良いと思います。
 CPU切り替え器がCTRLキー2連打等のホットキーを使う場合、MSXエミュレータにキー入力が渡らずに、CPU切り替え器がCTRLキーを短い時間押した場合(アクションゲームでは良く使います)、MSXエミュレータにCTRLキーを短い時間押した情報がホットキーの押し損ねと誤認されて伝わらない場合があります。
 筆者はJusty JS-102UとMSX-Player正式版でファイアーホーク(曲が熱い!)をプレイしながら確認しました。