FF8 and DirectMusic

Martin Lexa mlexa at iol.cz
Mon Aug 5 10:13:24 CDT 2002


Hi!

  I tried Final Fantasy 8 under Wine (no Windows), yesterday. Got it
running, but FF8Config refused to start complaining something about MIDI
error. Of course no music.

  Here is what I found after debugging almost 6 hours :(

  1. There are some missing registry entries which are needed.

    [Software\\Classes\\CLSID\\{58C2B4D0-46E7-11D1-89AC-00A0C9054129}]
	1028325524
	@="DirectMusicSynth"

	[Software\\Classes\\CLSID\\{58C2B4D0-46E7-11D1-89AC-00A0C9054129}\\InprocServer32]
	1028325524
	@="dmsynth.dll"
	"ThreadingModel"="Both"
	
	[Software\\Classes\\CLSID\\{636B9F10-0C7D-11D1-95B2-0020AFDC7421}]
	1028325524
	@="DirectMusic Object"

	[Software\\Classes\\CLSID\\{636B9F10-0C7D-11D1-95B2-0020AFDC7421}\\InprocServer32]
	1028325524
	@="dmusic.dll"
	"ThreadingModel"="Both"
	
	[Software\\Microsoft\\DirectMusic] 1028325524
	@=""
	"GMFilePath"="gm.dls"

	[Software\\Microsoft\\DirectMusic\\Defaults] 1028325524
	@=""
	"DefaultOutputport"="{58C2B4D0-46E7-11D1-89AC-00A0C9054129}"

	[Software\\Microsoft\\DirectMusic\\SoftwareSynths] 1028325524
	@=""

	[Software\\Microsoft\\DirectMusic\\SoftwareSynths\\{58C2B4D0-46E7-11D1-89AC-00A0C9054129}]
	1028325524
	@=""
	"Description"="Microsoft Software Synthesizer"

  2. Original (native) DMUSIC.DLL, DMUSIC16.DLL, DMUSIC32.DLL, DMSYNTH.DLL are
  needed too.

  After above changes FF8Config wasn't complaining about MIDI problems.,
but simply hanging after displaying window. I think problem is that I'm
using native DirectMusic DLLs or am I wrong? Maybe not, because there is
X11DRV error...

Here is wine output:

  $ wine --debugmsg +ole FF8Config.exe 
  trace:ole:OLE32_DllEntryPoint 0x40bda000 0x1 0x1
  trace:ole:CoRegisterMallocSpy 
  trace:ole:IMallocSpy_fnQueryInterface
  ({0000001d-0000-0000-c000-000000000046},0x405c6dec)
  trace:ole:OLE32_DllEntryPoint 0x40bda000 0x2 (nil)
  trace:ole:OLE32_DllEntryPoint 0x40bda000 0x2 (nil)
  fixme:ddraw:MESA_IDirect3D2Impl_EnumDevices
  (0x403d8f58)->(0x401e45,0x403d8f58),stub!
  fixme:ddraw:MESA_IDirect3D2Impl_EnumDevices
  (0x403d8f58)->(0x401e45,0x403d8f58),stub!
  trace:ole:OLE32_DllEntryPoint 0x40bda000 0x2 (nil)
  fixme:ddraw:MESA_IDirect3D2Impl_EnumDevices
  (0x403d8f58)->(0x401e45,0x403d8f58),stub!
  fixme:ddraw:MESA_IDirect3D2Impl_EnumDevices
  (0x403d8f58)->(0x401e45,0x403d8f58),stub!
  trace:ole:CoInitializeEx ((nil), 2)
  trace:ole:CoInitializeEx () - Initializing the COM libraries
  trace:ole:RunningObjectTableImpl_Initialize ()
  trace:ole:WINE_StringFromCLSID
  0x4155a0->{636B9F10-0C7D-11D1-95B2-0020AFDC7421}
  trace:ole:CoGetClassObject 
         CLSID:  {636b9f10-0c7d-11d1-95b2-0020afdc7421},
         IID:    {00000001-0000-0000-c000-000000000046}
  trace:ole:COMPOBJ_DLLList_Add 
  fixme:setupapi:SetupDiGetClassDevsA {6994ad04-93ef-11d0-a3cc-00a0c9223196} (null) 0000 00000012
  trace:ole:__CLSIDFromStringA
  {58C2B4D0-46E7-11D1-89AC-00A0C9054129} -> 0x405c6d4c
  trace:ole:WINE_StringFromCLSID 0x405c6d4c->{58C2B4D0-46E7-11D1-89AC-00A0C9054129}
  trace:ole:CoGetClassObject 
		 CLSID:  {58c2b4d0-46e7-11d1-89ac-00a0c9054129},
  	 	 IID: {00000001-0000-0000-c000-000000000046}
  trace:ole:COMPOBJ_DLLList_Add 
  trace:ole:CoUninitialize ()
  err:ntdll:RtlpWaitForCriticalSection section 0x40cd0424 "x11drv_main.c:
  X11DRV_CritSection" wait timed out, retrying (60 sec) tid=080720a8

  If running wine like this 'wine --debugmsg +all FF8Config.exe &>log' the
FF8Config not hangs in displaying window and looks like it's running ok!
  This means wine is running very slowly, because of writing debug
messages, so there is some kind of timing error... may be not. Don't
know for sure. Could somebody point me where should I look? What above
"err:ntdll:..." really means? How should I debug it?

  And I'd like to ask is somebody who works on DirectMusic implementation
under Wine? If no, could somebody tell me how hard should be add this? Is
really necessary to implement each DLL or just DMSYNTH.DLL(?) contains
needed rutines?
  I'd like to get FF8 running at any price :)
  
Thank you in advance.

Regards,
Martin.



More information about the wine-devel mailing list