[Wine]FMOD audio engine fails to initialize DirectMusic

Saulius Krasuckas saulius2 at ar.fi.lt
Tue Jul 13 15:04:06 CDT 2004


I discovered it by running one simple game [1]:

[s2 at 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 at 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




More information about the wine-users mailing list