http://bugs.winehq.org/show_bug.cgi?id=30126
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |dotnet Status|UNCONFIRMED |NEW CC| |focht@gmx.net Summary|Distant Worlds won't start |Matrix Games - Distant | |Worlds fails on startup Ever Confirmed|0 |1
--- Comment #2 from Anastasius Focht focht@gmx.net 2012-03-10 05:45:25 CST --- Hello,
you most likely messed your WINEPREFIX up due to earlier failed install attempts. Don't let games/apps install .NET runtime, always use 'winetricks'.
Install .NET Framework 3.5 using 'winetricks dotnet35' in a clean WINEPREFIX prior running the game installer.
The game installer from "Matrix games" is simple minded, it doesn't execute any prerequisite checks. Uncheck ".NET Framework 3.5" and leave "DirectX 9.0c" checked. DX redist is needed to install managed DX runtime (for .NET).
Shortly after start it falls apart:
--- snip --- 002c:Call ole32.CoCreateInstance(00329118,00000000,00000001,00db10b4,00329064) ret=79eb03ce 002c:trace:ole:CoCreateInstance (rclsid={6bf52a52-394a-11d3-b153-00c04f79faa6}, pUnkOuter=(nil), dwClsContext=00000001, riid={00000000-0000-0000-c000-000000000046}, ppv=0x329064) 002c:trace:ole:CoGetClassObject CLSID: {6bf52a52-394a-11d3-b153-00c04f79faa6},IID: {00000001-0000-0000-c000-000000000046} 002c:Call advapi32.RegOpenKeyExW(80000000,00328e32 L"CLSID\{6BF52A52-394A-11D3-B153-00C04F79FAA6}",00000000,00020019,00328e2c) ret=7e7bda3f 002c:Ret advapi32.RegOpenKeyExW() retval=00000002 ret=7e7bda3f 002c:err:ole:CoGetClassObject class {6bf52a52-394a-11d3-b153-00c04f79faa6} not registered 002c:err:ole:CoGetClassObject no class object {6bf52a52-394a-11d3-b153-00c04f79faa6} could be created for context 0x1 002c:Ret ole32.CoCreateInstance() retval=80040154 ret=79eb03ce ... 002c:Call KERNEL32.RaiseException(e0434f4d,00000001,00000001,00328c58) ret=79f071ac 002c:trace:seh:raise_exception code=e0434f4d flags=1 addr=0x7b8392a7 ip=7b8392a7 tid=002c 002c:trace:seh:raise_exception info[0]=80040154 002c:trace:seh:raise_exception eax=7b8262d1 ebx=7b8a96a8 ecx=80040154 edx=00328b58 esi=00328c38 edi=00328bb0 002c:trace:seh:raise_exception ebp=00328b98 esp=00328b34 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00200287 002c:trace:seh:call_stack_handlers calling handler at 0x79fc15dc code=e0434f4d flags=1 002c:trace:seh:call_stack_handlers handler at 0x79fc15dc returned 1 002c:trace:seh:call_stack_handlers calling handler at 0x79f07fee code=e0434f4d flags=1 ... System.Runtime.InteropServices.COMException (0x80040154): Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG) at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid) at System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid) at System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid) at System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid) at System.Windows.Forms.AxHost.CreateInstance() at System.Windows.Forms.AxHost.GetOcxCreate() at System.Windows.Forms.AxHost.TransitionUpTo(Int32 state) at System.Windows.Forms.AxHost.CreateHandle() at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) at System.Windows.Forms.AxHost.EndInit() at DistantWorlds.Start.IILC7Nv() at DistantWorlds.Start..ctor() at GgkkfE5tygGpt.IILC7Nv.IILC7Nv() --- snip ---
Another missing prerequisite check.
"{6bf52a52-394a-11d3-b153-00c04f79faa6}" -> wmp9
Install WMP libraries using 'winetricks wmp9'
Another run, the game now shows the splash and dies later:
--- snip --- fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00001388,(nil),0x000b,0x000000f2,0x3009b09c,0x5dc5d4): stub err:eventlog:ReportEventW L"clr20r3" err:eventlog:ReportEventW L"distantworlds.exe" err:eventlog:ReportEventW L"1.0.1.0" err:eventlog:ReportEventW L"4baf9da8" err:eventlog:ReportEventW L"system.drawing" err:eventlog:ReportEventW L"2.0.0.0" err:eventlog:ReportEventW L"471ebf30" err:eventlog:ReportEventW L"181" err:eventlog:ReportEventW L"20" err:eventlog:ReportEventW L"system.argumentexception" err:eventlog:ReportEventW L"NIL" fixme:advapi:DeregisterEventSource (0xcafe4242) stub err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded fixme:richedit:ME_HandleMessage EM_SETMARGINS: stub fixme:richedit:ME_HandleMessage EM_SETMARGINS: stub err:ole:CoUninitialize Mismatched CoUninitialize err:ole:CoUninitialize Mismatched CoUninitialize
Unhandled Exception: System.ArgumentException: Parameter is not valid. at System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format) at DistantWorlds.PlanetaryRingsGenerator.IP4s1vqiMTYbc(Bitmap , Rectangle ) at DistantWorlds.PlanetaryRingsGenerator.I5kqstLjxd9mGYbqaMBQ6MPMEDmSxAosD4j(Bitmap , Int32 ) at DistantWorlds.PlanetaryRingsGenerator.I0dnVLPuf6uVarpxEFTlj2r(Color[] , Double , Int32 , Int32 , Int32 ) at DistantWorlds.PlanetaryRingsGenerator.GenerateRings(Int32 seed, Int32 planetDiameter) at DistantWorlds.Main.IkVYGnH7jMvBhLaml(String , Double ) at DistantWorlds.Main.IcAB016nyGW() at DistantWorlds.Main.IbMqCLIMV3FlOXLEMWhP(Int32 , Int32 ) at DistantWorlds.Main..ctor(Int32 width, Int32 height, Splash splashForm) at DistantWorlds.Start.Igr8wn8mM1WnLht2ycuMoxHGm0Eh4c(Object , EventArgs ) at System.Windows.Forms.Form.OnLoad(EventArgs e) at System.Windows.Forms.Form.SetVisibleCore(Boolean value) at System.Windows.Forms.Control.set_Visible(Boolean value) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at GgkkfE5tygGpt.IILC7Nv.IILC7Nv() wine: Unhandled exception 0xe0434f4d at address 0x7b8392a7 (thread 0009), starting debugger... --- snip ---
Trace log:
--- snip --- 002b:Call gdiplus.GdipCreateBitmapFromScan0(00000000,00000000,00000000,000e200b,00000000,0032e1dc) ret=03c125cd 002b:Ret gdiplus.GdipCreateBitmapFromScan0() retval=00000002 ret=03c125cd --- snip ---
Unfortunately not much to see, +gdiplus gives huge logs (several GiB). That (0,0) bitmap is probably the result of earlier failure, hidden in obfuscated managed app code (.NET).
Use 'winetricks gdiplus' to work around that. After that the game was quite playable in emulated Desktop 1024x768 mode (be patient on startup).
--- snip --- $ pwd /home/focht/.wine/drive_c/Matrix Games/Distant Worlds ... $ wine explorer /desktop=game,1024x768 ./DistantWorlds.exe --- snip ---
Regards