[Bug 36452] Age of Mythology: Extended Edition (Steam) fails to start
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun May 18 07:15:41 CDT 2014
http://bugs.winehq.org/show_bug.cgi?id=36452
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |DUPLICATE
--- Comment #16 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
I bought the game off Steam on a whim otherwise this ping-pong log approach is
just painful (and wastes my time in the end).
Starting off with Wine 1.7.19 and with your "launcher replacement" ...
--- snip ---
$ WINEDEBUG=+tid,+seh,+relay,+debugstr,+msgbox wine ./steam.exe -applaunch
266840 -no-dwrite -nominidumps -windowed -nobreakpad >>log.txt 2>&1
...
005a:Call KERNEL32.GetVersionExW(0033f544) ret=005928fb
005a:Ret KERNEL32.GetVersionExW() retval=00000001 ret=005928fb
005a:Call KERNEL32.InterlockedExchange(00b74f8c,7b82179c) ret=009541db
005a:Ret KERNEL32.InterlockedExchange() retval=00953349 ret=009541db
005a:Call KERNEL32.CreateSemaphoreW(00000000,00000001,00000001,00a66af0
L"Global\\BCoreSingleInstanceSemaphore") ret=005486c3
005a:Ret KERNEL32.CreateSemaphoreW() retval=00000184 ret=005486c3
005a:Call KERNEL32.WaitForSingleObject(00000184,00000000) ret=005486da
005a:Ret KERNEL32.WaitForSingleObject() retval=00000000 ret=005486da
005a:Call msvcr110.memset(0033e64c,00000000,00000800) ret=005d2dce
005a:Ret msvcr110.memset() retval=0033e64c ret=005d2dce
005a:Call msvcr110.wcscpy_s(00b79fe0,0000fffe,02fe5fc0 L"19968") ret=0054baa8
005a:Ret msvcr110.wcscpy_s() retval=00000000 ret=0054baa8
005a:Call msvcr110.memcpy(0033ee54,02fe5fc0,0000000a) ret=004ef388
005a:Ret msvcr110.memcpy() retval=0033ee54 ret=004ef388
005a:Call msvcr110.wcscpy_s(00b79fe0,0000fffe,06e7e940 L"Initialization
Failed\n%s") ret=0054bb0f
005a:Ret msvcr110.wcscpy_s() retval=00000000 ret=0054bb0f
005a:Call msvcr110.memcpy(031bd260,00b79fe0,00000030) ret=00523b83
005a:Ret msvcr110.memcpy() retval=031bd260 ret=00523b83
005a:Call msvcr110.memcpy(031bd260,0033ef08,000000be) ret=00523b83
005a:Ret msvcr110.memcpy() retval=031bd260 ret=00523b83
005a:Call KERNEL32.InterlockedExchange(00b75090,7ebfda48) ret=009541db
005a:Ret KERNEL32.InterlockedExchange() retval=00952c91 ret=009541db
005a:Call user32.MessageBoxW(00000000,0033ef08 L"Initialization
Failed\nBCore::init() failed. This is likely due to failure of Windows OS
checks.",009ff56c L"Age of Mythology",00001010) ret=004685c2
...
--- snip ---
Not seen in trace (but debugging): there is a check for OS info 'dwMajorVersion
< 6'.
After setting the prefix' WinVer to 'Windows Vista' it runs further.
Well, one could have known that.
Steam specs for the game: http://store.steampowered.com/app/266840/
--- snip ---
Minimum:
OS: Windows Vista, 7, 8.1+
...
Graphics: Direct X 10+ Capable GPU
DirectX: Version 10
Recommended:
OS: Windows 7, 8.1+
...
Graphics: Direct X 11+
DirectX: Version 11
--- snip ---
The original 'Launcher.exe' which got replaced by 'aomx.exe' references Vista+
registry APIs which is another indication of such requirement:
--- snip ---
8. ImageImportDescriptor:
OriginalFirstThunk: 0x00007910
TimeDateStamp: 0x00000000 (GMT: Thu Jan 01 00:00:00 1970)
ForwarderChain: 0x00000000
Name: 0x000084F0 ("ADVAPI32.dll")
FirstThunk: 0x00005000
Ordinal/Hint API name
------------ ---------------------------------------
0x02A2 "RegSetKeyValueA"
...
0x026A "RegDeleteKeyValueA"
...
--- snip ---
-> bug 32711 ("Multiple applications crash on unimplemented function
ADVAPI32.dll.RegSetKeyValueA/W (Vista+ API)(BSAopt, Microsoft OneDrive)")
The next problem:
--- snip ---
...
005c:Call KERNEL32.OutputDebugStringA(06da6c00 "Initializing D3D11 Graphics.
Requested: 1920x1080x16") ret=00592f5c
005c:Ret KERNEL32.OutputDebugStringA() retval=00000000 ret=00592f5c
005c:Call KERNEL32.OutputDebugStringA(009f459c "\n") ret=00592f63
005c:Ret KERNEL32.OutputDebugStringA() retval=00000000 ret=00592f63
005c:Call
d3d11.D3D11CreateDevice(00000000,00000001,00000000,00000000,0033f5e0,00000003,00000007,07160218,07160234,0716021c)
ret=005bb669
005c:fixme:d3d11:D3D11CreateDevice stub: adapter (nil), driver_type
D3D_DRIVER_TYPE_HARDWARE, swrast (nil), flags 0, feature_levels 0x33f5e0,
levels 0x3, sdk_version 7, device 0x7160218, feature_level 0x7160234, context
0x716021c
005c:Ret d3d11.D3D11CreateDevice() retval=8007000e ret=005bb669
005c:Call msvcr110.strcpy_s(0033f1e4,00000400,00a6a76c "Error - Can't create
Direct3D Object") ret=005997f7
005c:Ret msvcr110.strcpy_s() retval=00000000 ret=005997f7
...
005c:Call KERNEL32.OutputDebugStringA(06da6c00 "Initializing D3D11 Graphics.
Requested: 1920x1080x16") ret=00592f5c
005c:Ret KERNEL32.OutputDebugStringA() retval=00000000 ret=00592f5c
005c:Call KERNEL32.OutputDebugStringA(009f459c "\n") ret=00592f63
005c:Ret KERNEL32.OutputDebugStringA() retval=00000000 ret=00592f63
005c:Call
d3d11.D3D11CreateDevice(00000000,00000001,00000000,00000000,0033f5e0,00000003,00000007,07160218,07160234,0716021c)
ret=005bb669
005c:fixme:d3d11:D3D11CreateDevice stub: adapter (nil), driver_type
D3D_DRIVER_TYPE_HARDWARE, swrast (nil), flags 0, feature_levels 0x33f5e0,
levels 0x3, sdk_version 7, device 0x7160218, feature_level 0x7160234, context
0x716021c
005c:Ret d3d11.D3D11CreateDevice() retval=8007000e ret=005bb669
...
005c:Call user32.MessageBoxW(00000000,0033ef08 L"Initialization
Failed\nDirect3D initialization failed. Frequent cause is an old or corrupted
driver.\n\nPlease check the log file for more information.",009ff56c L"Age of
Mythology",00001010) ret=004685c2
--- snip ---
Well, that's bug 34008
I found some interesting parameters through dumping/debugging:
--- snip ---
...
forceD3D9 - forces the game to run in a Direct3D 9 feature level. This requires
Direct3D 11 to be enabled
forceD3D10 - forces the game to run in a Direct3D 10 feature level. This
requires Direct3D 11 to be enabled
ignoreDDT - disables the loading of ddt textures.
D3Ddebug - enables the D3D11 debug layer. This flag can introduce a serious
performance impact.
enableTessellation - enables hardware unit tesselation in D3D11 feature levels
...
--- snip ---
Those can be added in 'startup/*.cfg' files which get read at game start.
Unfortunately even if you enable 'forceD3D9' (which will end up in
D3D_FEATURE_LEVEL / feature 9_x level) it will still call
d3d11.D3D11CreateDevice() entry point.
This is hard-coded and can't be bypassed.
---
There will be another problem later: the game is protected by Valve's CEG:
--- snip ---
-=[ ProtectionID v0.6.5.5 OCTOBER]=-
(c) 2003-2013 CDKiLLER & TippeX
Build 31/10/13-21:09:09
Ready...
Scanning ->
Z:\home\focht\wine-games\wineprefix-steam\wineprefix\drive_c\Program
Files\Steam\SteamApps\common\Age of Mythology\aomx.exe
File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 8625816 (0839E98h)
Byte(s)
-> File Appears to be Digitally Signed @ Offset 0839000h, size : 0E98h / 03736
byte(s)
[File Heuristics] -> Flag : 00000100000001001101000000000100 (0x0404D004)
[Entrypoint Section Entropy] : 6.56
[Debug Info]
Characteristics : 0x0 | TimeDateStamp : 0x536D18E2 | MajorVer : 0 / MinorVer :
0 -> (0.0)
Type : 2 -> CodeView | Size : 0x43 (67)
AddressOfRawData : 0x6C7510 | PointerToRawData : 0x6C6110
CvSig : 0x53445352 | SigGuid B5CAACEA-753D-4761-A3F63B79B926B484
Age : 0x1 | Pdb : D:\projects\AoM\src\rts3\FinalCEG\AoMX.pdb
[!] Steam api usage detected
[i] additional feature ; Valve CEG - Custom Executable Generation
[.] CEG Version : 1, 1, 0, 2100
[.] CEG Build GUID : FD1C45EF-0376-4524-B3A4-BBF65E7A1F1D
[.] CEG Build Machine : neilk
[!] Possible CD/DVD-Key or Serial Check -> CDKey
[CompilerDetect] -> Visual C/C++
- Scan Took : 0.815 Second(s) [00000032Fh tick(s)] [533 scan(s) done]
Scanning ->
Z:\home\focht\wine-games\wineprefix-steam\wineprefix\drive_c\Program
Files\Steam\SteamApps\common\Age of Mythology\Launcher.exe
File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 1664512 (0196600h)
Byte(s)
[File Heuristics] -> Flag : 00000100000001001101000000000000 (0x0404D000)
[Entrypoint Section Entropy] : 5.89
[Debug Info]
Characteristics : 0x0 | TimeDateStamp : 0x53698096 | MajorVer : 0 / MinorVer :
0 -> (0.0)
Type : 2 -> CodeView | Size : 0x3E (62)
AddressOfRawData : 0x6928 | PointerToRawData : 0x5728
CvSig : 0x53445352 | SigGuid 5F16F2FE-FE92-4808-9FF6253A92E31114
Age : 0x23 | Pdb : D:\Projects\aom_mainline\Launcher.pdb
[!] Steam api usage detected
[CompilerDetect] -> Visual C/C++
- Scan Took : 0.380 Second(s) [00000017Ch tick(s)] [533 scan(s) done]
--- snip ---
http://steamdb.info/app/266840/config/
--- snip ---
launch
0/config/oslist: windows
0/description: Launch
0/executable: Launcher.exe
cegpublickey
30819D300D06092A864886F70D010101050003818B0030818702818100C20F95CD3007AC0E2BAA9C0AFF740B949792CDF46454F2272A28D8CCEC4829A2F625B22FD4A588E1975F74708123A9DCFA8F1B8D01E40760871899F3CABCF717F17F8A5574DD8533C139359F319AA5BBC9A1326B220FD8D9B40D8158831CA45B3A397A9AB71ABECF65B07031E356BA70F2B3A252701212E2481611B55941C8D5020111
checkguid AoMX.exe
--- snip ---
-> bug 32515
Anyway, the main blocker currently is d3d11.D3D11CreateDevice() stub hence I'm
resolving this as dupe of bug 34008
$ wine --version
wine-1.7.19
Regards
*** This bug has been marked as a duplicate of bug 34008 ***
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list