http://bugs.winehq.org/show_bug.cgi?id=36452
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE
--- Comment #16 from Anastasius Focht focht@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 ***