http://bugs.winehq.org/show_bug.cgi?id=21147
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |obfuscation Status|UNCONFIRMED |RESOLVED CC| |focht@gmx.net Resolution| |FIXED Summary|SafeDisc v1.35.000 and |SafeDisc v1.3x media |Rayman 2 |validation fails/launcher | |crashes (secdrv.sys doesn't | |support WinVer > Win2000) | |(Rayman 2, Microsoft Flight | |Simulator 2000, ...)
--- Comment #3 from Anastasius Focht focht@gmx.net 2011-06-07 14:04:21 CDT --- Hello,
capturing this bug for Safedisc v1.3x targets ...
I got hold of Microsoft Flight Simulator 2000 which has a very similar SafeDisc version ... and it can be made to work without effort.
--- snip --- -=[ ProtectionID v0.6.4.0 JULY]=- (c) 2003-2010 CDKiLLER & TippeX Build 07/08/10-17:57:05 Ready...
Scanning -> H:.wine\drive_c\Program Files\Microsoft Games\FS2000\FS2000.EXE File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 280451 (044783h) Byte(s) -> File has 1411 (0583h) bytes of appended data starting at offset 044200h [File Heuristics] -> Flag : 00000000000001001100000000000101 (0x0004C005) [!] Safedisc v1.30.010 detected ! [CompilerDetect] -> Visual C++ 5.0 - Scan Took : 0.463 Second(s) --- snip ---
The problem with current Wine and this SafeDisc version is that the driver is tailored to specific Windows versions (even service packs). Wine's default "Windows XP" is not supported by this old SafeDisc version. The main app/launcher crashes because the SafeDisc 1.x driver refuses to create symbolic device links in its driver entry.
--- snip --- ... 0026:Call driver init 0x542466 (obj=0x6834b4a0,str=L"\Registry\Machine\System\CurrentControlSet\Services\Secdrv") 0026:Call ntdll.RtlQueryRegistryValues(00000003,00540324,0053e4ac,00000000,00000000) ret=0054038c 000d:Call ntdll.RtlAllocateHeap(00110000,00000000,00000010) ret=683262cd 000d:Ret ntdll.RtlAllocateHeap() retval=00153d68 ret=683262cd 0026:Ret ntdll.RtlQueryRegistryValues() retval=00000000 ret=0054038c 000d:Call ntdll.RtlAllocateHeap(00110000,00000000,00000018) ret=68320b8d 0026:Call ntdll.RtlInitUnicodeString(0053e5c4,00540392 L"3.51") ret=005404ca 000d:Ret ntdll.RtlAllocateHeap() retval=00153d80 ret=68320b8d 0026:Ret ntdll.RtlInitUnicodeString() retval=0053e5c4 ret=005404ca 000d:Call ntdll.RtlAllocateHeap(00110000,00000000,0000000c) ret=68320b8d 0026:Call ntdll.RtlEqualUnicodeString(0053e5dc,0053e5c4,00000001) ret=005404de 000d:Ret ntdll.RtlAllocateHeap() retval=00153da0 ret=68320b8d 0026:Ret ntdll.RtlEqualUnicodeString() retval=00000000 ret=005404de 000d:Call ntdll.RtlAllocateHeap(00110000,00000000,00000010) ret=683262cd 0026:Call ntdll.RtlInitUnicodeString(0053e5bc,0054039e L"4.0") ret=005404f7 000d:Ret ntdll.RtlAllocateHeap() retval=00153db8 ret=683262cd 0026:Ret ntdll.RtlInitUnicodeString() retval=0053e5bc ret=005404f7 000d:Call ntdll.RtlAllocateHeap(00110000,00000000,00000013) ret=68320b8d 0026:Call ntdll.RtlEqualUnicodeString(0053e5dc,0053e5bc,00000001) ret=00540502 000d:Ret ntdll.RtlAllocateHeap() retval=00153dd0 ret=68320b8d 0026:Ret ntdll.RtlEqualUnicodeString() retval=00000000 ret=00540502 000d:Call ntdll.RtlAllocateHeap(00110000,00000000,00000006) ret=68320b8d 0026:Call ntdll.RtlInitUnicodeString(0053e5cc,005403a6 L"5.0") ret=00540527 000d:Ret ntdll.RtlAllocateHeap() retval=00153df0 ret=68320b8d 0026:Ret ntdll.RtlInitUnicodeString() retval=0053e5cc ret=00540527 000d:Call ntdll.RtlAllocateHeap(00110000,00000000,00000010) ret=683262cd 0026:Call ntdll.RtlEqualUnicodeString(0053e5dc,0053e5cc,00000001) ret=00540532 000d:Ret ntdll.RtlAllocateHeap() retval=00153e08 ret=683262cd 0026:Ret ntdll.RtlEqualUnicodeString() retval=00000000 ret=00540532 000d:Call ntdll.RtlAllocateHeap(00110000,00000000,0000000a) ret=68320b8d 0026:Ret driver init 0x542466 (obj=0x6834b4a0,str=L"\Registry\Machine\System\CurrentControlSet\Services\Secdrv") retval=c0000001 ... --- snip ---
Set Winver to "Windows 2000" (winecfg) and the SD driver will correctly initialize itself, creating necessary device links. Driver pass-through/original media validation works, the game can be started and somehow played (though Wine's dx7/ddraw7 isn't very happy).
I assume the same goes for other games using similar version of SafeDisc v1.3x (made by C-Dilla). Marking this one fixed - it was probably fixed a considerable time ago.
If you still have problems with latest Wine and Winver "Windows 2000", reopen.
$ wine --version wine-1.3.21-254-g5bf7622
Regards