QEMU supports some sound cards and some methods to play audio.
For more information,
http://www.boblycat.org/~malc/code/patches/qemu/
Configure QEMU with the options below.
./configure --enable-dsound --enable-adlib--enable-dsound option adds DirectSound support. It is necessary to use DirectX headers to compile. MinGW doesn't have DirectX headers. Use this headers.
./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 sets to fmod library directly.
FMOD is an audio library which can be used freely in non-commercial use. You can use it as follows.
Now FMOD 3 library can be used. FMOD Ex can not be used.
fmodapi375win.zip from here.
Unzip a zipped file and copy it to /usr/local. Copy fmod.dll to /usr/local/bin.
$ cp -a fmodapi375win /usr/local
$ cp /usr/local/fmodapi375win/api/fmod.dll /usr/local/bin
Configure like this. Set the library name directly.
$ cd qemu
$ ./configure --enable-fmod --fmod-inc="/usr/local/fmodapi375win/api/inc" --fmod-lib="/usr/local/fmodapi375win/api/lib/libfmod.a"
$ make
Set QEMU_AUDIO_DRV to fmod and start QEMU with -soundhw sb16,es1370.
$ SET QEMU_AUDIO_DRV=fmod
$ ./qemu -L ./pc-bios -hda redhat.img -soundhw sb16,es1370
Then use it as usual.
[Linux guest]# modprobe sb io=0x220 irq=5 dma=1 dma16=5
[Linux guest]$ play test.wav
Start QEMU with -soundhw sb16,es1370,adlib
[Command Prompt] qemu.exe -L ./pc-bios -hda linux.img -soundhw sb16,es1370,adlib
QEMU uses several sound libraries to play audio.
You can select it by setting command line environment QEMU_AUDIO_DRV.
[Command Prompt] SET QEMU_AUDIO_DRV=dsound [Command Prompt] qemu.exe -L ./pc-bios -hda linux.img -soundhw sb16,es1370,adlib
[Command Prompt] qemu -audio-help
Windows comes with drivers for Sound Blaster 16 and AdLib card. But Windows 95/98 doesn't have a driver for ES1370.
You can use this driver of Windows 95/98 for ES1370 from here.
audiopci.zip
Windows 2000 detects and installs a driver for ES1370 automatically.
Sound Blaster 16 emulated in QEMU is a ISA card. It is not Plug and Play. When you use Windows as a guestOS, please install driver by the Add New Hardware Wizard.
Go to Control panel -> Add Hardware.
ES1370 is a PCI card. It is detected by Windows 98 automatically.
AdLib is a ISA card. It is necessary to install a driver manually. Go to Control Panel -> Add Hardware.
ES1370 is a PCI card. It is detected by Windows 2000 automatically at startup.
When you use Linux as guest a OS, please type in guest OS like this.
[Linux guest]# modprobe sb io=0x220 irq=5 dma=1 dma16=5If you installed sox package, .wav file is played.
[Linux guest]$ play test.wav
[Linux guest]# modprobe es1370AdLib card can be used by this.
[Linux guest]# modprobe adlib_card io=0x388
When DirectSound library and es1370 are used to start the program, a microphone is supported.
[Command Prompt] SET QEMU_AUDIO_DRV=dsound [Command Prompt] qemu.exe -L ./pc-bios -hda linux.img -soundhw es1370
If you want to use old DOS games, use AdLib sound card.
It is necessary to configure with --enable-adlib option to make the program and start the program with -soundhw sb16,adlib.
DOS games doesn't need any drivers.
Q: What does this message mean?
audio: Failed to create voice 'es1370.adc'
A: SDL has no support for capturing sound, hence es1370 can not create voice for capture. Using DirectSound for sound library will solve this.
ADC - Analog to Digital Converter
DAC - Digital to Analog Converter
PCM - Pulse-code modulation. a digital representation of an analog signal.
FMOPL - Name of the OPL2 (particulary YAMAHA chip) emulation