サイトを移転しました 5秒後に新しいサイトに移動します

新しいサイト

QEMUは、サウンドカードをいくつかと、オーディオの演奏方法をいくつかサポートしています。

より詳しくはこちら。
http://www.boblycat.org/~malc/code/patches/qemu/

1. オーディオサポートの設定

1.1 Configureオプション

次のようなオプションでQEMUをConfigureします。

./configure --enable-dsound --enable-adlib
--enable-dsound オプションは、DirectSoundをサポートするよう指定します。コンパイルするには、DirectXヘッダーが必要となります。MinGWには、DirectXヘッダーがありません。こちらを使ってください。
http://www.libsdl.org/extras/win32/common/directx-devel.tar.gz

もし、FMODライブラリをサポートしたい場合は次のようにします。
./configure --enable-dsound --enable-adlib --enable-fmod --fmod-inc="/usr/local/fmodapi375win/api/inc"
   --fmod-lib="/usr/local/fmodapi375win/api/lib/libfmod.a"
--fmod-libは、FMODライブラリを直接指定します。



1.2 FMOD ライブラリ

FMODは、非商業用であればフリーで使用できるオーディオライブラリです。次のようにして使うことができます。
FMOD 3 を使うことができます。FMOD Ex は、使えません。
fmodapi375win.zip こちらから

zipファイルを解凍して、/usr/local にコピーします。fmod.dllを/usr/local/binにコピーします。

$ cp -a fmodapi375win /usr/local
$ cp /usr/local/fmodapi375win/api/fmod.dll /usr/local/bin

次のようにconfigureします。ライブラリの名前は直接指定してください。

$ cd qemu
$ ./configure --enable-fmod --fmod-inc="/usr/local/fmodapi375win/api/inc" --fmod-lib="/usr/local/fmodapi375win/api/lib/libfmod.a"
$ make

QEMU_AUDIO_DRVにfmodを指定して、-soundhw sb16,es1370オプションでQEMUを起動します。

$ SET QEMU_AUDIO_DRV=fmod
$ ./qemu -L ./pc-bios -hda redhat.img -soundhw sb16,es1370

それから、いつものように使用します。

[Linux guest]# modprobe sb io=0x220 irq=5 dma=1 dma16=5
[Linux guest]$ play test.wav


2. プログラムの起動

QEMUを-soundhw sb16,es1370,adlibオプションで起動します。

[Command Prompt] qemu.exe -L ./pc-bios -hda linux.img -soundhw sb16,es1370,adlib

sb16、es1370、adlibが同時に使用された場合、ゲストOSに3つのサウンドカードを供給することになります。
Windowsではそれらを同時に使用することができます。デフォルトのサウンドカードはコントロールパネルで選択できます。

sb16は、Sound Blaster 16サウンドカードです。PC互換機ではデファクトスタンダードです。

http://en.wikipedia.org/wiki/Sound_Blaster

es1370は、Ensoniq AudioPCIカードです。

http://en.wikipedia.org/wiki/Ensoniq
http://en.wikipedia.org/wiki/Ensoniq_ES1370

adlibは、AdLibサウンドカードです。Sound Blaster以前のデファクトスタンダードです。AdLibはYAMAHA YM3812サウンドチップを使っています。

http://en.wikipedia.org/wiki/AdLib


3. サウンドライブラリの選択

QEMUは、オーディオの演奏にいくつかのサウンドライブラリを使用します。
コマンドライン環境変数のQEMU_AUDIO_DRVをセットすることで選択できます。

[Command Prompt] SET QEMU_AUDIO_DRV=dsound
[Command Prompt] qemu.exe -L ./pc-bios -hda linux.img -soundhw sb16,es1370,adlib

選択できる項目は次のとおりです。
dsound は、DirectSoundです。
fmod は、FMOD ライブラリです。
sdl は、 SDL libraryです。
none は、ライブラリを使用しません。
wav は、wave レンダラーを使います。

もし、FMODライブラリがプログラムの作成時に使用されていないと、FMODは選択できません。

それらライブラリのいろいろな条件を設定することもできます。より詳しくはこちら。
[Command Prompt] qemu -audio-help


4. Windows 95/98用のドライバ

Windowsは、Sound Blaster 16とAdLib用のドライバは用意されています。でも、ES1370用のドライバは用意されていません。

Windows 95/98のES1370用のドライバは、こちらのものが使えます。.
audiopci.zip

Windows 2000 は、自動的にES1370を認識し、ドライバをインストールします。


5. ドライバのインストール

5.1 Windows 98 ゲスト

QEMUでエミュレートされているSound Blaster 16はISAカードです。プラグアンドプレイではありません。ゲストOSとしてWindowsを使用する場合、新しいハードウェアの追加ウィザードでドライバをインストールしてください。

コントロールパネル −> ハードウェアの追加 を実行してください。

ES1370はPCIカードです。Windows 98は自動的に検知します。

AdLibは、ISAカードです。手動でドライバをインストールする必要があります。コントロールパネル −> ハードウェアの追加 を実行してください。


5.2 Windows 2000 ゲスト

ES1370は、PCIカードです。スタート時にWindows 2000が自動的に検知します。


5.3 Linux ゲスト

ゲストOSとしてLinuxを使用する場合は、ゲストOS内で次のようにタイプしてください。

[Linux guest]# modprobe sb io=0x220 irq=5 dma=1 dma16=5
soxパッケージがインストールしてある場合、.wavファイルを次のようにして演奏できます。
[Linux guest]$ play test.wav

ES1370は、自動的にFedora Coreによって検出され、ドライバーがインストールされるはずです。
手動でやる場合は次のようにしてください。
[Linux guest]# modprobe es1370
AdLibカードは次のようにして使えます。
[Linux guest]# modprobe adlib_card io=0x388


6. マイクのサポート

プログラムの起動時にDirectSoundライブラリとes1370が使用された場合、マイクがサポートされます。

[Command Prompt] SET QEMU_AUDIO_DRV=dsound
[Command Prompt] qemu.exe -L ./pc-bios -hda linux.img -soundhw es1370


7. 古いDOSゲームのためのAdLibのサポート

もし、古いDOSゲームを使いたい場合、AdLibサウンドカードを使ってください。

--enable-adlibオプションでconfigureされている必要があり、プログラムのスタート時に-soundhw sb16,adlibオプションをつけてください。

DOSゲームはドライバを必要としません。


8. メッセージ

Q: このメッセージは何を意味しますか。
audio: Failed to create voice 'es1370.adc'

A: SDLは、サウンドのキャプチャをサポートしていません。そのため、es1370は、キャプチャ用のvoiceを生成できません。サウンドライブラリにDirectSoundを使うことで解決できます。


9. 略語

ADC - アナログ−デジタルコンバータ
DAC - デジタル−アナログコンバータ

PCM - Pulse-code modulation. アナログシグナルのデジタル表現。

FMOPL - Name of the OPL2 (particulary YAMAHA chip) emulation



ホーム