[Bug 56225] New: Myst deadlocks on start since Wine 3.2
https://bugs.winehq.org/show_bug.cgi?id=56225 Bug ID: 56225 Summary: Myst deadlocks on start since Wine 3.2 Product: Wine Version: 3.2 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs(a)winehq.org Reporter: alexhenrie24(a)gmail.com Distribution: --- Steps to reproduce: 1. Run `sudo sysctl vm.mmap_min_addr=0` 2. Run `DISPLAY=:1 wine MYST.EXE` In Wine 3.1, the game pops up a dialog that says "Myst requires a 256-color palettized display driver." But in Wine 3.2 and later, Wine just prints an error like the following: 00f0:err:sync:RtlpWaitForCriticalSection section 777129E0 "../wine/dlls/krnl386.exe16/syslevel.c: Win16Mutex" wait timed out in thread 00f0, blocked by 0114, retrying (60 sec) `git bisect` says: ed6bdb3c51cd4b8c94f9839806321703e7aa9765 is the first bad commit commit ed6bdb3c51cd4b8c94f9839806321703e7aa9765 Author: Alexandre Julliard <julliard(a)winehq.org> Date: Mon Feb 5 17:03:48 2018 +0100 krnl386: Remove support for DPMI real-mode calls. Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> $ sha256sum myst_win3x_win.7z 562d3a3d829648352b94ab0d828290f17f90406d34218ebe3ffd0ac012cb12e3 -- 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=56225 Alex Henrie <alexhenrie24(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- URL| |https://gamesnostalgia.com/ | |download/myst/3403 Keywords| |download, regression -- 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=56225 Alex Henrie <alexhenrie24(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |ed6bdb3c51cd4b8c94f98398063 | |21703e7aa9765 -- 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=56225 Fabian Maurer <dark.shadow4(a)web.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4(a)web.de Keywords| |win16 --- Comment #1 from Fabian Maurer <dark.shadow4(a)web.de> --- This seems to be a program using a DOS extender, I don't think that is something that wine wants to support anymore. In the main directly there is a Myst.bat, that works on windows. But under wine dosbox seems to have issues. -- 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=56225 --- Comment #2 from Alexandre Julliard <julliard(a)winehq.org> --- It seems to work fine here using the bundled DOSBox. -- 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=56225 --- Comment #3 from Alex Henrie <alexhenrie24(a)gmail.com> --- `wine Myst.bat` works for me too. But is there no way to get MYST.EXE to work in Wine without DOSBox? -- 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=56225 Zeb Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12(a)gmail.com --- Comment #4 from Zeb Figura <z.figura12(a)gmail.com> --- Wait, so is this an NE program that uses DPMI? -- 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=56225 --- Comment #5 from Alex Henrie <alexhenrie24(a)gmail.com> --- $ file MYST.EXE MYST.EXE: MS-DOS executable, NE for MS Windows 3.x (3.10) (EXE) -- 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=56225 --- Comment #6 from Fabian Maurer <dark.shadow4(a)web.de> --- (In reply to Alexandre Julliard from comment #2)
It seems to work fine here using the bundled DOSBox.
Weird, I don't get any graphical output. It plays some sound after a while, so I assume it's running, but completely black. -- 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=56225 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #7 from Alexandre Julliard <julliard(a)winehq.org> --- (In reply to Alex Henrie from comment #3)
`wine Myst.bat` works for me too. But is there no way to get MYST.EXE to work in Wine without DOSBox?
There might be, but I don't think we want to invest more effort in DOS support at this point. -- 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=56225 --- Comment #8 from Alex Henrie <alexhenrie24(a)gmail.com> --- (In reply to Alexandre Julliard from comment #7)
(In reply to Alex Henrie from comment #3)
`wine Myst.bat` works for me too. But is there no way to get MYST.EXE to work in Wine without DOSBox?
There might be, but I don't think we want to invest more effort in DOS support at this point.
You've marked this bug as WONTFIX. Maybe it's obvious to everyone else, but since it's not obvious to me, I'll ask: Why does Wine now have a policy that forbids supporting NE programs that use DPMI? Myst was originally distributed on CD without conveniently bundled copies of Windows 3.1 and DOSBox. Unless users find this bug report, they will have no idea why the CD doesn't work. -- 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=56225 --- Comment #9 from Alexandre Julliard <julliard(a)winehq.org> --- (In reply to Alex Henrie from comment #8)
(In reply to Alexandre Julliard from comment #7)
(In reply to Alex Henrie from comment #3)
`wine Myst.bat` works for me too. But is there no way to get MYST.EXE to work in Wine without DOSBox?
There might be, but I don't think we want to invest more effort in DOS support at this point.
You've marked this bug as WONTFIX. Maybe it's obvious to everyone else, but since it's not obvious to me, I'll ask: Why does Wine now have a policy that forbids supporting NE programs that use DPMI?
If the app is using DPMI, sooner or later it's going to want to call to vm86 mode, which is no longer supported on any recent system. It doesn't work on Windows either, which is why the app has to be shipped with DOSBox. -- 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=56225 --- Comment #10 from Fabian Maurer <dark.shadow4(a)web.de> ---
It doesn't work on Windows either, which is why the app has to be shipped with DOSBox.
I think that's because 64bit windows doesn't support 16Bit code at all. FWIW the game seems to run without problems in my XP VM. Not sure if that means XP supports vm86 or that the program doesn't use it. It also works on otvdm, but that uses emulation. -- 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=56225 --- Comment #11 from Alexandre Julliard <julliard(a)winehq.org> --- It is using DPMI calls to invoke DOS interrupts in real mode. It may be possible to emulate this, but I don't think it's worth the trouble. FWIW the contents of the cd directory, which I assume is the original CD, install and work fine here. -- 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=56225 Alex Henrie <alexhenrie24(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Myst deadlocks on start |16-bit Myst deadlocks on |since Wine 3.2 |start since Wine 3.2 --- Comment #12 from Alex Henrie <alexhenrie24(a)gmail.com> --- There were several versions of Myst. Later CDs included a 32-bit version that can be made to work on Wine, but the earlier CDs only included the 16-bit version, which used to work on Wine and doesn't anymore. One of the early 16-bit-only CDs is available at https://archive.org/download/myst_20200711/MYST.ISO I've updated the bug title to clarify that this bug only happens on the 16-bit versions. -- 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=56225 --- Comment #13 from Alex Henrie <alexhenrie24(a)gmail.com> --- Created attachment 75961 --> https://bugs.winehq.org/attachment.cgi?id=75961 [PATCH] krnl386: Restore simulated real mode interrupts. This might not actually be that hard to implement. The attached patch is enough for 16-bit Myst to start, although Myst is very particular about its installer being run from the D drive. Steps to install and run: 1. Insert the Myst CD 2. Run `sudo sysctl vm.mmap_min_addr=0` 3. Run `wine 'D:\install.exe'` - The installer works but hangs at the end, so press Ctrl+C when it's done 4. In one terminal, run `Xephyr :1 -ac -screen 800x600x8` 5. In another terminal, run `DISPLAY=:1 openbox` 6. In a third terminal, run `DISPLAY=:1 wine 'C:\MYST\MYST.EXE'` Unfortunately, Myst deadlocks again when loading the first level. It's not clear to me whether that's another problem with DPMI or something else entirely. The first level doesn't load in Wine 3.1 either. -- 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=56225 --- Comment #14 from Fabian Maurer <dark.shadow4(a)web.de> ---
Unfortunately, Myst deadlocks again when loading the first level. It's not clear to me whether that's another problem with DPMI or something else entirely. The first level doesn't load in Wine 3.1 either.
Yeah, the main thread enters a deadloop waiting for I-don't-know-what to happen. I tried to debug it, but I can't even get gdb to disassemble the code that runs. Win16 is a pain. Not sure it is worth the effort though, you can just install otvdm (e.g. https://github.com/Winetricks/winetricks/pull/2180) and it runs just fine. Do you think there is an advantage to have this working natively in wine? -- 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=56225 --- Comment #15 from Alex Henrie <alexhenrie24(a)gmail.com> --- It would be nice to have 16-bit Myst running in Wine without having to use Winetricks or other hacks. For one thing, the people who have these old CDs and want to use them are not necessarily going to be aware that some are 16-bit and others are 32-bit. And for those of us who are aware of the differences, it would be interesting to run the different versions of Myst in Wine just to compare them. Yet another motivation is that Myst is a good example of an NE program that uses DPMI, so debugging it could help us to debug similar programs. If someone is willing to put in the effort to support it, why not let them? -- 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=56225 --- Comment #16 from Fabian Maurer <dark.shadow4(a)web.de> ---
If someone is willing to put in the effort to support it, why not let them?
Heh true, thanks for the writeup. I just always question myself if I don't waste my time, but I can't let it go for some reason :) Split of the freeze into bug 56260, more info there. -- 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=56225 --- Comment #17 from Fabian Maurer <dark.shadow4(a)web.de> --- Will you be trying to get your patch upstreamed? IMHO that should be acceptable, although I have to hope Alexandre agrees on that. -- 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=56225 --- Comment #18 from Alex Henrie <alexhenrie24(a)gmail.com> --- I sent it: https://gitlab.winehq.org/wine/wine/-/merge_requests/5052 -- 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=56225 --- Comment #19 from Fabian Maurer <dark.shadow4(a)web.de> --- Are you working on an updated version of this? I don't think I understand how Alexandre wants it implemented. -- 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=56225 --- Comment #20 from Alex Henrie <alexhenrie24(a)gmail.com> --- (In reply to Fabian Maurer from comment #19)
Are you working on an updated version of this? I don't think I understand how Alexandre wants it implemented.
I think Alexandre's comment at https://gitlab.winehq.org/wine/wine/-/merge_requests/5052#note_60608 primarily means that he wants Bug 56260 to be fixed first. It may be possible to simplify the patch further, but since the real-mode contexts and pointers are coming from Myst, I don't see how it would be possible to not use real-mode contexts or pointers at all. It seems to me that the best we can do is translate the real-mode segment pointers to flat pointers to the first megabyte of address space and run the interrupt handler in protected mode. -- 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=56225 --- Comment #21 from Fabian Maurer <dark.shadow4(a)web.de> --- I think it(In reply to Alex Henrie from comment #20)
I think Alexandre's comment [...] primarily means that he wants Bug 56260 to be fixed first. It may be possible to simplify the patch further, but since the real-mode contexts and pointers are coming from Myst, I don't see how it would be possible to not use real-mode contexts or pointers at all.
Yeah me neither, but it sounds like there is another option. At least that's how I understand it, maybe we should ask for clarification? -- 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=56225 --- Comment #22 from Fabian Maurer <dark.shadow4(a)web.de> --- Are you still working on trying to get this fix upstreamed? -- 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=56225 --- Comment #23 from Alex Henrie <alexhenrie24(a)gmail.com> --- (In reply to Fabian Maurer from comment #22)
Are you still working on trying to get this fix upstreamed?
I just noticed that GitLab reported a conflict on https://gitlab.winehq.org/wine/wine/-/merge_requests/5238 that it couldn't resolve automatically, so I rebased it just now. I'm still holding out hope that both that MR and https://gitlab.winehq.org/wine/wine/-/merge_requests/5052 will be accepted. -- 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=56225 --- Comment #24 from Fabian Maurer <dark.shadow4(a)web.de> --- I see, thanks for the update. I have to say having only that comment on the matter, I'm not too hopeful. I'd like to help get this along, but I'm afraid I don't know what I could do. -- 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=56225 --- Comment #25 from Austin English <austinenglish(a)gmail.com> --- Closing. -- 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=56225 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #26 from Austin English <austinenglish(a)gmail.com> --- Actually closing. -- 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=56225 Alex Henrie <alexhenrie24(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugs.winehq.org/sho | |w_bug.cgi?id=56260 -- 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=56225 --- Comment #27 from Fabian Maurer <dark.shadow4(a)web.de> --- @Alex: Congrats on getting the other bug fixed! Do you have an idea how to continue here? I still don't know how it could be fixed "properly"... -- 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=56225 Alex Henrie <alexhenrie24(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |7e3bfd4e5e4f9ca689e1734da05 | |a90b1b14351c9 Status|CLOSED |RESOLVED Resolution|WONTFIX |FIXED --- Comment #28 from Alex Henrie <alexhenrie24(a)gmail.com> --- Thanks Fabian, I couldn't have done the first part without you! Thanks also to Alexandre, who did the second part on his own: https://gitlab.winehq.org/wine/wine/-/commit/7e3bfd4e5e4f9ca689e1734da05a90b... On to the third part: https://bugs.winehq.org/show_bug.cgi?id=57974 -- 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=56225 Alex Henrie <alexhenrie24(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugs.winehq.org/sho | |w_bug.cgi?id=57974 -- 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=56225 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #29 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 10.4. -- 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 (1)
-
WineHQ Bugzilla