https://bugs.winehq.org/show_bug.cgi?id=56199
Bug ID: 56199 Summary: Japanese Visual Novel "Natural Vacation" hangs on start forever (Probably race condition) Product: Wine Version: 9.0-rc5 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: dark.shadow4@web.de Distribution: ---
Unfortunately this is a paid game and the demo doesn't have this issue (at least not for me).
The only thing that happens is console output
01b4:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 76245BE0, 43) stub
Then the program hangs forever, while maxing one CPU core.
The program is protected by Enigma (5.x) and really dislikes getting debugged. +relay works when using RelayExclude "ntdll.*", otherways the relay breaks the program. Although, using relay makes the issue disappear.
I figured out that "taskset 1" also makes the issue disappear. Another way to "work around" the issue is to hack "use_futexes" to return 0.
Note: When working around the issue (either way) you sometimes get a deadlock (loader lock?), not sure if related or not. Apart from that, it seems to work reliably - It won't just randomly hang.
A bit more investigation reveals the following: - It creates a file like evbdfdc.tmp in the temp directory - It calls LoadLibraryW("plugin.dll") - This (for some reason) loads the temporary file, which seems to have some anti-tamper logic that is needed - Meanwhile, the main thread spams GetModuleHandleW("plugin.dll") until it gets something non zero.
In the error case something goes wrong and it doesn't even create the file, while still waiting for it to be loaded. No idea what, though.