https://bugs.winehq.org/show_bug.cgi?id=57571
Bug ID: 57571 Summary: Zafehouse: Diaries garbage/black screen Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: blocker Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: rencer@euromail.hu Distribution: ---
I have this game installed on my computer with it's own wineprefix. Never used that prefix for anything else, just to play this one game. Originally I created that wineprefix and installed the game inside that back at 2014. Also I tried to run the game with this wineprefix on the exact same computer as back then.
It required lot of manual trickering to make it work. At that time nobody managed to run the game with sound on Linux, but I figured out and posted a how-to on the game's forum. Later even the developers shared that how-to on the Steam page of the game. See here: https://steamcommunity.com/app/249360/discussions/0/846963711048254058/#c613...
Sadly that forum page doesn't exist anymore; possibly because the game is old and no longer supported. It doesn't really matter anyway, because it is no longer possible to make the game install and setup a wineprefix that way. Back then it was possible to install all the requirements manually because wine/winetricks wasn't blocking us to install them. (such as full DirectX9, .NET 3.5 SP1, etc.)
As years passed, once in a while I played the game, everything was fine. But today, even that I try to run the game in that exact same wineprefix on the exact same computer, it doesn't work anymore.
When I run the game it is starts loading; you can see as the game writes it on the bottom right corner. When the loading process finishes the game supposed to show the menu screen. There is the problem. I hear the music but the screen is just a mess. It somehow shows the content of whatever is in the background of the game; like any other window or the desktop itself. But it is all garbage; it looks like whatever is in the background is turned into a puzzle, shuffled and randomly put back on the screen.
The reason I kept the wine version 'unspecified' because I also tried to run the game under different wine prefixes that uses different wine versions. Also tried to make fresh wineprefix with the current latest wine in my Manjaro XFCE, which is version 9.20. Creating a new one is impossible because of winetricks/wine.
I have many winprefixes, so I find one or two that works.(One is version 9.20) With these different working prefixes the result is always the same as with the original old prefix; messed up screen.
https://bugs.winehq.org/show_bug.cgi?id=57571
--- Comment #1 from Rafał Mużyło galtgendo@o2.pl --- 0. NOT a blocker
1.
It doesn't really matter anyway, because it is no longer possible to make the game install and setup a wineprefix that way.
You've built a frankenstein - those tend to rot quite a bit.
You might have a valid regression on your hands or you might not.
Two things might be helpful:
- narrowing down when it happened
- posting your frankenstein formula regardless of whether or not you think it matters; also given how old the game is, your formula is likely as well, so there's a good chance some elements of the formula might no longer be necessary
https://bugs.winehq.org/show_bug.cgi?id=57571
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |austinenglish@gmail.com Severity|blocker |normal
--- Comment #2 from Austin English austinenglish@gmail.com --- (In reply to Rencer from comment #0)
Back then it was possible to install all the requirements manually because wine/winetricks wasn't blocking us to install them. (such as full DirectX9, .NET 3.5 SP1, etc.)
winetricks still supports dotnet35p1. directx9 generally caused more problems than it solved, but if you need it, you could try running an old version of winetricks.
https://github.com/Winetricks/winetricks/releases/tag/20190615 is the last version that supported directx9.
https://bugs.winehq.org/show_bug.cgi?id=57571
--- Comment #3 from Rafał Mużyło galtgendo@o2.pl --- I'd say there's a pretty good chance wrt. directx, that only a few libs were needed but OP never bothered to narrow it down.
While doing that would have likely been quite tedious, it would have given a much clearer picture of what exactly ain't working with builtin.
https://bugs.winehq.org/show_bug.cgi?id=57571
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #4 from joaopa jeremielapuree@yahoo.fr --- Created attachment 77680 --> https://bugs.winehq.org/attachment.cgi?id=77680 Seems working fine for me
Tested with wine-10.rc2 I do not know how to play tjis game but it loads fine with a fresh prefix (no winetricks, no native dll). Only built-in
https://bugs.winehq.org/show_bug.cgi?id=57571
--- Comment #5 from Rencer rencer@euromail.hu --- (In reply to joaopa from comment #4)
Created attachment 77680 [details] Seems working fine for me
Tested with wine-10.rc2 I do not know how to play tjis game but it loads fine with a fresh prefix (no winetricks, no native dll). Only built-in
Thanks for the feedback. And Happy New Year for everyone.
When I wrote my bugreport right after that, I accidentally find out, that the 10.0-rc3 version of Wine come out literally that day.
So as so-so many times, I grabbed the source and started compiling it. And as always; 10 years ago, 5 years ago, or it doesn't matter whenever I tried to compile WINE from source after 3-4 (!!!) hours of compiling i crased. Whenever I tried always 3-4 hours later it stopped with some errors. Im not kidding on my Manjaro driven rig it was never-ever was possible to compile Wine from source.
Because of that I had to rely on what I can find in the repos. It is currently Wine 9.22.
I have to wait until Wine will be up to date in the repo and I can try it.
https://bugs.winehq.org/show_bug.cgi?id=57571
--- Comment #6 from Rencer rencer@euromail.hu --- (In reply to Austin English from comment #2)
(In reply to Rencer from comment #0)
Back then it was possible to install all the requirements manually because wine/winetricks wasn't blocking us to install them. (such as full DirectX9, .NET 3.5 SP1, etc.)
winetricks still supports dotnet35p1. directx9 generally caused more problems than it solved, but if you need it, you could try running an old version of winetricks.
https://github.com/Winetricks/winetricks/releases/tag/20190615 is the last version that supported directx9.
Old winetricks versions never works. They all the time, at some point will try to download something from a broken link.
I downloaded it from that link you posted, and put the binaries into /home/USER1/winetricks/ directory.
This is the results with WINE 9.22 These are the steps, in a terminal:
1.Make the prefix to be a Windows XP 32bit env WINEPREFIX=~/.wineZAFEHOUSE1 WINEARCH=win32 winecfg -v winxp
2.Just to be sure that using that winetricks version: env WINEPREFIX=~/.wineZAFEHOUSE1 WINEARCH=win32 /home/USER1/winetricks/winetricks --version The result is: 20190615 - sha256sum: b6e465841d1d7bf473d8ecd32ed7a18e0add817444bf54ec25e6c9465584c6e9
So it seems using the that exact version, it's fine.
Installing NET 3.5 SP1: env WINEPREFIX=~/.wineZAFEHOUSE1 WINEARCH=win32 /home/USER1/winetricks/winetricks dotnet35sp1
The GUI installer fineshes without error, but still getting this line in the terminal output: dotnet35sp1 install completed, but installed file /home/USER1/.wineZAFEHOUSE1/dosdevices/c:/windows/Microsoft.NET/Framework/v3.5/msbuild.exe.config not found
I don't know what is this file, or this thing even affect anything or not.
Install Visual C++ 2008: env WINEPREFIX=~/.wineZAFEHOUSE1 WINEARCH=win32 /home/USER1/winetricks/winetricks vcrun2008
This will result in: sha256sum mismatch! Rename /home/USER1/.cache/winetricks/vcrun2008/vcredist_x86.exe and try again.
And it does not install. As far as I know, this is happens when the links are broken. Like I said old winetricks will never work in a later time. I don't understand how other people can use old versions without errors... They never works/worked for me.
https://bugs.winehq.org/show_bug.cgi?id=57571
Rencer rencer@euromail.hu changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |9.22 Severity|normal |major
--- Comment #7 from Rencer rencer@euromail.hu --- As joaopa suggested, now I tried to make the game work without winetricks or dll overrides. As I said in the reply, currently I have to rely on Wine version 9.22. Becaus of this I changed the version from 'Unknown' to '9.22' and focus on that.
Made fresh prefix (no winetricks or anything else) (Wine mono is installed during wineboot.):
env WINEPREFIX=~/.wineZAFE1 wineboot
Than I run this and checked that the sound is working, clicking on the button in the 'Audio' tab. Everything is fine: env WINEPREFIX=~/.wineZAFE1 winecfg
Than during the game installation for a second a DirectX Jun 2010 SDK install window pops up.
(This is built in the GOG installer along with dotnet 3.5, and VC++ 2008)!!!
This is the only thing that you can see in the GUI; they runs silently, so I'm not sure what others are installed. Or not installed. But in the background, while siletly installing DirectX, in the terminal these lines are writen out:
regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine2_0.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine2_1.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine2_2.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine2_3.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine2_4.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine2_5.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine2_6.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine2_7.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine2_8.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine2_9.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine2_10.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine3_0.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\XAudio2_0.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine3_1.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\XAudio2_1.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine3_2.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\XAudio2_2.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine3_3.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\XAudio2_3.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine3_4.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\XAudio2_4.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine3_5.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\XAudio2_5.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine3_6.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\XAudio2_6.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\xactengine3_7.dll' regsvr32: Successfully registered DLL 'C:\windows\system32\XAudio2_7.dll'
Then i tried to run the game: env WINEPREFIX=~/.wineZAFE1 wine ~.wineZAFE1/drive_c/GOGGames/ZafehouseDiaries/ZafehouseDiaries.exe
The game starts, I can see the texts written out in the bottom right corner. But when it supposed to draw the logo-animations and the menu; the screen is bugged as before. And now there is no sound! So it just getting worst... It is clear that in my Manjaro system I must use dll overrides.
So I made all those overrides that was written out in the terminal, using winecfg. And than the sound started working! I also boiled down exactly which one of those dll need for the sound. The only one dll override that is responsible for the sound in this case is the 'XAudio2_7.dll'. But still no graphics.
It is clear now that the game doesn't works without manual dll overrides, just-out-of-the-box. Without dll override there is also no sound. Maybe the graphics can fixed too, but I really don't know what I sound try to make it work.
I must rely on whatever Manjaro uses at any given time; I can't change graphic drivers, or something in the kernel that related to graphics. There is no option to downgrade any of these. It is now using, for graphics, for music and almost anything else a completely different thing than it was used, when the game worked last time. Not to mention that the very core of Manjaro changed so drastically over years, that it is no longer compatible even with itself from past times. And on top of that Manjaro, even that it is supposed to be an always-so-frikin-fresh-rolling-release, still lags behind even years in some cases. Like the default wine is 9.22, winetricks in Manjaro is from 2024 january, etc.
I open for suggestions that I can try out, to see if it can fix the graphics.
****** PS1: You can peek into any GOG game installer using the 'innoextract' package with this command:
innoextract --progress --color --gog --output-dir ./UNPACKEDSTUFF YOURGOGGAMESINSTALLER.EXE
In this example, this will extract everything inside the ./UNPACKEDSTUFF folder.
You can find the games itself in the 'app' folder. It is faster extracting with innoextract than actually going through the whole installation. This way you can skip installing the redistributables that are built in the installer and can't skipped because they runs silently.
Sometimes you can actually even run the game from this folder. But most of the times they will not work, because most games write stuff inside the registry, and without proper installation that won't happen. I tried with this game, it isn't work. Zafehouse writes many things inside the registry; in the 'user.reg' file that you can find in the root folder of the wineprefix.
There will be other folders that are extracted. In the 'tmp' folder you find every junk that the installer using (pictures, icons, fonts, etc) Also in this 'tmp' folder you can find all the redistributables that are shipped with the GOG installer. In this case, Zafehouse GOG installer contains: 'directx_Jun2010_redist.exe', 'dotNetFx35setup.exe', 'vcredist_x86_2008.exe' and 'vcredist_x64_2008.exe'
****** PS2: Austin English said in his post that: "...directx9 generally caused more problems than it solved..."
If I quickly managed to cancel the installation of DirectX during the installation the game will not run! It crashes immediately with "Unhandled exeption occured in your application...." error. So, in our case, and in countless many more that I experienced, installing DirectX actually helps. Without installing DirectX + making the overrides manually, the game won't even start and there is no music.
https://bugs.winehq.org/show_bug.cgi?id=57571
--- Comment #8 from Rafał Mużyło galtgendo@o2.pl ---
In this case, Zafehouse GOG installer contains: 'directx_Jun2010_redist.exe', 'dotNetFx35setup.exe', 'vcredist_x86_2008.exe' and 'vcredist_x64_2008.exe'
Most of those are pretty much standard for gog installers and - in most cases - redundant for wine, even if the installer does attempt to install them. Again, in most cases it's a false positive, due to a missing regkey or something alike.
Native d3dcompiler is still sometimes necessary, though vkd3d coverage (of shaders) is improving with each release. As for native VC redists, need for them is pretty rare, though I've seen a bug recently claiming a certain game did need native vcomp120, though the reasons for that are unclear...
env WINEPREFIX=~/.wineZAFEHOUSE1 WINEARCH=win32 winecfg -v winxp
Chances of this actually being required go from minuscule to negligible. Both for winxp part as well as WINEARCH=win32.
Whether or not native dotnet35sp1 is required is a different question. There are still many cases it still is, yet comment 4 seems to suggest otherwise...
I feel there might be an additional - local - configuration problem...
https://bugs.winehq.org/show_bug.cgi?id=57571
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gyebro69@gmail.com
--- Comment #9 from Béla Gyebrószki gyebro69@gmail.com --- @Rencer: can you reproduce the problem with the demo version? https://www.zafehouse.com/files/getdemo.php?demo=1
Please attach the terminal output from Wine: https://wiki.winehq.org/FAQ#get_log
It's not completely true that the game works without overrides because it needs native d3dx9_43.dll and d3dcompiler_43.dll Anyway, I cant reproduce the problem you reported here either (I tried the demo and the GOG.com version).
https://bugs.winehq.org/show_bug.cgi?id=57571
--- Comment #10 from Rencer rencer@euromail.hu --- (In reply to Béla Gyebrószki from comment #9)
@Rencer: can you reproduce the problem with the demo version? https://www.zafehouse.com/files/getdemo.php?demo=1
Please attach the terminal output from Wine: https://wiki.winehq.org/FAQ#get_log
It's not completely true that the game works without overrides because it needs native d3dx9_43.dll and d3dcompiler_43.dll Anyway, I cant reproduce the problem you reported here either (I tried the demo and the GOG.com version).
Recently I had a little time (and nerve) to mess around agin with this game.
I tried out the demo with a freshly created Wine prefix, created exactly as I done before with Mono and everything intalled. (see my previous posts) It doesn't work.
Now give it a try without MONO or anything. env WINEPREFIX=~/.wineZAFE1 WINEDLLOVERRIDES="mscoree,mshtml=" wineboot
Still running winecfg to check the audio, tho it always worked. It works this time too. env WINEPREFIX=~/.wineZAFE1 winecfg
Install demo. It confirms that we have clean prefix without mono or directx or anything, because it propmpts for NET Framework 2.0 and Directx to download. Skipped all. env WINEPREFIX=~/.wineZAFE1 wine ~/Temp/ZafehouseDiariesDemoSetup.exe
Run: env WINEPREFIX=~/.wineZAFE1 wine ~/.wineZAFE1/drive_c/Games/ZafehouseDiariesDemo/ZafehouseDiaries.exe
"Out-of-the-box" the demo won't run, same as the full game. Literally nothing happens. If I open a task manager, I see that wine just starts and immediately closes.
Now install DirectX and .NET 35sp1 (and also Visual C++ 2010 beacuse that is required too. Look it up here: https://screwflystudios.itch.io/zafehouse-diaries env WINEPREFIX=~/.wineZAFE1 winetricks directx9
-Winetricks won't allow it to be installed: "warning: directx9 is deprecated. Please install individual directx components (e.g., `/usr/bin/winetricks d3dx9`) instead." Fine, alright. And how the frikkin hell a simple user knows, from the hundreds of individuals dlls which one of the program uses? This is nonsense... This is a major problem in this case that we aren't allowed to install the full directx 9...
So I did what on the screen: env WINEPREFIX=~/.wineZAFE1 winetricks d3dx9 -Theres a propt that say: 'Using native override for following DLLs...' This is the list of all dll overrides that is written in the terminal: d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30 d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37 d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dx9_43
NET Framework: env WINEPREFIX=~/.wineZAFE1 winetricks dotnet35sp1 -Installation finises, but I wonder why winetricks change the prefix to Windows 7? Theres a 'Executing wine winecfg -v win7' when the .NET installation finished. Windows 10 is the default wine version with current Wine. Wineboot defaults to Windows 10. Changed back to defult Windows 10 version wiht winecfg
Visual C++: env WINEPREFIX=~/.wineZAFE1 winetricks vcrun2010 -Both 32bit and 64bit istallatation done without any error.
Runing the demo and generate logs: env WINEPREFIX=~/.wineZAFE1 wine ~/.wineZAFE1/drive_c/Games/ZafehouseDiariesDemo/ZafehouseDiaries.exe >log.txt 2>errlog.txt -The demo starts and I saw the usual texts at bottom right, but soon get an 'Unhandles exeption has occured in your application.' If I click 'Continue' anyway it froze forever. The last thing that is written at the bottom is 'Initialising drawing engine.' The log.txt is empty, zero byte. In the errlog.txt I find nothing, zero byte. Interesting...
Made a the 'XAudio2_7' that I found out is responsible for the sound with winecfg. env WINEPREFIX=~/.wineZAFE1 winecfg
Still the demo froze exactly as before. Not even reaching the point when the music should starts playing. When that 'Unhandles exeption has occured in your application.' window pops up, if I click the details there is this error: This is the only error that I run into. I'm not sure that this error is even relevant.
************** Exception Text ************** System.NullReferenceException: Object reference not set to an instance of an object. at Zafehouse2.Main.ThreadLoader_Complete(Object sender, RunWorkerCompletedEventArgs e) at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e) at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
Demo doesn't work, can't even start it by this way. I tried this two overrides with the created prefix. Nothing. I also tried to simply just make that two dll overrides in the original backed-up old preix. It won't fix the graphics. The native d3dx9_43.dll and d3dcompiler_43.dll don't fix anything, or at least not this bug that I have, it seems.
But I can managed to start up the demo, see my next post how.
https://bugs.winehq.org/show_bug.cgi?id=57571
--- Comment #11 from Rencer rencer@euromail.hu --- After this failed demo experiment, I deleted the prefix and recreated it differently. Now I tried out as I done before; creating the prefix as I mention in my previous post. After that it is finished I installed the full game. Than I installed the demo, surprisingly this way the demo runs too, with music. And with the exact same graphical glitch... So the demo gives the same result, this graphic-glitch.
There is one thing that I accidentally figured out this time, helps or not but here it is:
The game seems to works regardless that the graphics is glitched! I'm talking about the full game now!
I figured out when I move my mouse around, the mouse cursor changes to a different icon at certain points: where menu elements are, it become a little pointing hand icon. I know the game very well, I remember where are the menus. So I clicked on the menus without seeing them and started a new game. It changes to the town generation/loading screen, which is works: I see the red progress bar and the text above it "Building the town..." Than when it finishes the graphics glithes again, but if I wait enought I hear the ambient background sounds. So the game looks like it is working fine in the background, even if the graphics is messed up. Maybe that is why I don't get anything in the log.txt or errlog.txt; there is no error. At least not in the game?
Now I think this is definetely not a regression on my hand, but PROGRESSION by Manjaro, NVidia, Wine or whomever cause the problem. Few years ago worked, same ancient old hardware, and now it is not. Only softwares changed. Wine also. Several times. Progression killed my working PC; continuous pointless updates even on a very old harware. This is absolute nonsense to me.
I can't figure it out what coused it. Wine? VGA driver? Something else in the system? I have no clue, because so many things updated so many times. Wine, Kernel, VGA driver, everything.
Maybe, if it is related to drivers, kernels or what, so here is the system that I use right now. (This is the ONLY working boot option!): VGA Driver with the latest LTS Kernel 6.6.65-1 is linux66-nvidia-470xx 470.256.02-38
I also kept an old LTS Kernel (6.1.119-1) just for safty. But Manjaro changed everything system-wide so much with that latest Kernel, that it is no longer possible to boot into old Kernels. It was stopped working 2 major system updates before. Before that system update I can boot into any of the old Kernels that I kept. How friggin cool is that? Anyway, the VGA driver with this older Kernel is/was: linux61-nvidia-470xx 470.256.02-32 Sadly, there is no way that I can try out the game, to see that with that version of VGA driver and kernel the game works or not. I really doubt that, because this old kernel and driver also updated continuously. Of course, why not...
I just can't get it why countless other programs, games, utilities still works, also new things works, but Zafehouse just not. Or it is, but I can't see anyting. I know it wasn't easy to make it works even back than. But at least it was doable. I really hope someone can figure it out this time.