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