https://bugs.winehq.org/show_bug.cgi?id=43408
Bug ID: 43408 Summary: Running Quest with Dotnet 4.0 crashes Product: Wine Version: 2.12 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: anthonysharkboy99@yahoo.com Distribution: ---
Created attachment 58755 --> https://bugs.winehq.org/attachment.cgi?id=58755 Quest Error Log
I know that dotnet 4.0 doesn't fully work as of yet. However I wanted to submit a report because it might improve the situation.
It should be noted that I am running the staging version. However I haven't tested the issue in normal Wine. Therefore I haven't submitted it as a staging specific issue yet.
So after creating a 32bit prefix and installing Dotnet 4.0 by using Winetricks, Quest will outright crash. It will refuse to boot unless you run it from terminal. Once you run it from terminal, Quest will spit out an error report. I have posted the crash log and attached it.
Quest can be downloaded at the following site should you want to recreate the issue.
http://textadventures.co.uk/quest/desktop
https://bugs.winehq.org/show_bug.cgi?id=43408
Audra anthonysharkboy99@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |dotnet Hardware|x86 |x86-64 Distribution|--- |Ubuntu
https://bugs.winehq.org/show_bug.cgi?id=43408
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #1 from Fabian Maurer dark.shadow4@web.de --- Created attachment 58767 --> https://bugs.winehq.org/attachment.cgi?id=58767 My crash log
While it doesn't work for me, it does at least show the GUI and download a bit of stuff into a list.
I think it looks a lot like Bug 37988. Could you please make sure you installed samba/winbind, and if that doesn't help provide a full log?
https://bugs.winehq.org/show_bug.cgi?id=43408
--- Comment #2 from Audra anthonysharkboy99@yahoo.com --- Created attachment 58774 --> https://bugs.winehq.org/attachment.cgi?id=58774 Backtrace Error Report
https://bugs.winehq.org/show_bug.cgi?id=43408
--- Comment #3 from Fabian Maurer dark.shadow4@web.de --- 1) Did you make sure to install samba/winbind? 2) Please provide a full log, including all the terminal output the program gives, all the warnings, fixmes, error, the crash, everything.
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
https://bugs.winehq.org/show_bug.cgi?id=43408
--- Comment #5 from Audra anthonysharkboy99@yahoo.com --- Everything thus far is working great with those programs installed.
However, while trying to run any .Quest file with the program, I get the error "Error Launching Game:No Voice Installed on the System or none available with the current security setting."
I have no clue what the workaround is and there isn't much help on Google.
https://bugs.winehq.org/show_bug.cgi?id=43408
--- Comment #6 from Gijs Vermeulen gijsvrm@gmail.com --- I tested with this app with wine-6.0-rc6 and I can't reproduce this, so this might have been fixed. Can you retest?
The I did install dotnet40 with winetricks because it doesn't work with wine-mono. I'll open a report for that.
https://bugs.winehq.org/show_bug.cgi?id=43408
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |f6cab98d4b7c423ef9487657b88 | |c6ff6f8eb452f URL|https://github.com/textadve |https://web.archive.org/web |ntures/quest/releases/downl |/20210114142858/https://git |oad/v5.7.1/quest571.exe |hub.com/textadventures/ques | |t/releases/download/v5.7.1/ | |quest571.exe Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello folks,
as already mentioned in my comment #4, the bug can't be reproduced with mainline Wine 2.x series since it depends on Wine-Staging patchset. With mainline Wine the following crash is encountered instead:
--- snip --- ... err:eventlog:ReportEventW L"Application: Quest.exe\nFramework Version: v4.0.30319\nDescription: The process was terminated due to an unhandled exception.\nException Info: System.AccessViolationException\nStack:\n at MS.Internal.Text.TextInterface.Font.CreateFontFace()\n at MS.Internal.Text.TextInterface.Font.AddFontFaceToCa"... fixme:advapi:DeregisterEventSource (0xcafe4242) stub
Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at MS.Internal.Text.TextInterface.Font.CreateFontFace() at MS.Internal.Text.TextInterface.Font.AddFontFaceToCache() at MS.Internal.Text.TextInterface.Font.GetFontFace() at MS.Internal.FontCache.FontFaceLayoutInfo.IntMap.TryGetValues(UInt32* pKeys, UInt32 characterCount, UInt16* pIndices) at System.Windows.Media.GlyphTypeface.GetGlyphMetricsAndIndicesOptimized(UInt32* pCodepoints, Int32 characterCount, Double emSize, UInt16[] glyphIndices, GlyphMetrics[] glyphMetrics, TextFormattingMode textFormattingMode, Boolean isSideways) at System.Windows.Media.GlyphTypeface.GetGlyphMetricsOptimized(CharacterBufferRange characters, Double emSize, UInt16[] glyphIndices, GlyphMetrics[] glyphMetrics, TextFormattingMode textFormattingMode, Boolean isSideways) at System.Windows.Media.Typeface.CheckFastPathNominalGlyphs(CharacterBufferRange charBufferRange, Double emSize, Double scalingFactor, Double widthMax, Boolean keepAWord, Boolean numberSubstitution, CultureInfo cultureInfo, TextFormattingMode textFormattingMode, Boolean isSideways, Int32& stringLengthFit) at MS.Internal.TextFormatting.SimpleRun.CreateSimpleTextRun(CharacterBufferRange charBufferRange, TextRun textRun, TextFormatterImp formatter, Int32 widthLeft, Boolean emergencyWrap) at MS.Internal.TextFormatting.SimpleRun.Create(FormatSettings settings, CharacterBufferRange charString, TextRun textRun, Int32 cp, Int32 cpFirst, Int32 runLength, Int32 widthLeft) at MS.Internal.TextFormatting.SimpleTextLine.Create(FormatSettings settings, Int32 cpFirst, Int32 paragraphWidth) at MS.Internal.TextFormatting.TextFormatterImp.FormatLineInternal(TextSource textSource, Int32 firstCharIndex, Int32 lineLength, Double paragraphWidth, TextParagraphProperties paragraphProperties, TextLineBreak previousLineBreak, TextRunCache textRunCache) at MS.Internal.TextFormatting.TextFormatterImp.FormatLine(TextSource textSource, Int32 firstCharIndex, Double paragraphWidth, TextParagraphProperties paragraphProperties, TextLineBreak previousLineBreak, TextRunCache textRunCache) at System.Windows.Controls.TextBlock.MeasureOverride(Size constraint) ... Backtrace: =>0 0x001100a8 (0x0033b728) 1 0x7d5bbb57 factory_get_cached_fontface+0x116(iface=0x5ec0b00, font_files=0x5f381ec, index=0, simulations=DWRITE_FONT_SIMULATIONS_NONE, font_face=0x33b8c8, cached_list=0x33b7d0) [/home/focht/projects/wine/mainline-build-2.14-i686/dlls/dwrite/../../include/dwrite_3.h:4868] in dwrite (0x0033b798) 2 0x7d5a4c37 get_fontface_from_font+0x46(font=<is not available>, fontface=<is not available>) [/home/focht/projects/wine/mainline-src-2.14/dlls/dwrite/font.c:1380] in dwrite (0x0033b808) 3 0x7d5a4cf3 dwritefont3_CreateFontFace+0x32(iface=<is not available>, fontface=<is not available>) [/home/focht/projects/wine/mainline-src-2.14/dlls/dwrite/font.c:1666] in dwrite (0x0033b838) 4 0x7d5974b7 dwritefont_CreateFontFace+0x36(iface=<is not available>, fontface=<is not available>) [/home/focht/projects/wine/mainline-build-2.14-i686/dlls/dwrite/../../include/dwrite_3.h:1208] in dwrite (0x0033b878) 5 0x064e0713 (0x0033b8d8) ... --- snip ---
That one went away with Wine 2.15 release. It was likely one of these:
--- snip --- $ git log --oneline wine-2.14...wine-2.15 -- dlls/dwrite eb212c1939b dwrite: Simplify GetFontSignature(). b93d9d93e78 dwrite: Added a helper to check for supported characters. fb5079d8870 dwrite: Protect cached fontface list when accessed from multiple threads. --- snip ---
Now to the original problem, related to Wine-Staging patchset:
https://github.com/wine-compholio/wine-staging/tree/v2.12/patches/windowscod...
The aforementioned patchset was removed in this large rebase here:
https://github.com/wine-staging/wine-staging/commit/1b7ebd3bb8b7fc6fa3347da8... (Part of Wine-Staging 4.9 release).
I'm not in favour of doing things this way. Patch removal should be always per-patchset (atomic) commits like patch additions and not be buried together with rebase/updates of other unrelated patchsets. It messes up the tracebility.
Relevant mainline commits that causes removal from Wine-Staging:
* https://source.winehq.org/git/wine.git/commitdiff/f6cab98d4b7c423ef9487657b8... ("windowscodecs: Improve compatibility of IMILBitmap interface.")
* https://source.winehq.org/git/wine.git/commitdiff/36095e2dedb264b207fbeae9f7... ("windowscodecs: Add support for IMILBitmapScaler interface.")
Part of Wine 4.9 release.
Thanks Dmitry
The removed patch from Wine-Staging:
https://github.com/wine-staging/wine-staging/blob/6ce73c283d4953e348ef87e237...
and the commit in mainline:
https://source.winehq.org/git/wine.git/commitdiff/f6cab98d4b7c423ef9487657b8...
are not exactly the same. Bug 34764 targeted MIL 3.x while this bug 43408 targets MIL 4.x compat. The final version fixed both cases.
Regards
https://bugs.winehq.org/show_bug.cgi?id=43408
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 6.1.