[Bug 21790] New: 3D Rad demo "BeltBall" can't use its bundled mfc80u.dll?
http://bugs.winehq.org/show_bug.cgi?id=21790 Summary: 3D Rad demo "BeltBall" can't use its bundled mfc80u.dll? Product: Wine Version: 1.1.38 Platform: x86 URL: http://www.3drad.com/games/BeltBall%20v102.exe OS/Version: Linux Status: UNCONFIRMED Keywords: download Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs(a)winehq.org ReportedBy: dank(a)kegel.com The smallest demo from http://www.3drad.com/free-pc-games.php is the 8MB http://www.3drad.com/games/BeltBall%20v102.exe, sha1sum d8827274480b0391ad200478b2ebe26a2658166d BeltBall v102.exe It installs fine, but when you start it, it complains fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC80.CRT" (8.0.50727.762) and puts up a dialog saying "The dynamic link library 'MFC80U.DLL' could not be found" even though it's installed in ./3D Rad Games/BeltBall v102/Microsoft.VC80.MFC/mfc80u.dll Perhaps the installer forgot to set an app path or a manifest or something? winetricks vc2005 works around the problem. The game installs and runs fine on Vista; I guess we need to try it on an old XP box that doesn't have vc2005 runtimes already and see if it works there to confirm this bug. (I checked on Vista, and there's no entry for the app in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths, for what it's worth. And there doesn't seem to be a manifest file next to the .exe.) -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 Dan Kegel <dank(a)kegel.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|1.1.38 |1.1.39 --- Comment #1 from Dan Kegel <dank(a)kegel.com> 2010-02-20 19:11:08 --- (This was with today's git.) -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 Xavier Vachon <xvachon(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xvachon(a)gmail.com --- Comment #2 from Xavier Vachon <xvachon(a)gmail.com> 2011-04-04 16:55:11 CDT --- Still a bug in git (1.3.17) -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht(a)gmx.net Component|-unknown |loader Summary|3D Rad demo "BeltBall" |3D Rad demo "BeltBall" |can't use its bundled |can't use its bundled |mfc80u.dll? |mfc80u.dll (enhance | |assembly search sequence to | |include private assemblies | |in application subfolders) Ever Confirmed|0 |1 --- Comment #3 from Anastasius Focht <focht(a)gmx.net> 2011-10-17 16:17:10 CDT --- Hello, well the application developers decided to deploy the VC++ runtime as private assemblies in application subfolders and not in global WinSxS store. Wine currently only searches global shared assembly store and not in folders of the application's directory structure. See MSDN: msdn.microsoft.com/en-us/library/aa374224.aspx (Assembly Searching Sequence) A simplified assembly search sequence would be: 1) WinSxS folder 2) <appdir>\<assemblyname>.dll 3) <appdir>\<assemblyname>.manifest 4) <appdir>\<assemblyname>\<assemblyname>.dll 5) <appdir>\<assemblyname>\<assemblyname>.manifest ... Interesting tidbit: The application uses some sandboxing/app virtualization scheme similar to Thinstall and Xenocode. Judging from the mappings/sections its most likely "MoleBox". The dll in question that has the MFC binding is not directly visible in filesystem but mapped in memory. MBX(a)28@48E1E8_### (2 KiB in AppData folder) -> "C:\3D RAD GAMES\BELTBALL V102\dll3impact.dll" (not present on disk) Dump of dll manifest from memory: --- snip --- <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> </dependentAssembly> </dependency> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.VC80.MFC" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> </dependentAssembly> </dependency> </assembly> --- snip --- $ wine --version wine-1.3.30-205-g472a8f7 Regards -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 --- Comment #4 from Austin English <austinenglish(a)gmail.com> 2012-02-03 17:42:35 CST --- Still in 1.4-rc2. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 Christian Costa <titan.costa(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |titan.costa(a)gmail.com --- Comment #5 from Christian Costa <titan.costa(a)gmail.com> 2013-06-01 09:54:13 CDT --- Still in 1.5.31. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 Andrey Gusev <andrey.goosev(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andrey.goosev(a)gmail.com --- Comment #6 from Andrey Gusev <andrey.goosev(a)gmail.com> 2013-09-20 23:47:12 CDT --- The same with Death to Spies - Moment of Truth demo. It's also needed mfc80u.dll fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC80.MFC" (8.0.50727.762) err:module:import_dll Library MFC80U.DLL (which is needed by L"C:\\Program Files\\Death to Spies - Moment of Truth Demo\\TruthSetup.exe") not found err:module:LdrInitializeThunk Main exe initialization for L"C:\\Program Files\\Death to Spies - Moment of Truth Demo\\TruthSetup.exe" failed, status c0000135 On 1.7.2 -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 Nikolay Sivov <bunglehead(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|loader |ntdll -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 --- Comment #7 from Nikolay Sivov <bunglehead(a)gmail.com> 2013-09-23 11:02:18 CDT --- It seems to me that a problem with current code is that module file name is not resolved correctly: --- 0025:trace:actctx:RtlCreateActivationContext 0x32f780 0000008a 0025:trace:actctx:RtlCreateActivationContext module=0x10000000 0025:trace:actctx:RtlCreateActivationContext appdir init=L"C:\\USERS\\NSIVOV\\LOCAL SETTINGS\\APPLICATION DATA\\.#\\" 0025:trace:actctx:get_manifest_in_module looking for res #0002 in module 0x10000000 L"C:\\USERS\\NSIVOV\\LOCAL SETTINGS\\APPLICATION DATA\\.#\\MBX(a)24@48E1E8.###" 0025:trace:actctx:parse_manifest parsing manifest loaded from (null) base dir (null) ... 0025:trace:actctx:lookup_assembly looking for name=L"Microsoft.VC80.MFC" version=8.0.50727.762 arch=L"x86" 0025:warn:actctx:lookup_manifest_file no matching file for L"x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.*.*_*_*.manifest" 0025:trace:actctx:lookup_assembly appdir=L"C:\\USERS\\NSIVOV\\LOCAL SETTINGS\\APPLICATION DATA\\.#\\" 0025:trace:actctx:lookup_assembly try 0 - L"C:\\USERS\\NSIVOV\\LOCAL SETTINGS\\APPLICATION DATA\\.#\\\\Microsoft.VC80.MFC.dll" 0025:trace:actctx:lookup_assembly try 0 - L"C:\\USERS\\NSIVOV\\LOCAL SETTINGS\\APPLICATION DATA\\.#\\\\Microsoft.VC80.MFC.manifest" 0025:trace:actctx:lookup_assembly try 1 - L"C:\\USERS\\NSIVOV\\LOCAL SETTINGS\\APPLICATION DATA\\.#\\\\Microsoft.VC80.MFC\\Microsoft.VC80.MFC.dll" 0025:trace:actctx:lookup_assembly try 1 - L"C:\\USERS\\NSIVOV\\LOCAL SETTINGS\\APPLICATION DATA\\.#\\\\Microsoft.VC80.MFC\\Microsoft.VC80.MFC.manifest" 0025:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC80.MFC" (8.0.50727.762) --- This is a log with some additional TRACEs I added. (In reply to comment #3)
The dll in question that has the MFC binding is not directly visible in filesystem but mapped in memory.
MBX(a)28@48E1E8_### (2 KiB in AppData folder) -> "C:\3D RAD GAMES\BELTBALL V102\dll3impact.dll" (not present on disk)
Hi, Anastasius. Where does this module name come from? So far incorrect path is the only problem that breaks dependency lookup. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |obfuscation --- Comment #8 from Anastasius Focht <focht(a)gmx.net> 2013-09-23 16:51:52 CDT --- Hello Nikolay, well, as I said in my comment #3 ... It's an app virtualization scheme similar to Thinstall and Xenocode that hooks various native API. Invalid paths/names as seen in Wine traces are in fact part of all those schemes. They have no meaning to outside (filesystem) because calls get intercepted and parameters are internally translated/mapped to different objects. If it still doesn't work one of the reasons could be that Wine doesn't behave like native, e.g. misses out some internal native API calls/sequences in order for those hooks to work. Regards -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 Nikolay Sivov <bunglehead(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|3D Rad demo "BeltBall" |3D Rad demo "BeltBall" |can't use its bundled |can't use its bundled |mfc80u.dll (enhance |mfc80u.dll (assembly search |assembly search sequence to |fails as in-memory dll path |include private assemblies |is not set properly due to |in application subfolders) |obfuscation scheme) --- Comment #9 from Nikolay Sivov <bunglehead(a)gmail.com> 2013-09-24 00:11:56 CDT --- (In reply to comment #8)
If it still doesn't work one of the reasons could be that Wine doesn't behave like native, e.g. misses out some internal native API calls/sequences in order for those hooks to work.
I see. Adjusting summary, as it's not limited to assembly search, which actually should work if a valid path is given.
Regards
-- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 --- Comment #10 from Anastasius Focht <focht(a)gmx.net> 2013-09-24 03:01:05 CDT --- Hello Nikolay, I had a quick look and it seems Wine just bails when the global winsxs manifest doesn't match which is expected because it covers only a single revision "8.0.50727.4053" (not a range). --- snip --- 0009:trace:actctx:RtlCreateActivationContext 0x33f6fc 0000008a 0009:trace:actctx:get_manifest_in_module looking for res #0002 in module 0x10000000 L"C:\\USERS\\FOCHT\\LOCAL SETTINGS\\APPLICATION DATA\\.#\\MBX(a)8@48E1E8.###" 0009:trace:actctx:parse_manifest parsing manifest loaded from (null) base dir (null) 0009:trace:actctx:parse_assembly_elem (0x33f4fc) 0009:trace:actctx:parse_assembly_identity_elem name=L"Microsoft.VC80.CRT" version=8.0.50727.762 arch=L"x86" 0009:trace:actctx:parse_dependent_assembly_elem adding name=L"Microsoft.VC80.CRT" version=8.0.50727.762 arch=L"x86" 0009:trace:actctx:parse_assembly_identity_elem name=L"Microsoft.VC80.MFC" version=8.0.50727.762 arch=L"x86" 0009:trace:actctx:parse_dependent_assembly_elem adding name=L"Microsoft.VC80.MFC" version=8.0.50727.762 arch=L"x86" 0009:trace:actctx:lookup_assembly looking for name=L"Microsoft.VC80.CRT" version=8.0.50727.762 arch=L"x86" 0009:trace:actctx:get_manifest_in_manifest_file loading manifest file L"\\??\\C:\\windows\\winsxs\\manifests\\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_deadbeef.manifest" 0009:trace:actctx:parse_manifest parsing manifest loaded from L"\\??\\C:\\windows\\winsxs\\manifests\\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_deadbeef.manifest" base dir L"x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_deadbeef" 0009:trace:actctx:parse_assembly_elem (0x33f36c) 0009:trace:actctx:parse_assembly_identity_elem name=L"Microsoft.VC80.CRT" version=8.0.50727.4053 arch=L"x86" 0009:trace:actctx:parse_file_elem name=L"msvcr80.dll" 0009:trace:actctx:parse_file_elem name=L"msvcp80.dll" 0009:trace:actctx:parse_file_elem name=L"msvcm80.dll" 0009:trace:actctx:lookup_assembly looking for name=L"Microsoft.VC80.MFC" version=8.0.50727.762 arch=L"x86" 0009:warn:actctx:lookup_manifest_file no matching file for L"x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.*.*_*_*.manifest" 0009:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC80.MFC" (8.0.50727.762) --- snip --- lookup_assembly -> lookup_winsxs() -> stop Maybe it shouldn't stop here but continue searching local manifests for a match. @Andrey Gusev (comment #6) Your problem has nothing to do with this bug. Use 'winetricks vcrun2005' to install missing MFC80u.dll Regards -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
http://bugs.winehq.org/show_bug.cgi?id=21790 --- Comment #11 from Nikolay Sivov <bunglehead(a)gmail.com> 2013-09-24 03:20:39 CDT --- No, I don't think it's the case. It stops if lookup_winsxs() fails for a reason that's not STATUS_NO_SUCH_FILE. It's normal to get this status when no assembly is found in winsxs. A part of log I posted in comment 7 contains all local paths it tries after lookup_winsxs() failed to find it. Some traces added to for(..) loop show that it's actually executed (try number in my log is 'i' value). So the real problem seems as you described - we don't get a proper path to application dir for that module loaded with MBX(a)8@48E1E8.### name. Probably get_module_filename() should use some hooked call instead of picking data from loader structures directly, or a failure happens even earlier and loader data should actually point to application dir and we shouldn't even see this generated names. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email 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.
https://bugs.winehq.org/show_bug.cgi?id=21790 --- Comment #12 from Andrey Gusev <andrey.goosev(a)gmail.com> --- Still in 1.7.37 -- 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.
https://bugs.winehq.org/show_bug.cgi?id=21790 super_man(a)post.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man(a)post.com --- Comment #13 from super_man(a)post.com --- still fails 1.7.51 -- 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.
https://bugs.winehq.org/show_bug.cgi?id=21790 Bruno Jesus <00cpxxx(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.3drad.com/games/ |http://web.archive.org/web/ |BeltBall%20v102.exe |20150317165053/http://3drad | |.com/games/BeltBall%20v102. | |exe --- Comment #14 from Bruno Jesus <00cpxxx(a)gmail.com> --- Still in Wine 2.1, winetricks vcrun2005 is still a workaround. -- 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.
https://bugs.winehq.org/show_bug.cgi?id=21790 Bruno Jesus <00cpxxx(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |21791 -- 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.
https://bugs.winehq.org/show_bug.cgi?id=21790 winetest(a)luukku.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |winetest(a)luukku.com --- Comment #15 from winetest(a)luukku.com --- still valid wine 5.20. -- 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.
https://bugs.winehq.org/show_bug.cgi?id=21790 --- Comment #16 from Gijs Vermeulen <gijsvrm(a)gmail.com> --- Still present with wine-9.0rc1. -- 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.
participants (2)
-
wine-bugs@winehq.org -
WineHQ Bugzilla