http://bugs.winehq.org/show_bug.cgi?id=34440
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Summary|NHL 2007 demo fails to |NHL 2007 demo fails to |install |install (modified DX | |runtime installer with | |broken check for DirectX | |9.0c)
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
Please stick to _one_ issue which is about the demo installer failure.
The demo ships a modified DX runtime installer which got stripped off some parts, namely 'DXNT.CAB' file and friends which carry the actual runtime payload.
This is intended because only the DX minimum version detection functionality ought to be used.
From 'c:\windows\DirectX.log':
--- snip --- 05/03/14 01:47:39: dsetup32: === SetupForDirectX() start === 05/03/14 01:47:39: dsetup32: SetupForDirectX(): query dxsetup command: result = 2. 05/03/14 01:47:39: dsetup32: DXSetupCommand = 0. 05/03/14 01:47:39: dsetup32: DirectXSetupIsJapanese == 0 05/03/14 01:47:39: dsetup32: DirectXSetupIsJapanNec == 0 05/03/14 01:47:39: dsetup32: Installing on WinXP SP 05/03/14 01:47:39: dsetup32: BuildPaths(): temp directory C:\windows\system32\DirectX is created. 05/03/14 01:47:39: dsetup32: Checking the version: HKLM\software\microsoft\directx\Version 05/03/14 01:47:39: dsetup32: Version in registry = 4.09.00.0904 05/03/14 01:47:39: dsetup32: Version in DLL = 4.09.00.0904 05/03/14 01:47:39: dsetup32: Installation Started with language eng 05/03/14 01:47:39: dsetup32: IterateDownloadedCabs(): Unable to find cab list. 05/03/14 01:47:39: dsetup32: Installation ended with value -2 = Source file not found --- snip ---
Trace log with inner installer:
--- snip --- $ WINEDEBUG=+tid,+seh,+relay, wine ./AutoRun.exe -restart -dir "Z:\home\focht\Downloads" >>log.txt 2>&1 ... 0023:Call advapi32.RegOpenKeyExA(80000002,00381418 "software\microsoft\directx",00000000,00000001,0033b8cc) ret=00384624 0023:Ret advapi32.RegOpenKeyExA() retval=00000000 ret=00384624 0023:Call advapi32.RegQueryValueExA(0000007c,003813d4 "Version",00000000,00000000,0033b8d0,0033b8c8) ret=00384666 0023:Ret advapi32.RegQueryValueExA() retval=00000000 ret=00384666 0023:Call KERNEL32.lstrcpynA(0033b7a8,0033b8d0 "4.09.00.0904",00000104) ret=0038654e 0023:Ret KERNEL32.lstrcpynA() retval=0033b7a8 ret=0038654e ... 0023:trace:ole:apartment_getclassobject added new loaded dll L"C:\windows\system32\dxdiagn.dll" 0023:trace:ole:apartment_getclassobject calling DllGetClassObject 0x7d6a695c 0023:Call dxdiagn.DllGetClassObject(00449350,7e55f1ac,0033b788) ret=7e470cf0 0023:Ret dxdiagn.DllGetClassObject() retval=00000000 ret=7e470cf0 ... 0023:Ret ole32.CoCreateInstance() retval=00000000 ret=0041c1f0 ... 0023:Call oleaut32.SysAllocString(7d6adce0 L"= "DirectX 9.0c (4.09.0000.0904)") ret=7d6a901d 0023:trace:ole:SysAllocStringLen L"= "DirectX 9.0c (4.09.0000.0904)" ... --- snip ---
dxdiag (x.xx.xxxx.xxxx format) -> version 4.09.0000.0904 = DirectX 9.0c registry (x.xx.xx.xxxx format) -> version 4.09.00.0904 = DirectX 9.0c
Unfortunately this DX runtime installer has nasty bug (comparing two floats where one float never gets set, thanks MS) which lets the result always be < 9.0c, despite what DX runtime (9.0c, 10.x, 11.x) is installed.
This wouldn't be a problem if some 'genius' wouldn't have decided to castrate the installer by stripping the payload away (AFAIK such modification isn't even legal). The failure messages in log file 'Unable to find cab list' and 'Installation ended with value -2' are the result of that.
Because of that the installer always aborts with the DX runtime part and can never proceed to the point of actual game demo install.
Can someone retest this demo installer on Windows and check if it also says 'DX 9.0c required' and refuses to go further? If yes -> invalid.
$ wine --version wine-1.7.18
Regards