https://bugs.winehq.org/show_bug.cgi?id=39210
Bug ID: 39210 Summary: Dream Aquarium no longer starts Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: sdunnagan@yahoo.com Distribution: ---
Dream Aquarium has worked great in wine up until they updated the program. With Linux Mint 17.2 and wine 1.7, the program no longer starts.
https://bugs.winehq.org/show_bug.cgi?id=39210
--- Comment #1 from Austin English austinenglish@gmail.com --- Please run a regression test: http://wiki.winehq.org/RegressionTesting
Please attach the terminal ouptut. What wine version?
https://bugs.winehq.org/show_bug.cgi?id=39210
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
https://bugs.winehq.org/show_bug.cgi?id=39210
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net, | |super_man@post.com
https://bugs.winehq.org/show_bug.cgi?id=39210
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEEDINFO Ever confirmed|0 |1
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
again: please provide the requested information.
Also retest with recent Wine version, preferably Wine 1.7.55
If there is no response after certain time, the bug will be closed without further notice (abandon).
Regards
https://bugs.winehq.org/show_bug.cgi?id=39210
Sergey Isakov isakov-sl@bk.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |isakov-sl@bk.ru
--- Comment #3 from Sergey Isakov isakov-sl@bk.ru --- How did you run screensaver in Wine?
https://bugs.winehq.org/show_bug.cgi?id=39210
--- Comment #4 from Nikolay Sivov bunglehead@gmail.com --- Like any other program I imagine, .scr files are regular Win32 PE. That's the one http://www.dreamaquarium.com/download_xp.html.
https://bugs.winehq.org/show_bug.cgi?id=39210
--- Comment #5 from Sergey Isakov isakov-sl@bk.ru --- (In reply to Nikolay Sivov from comment #4)
Like any other program I imagine, .scr files are regular Win32 PE. That's the one http://www.dreamaquarium.com/download_xp.html.
This is the installer that works fine. but wine Dream_Aquarium.scr -S has no output. Just quit.
https://bugs.winehq.org/show_bug.cgi?id=39210
--- Comment #6 from Nikolay Sivov bunglehead@gmail.com --- Well, I guess that what reporter meant by "no longer starts" then.
https://bugs.winehq.org/show_bug.cgi?id=39210
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.dreamaquarium.co | |m/download_xp.html
https://bugs.winehq.org/show_bug.cgi?id=39210
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|regression | Status|NEEDINFO |NEW Component|-unknown |setupapi Version|unspecified |1.7.0 Summary|Dream Aquarium no longer |Dream Aquarium |starts |(screensaver) fails to read | |monitor power state | |('{4d36e96e-e325-11ce-bfc1- | |08002be10318}' device class | |GUID registry data missing)
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming. It's not a regression in Wine if the app vendor added new code to determine the monitor power state (previously not present).
At least two problems here.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Dream Aquarium
$ WINEDEBUG=+tid,+seh,+relay,+setupapi wine ./Dream_Aquarium.scr -S >>log.txt 2>&1 ... 042:Call setupapi.SetupDiGetClassDevsW(007dfd34,00000000,00000000,00000002) ret=004158e4 0042:trace:setupapi:SetupDiGetClassDevsExW {4d36e96e-e325-11ce-bfc1-08002be10318} (null) (nil) 0x00000002 (nil) (null) (nil) 0042:warn:setupapi:SetupDiGetClassDevsExW unsupported flags 00000002 0042:trace:setupapi:SetupDiCreateDeviceInfoListExW {4d36e96e-e325-11ce-bfc1-08002be10318} (nil) (null) (nil) 0042:Call ntdll.RtlAllocateHeap(00110000,00000000,00000024) ret=7dd89d2e 0042:Ret ntdll.RtlAllocateHeap() retval=0014b830 ret=7dd89d2e 0042:trace:setupapi:SETUPDI_EnumerateDevices 0x14b830, {4d36e96e-e325-11ce-bfc1-08002be10318}, (null), 00000002 0042:Call advapi32.RegCreateKeyExW(80000002,7ddb2160 L"System\CurrentControlSet\Enum",00000000,00000000,00000000,00020019,00000000,007dfb3c,00000000) ret=7dd8c5f4 0042:Ret advapi32.RegCreateKeyExW() retval=00000000 ret=7dd8c5f4 0042:Call advapi32.RegEnumKeyExW(0000009c,00000000,007df928,007dfb34,00000000,00000000,00000000,00000000) ret=7dd8c6dd 0042:Ret advapi32.RegEnumKeyExW() retval=00000103 ret=7dd8c6dd 0042:Call advapi32.RegCloseKey(0000009c) ret=7dd8c779 0042:Ret advapi32.RegCloseKey() retval=00000000 ret=7dd8c779 0042:Ret setupapi.SetupDiGetClassDevsW() retval=0014b830 ret=004158e4 0042:Call setupapi.SetupDiEnumDeviceInfo(0014b830,00000000,007dfcc4) ret=0041594b 0042:trace:setupapi:SetupDiEnumDeviceInfo 0x14b830 0 0x7dfcc4 0042:Ret setupapi.SetupDiEnumDeviceInfo() retval=00000000 ret=0041594b 0042:Call KERNEL32.GetLastError() ret=004159ff 0042:Ret KERNEL32.GetLastError() retval=00000103 ret=004159ff 0042:Call setupapi.SetupDiDestroyDeviceInfoList(0014b830) ret=00415a5b 0042:trace:setupapi:SetupDiDestroyDeviceInfoList 0x14b830 ... 0042:Ret setupapi.SetupDiDestroyDeviceInfoList() retval=00000001 ret=00415a5b --- snip ---
'{4d36e96e-e325-11ce-bfc1-08002be10318}' device class instance(s) data is obviously missing.
MSDN:
--- quote --- System-Defined Device Setup Classes Available to Vendors
The following classes and GUIDs are defined by the operating system. Unless otherwise noted, these classes and GUIDs can be used to install devices (or drivers) on Windows 2000 and later versions of Windows: ... Monitor
Class = Monitor ClassGuid = {4d36e96e-e325-11ce-bfc1-08002be10318}
This class includes display monitors. An INF for a device of this class installs no device driver(s), but instead specifies the features of a particular monitor to be stored in the registry for use by drivers of video adapters. (Monitors are enumerated as the child devices of display adapters.)
... --- snip ---
Faking at least one monitor in registry allows to get it a bit further:
--- snip --- ... 0035:Call setupapi.SetupDiGetClassDevsW(007dfd34,00000000,00000000,00000002) ret=004158e4 0035:trace:setupapi:SetupDiGetClassDevsExW {4d36e96e-e325-11ce-bfc1-08002be10318} (null) (nil) 0x00000002 (nil) (null) (nil) 0035:warn:setupapi:SetupDiGetClassDevsExW unsupported flags 00000002 0035:trace:setupapi:SetupDiCreateDeviceInfoListExW {4d36e96e-e325-11ce-bfc1-08002be10318} (nil) (null) (nil) ... 0035:trace:setupapi:SETUPDI_EnumerateDevices 0x14c508, {4d36e96e-e325-11ce-bfc1-08002be10318}, (null), 00000002 ... 0035:trace:setupapi:SETUPDI_EnumerateMatchingDevices L"DISPLAY" 0035:Call advapi32.RegEnumKeyExW(000000a0,00000000,007df6b8,007df8c0,00000000,00000000,00000000,00000000) ret=7dcf9430 0035:Ret advapi32.RegEnumKeyExW() retval=00000000 ret=7dcf9430 0035:Call advapi32.RegOpenKeyExW(000000a0,007df6b8 L"Default_Monitor",00000000,00020019,007df6b4) ret=7dcf946f 0035:Ret advapi32.RegOpenKeyExW() retval=00000000 ret=7dcf946f 0035:trace:setupapi:SETUPDI_EnumerateMatchingDevices L"Default_Monitor" 0035:trace:setupapi:SETUPDI_EnumerateMatchingDeviceInstances L"DISPLAY" L"Default_Monitor" ... 0035:trace:setupapi:SETUPDI_AddDeviceToSet 0x14c508, {4d36e96e-e325-11ce-bfc1-08002be10318}, 0, L"DISPLAY\Default_Monitor\4&2abfaa30&0&00000001&00&02", 0 ... 0035:trace:setupapi:SetupDiSetDeviceRegistryPropertyW 0x14c508 0x14c620 8 0x7df352 76 0035:Call advapi32.RegSetValueExW(000000b0,7dd1efa4 L"ClassGUID",00000000,00000001,007df352,0000004c) ret=7dcfb8b1 0035:Ret advapi32.RegSetValueExW() retval=00000000 ret=7dcfb8b1 ... ... 0035:Ret setupapi.SetupDiGetClassDevsW() retval=0014c508 ret=004158e4 0035:Call setupapi.SetupDiEnumDeviceInfo(0014c508,00000000,007dfcc4) ret=0041594b 0035:trace:setupapi:SetupDiEnumDeviceInfo 0x14c508 0 0x7dfcc4 0035:Ret setupapi.SetupDiEnumDeviceInfo() retval=00000001 ret=0041594b 0035:Call setupapi.SetupDiGetDeviceRegistryPropertyW(0014c508,007dfcc4,00000000,00000000,00000000,00000000,007df828) ret=004151f9 0035:trace:setupapi:SetupDiGetDeviceRegistryPropertyW 14c508 0x7dfcc4 0 (nil) (nil) 0 0x7df828 0035:Call advapi32.RegQueryValueExW(000000b0,7dd1f19c L"DeviceDesc",00000000,00000000,00000000,007df75c) ret=7dcfb519 0035:Ret advapi32.RegQueryValueExW() retval=00000000 ret=7dcfb519 0035:Ret setupapi.SetupDiGetDeviceRegistryPropertyW() retval=00000000 ret=004151f9 ... 0035:Call setupapi.SetupDiGetDeviceRegistryPropertyW(0014c508,007dfcc4,00000000,00000000,007df84c,00000400,00000000) ret=004152b2 0035:trace:setupapi:SetupDiGetDeviceRegistryPropertyW 14c508 0x7dfcc4 0 (nil) 0x7df84c 1024 (nil) 0035:Call advapi32.RegQueryValueExW(000000b0,7dd1f19c L"DeviceDesc",00000000,00000000,007df84c,007df75c) ret=7dcfb519 0035:Ret advapi32.RegQueryValueExW() retval=00000000 ret=7dcfb519 0035:Ret setupapi.SetupDiGetDeviceRegistryPropertyW() retval=00000001 ret=004152b2 0035:Call KERNEL32.GetLastError() ret=004bdc45 0035:Ret KERNEL32.GetLastError() retval=0000007a ret=004bdc45 ... 0035:Call setupapi.SetupDiGetDeviceRegistryPropertyW(0014c508,007dfcc4,0000001e,00000000,007dfc8c,00000038,00000000) ret=00415839 0035:trace:setupapi:SetupDiGetDeviceRegistryPropertyW 14c508 0x7dfcc4 30 (nil) 0x7dfc8c 56 (nil) 0035:Ret setupapi.SetupDiGetDeviceRegistryPropertyW() retval=00000000 ret=00415839 ... 0035:Call setupapi.SetupDiEnumDeviceInfo(0014c508,00000001,007dfcc4) ret=004159ef 0035:trace:setupapi:SetupDiEnumDeviceInfo 0x14c508 1 0x7dfcc4 0035:Ret setupapi.SetupDiEnumDeviceInfo() retval=00000000 ret=004159ef 0035:Call KERNEL32.GetLastError() ret=004159ff 0035:Ret KERNEL32.GetLastError() retval=00000103 ret=004159ff 0035:Call setupapi.SetupDiDestroyDeviceInfoList(0014c508) ret=00415a5b 0035:trace:setupapi:SetupDiDestroyDeviceInfoList 0x14c508 ... --- snip ---
0x1e = SPDRP_DEVICE_POWER_DATA -> not handled
Source: https://source.winehq.org/git/wine.git/blob/ab92627e19f10d7ad23abb101b21ec7b...
--- snip --- 3047 static const struct PropertyMapEntry PropertyMap[] = { 3048 { REG_SZ, "DeviceDesc", DeviceDesc }, 3049 { REG_MULTI_SZ, "HardwareId", HardwareId }, 3050 { REG_MULTI_SZ, "CompatibleIDs", CompatibleIDs }, 3051 { 0, NULL, NULL }, /* SPDRP_UNUSED0 */ 3052 { REG_SZ, "Service", Service }, 3053 { 0, NULL, NULL }, /* SPDRP_UNUSED1 */ 3054 { 0, NULL, NULL }, /* SPDRP_UNUSED2 */ 3055 { REG_SZ, "Class", Class }, 3056 { REG_SZ, "ClassGUID", ClassGUID }, 3057 { REG_SZ, "Driver", Driver }, 3058 { REG_DWORD, "ConfigFlags", ConfigFlags }, 3059 { REG_SZ, "Mfg", Mfg }, 3060 { REG_SZ, "FriendlyName", FriendlyName }, 3061 { REG_SZ, "LocationInformation", LocationInformation }, 3062 { 0, NULL, NULL }, /* SPDRP_PHYSICAL_DEVICE_OBJECT_NAME */ 3063 { REG_DWORD, "Capabilities", Capabilities }, 3064 { REG_DWORD, "UINumber", UINumber }, 3065 { REG_MULTI_SZ, "UpperFilters", UpperFilters }, 3066 { REG_MULTI_SZ, "LowerFilters", LowerFilters }, 3067 }; --- snip ---
MSDN: https://msdn.microsoft.com/en-us/library/windows/hardware/ff551967%28v=vs.85...
--- quote --- The SetupDiGetDeviceRegistryProperty function retrieves a specified Plug and Play device property.
BOOL SetupDiGetDeviceRegistryProperty( _In_ HDEVINFO DeviceInfoSet, _In_ PSP_DEVINFO_DATA DeviceInfoData, _In_ DWORD Property, _Out_opt_ PDWORD PropertyRegDataType, _Out_opt_ PBYTE PropertyBuffer, _In_ DWORD PropertyBufferSize, _Out_opt_ PDWORD RequiredSize );
Parameters
DeviceInfoSet [in]
A handle to a device information set that contains a device information element that represents the device for which to retrieve a Plug and Play property. DeviceInfoData [in]
A pointer to an SP_DEVINFO_DATA structure that specifies the device information element in DeviceInfoSet. Property [in]
One of the following values that specifies the property to be retrieved: ... SPDRP_DEVICE_POWER_DATA
(Windows XP and later) The function retrieves a CM_POWER_DATA structure that contains the device's power management information.
--- quote ---
ProtectionID for documentation:
--- snip --- -=[ ProtectionID v0.6.7.0 OCTOBER]=- (c) 2003-2015 CDKiLLER & TippeX Build 31/10/15-14:35:10 Ready... Scanning -> Z:\home\focht\Downloads\DreamAquariumXP.exe File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 8684083 (0848233h) Byte(s) | Machine: 0x14C (I386) Compilation TimeStamp : 0x4B1AE3CC -> Sat 05th Dec 2009 22:50:52 (GMT) [TimeStamp] 0x4B1AE3CC -> Sat 05th Dec 2009 22:50:52 (GMT) | PE Header | - | Offset: 0x000000E0 | VA: 0x004000E0 | - -> File has 8635955 (083C633h) bytes of appended data starting at offset 0BC00h [File Heuristics] -> Flag #1 : 00000000000001011100000000000100 (0x0005C004) [Entrypoint Section Entropy] : 6.51 (section #0) ".text " | Size : 0x5C4C (23628) byte(s) [DllCharacteristics] -> Flag : (0x8000) -> TSA [SectionCount] 5 (0x5) | ImageSize 0x3D000 (249856) byte(s) [-= Installer =-] Nullsoft SFX Setup v2.46 - Scan Took : 0.327 Second(s) [000000147h (327) tick(s)] [562 of 577 scan(s) done]
Scanning -> C:\Program Files\Dream Aquarium\Dream_Aquarium.scr File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 1887744 (01CCE00h) Byte(s) | Machine: 0x14C (I386) Compilation TimeStamp : 0x5269B2A9 -> Thu 24th Oct 2013 23:52:09 (GMT) [TimeStamp] 0x5269B2A9 -> Thu 24th Oct 2013 23:52:09 (GMT) | PE Header | - | Offset: 0x00000110 | VA: 0x00400110 | - [File Heuristics] -> Flag #1 : 00000000000001001100010000000000 (0x0004C400) [Entrypoint Section Entropy] : 6.75 (section #0) ".text " | Size : 0x174DBC (1527228) byte(s) [DllCharacteristics] -> Flag : (0x8000) -> TSA [SectionCount] 4 (0x4) | ImageSize 0x1DA000 (1941504) byte(s) [CdKeySerial] found "Trial version" @ VA: 0x00179980 / Offset: 0x00178B80 ... [CompilerDetect] -> Visual C++ 9.0 (Visual Studio 2008) [!] File appears to have no protection or is using an unknown protection - Scan Took : 0.747 Second(s) [0000002EBh (747) tick(s)] [503 of 577 scan(s) done] --- snip ---
Resource section present but no version resource at all. Software release/version management at its best.
$ sha1sum DreamAquariumXP.exe ac95161c1e675a8eb6102f339fcae52e02f5659b DreamAquariumXP.exe
$ du -sh DreamAquariumXP.exe 8.3M DreamAquariumXP.exe
$ wine --version wine-1.8-rc1-89-g4a315cd
Regards
https://bugs.winehq.org/show_bug.cgi?id=39210
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |austinenglish@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=39210
Zhiyi Zhang zzhang@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zzhang@codeweavers.com Assignee|wine-bugs@winehq.org |zzhang@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=39210
Zhiyi Zhang zzhang@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|zzhang@codeweavers.com |wine-bugs@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=39210
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Dream Aquarium |Dream Aquarium |(screensaver) fails to read |(screensaver) fails to read |monitor power state |monitor power state |('{4d36e96e-e325-11ce-bfc1- |('{4d36e96e-e325-11ce-bfc1- |08002be10318}' device class |08002be10318}' monitor |GUID registry data missing) |device class registry data | |missing) URL|http://www.dreamaquarium.co |https://web.archive.org/web |m/download_xp.html |/20170929030653/http://www. | |dreamaquarium.com/DreamAqua | |riumXP.exe
--- Comment #8 from Anastasius Focht focht@gmx.net --- Hello folks,
progress has been made:
* https://source.winehq.org/git/wine.git/commitdiff/014f61539bd82cad2e35db5b6f... ("wine.inf: Add display and monitor classes.")
* https://source.winehq.org/git/wine.git/commitdiff/288a6625ad0177e258a0db1da1... ("setupapi: Set device SPDRP_CLASS registry property in create_device().")
The second part, that is adding support for 'SPDRP_DEVICE_POWER_DATA' property is still missing (comment #7).
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files (x86)/Dream Aquarium
$ WINEDEBUG=+seh,+relay,+setupapi wine ./Dream_Aquarium.scr -S >>log.txt 2>&1 ... 0039:Call setupapi.SetupDiGetDeviceRegistryPropertyW(001802d0,007dfdc4,0000001e,00000000,007dfd8c,00000038,00000000) ret=00415839 0039:trace:setupapi:SetupDiGetDeviceRegistryPropertyW devinfo 001802D0, device_data 007DFDC4, prop 30, type 00000000, buffer 007DFD8C, size 56, required 00000000 0039:Ret setupapi.SetupDiGetDeviceRegistryPropertyW() retval=00000000 ret=00415839 0039:Call KERNEL32.GetLastError() ret=00415841 0039:Ret KERNEL32.GetLastError() retval=00000000 ret=00415841 ... --- snip ---
Application log files:
--- snip --- $ pwd /home/focht/.wine/drive_c/users/focht/Application Data/Dream Aquarium
$ cat stdout.txt setVerbose(5,init) CERROR allowed ec:3 allow:3 CERR allowed activetimes= aqua versions: 1.27 1.27 build:5 installDir=C:\Program Files (x86)\Dream Aquarium\ countryCode=-1 countryName=�lK TRIAL has valid license 0 use full version: 0 hasValidLicenseButIsRunningTrialVersion:0 about to check if monitors are asleep --- snip ---
--- snip --- $ pwd /home/focht/.wine/drive_c/users/focht/Application Data/Dream Aquarium
$ cat runLog.txt start 2737: Tue Nov 19 23:19:57 2019 -S 2737: Monitors Asleep 2737: Closing (0 secs) Tue Nov 19 23:19:57 2019 --- snip ---
https://source.winehq.org/git/wine.git/blob/ab92627e19f10d7ad23abb101b21ec7b...
$ wine --version wine-4.20-46-g288a6625ad
Regards
https://bugs.winehq.org/show_bug.cgi?id=39210
--- Comment #9 from Zhiyi Zhang zzhang@codeweavers.com --- SPDRP_DEVICE_POWER_DATA property is not a value in the registry. I suspect SetupDiGetDeviceRegistryPropertyW sends an IRP_MN_QUERY_CAPABILITIES request to the PnP manager, eventually monitor.sys and convert data returned to a struct CM_POWER_DATA. Same for some other SPDRP_* properties such as SPDRP_PHYSICAL_DEVICE_OBJECT_NAME.
https://bugs.winehq.org/show_bug.cgi?id=39210
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |48144
https://bugs.winehq.org/show_bug.cgi?id=39210
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |288a6625ad0177e258a0db1da16 | |6d292ff420b1e Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #10 from Anastasius Focht focht@gmx.net --- Hello Zhiyi
--- quote --- SPDRP_DEVICE_POWER_DATA property is not a value in the registry. --- quote ---
well I didn't imply that when adjusting the summary.
I've decided to split the two issues apart. The first part (monitor device class) is more likely used/queried by other apps/installers as well, although no other system info/diagnostic/benchmark app has been mentioned/linked here.
Thanks Zhiyi.
Regards
https://bugs.winehq.org/show_bug.cgi?id=39210
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.21.