[Bug 9979] Hearts of Iron II: Doomsday hangs after few seconds of playing

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Oct 12 06:45:04 CDT 2007


http://bugs.winehq.org/show_bug.cgi?id=9979


Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net




--- Comment #7 from Anastasius Focht <focht at gmx.net>  2007-10-12 06:45:01 ---
Hello,

well you could lie to the .NET 2.0 framework check.
There is a small utility extracted from installation into temporary directory
called "dotnetchk.exe" (usually c:\windows\temp\VSDxxxx\DotNetFX\).

It's an official Microsoft .NET Framework tool (technically: a package file for
the DotNetFX Bootstrapper package) designed to be used as an ExternalCheck to
determine if a particular version of the .NET Framework is installed on a
computer.

Here are the various command line parameters and possible exit codes:

dotnetchk.exe
0 - FX version 50727.42 is not installed
1 - FX version 50727.42 is installed

dotnetchk.exe -version="3.0.0.0"
0 - FX version 3.0.0.0 is not installed
1 - FX version 3.0.0.0 is installed

dotnetchk.exe -version="3.0.0.0" -lcid:1033
0 - FX version 3.0.0.0 is not installed
1 - FX version 3.0.0.0 is installed but not langpack for LCID 1033
2 - FX version 3.0.0.0 and langpack is installed

The version check is done using following call sequence:

--- snip ---
0024:Call mscoree.GetRequestedRuntimeInfo(00000000,005208e8
L"v2.0.50727",00000000,00000006,00000018,0034fc3c,00000104,0034fb9c,0034fe44,00000014,0034fba8)
ret=004031c4
0024:fixme:mscoree:GetRequestedRuntimeInfo ((null), L"v2.0.50727", (null),
0x00000006, 0x00000018, 0x34fc3c, 0x00000104, 0x34fb9c, 0x34fe44, 0x00000014,
0x34fba8) stub
0024:fixme:mscoree:GetCORVersion (0x34fe44, 20, 0x34fba8): semi-stub!
0024:Ret  mscoree.GetRequestedRuntimeInfo() retval=00000000 ret=004031c4 
--- snip ---

The current wine mscoree implementation just returns default v1.1 data which
doesn't satisfy the check.
Check install.log for details in their temp VSDxxx directory.

There are some patches floating around which enable GetCORVersion() to lie by
using registry settings (returning "v2.0.50727" in this case)
Don't know why they didn't made it into wine source tree.

But even if you overcome this problem there is currently no way because wine is
missing .application manifest bootstrap loader.

The wrapper uses ShellExecute() with "C:\\Program Files\\Paradox
Interactive\\Doomsday\\ZtormLaunch.application" parameter.
Windows has ".application" (application manifest) handlers to deal with this
properly (making ShellExecute/CreateProcess API succeed).

Regards


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list