I've been playing around with the supreme commander install most of today trying to figure out why it does not want to install. Running with +file,+msgbox and noticed the following error for virtually all files:
warn:file:wine_nt_to_unix_file_name L"TUB500.xsb" not found in /home/stephan/.wine/dosdevices/c:/Program Files/THQ/Gas Powered Games/Supreme Commander/sounds/Voice/fr/Tutorials
This is the file being copied when I get the "Error 87" message from Install shield.
Also, pretty much every file, if not every file, gives the same trace in the debug log. It's weird that install shield will copy hundreds of files with that warning in their trace and not complain until it is 80% through.
So then I wondered, is that really the cause or not? I think yes. Install shield appears to be kind enough to not re-copy the files if they already exist, so I killed the process to keep all files already copied and added the one missing file above from my windows install and then ran install shield again.
This time around, the file was processed correctly and no error. Instead it gives the error now on the next file, which is TUB500.xwb.
Some more trace below:
trace:file:GetFileAttributesW L"c:\Program Files\THQ\Gas Powered Games\Supreme Commander\sounds\Voice\fr\Tutorials\TUB500.xwb" trace:file:RtlDosPathNameToNtPathName_U (L"c:\Program Files\THQ\Gas Powered Games\Supreme Commander\sounds\Voice\fr\Tutorials\ \TUB500.xwb",0x334b84,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"c:\Program Files\THQ\Gas Powered Games\Supreme Commander\sounds\Voice\fr\Tutorials\TUB500.xwb" 520 0x3348f8 (nil)) warn:file:wine_nt_to_unix_file_name L"TUB500.xwb" not found in /home/stephan/.wine/dosdevices/c:/Program Files/THQ/Gas Powered Games/Supreme Commander/sounds/Voice/fr/Tutorials trace:file:MoveFileWithProgressW (L"",(null),(nil),(nil),0004) trace:file:RtlDosPathNameToNtPathName_U (L"",0x3348b8,(nil),(nil)) trace:file:GetFileAttributesW L"c:\Program Files\THQ\Gas Powered Games\Supreme Commander\sounds\Voice\fr\Tutorials\TUB500.xwb" trace:file:RtlDosPathNameToNtPathName_U (L"c:\Program Files\THQ\Gas Powered Games\Supreme Commander\sounds\Voice\fr\Tutorials\ \TUB500.xwb",0x334800,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"c:\Program Files\THQ\Gas Powered Games\Supreme Commander\sounds\Voice\fr\Tutorials\TUB500.xwb" 520 0x334574 (nil)) warn:file:wine_nt_to_unix_file_name L"TUB500.xwb" not found in /home/stephan/.wine/dosdevices/c:/Program Files/THQ/Gas Powered Games/Supreme Commander/sounds/Voice/fr/Tutorials
Followed by this resulting in the error message box:
trace:file:RtlDosPathNameToNtPathName_U (L"C:\windows\temp\ {62CDECF0-D5B2-11DB-C687-0018F32E4A94}\ \ISSetup.dll",0x341404,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"C:\windows\temp\ {62CDECF0-D5B2-11DB-C687-0018F32E4A94}\ISSetup.dll" 520 0x3411c4 (nil)) trace:file:wine_nt_to_unix_file_name L"\??\C:\windows\temp\ {62CDECF0-D5B2-11DB-C687-0018F32E4A94}\ISSetup.dll" -> "/home/stephan/.wine/dosdevices/c:/windows/temp/{62CDECF0-D5B2-11DB-C687-0018F32E4A94}/ISSetup.dll" trace:file:RtlGetFullPathName_U (L"C:\windows\temp\ {62CDECF0-D5B2-11DB-C687-0018F32E4A94}\ISSetup.dll" 522 0x34149e (nil)) trace:msgbox:MSGBOX_OnInit L"Error:\t87"
So it seems that it freaks out because somehow the file appears in the directory tree late.
I'm still trying to think of a way of reproducing this with a test case...but that won't be all that easy without knowing precisely what Install Shield is actually doing in their code!
Any thoughts?
Stephan Rose
Am Montag 19 März 2007 01:49 schrieb Stephan Rose:
I've been playing around with the supreme commander install most of today trying to figure out why it does not want to install. Running with +file,+msgbox and noticed the following error for virtually all files:
So it seems that it freaks out because somehow the file appears in the directory tree late.
Sounds like a race :-) . I don't know anything about wine's msi and dcom implementation(which installshield uses heavilly). DCOM is about the most complex thing in Windows :-/
One think you can try if that game works with windows 98 too is to use native msi 2.0 and / or native dcom98 . If that fails in the same way it is a bug somewhere else(ntdll / kernel), otherwise most likely msi or dcom. Dan's Winetricks may help with installing that. You need winver = win98 for native msi and dcom.
On Mon, 2007-03-19 at 09:40 +0100, Stefan Dösinger wrote:
Am Montag 19 März 2007 01:49 schrieb Stephan Rose:
I've been playing around with the supreme commander install most of today trying to figure out why it does not want to install. Running with +file,+msgbox and noticed the following error for virtually all files:
So it seems that it freaks out because somehow the file appears in the directory tree late.
Sounds like a race :-) . I don't know anything about wine's msi and dcom implementation(which installshield uses heavilly). DCOM is about the most complex thing in Windows :-/
One think you can try if that game works with windows 98 too is to use native msi 2.0 and / or native dcom98 . If that fails in the same way it is a bug somewhere else(ntdll / kernel), otherwise most likely msi or dcom. Dan's Winetricks may help with installing that. You need winver = win98 for native msi and dcom.
No luck there...but I am one step closer to tracking down the source of the problem.
I found that kernel32 is calling RaiseException when the file that is failing comes up.
So I went to check it out with +seh, this is the exception that comes up:
trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7ee4ca80 trace:seh:raise_exception info[0]=19930520 trace:seh:raise_exception info[1]=00334aec trace:seh:raise_exception info[2]=100f7058 trace:seh:raise_exception eax=7ee37d89 ebx=7eeb8880 ecx=00000000 edx=100f18d8 esi=100f18d8 edi=00334ad0 trace:seh:raise_exception ebp=00334a90 esp=00334a2c cs=0073 ds=007b es=007b fs=0033 gs=003b flags=00200216
Anyone have any idea on what the exception is?
I've come as far so far as that it seems to be some MS Specific C++ exception. I've still got to find out what function this exception is originating in. Going to try and figure that one out next.
Stephan
On 3/19/07, Stephan Rose kermos@somrek.net wrote:
On Mon, 2007-03-19 at 09:40 +0100, Stefan Dösinger wrote:
Am Montag 19 März 2007 01:49 schrieb Stephan Rose:
I've been playing around with the supreme commander install most of today trying to figure out why it does not want to install. Running with +file,+msgbox and noticed the following error for virtually all files:
So it seems that it freaks out because somehow the file appears in the directory tree late.
Sounds like a race :-) . I don't know anything about wine's msi and dcom implementation(which installshield uses heavilly). DCOM is about the most complex thing in Windows :-/
One think you can try if that game works with windows 98 too is to use native msi 2.0 and / or native dcom98 . If that fails in the same way it is a bug somewhere else(ntdll / kernel), otherwise most likely msi or dcom. Dan's Winetricks may help with installing that. You need winver = win98 for native msi and dcom.
No luck there...but I am one step closer to tracking down the source of the problem.
I found that kernel32 is calling RaiseException when the file that is failing comes up.
So I went to check it out with +seh, this is the exception that comes up:
trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7ee4ca80 trace:seh:raise_exception info[0]=19930520 trace:seh:raise_exception info[1]=00334aec trace:seh:raise_exception info[2]=100f7058 trace:seh:raise_exception eax=7ee37d89 ebx=7eeb8880 ecx=00000000 edx=100f18d8 esi=100f18d8 edi=00334ad0 trace:seh:raise_exception ebp=00334a90 esp=00334a2c cs=0073 ds=007b es=007b fs=0033 gs=003b flags=00200216
Anyone have any idea on what the exception is?
I've come as far so far as that it seems to be some MS Specific C++ exception. I've still got to find out what function this exception is originating in. Going to try and figure that one out next.
I could be way off the mark on this one but I think I remember hearing somewhere that ebx=7eeb8880 was copy protection (SD2?). Like I said maybe way off the mark, but we will see.
Stephan Rose wrote:
I've been playing around with the supreme commander install most of today trying to figure out why it does not want to install. Running with +file,+msgbox and noticed the following error for virtually all files:
warn:file:wine_nt_to_unix_file_name L"TUB500.xsb" not found in /home/stephan/.wine/dosdevices/c:/Program Files/THQ/Gas Powered Games/Supreme Commander/sounds/Voice/fr/Tutorials
This is the file being copied when I get the "Error 87" message from Install shield.
Also, pretty much every file, if not every file, gives the same trace in the debug log. It's weird that install shield will copy hundreds of files with that warning in their trace and not complain until it is 80% through.
So then I wondered, is that really the cause or not? I think yes. Install shield appears to be kind enough to not re-copy the files if they already exist, so I killed the process to keep all files already copied and added the one missing file above from my windows install and then ran install shield again.
This time around, the file was processed correctly and no error. Instead it gives the error now on the next file, which is TUB500.xwb.
Some more trace below:
trace:file:GetFileAttributesW L"c:\Program Files\THQ\Gas Powered Games\Supreme Commander\sounds\Voice\fr\Tutorials\TUB500.xwb" trace:file:RtlDosPathNameToNtPathName_U (L"c:\Program Files\THQ\Gas Powered Games\Supreme Commander\sounds\Voice\fr\Tutorials\ \TUB500.xwb",0x334b84,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"c:\Program Files\THQ\Gas Powered Games\Supreme Commander\sounds\Voice\fr\Tutorials\TUB500.xwb" 520 0x3348f8 (nil)) warn:file:wine_nt_to_unix_file_name L"TUB500.xwb" not found in /home/stephan/.wine/dosdevices/c:/Program Files/THQ/Gas Powered Games/Supreme Commander/sounds/Voice/fr/Tutorials
These messages are normal. GetFileAttributes is often used by programs to check for the existence of a file.
trace:file:MoveFileWithProgressW (L"",(null),(nil),(nil),0004) trace:file:RtlDosPathNameToNtPathName_U (L"",0x3348b8,(nil),(nil))
This is not. Moving a file with a blank name isn't going to work properly. Probably a test case is needed to see what happens on Windows. However, my guess is that there is a bug elsewhere that causes the installer to not get the correct filename.