https://bugs.winehq.org/show_bug.cgi?id=24592
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED URL|http://www.gamershell.com/d |http://download.fileplanet. |ownload_13008.shtml |com/ftp1/032006/utopiacityd | |emo2006.zip CC| |focht@gmx.net Component|msvcp |directx-d3d Resolution|--- |DUPLICATE Summary|Utopia City crashes on |Utopia City fails to start, |startup |reporting 'Game | |initialization failed due | |to following: services | |failed to initialize' (D3D | |device creation on desktop | |window)
--- Comment #10 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
Comment #9 refers to a Wine-Staging ticket but that is a secondary issue.
Staging has a lot of patches applied by default that fix/hide various issues still present in plain Wine.
App log file:
--- snip --- ... GIL: ================= Device Check Passed =================
...init GILHolder: OK ...init RenderController: OK ...init MetaSoup: OK ...init RExtensionCache: OK ...init SmdMeshManager: OK ...init GUIManager: OK ...init AssetManager: OK ...init MeshManager: OK ...init FontManager: OK Error! GIL: Exception: GIL: Failed to enumerate video modes! InterfaceHolder<class r::RendererImpl> deinitialization: ...release FontManager: done ...release MeshManager: done ...release AssetManager: done ...release GUIManager: done ...release SmdMeshManager: done ...release RExtensionCache: done ...release MetaSoup: done ...release RenderController: done ...release GILHolder: done ...done Error! Failed to obtain Renderer interface. Error! ...init Renderer: Failed! ...release Geometry --- snip ---
The real problem is the game creates a D3D device using the desktop window and tries to set pixel format on it - which obviously fails.
Use this patch to work around the D3D failure: https://bugs.winehq.org/attachment.cgi?id=46160 ("wined3d: Use backup swapchain DC for devices created with desktop window.")
While tracking down the issue I noticed this patch in Wine-Staging:
https://github.com/wine-compholio/wine-staging/blob/master/patches/d3d9-Desk...
--- quote --- Subject: winex11.drv: Allow changing the opengl pixel format on the desktop window.
This patch is not 100% correct because the old behavior was more similar to windows. However, Direct3D supports using the desktop window to create a context and since Wine translates Direct3D to OpenGL, using the desktop window will fail because of this limitation. Unless someone comes up with a more correct solution or finds an application that breaks because of this, it seems to be a suitable workaround as it fixes multiple applications. --- quote ---
Although it appears to fix essentially the same problem, I suggest to look at bug 18490 which is IMHO a better approach to this problem (disclaimer: I'm not a D3D expert).
I'm going to resolve this as dupe of bug 18490 to avoid recycling. Please create another bug for the MSVC++ problem.
$ sha1sum utopiacitydemo2006.zip 2d31ea856c3d932f7c37d300272e78e29c362fc3 utopiacitydemo2006.zip
$ du -sh utopiacitydemo2006.zip 240M utopiacitydemo2006.zip
$ wine --version wine-1.7.45-146-gaf55ae1
Regards
*** This bug has been marked as a duplicate of bug 18490 ***