https://bugs.winehq.org/show_bug.cgi?id=43408
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net URL| |https://github.com/textadve | |ntures/quest/releases/downl | |oad/v5.7.1/quest571.exe Keywords| |download Status|UNCONFIRMED |NEW Component|-unknown |windowscodecs Summary|Running Quest with Dotnet |Quest 5.7.x (.NET 4.0 WPF |4.0 crashes |app) crashes on direct | |access of MIL4 (Media | |Integration Layer, | |wpfgfx_v0400.dll) to | |internal bitmap | |struct/class impl (depends | |on exact layout) Ever confirmed|0 |1
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
initial bug report -> dupe of bug 37988 ("Jeskola Buzz Build 1499 (.NET 4.0 app) fails to run (samba/winbind package not installed with distro)")
Comment #2 relates to bug 34764 (".NET Framework 3.5 SP1 based WPF applications crash on direct access of MIL (Media Integration Layer) to internal bitmap struct/class impl (depends on exact layout)") but it's not an exact dupe.
Wine-staging patchset still causes crash here. Maybe they changed layout again when updating MILCore for WPF 4.0.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Quest 5
$ wine ./Quest.exe ... Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at MS.Win32.PresentationCore.UnsafeNativeMethods.MILUnknown.Release(IntPtr pIUnkown) at MS.Win32.PresentationCore.UnsafeNativeMethods.MILUnknown.ReleaseInterface(IntPtr& ptr) at System.Windows.Media.Imaging.BitmapDecoder.SetupDecoderFromUriOrStream(Uri uri, Stream stream, BitmapCacheOption cacheOption, Guid& clsId, Boolean& isOriginalWritable, Stream& uriStream, UnmanagedMemoryStream& unmanagedMemoryStream, SafeFileHandle& safeFilehandle) at System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache) at System.Windows.Media.Imaging.BitmapImage.FinalizeCreation() at System.Windows.Media.Imaging.BitmapImage.EndInit() at GameBrowser.GameListItem.m_imageClient_DownloadDataCompleted(Object sender, DownloadDataCompletedEventArgs e) at System.Net.WebClient.OnDownloadDataCompleted(DownloadDataCompletedEventArgs e) at System.Net.WebClient.DownloadDataOperationCompleted(Object arg) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) ... --- snip ---
-> 'winetricks -q windowscodecs'
After that:
--- snip --- System.InvalidOperationException: An error occurred creating the form. See Exception.InnerException for details. The error is: Parameter is not valid. ---> System.ArgumentException: Parameter is not valid. at System.Drawing.Image.get_RawFormat() at System.Windows.Forms.ToolStripItem.set_ImageTransparentColor(Color value) at TextAdventures.Quest.Toolbar.InitializeComponent() at TextAdventures.Quest.Toolbar..ctor() at TextAdventures.Quest.Player..ctor() at TextAdventures.Quest.Main.InitializeComponent() at TextAdventures.Quest.Main..ctor() --- End of inner exception stack trace --- at TextAdventures.Quest.My.MyProject.MyForms.Create__Instance__[T](T Instance) at TextAdventures.Quest.My.MyApplication.OnCreateMainForm() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() --- snip ---
--- snip --- ... 004d:Call gdiplus.GdipLoadImageFromStream(05c00030,0033e460) ret=05c1b73b ... 004d:trace:gdiplus:initialize_decoder_wic 0x5c00030,{1b7cfaf4-713f-473c-bbcd-6137425faeaf} 004d:Call KERNEL32.LoadLibraryA(7d8fee10 "windowscodecs.dll") ret=7d8da1af ... 004d:Ret rpcrt4.NdrDllGetClassObject() retval=80040111 ret=530144f6 004d:err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040154 ... 004d:err:ole:CoGetClassObject no class object {3692ca39-e082-4350-9e1f-3704cb083cd5} could be created for context 0x1 004d:Ret ole32.CoCreateInstance() retval=80040154 ret=5302d97b ... 004d:Ret gdiplus.GdipLoadImageFromStream() retval=00000001 ret=05c1b73b ... 004d:Call KERNEL32.GetProcAddress(7d880000,03c7cc32 "GdipGetImageRawFormat") ret=79171e1e 004d:Ret KERNEL32.GetProcAddress() retval=7d88d9b0 ret=79171e1e ... 004d:Call gdiplus.GdipGetImageRawFormat(00000000,0033eac4) ret=05c1d2b3 004d:trace:gdiplus:GdipGetImageRawFormat ((nil), 0x33eac4) 004d:Ret gdiplus.GdipGetImageRawFormat() retval=00000002 ret=05c1d2b3 --- snip ---
Native Windows Imaging Component (WIC) for Windows XP installed by 'winetricks' doesn't implement PNG gAMA metadata reader hence 'gdiplus' must be here native too.
https://msdn.microsoft.com/en-us/library/windows/desktop/dn280986(v=vs.85).a...
-> 'winetricks -q gdiplus'
After that the main user interface is black due to other insufficiencies. I'm too lazy to find the dupes here though.
Wine-Staging 2.x makes the user interface fully appear and usable with the aforementioned native overrides.
$ sha1sum quest571.exe 828639754a27f3576a7a86a876ee240d3a8e978e quest571.exe
$ du -sh quest571.exe 30M quest571.exe
$ wine --version wine-2.13
Regards