http://bugs.winehq.org/show_bug.cgi?id=29130
Bug #: 29130 Summary: Where's Wally? The Fantastic Journey fails to recognize the CD in the drive Product: Wine Version: 1.3.32 Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll AssignedTo: wine-bugs@winehq.org ReportedBy: ezekiel000@lavabit.com Classification: Unclassified
When loading Where's Wally? The Fantastic Journey it fails to recognize the CD in the drive. A dialogue box comes up saying "Please insert the game disk in the drive and try again." and this shows up on the terminal: fixme:ntdll:server_ioctl_file Unsupported ioctl 2d0800 (device=2d access=0 func=200 method=0) fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d0800 (device=2d access=0 func=200 method=0) fixme:ntdll:server_ioctl_file Unsupported ioctl 2d0800 (device=2d access=0 func=200 method=0)
On Debian Squeeze amd64, official nvidia drivers and wine 1.3.32.
http://bugs.winehq.org/show_bug.cgi?id=29130
Vitaliy Margolen vitaliy-bugzilla@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|ntdll |-unknown
--- Comment #1 from Vitaliy Margolen vitaliy-bugzilla@kievinfo.com 2011-11-19 11:32:46 CST --- Please post output of these commands ls -la ~/.wine/dosdevices ls -la /dev/sr0 groups mount | grep sr0
http://bugs.winehq.org/show_bug.cgi?id=29130
--- Comment #2 from David Rogers ezekiel000@lavabit.com 2011-11-19 11:51:12 CST --- $ ls -la ~/.wine/dosdevices total 8 drwxr-xr-x 2 ezekiel ezekiel 4096 Oct 15 13:33 . drwxr-xr-x 4 ezekiel ezekiel 4096 Nov 19 16:56 .. lrwxrwxrwx 1 ezekiel ezekiel 10 Sep 23 20:49 c: -> ../drive_c lrwxrwxrwx 1 ezekiel ezekiel 13 Sep 23 20:49 d: -> /media/cdrom/ lrwxrwxrwx 1 ezekiel ezekiel 42 Sep 23 20:49 e: -> /home/ezekiel/Games/Lemmings Paintball/CD/ lrwxrwxrwx 1 ezekiel ezekiel 13 Sep 23 20:49 f: -> /media/cdrom0 lrwxrwxrwx 1 ezekiel ezekiel 8 Sep 23 20:49 f:: -> /dev/sr0 lrwxrwxrwx 1 ezekiel ezekiel 1 Sep 23 20:49 z: -> /
$ ls -la /dev/sr0 brw-rw----+ 1 root cdrom 11, 0 Nov 19 17:48 /dev/sr0
$ groups ezekiel cdrom floppy audio dip video plugdev netdev bluetooth scanner
$ mount | grep sr0 /dev/sr0 on /media/cdrom0 type iso9660 (ro,noexec,nosuid,nodev,user=ezekiel)
http://bugs.winehq.org/show_bug.cgi?id=29130
--- Comment #3 from Austin English austinenglish@gmail.com 2011-11-21 12:13:14 CST --- Please run ProtectionID on the game's executables to see what copy protection it's using.
http://bugs.winehq.org/show_bug.cgi?id=29130
--- Comment #4 from David Rogers ezekiel000@lavabit.com 2011-11-21 14:03:43 CST --- Here are the results I got: Scanning -> Z:\home\ezekiel\Games\Where's Wally - The Fantastic Journey\Where's Wally The Fantastic Journey.exe File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 5689704 (056D168h) Byte(s) -> File Appears to be Digitally Signed @ Offset 056C000h, size : 01168h / 04456 byte(s) [File Heuristics] -> Flag : 00000000000001011100000000000100 (0x0005C004) [CompilerDetect] -> Visual C++ 9.0 (Visual Studio 2008) [!] File appears to have no protection or is using an unknown protection - Scan Took : 0.15 Second(s)
http://bugs.winehq.org/show_bug.cgi?id=29130
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Component|-unknown |ntdll Summary|Where's Wally? The |Where's Wally? The |Fantastic Journey fails to |Fantastic Journey fails to |recognize the CD in the |recognize the CD in the |drive |drive (needs support for | |IOCTL_STORAGE_CHECK_VERIFY2 | |) Ever Confirmed|0 |1
--- Comment #5 from Anastasius Focht focht@gmx.net 2012-02-06 16:49:20 CST --- Hello,
confirming. You can't really call this "copy protection" ;-)
--- snip --- ... 0028:Call KERNEL32.GetDriveTypeW(0032f8cc L"D:\") ret=005f95c9 0028:Ret KERNEL32.GetDriveTypeW() retval=00000005 ret=005f95c9 0028:Call KERNEL32.GetLastError() ret=005122c4 0028:Ret KERNEL32.GetLastError() retval=000000ea ret=005122c4 0028:Call KERNEL32.CreateFileW(0032f434 L"\\.\D:",80000000,00000003,00000000,00000003,00000000,00000000) ret=005f7bb7 0028:Ret KERNEL32.CreateFileW() retval=00000070 ret=005f7bb7 0028:Call KERNEL32.DeviceIoControl(00000070,002d0800,00000000,00000000,00000000,00000000,0032f444,00000000) ret=005f7be1 0028:trace:cdrom:CDROM_DeviceIoControl 0x70 IOCTL_CODE_2d0800 (nil) 0 (nil) 0 0x32f350 0028:trace:cdrom:CDROM_Open 0, 13 0028:fixme:ntdll:server_ioctl_file Unsupported ioctl 2d0800 (device=2d access=0 func=200 method=0) 0028:Ret KERNEL32.DeviceIoControl() retval=00000000 ret=005f7be1 0028:Call KERNEL32.GetLastError() ret=005f7bea 0028:Ret KERNEL32.GetLastError() retval=00000032 ret=005f7bea 0028:Call KERNEL32.CloseHandle(00000070) ret=005f7bf7 0028:Ret KERNEL32.CloseHandle() retval=00000001 ret=005f7bf7 ... 0028:Call user32.MessageBoxW(00000000,008a20f8 L"Please insert the game disk in the drive and try again.",008958c8 L"Where's Wally The Fantastic Journey",00000010) ret=005f966c ... --- snip ---
0x2d0800 -> IOCTL_STORAGE_CHECK_VERIFY2
MSDN: http://msdn.microsoft.com/en-us/library/ff560538.aspx
--- quote --- IOCTL_STORAGE_CHECK_VERIFY2
Determines whether the media has changed on a removable-media device - the caller has opened with FILE_READ_ATTRIBUTES. Because no file system is mounted when a device is opened in this way, this request can be processed much more quickly than an IOCTL_STORAGE_CHECK_VERIFY request. Input Parameters
Input is identical to the input for IOCTL_STORAGE_CHECK_VERIFY. Output Parameters
Output is identical to the output for IOCTL_STORAGE_CHECK_VERIFY. I/O Status Block
I/O status is identical to the I/O status for IOCTL_STORAGE_CHECK_VERIFY. --- quote ---
Source: http://source.winehq.org/git/wine.git/blob/f082eac97c3ec71de58eea85bb4de5a12...
--- snip --- 2858 switch (dwIoControlCode) 2859 { 2860 case IOCTL_STORAGE_CHECK_VERIFY: 2861 case IOCTL_CDROM_CHECK_VERIFY: 2862 case IOCTL_DISK_CHECK_VERIFY: 2863 sz = 0; 2864 CDROM_ClearCacheEntry(dev); 2865 if (lpInBuffer != NULL || nInBufferSize != 0 || lpOutBuffer != NULL || nOutBufferSize != 0) 2866 status = STATUS_INVALID_PARAMETER; 2867 else status = CDROM_Verify(dev, fd); 2868 break; 2869 2870 /* EPP case IOCTL_STORAGE_CHECK_VERIFY2: */ 2871 --- snip ---
Adding IOCTL_STORAGE_CHECK_VERIFY2 to list of fallthroughs (IOCTL_STORAGE_CHECK_VERIFY, ...), calling CDROM_Verify() allows to game to recognize the disc.
Only simple file find is done on disc thereafter:
--- snip --- 0024:Call KERNEL32.GetDriveTypeW(0032f8cc L"D:\") ret=005f95c9 0024:Ret KERNEL32.GetDriveTypeW() retval=00000005 ret=005f95c9 0024:Call KERNEL32.GetLastError() ret=005122c4 0024:Ret KERNEL32.GetLastError() retval=000000ea ret=005122c4 0024:Call KERNEL32.CreateFileW(0032f434 L"\\.\D:",80000000,00000003,00000000,00000003,00000000,00000000) ret=005f7bb7 0024:Ret KERNEL32.CreateFileW() retval=00000068 ret=005f7bb7 0024:Call KERNEL32.DeviceIoControl(00000068,002d0800,00000000,00000000,00000000,00000000,0032f444,00000000) ret=005f7be1 0024:trace:cdrom:CDROM_DeviceIoControl 0x68 IOCTL_CODE_2d0800 (nil) 0 (nil) 0 0x32f350 0024:trace:cdrom:CDROM_Open 0, 13 0024:Ret KERNEL32.DeviceIoControl() retval=00000001 ret=005f7be1 0024:Call KERNEL32.GetLastError() ret=005f7bea 0024:Ret KERNEL32.GetLastError() retval=00000000 ret=005f7bea 0024:Call KERNEL32.CloseHandle(00000068) ret=005f7bf7 0024:Ret KERNEL32.CloseHandle() retval=00000001 ret=005f7bf7 0024:Call KERNEL32.GetLastError() ret=005122c4 0024:Ret KERNEL32.GetLastError() retval=00000000 ret=005122c4 0024:Call KERNEL32.FindFirstFileW(0032f6c4 L"D:\Main\Files\eng\Where's Wally The Fantastic Journey.exe",0032f46c) ret=005f9618 0024:Ret KERNEL32.FindFirstFileW() retval=00140290 ret=005f9618 0024:Call KERNEL32.FindClose(00140290) ret=005f9634 0024:Ret KERNEL32.FindClose() retval=00000001 ret=005f9634 --- snip ---
The game hangs at later point but that's a different bug, not related to "copy protection".
Regards
http://bugs.winehq.org/show_bug.cgi?id=29130
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Depends on| |29827
http://bugs.winehq.org/show_bug.cgi?id=29130
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |93ed8a062d659a0634086456886 | |5601efa80ca7c Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #6 from Austin English austinenglish@gmail.com 2012-02-07 16:36:48 CST --- http://source.winehq.org/git/wine.git/commitdiff/93ed8a062d659a0634086456886...
http://bugs.winehq.org/show_bug.cgi?id=29130
Saulius K. saulius2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |saulius2@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=29130
Bug 29130 depends on bug 29827, which changed state.
Bug 29827 Summary: Where's Wally? The Fantastic Journey gives 'File not found' when running setup.exe http://bugs.winehq.org/show_bug.cgi?id=29827
What |Old Value |New Value ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
http://bugs.winehq.org/show_bug.cgi?id=29130
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Alexandre Julliard julliard@winehq.org 2012-02-11 13:52:23 CST --- Closing bugs fixed in 1.4-rc3.
http://bugs.winehq.org/show_bug.cgi?id=29130
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |obfuscation