http://bugs.winehq.org/show_bug.cgi?id=20935
Summary: HoMM5: Hammers of Fate: game dvd not found Product: Wine Version: 1.1.32 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: thesource@mail.ru
The game can not find it's dvd when it's inserted (it's a real dvd, not image). I tried to add the mount path of the dvd to disk list with type 'CD-ROM', but that didn't help. Wine doesn't give any output on this, the game just shows 'not found message' and exits.
http://bugs.winehq.org/show_bug.cgi?id=20935
--- Comment #1 from The Source thesource@mail.ru 2009-12-06 12:04:04 --- I tried to assign volume label also (it looks like wine doesn't get it automatically), but it appears that winecfg doesn't save a label for some reason. Running winecfg after assignment shows that label is empty again.
http://bugs.winehq.org/show_bug.cgi?id=20935
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wylda@volny.cz
--- Comment #2 from Wylda wylda@volny.cz 2009-12-08 08:47:24 ---
Hi Source ;) i spent a lot time with searching through bags and boxes with originals, because i knew, that i bought this one in the past. Finally i found HOMAM5 HoF. Hopefully time wont be wasted and you get this game running.
First - This game uses SecuROM, i.e. nasty copy protection. The DVD version i own is v2.0 and uses SecuROM v7.27.0014. This is a no go in current wine, because it fails with:
fixme:ntdll:server_ioctl_file Unsupported ioctl 2d0c04 (device=2d access=0 func=301 method=0)
wine: Unhandled page fault on read access to 0x00000000 at address 0x146e303 (thread 0009), starting debugger...
_Fortunately_ you can upgrade this game to v2.1 which uses SecuROM v7.30.0014 and this one works PERFECTLY under current wine :-) To end up this section - upgrade HOMAM5 HoF to version v2.1, put original DVD into your drive, mount it and run winecfg to see, that "Drives" tab contains entry about your mounted DVD.
Second (optional reading) - You can even use image (without a crack of course!), but you will need WinXP, good CD/DVD imaging software and most importantly _good_ DVD drive. Of course image can't be in ISO format. If you have all these things and end up with proper image, then you nearly "image-winner" ;) Remember we are talking about SecuROM v7.30.0014 and this has nasty feature in this game... If your PC have SCSI and SATA/PATA drives, then even if the game sees original DVD in SCSI drive, it will tell you "Remove backup copy". So in winxp world you would:
1. unplug or disable all the SATA/PATA drives from device manager 2. used a cloaking SW to hide SATA/PATE drives 3. bought virtual image drive SW, which appears like IDE(ATAPI) connected
I tested this while ago and i had to unplug both SATA DVD drives from PC to be able to play thit game from image (SATA support hotplug and i can't disable SATA drives other way under linux). All the test were done under wine-1.1.34-99-g8da7a00 and CDEMU (http://cdemu.org/).
But as i said - to get this SecuROM game running, you need to fullfil "First" paragraph (means play with original and no image).
http://bugs.winehq.org/show_bug.cgi?id=20935
--- Comment #3 from The Source thesource@mail.ru 2009-12-08 08:57:04 --- Hi! Thank you very much for your tips! But... :) You see, I have HoMM5 Silver Edition (rus) DVD, which, as far as I can tell, doesn't use SecuROM at all. It doesn't use any type of copy protection, or as it seems (at least no additional drivers or software is installed during game setup). The only protection is the product key which is required to play online. Silver Edition already has 2.1 version of HoF, but I ran the patch just in case. No luck. I'm currently using nocd for that game, but surely it would be nice if the game properly detects it's disk.
P.S. Also there's a nasty bug with the cursor - it reverts to desktop standard arrow after the battle. But I guess I should report this as separate bug (after I check if disabling hardware cursor usage changes anything).
http://bugs.winehq.org/show_bug.cgi?id=20935
--- Comment #4 from Wylda wylda@volny.cz 2009-12-08 09:07:25 ---
If the (In reply to comment #3)
...doesn't use SecuROM at all. It doesn't use any type of copy protection...
I'm currently using nocd for that game...
I would say, that these two lines contradicts itself. To be sure, try for example protection_id v0.6.2.3.
P.S. Also there's a nasty bug with the cursor - it reverts to desktop standard arrow after the battle. But I guess I should report this as separate bug (after I check if disabling hardware cursor usage changes anything).
Definitely if searching fails, you should fill new bug report. Never mix two problem in one bug report.
http://bugs.winehq.org/show_bug.cgi?id=20935
--- Comment #5 from The Source thesource@mail.ru 2009-12-09 11:57:07 --- I checked my DVD with protection_id like you suggested:
[I] Init cd/dvd sector scan for Drive F -> Protection : None/Unknown [!] Disc appears to have no protection or is using an unknown protection - Scan Took : 0.703 Second(s)
The game just requires game DVD (detects it by label or contents perhaps) but like I said it doesn't use any protection. Which gets me back to the original problem - why the game doesn't see it's disk under wine. The problem might be in disk label actually. Wine doesn't detect it and and doesn't save the label in winecfg. Also the strange thing - Fedora 12 x86_64 detects the disk as "UDF Volume" so it seems the os itself can not read disk label (in Windows the label is detected properly). Could it be related to the problem?
http://bugs.winehq.org/show_bug.cgi?id=20935
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #6 from Anastasius Focht focht@gmx.net 2010-02-22 14:40:43 --- Hello,
--- quote --- First - This game uses SecuROM, i.e. nasty copy protection. The DVD version i own is v2.0 and uses SecuROM v7.27.0014. This is a no go in current wine, because it fails with:
fixme:ntdll:server_ioctl_file Unsupported ioctl 2d0c04 (device=2d access=0 func=301 method=0)
wine: Unhandled page fault on read access to 0x00000000 at address 0x146e303 (thread 0009), starting debugger... --- quote ---
the IOCTL_STORAGE_GET_MEDIA_TYPES_EX check is bugged in some SecuROM versions (hence the crash).
From my own experience it appeared in SecuROM versions 7.2x.xxxx.
There are many games/apps in the wild that use that one (along with other checks) so it's worthwhile to fix this.
The most common symptom is the 0x2d0c04 device ioctl fixme followed by a crash:
--- snip --- 0034:Call KERNEL32.CreateFileA(009ee2d4 "\\.\D:",c0000000,00000003,00000000,00000003,00000000,00000000) ret=0087ea39 0034:Ret KERNEL32.CreateFileA() retval=0000001c ret=0087ea39 0034:Call KERNEL32.DeviceIoControl(0000001c,002d0c04,00000000,00000000,00d40c7f,00000400,00d415a4,00000000) ret=00885920 0034:fixme:ntdll:server_ioctl_file Unsupported ioctl 2d0c04 (device=2d access=0 func=301 method=0) 0034:Ret KERNEL32.DeviceIoControl() retval=00000000 ret=00885920 0034:trace:seh:raise_exception code=c0000005 flags=0 addr=0x885956 ip=00885956 tid=0034 0034:trace:seh:raise_exception info[0]=00000000 0034:trace:seh:raise_exception info[1]=00000000 0034:trace:seh:raise_exception eax=00000000 ebx=00000000 ecx=00000000 edx=ffffffff esi=009ebeac edi=009ebeac 0034:trace:seh:raise_exception ebp=00d415c0 esp=00d40c50 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010296 0034:trace:seh:call_vectored_handlers calling handler at 0x79d8debe code=c0000005 flags=0 0034:trace:seh:call_vectored_handlers handler at 0x79d8debe returned 0 0034:trace:seh:call_stack_handlers calling handler at 0x8ed8e5 code=c0000005 flags=0 0034:trace:seh:call_stack_handlers handler at 0x8ed8e5 returned 1 --- snip ---
IOCTL_STORAGE_GET_MEDIA_TYPES_EX is described in MSDN:
http://msdn.microsoft.com/en-us/library/aa363413.aspx
Fortunately SecuROM versions that use this check only look at the DeviceType field, specifically they check for DeviceType == FILE_DEVICE_CD_ROM (0x2) or DeviceType == FILE_DEVICE_DVD (0x33).
The DEVICE_MEDIA_INFO array of GET_MEDIA_TYPES struct part is completely ignored (either pass MediaInfoCount = 0 or fill it with whatever RemovableDiskInfo values).
You can get away with simple implementation.
Regards
http://bugs.winehq.org/show_bug.cgi?id=20935
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |realszopen@gmail.com
--- Comment #7 from Austin English austinenglish@gmail.com 2010-02-22 19:17:58 --- *** Bug 17029 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=20935
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |carlton.hobbs@gmail.com
--- Comment #8 from Austin English austinenglish@gmail.com 2010-02-22 19:18:22 --- *** Bug 20038 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=20935
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |vamp898@web.de
--- Comment #9 from Alexandre Julliard julliard@winehq.org 2010-03-20 13:59:52 --- *** Bug 20269 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=20935
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |dank@kegel.com Target Milestone|--- |1.2.0 Ever Confirmed|0 |1
--- Comment #10 from Dan Kegel dank@kegel.com 2010-05-18 17:42:00 --- Affects multiple popular games, good analysis -> confirming, nominating for 1.2 (what the heck, it can't hurt to ask).
http://bugs.winehq.org/show_bug.cgi?id=20935
bjdodo bjdodo@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bjdodo@hotmail.com
--- Comment #11 from bjdodo bjdodo@hotmail.com 2010-05-24 16:13:43 --- *** Bug 22833 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=20935
--- Comment #12 from Austin English austinenglish@gmail.com 2010-05-30 15:20:26 --- Created an attachment (id=28434) --> (http://bugs.winehq.org/attachment.cgi?id=28434) add stub for IOCTL_STORAGE_GET_MEDIA_TYPES/IOCTL_STORAGE_GET_MEDIA_TYPES_EX
Please test this patch.
http://bugs.winehq.org/show_bug.cgi?id=20935
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch CC| |austinenglish@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=20935
--- Comment #13 from Wylda wylda@volny.cz 2010-05-30 17:45:14 --- (In reply to comment #12)
Created an attachment (id=28434)
--> (http://bugs.winehq.org/attachment.cgi?id=28434) [details]
add stub for IOCTL_STORAGE_GET_MEDIA_TYPES/IOCTL_STORAGE_GET_MEDIA_TYPES_EX
Please test this patch.
Success :-D Thanks "Anastasius" & Austin.
Tested on: * Tomb Raider: Legend (SecuROM v7.24.0006) * wine 1.2-rc2
Original DVD works and than i tried that on _properly_ made alcohol image+cdemu and also works perfectly.
So instead of: fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_HANDLE_INFORMATION
fixme:ntdll:server_ioctl_file Unsupported ioctl 2d0c04 (device=2d access=0 func=301 method=0)
wine: Unhandled page fault on read access to 0x00000000 at address 0x1918fb8 (thread 0009), starting debugger...
I now get: fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_HANDLE_INFORMATION
fixme:cdrom:CDROM_GetMediaType : faking success
fixme:ntdll:server_ioctl_file Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0)
fixme:cursor:SetSystemCursor (0x3006e,00007f00),stub!
BTW: Why did the func changed from 301 to 500?
http://bugs.winehq.org/show_bug.cgi?id=20935
--- Comment #14 from Juan Lang juan_lang@yahoo.com 2010-05-30 21:20:52 --- (In reply to comment #13)
BTW: Why did the func changed from 301 to 500?
It didn't, the 301 got handled here:
fixme:cdrom:CDROM_GetMediaType : faking success
and now instead of crashing, the program continues to:
fixme:ntdll:server_ioctl_file Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0)
http://bugs.winehq.org/show_bug.cgi?id=20935
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #15 from Austin English austinenglish@gmail.com 2010-05-31 11:47:22 --- Fixed by http://source.winehq.org/git/wine.git/?a=commitdiff;h=84179f4e1db6bbf5bdc30f....
http://bugs.winehq.org/show_bug.cgi?id=20935
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #16 from Alexandre Julliard julliard@winehq.org 2010-06-11 12:52:22 --- Closing bugs fixed in 1.2-rc3.
http://bugs.winehq.org/show_bug.cgi?id=20935
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |obfuscation Fixed by SHA1| |84179f4e1db6bbf5bdc30f0ad11 | |4723096e1186f Component|-unknown |ntdll