https://bugs.winehq.org/show_bug.cgi?id=21201 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|obfuscation | Status|UNCONFIRMED |RESOLVED CC| |focht(a)gmx.net Resolution|--- |INVALID Summary|HotWheels Stunt Track |HotWheels Stunt Track |Driver 2: CD-Check fails, |Driver 2: CD-Check fails, |and Esc causes page fault. |and Esc causes crash (CDROM | |drive letter derived from | |installer working path, | |written to 'CDDATADIR' | |registry key) --- Comment #6 from Anastasius Focht <focht(a)gmx.net> --- Hello folks, confirming. Thanks to people still seeding old stuff I found a distributed backup for testing. It's essentially the same (stupid) issue as I analysed in https://bugs.winehq.org/show_bug.cgi?id=13754#c4 The game itself has no copy-protection - not even a simple CD check. --- snip --- -=[ ProtectionID v0.6.6.7 DECEMBER]=- (c) 2003-2015 CDKiLLER & TippeX Build 24/12/14-22:48:13 Ready... Scanning -> C:\Program Files\Mattel Interactive\Hot Wheels\Stunt Track Driver 2\stunt2.exe File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 950272 (0E8000h) Byte(s) Compilation TimeStamp : 0x399455C4 -> Fri 11th Aug 2000 19:36:36 (GMT) [TimeStamp] 0x399455C4 -> Fri 11th Aug 2000 19:36:36 (GMT) | PE Header | - | Offset: 0x00000100 | VA: 0x00400100 | - [File Heuristics] -> Flag #1 : 00000000000000000000000000000000 (0x00000000) [Entrypoint Section Entropy] : 6.52 (section #0) ".text " | Size : 0x6FAF1 (457457) byte(s) [DllCharacteristics] -> Flag : (0x0000) -> NONE [SectionCount] 5 (0x5) | ImageSize 0x54A9000 (88772608) byte(s) [VersionInfo] Company Name : Mattel. Inc. [VersionInfo] Product Name : Stunt Track Driver 2 [VersionInfo] Product Version : 1.0 [VersionInfo] File Description : Stunt Track Driver 2. Get 'N' Dirty(TM) [VersionInfo] File Version : 1.0 [VersionInfo] Original FileName : stunt2.exe [VersionInfo] Internal Name : Stunt Track Driver 2 [VersionInfo] Legal Trademarks : Hot Wheels® is a registered trademark of Mattel. Inc. [VersionInfo] Legal Copyrights : Copyright © 2000 [CompilerDetect] -> Intel(R) C/C++ Compiler [!] File appears to have no protection or is using an unknown protection - Scan Took : 0.504 Second(s) [0000001F8h (504) tick(s)] [499 of 573 scan(s) done] --- snip --- The game installer writes a registry key 'CDDATADIR' which is derived from the working directory where the installer executable was started from. This is usually a path containing "Z:\\" because most people don't bother to use 'wine <mapped-cdrom-drive>:\\setup.exe' (including me). The game reads the registry key 'CDDATADIR' and tries to access data files. Well, you get the idea ;-) Export of relevant part of registry with broken path: --- snip --- [HKEY_LOCAL_MACHINE\Software\Mattel\Stunt Track Driver 2\1.0] "CDDATADIR"="Z:\\setup\\hot2000\\" "InstallPath"="C:\\Program Files\\Mattel Interactive\\Hot Wheels\\Stunt Track Driver 2\\" --- snip --- Trace log with broken path: --- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Mattel Interactive/Hot Wheels/Stunt Track Driver 2 $ WINEDEBUG=+tid,+seh,+relay wine ./stunt2.exe >>log.txt 2&>1 ... 0028:Call KERNEL32.SetCurrentDirectoryA(0033fbd4 "C:\\Program Files\\Mattel Interactive\\Hot Wheels\\Stunt Track Driver 2\\data/intro") ret=004a8411 0028:Ret KERNEL32.SetCurrentDirectoryA() retval=00000001 ret=004a8411 0028:Call KERNEL32.CreateFileA(058a0ee0 "intro.plz",80000000,00000003,0033fa58,00000003,00000080,00000000) ret=004b6c3a 0028:Ret KERNEL32.CreateFileA() retval=ffffffff ret=004b6c3a 0028:Call KERNEL32.GetLastError() ret=004b6c58 0028:Ret KERNEL32.GetLastError() retval=00000002 ret=004b6c58 0028:Call advapi32.RegOpenKeyExA(80000002,0033f9b4 "SOFTWARE\\Mattel\\Stunt Track Driver 2\\1.0",00000000,00020019,0033fab4) ret=004593c5 0028:Ret advapi32.RegOpenKeyExA() retval=00000000 ret=004593c5 0028:Call advapi32.RegQueryValueExA(00000240,0589c9c0 "CDDATADIR",00000000,0033fabc,00554f20,0033fab8) ret=00459419 0028:Ret advapi32.RegQueryValueExA() retval=00000000 ret=00459419 0028:Call KERNEL32.GetCurrentDirectoryA(00000104,0033f9ac) ret=004b9a5e 0028:Ret KERNEL32.GetCurrentDirectoryA() retval=0000004e ret=004b9a5e 0028:Call KERNEL32.CreateFileA(0033fadc "Z:\\setup\\hot2000\\\\data\\intro\\intro.plz",80000000,00000003,0033fa58,00000003,00000080,00000000) ret=004b6c3a 0028:Ret KERNEL32.CreateFileA() retval=ffffffff ret=004b6c3a ... --- snip --- You either fix the registry key manually or run the installer with real CDROM driver letter path. Test: * (auto)mounted the CD/ISO to 'e:' * cd to mount point * ran 'wine e:\\setup.exe' -> path was properly written to registry: --- snip --- ... 0028:Call advapi32.RegOpenKeyExA(80000002,0033f974 "SOFTWARE\\Mattel\\Stunt Track Driver 2\\1.0",00000000,00020019,0033fa74) ret=004593c5 0028:Ret advapi32.RegOpenKeyExA() retval=00000000 ret=004593c5 0028:Call advapi32.RegQueryValueExA(0000009c,0589c9c0 "CDDATADIR",00000000,0033fa7c,00554f20,0033fa78) ret=00459419 0028:Ret advapi32.RegQueryValueExA() retval=00000000 ret=00459419 0028:Call KERNEL32.GetCurrentDirectoryA(00000104,0033f96c) ret=004b9a5e 0028:Ret KERNEL32.GetCurrentDirectoryA() retval=0000004e ret=004b9a5e 0028:Call KERNEL32.CreateFileA(0033fa9c "e:\\setup\\hot2000\\\\data\\intro\\logos.plz",80000000,00000003,0033fa18,00000003,00000080,00000000) ret=004b6c3a 0028:Ret KERNEL32.CreateFileA() retval=00000240 ret=004b6c3a 0028:Call KERNEL32.GetFileType(00000240) ret=004b6c47 0028:Ret KERNEL32.GetFileType() retval=00000001 ret=004b6c47 ... --- snip --- Runs fine here with default 'Windows XP' setting. Resolving 'INVALID' since this not a Wine bug. $ wine --version wine-1.7.54-179-ga0d0d0d Regards -- 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.