Saulius Krasuckas
2004-Jul-13 15:04 UTC
[Wine]FMOD audio engine fails to initialize DirectMusic
I discovered it by running one simple game [1]: [s2@katleriai Tetris]$ wine Tetris.exe err:wave:OSS_RawOpenDevice ioctl(/dev/dsp, SNDCTL_DSP_SETDUPLEX) failed (Input/output error) fixme:dsound:IDirectSoundImpl_SetCooperativeLevel level=DSSCL_PRIORITY not fully supported fixme:dmime:IDirectMusicPerformance8Impl_Init (iface = 0x402a0748, dmusic = 0x100506e4, dsound = 0x4026c288, hwnd = (nil)) err:dmloader:IDirectMusicLoaderImpl_IDirectMusicLoader_SetObject : couldn't parse descriptor MessageBox the pops up and says: "Data files missing or corrupt. Please reinstall." Querying the "dmloader" debug channel gives: [s2@katleriai Tetris]$ WINEDEBUG=+dmloader wine Tetris.exe err:wave:OSS_RawOpenDevice ioctl(/dev/dsp, SNDCTL_DSP_SETDUPLEX) failed (Input/output error) fixme:dsound:IDirectSoundImpl_SetCooperativeLevel level=DSSCL_PRIORITY not fully supported fixme:dmime:IDirectMusicPerformance8Impl_Init (iface = 0x40260600, dmusic = 0x100506e4, dsound = 0x4026c298, hwnd = (nil)) trace:dmloader:DMLOADER_DllGetClassObject (CLSID_DirectMusicLoader, IID_IClassFactory, 0x4074f39c) trace:dmloader:DMUSIC_CreateDirectMusicLoaderCF (IID_IClassFactory, 0x4074f39c, (nil)) trace:dmloader:IDirectMusicLoaderCF_QueryInterface (0x40260918, IID_IClassFactory, 0x4074f39c) trace:dmloader:IDirectMusicLoaderCF_AddRef (0x40260918): AddRef from 0 trace:dmloader:IDirectMusicLoaderCF_CreateInstance (0x40260918, (nil), IID_IDirectMusicLoader, 0x100506f0) trace:dmloader:DMUSIC_CreateDirectMusicLoaderImpl (IID_IDirectMusicLoader, 0x100506f0, (nil)) trace:dmloader:DMUSIC_InitLoaderSettings : (0x40260938) trace:dmloader:IDirectMusicLoaderImpl_IDirectMusicLoader_SetObject (0x40260938, 0x4074f008): pDesc: DMUS_OBJECTDESC (0x4074f008): - dwSize = 0x00000350 - dwValidData = 0x00000033 ( DMUS_OBJ_OBJECT DMUS_OBJ_CLASS DMUS_OBJ_FILENAME DMUS_OBJ_FULLPATH ) - guidClass = CLSID_DirectMusicCollection - guidObject = {f17e8673-c3b4-11d1-870b-00600893b1bd} - wszFileName = L"c:\\windows\\system\\drivers\\gm.dls" trace:dmloader:DMUSIC_CreateDirectMusicLoaderFileStream (0x4074e868) trace:dmloader:IDirectMusicLoaderFileStream_IStream_QueryInterface (0x40262250, IID_IStream, 0x4074e868) trace:dmloader:IDirectMusicLoaderFileStream_IStream_AddRef (0x40262250): AddRef from 0 trace:dmloader:IDirectMusicLoaderFileStream_Attach (0x40262250, L"c:\\windows\\system\\drivers\\gm.dls", 0x40260938) trace:dmloader:IDirectMusicLoaderFileStream_Detach (0x40262250) warn:dmloader:IDirectMusicLoaderFileStream_Attach : failed err:dmloader:IDirectMusicLoaderImpl_IDirectMusicLoader_SetObject : couldn't parse descriptor trace:dmloader:IDirectMusicLoaderImpl_IDirectMusicLoader_QueryInterface (0x40260938, IID_IDirectMusicLoader, 0x100506f0) trace:dmloader:IDirectMusicLoaderImpl_IDirectMusicLoader_AddRef (0x40260938): AddRef from 0 trace:dmloader:IDirectMusicLoaderCF_Release (0x40260918): ReleaseRef to 0 trace:dmloader:IDirectMusicLoaderImpl_IDirectMusicLoader_EnableCache (0x40260938, CLSID_DirectMusicSegment, 0) trace:dmloader:DMUSIC_GetLoaderSettings : (0x40260938, CLSID_DirectMusicSegment, (nil), 0x4074f3a4) trace:dmloader:DMUSIC_SetLoaderSettings : (0x40260938, CLSID_DirectMusicSegment, (nil), 0x4074f3c4) I think FMOD tries to open the "General MIDI collection of DLS instruments" called GM.DLS and fails to do so as Wine doesn't have it. Any ideas on the legal way to install it onto the Wine system? MS states [2] some stuff regarding GM.DLS collection:> You can use this collection with any DirectMusic Producer piece, and it > is available on all DirectMusic playback systems. > > The default GM.dls collection is available to all projects at all times, > and you should not add it to the project tree. > > The sounds in this DLS collection consist of the GM/GS Sound Set that > are licensed from Roland Corporation and are the same as those used for > Roland's Sound Canvas family of music synthesizers. > > Important > For more information about legal issues related to using the GM.dls., > click the copyright link at the bottom of this page.Does anyone knows or can explain the license MS mentions here? Am i allowed to copy the file from any web page or another place? Or another point: would it be sane to expect the Wine devs to implement simplified/different version of this collection in the future? TIA. [1] http://gamedev.kobra.ktu.lt/Downloads/TetrisMav/Tetris.zip [2] http://msdn.microsoft.com/library/shared/deeptree/asp/rightframe.asp?dtcfg=/library/deeptreeconfig.xml&url=/library/en-us/dmusprod/htm/defaultgmsoundset.asp?frame=true&hidetoc=false
Saulius Krasuckas wrote:>I discovered it by running one simple game [1]: > >[s2@katleriai Tetris]$ wine Tetris.exe >err:wave:OSS_RawOpenDevice ioctl(/dev/dsp, SNDCTL_DSP_SETDUPLEX) failed (Input/output error) > >Your sound card doesn't support full duplex which is required for DirectSound hardware acceleration. Try in the [dsound] section of your config file: "HardwareAcceleration" = "Emulation" to use the wave api which doesn't require full duplex.
>I think FMOD tries to open the "General MIDI collection of DLS >instruments" called GM.DLS and fails to do so as Wine doesn't have it. >Any ideas on the legal way to install it onto the Wine system? > >Install native DirectX Tom
Saulius Krasuckas
2004-Jul-14 01:07 UTC
[Wine]Re: FMOD audio engine fails to initialize DirectMusic
On Tue, 13 Jul 2004, Tom wrote:> >I think FMOD tries to open the "General MIDI collection of DLS > >instruments" called GM.DLS and fails to do so as Wine doesn't have it. > >Any ideas on the legal way to install it onto the Wine system? > > Install native DirectXNative DX into the Wine system? Will it install? Which version would you recommend then?
It will install but it won't work because directx works diffrently on wine and windows. Media libraries may work, just copy the missing dll. Ivan.
Use the lowest version that the game will accept. Download the directx redistributable for developers, place it in an empty directory download and install cabextreact from http://www.kyz.uklinux.net/cabextract.php (Install the RPM) then run, in the directory where you have the directx installer, cabextract * the directx files will appear, copy the needed one to windows\system and it should load. I don't know if it will actually work, but if it's a multimedia library it could work. Ivan.