[SOLVED] Bioshock Classic - Certain Textures Won't Load

I had this problem on my previous OS, Ubuntu, and I ‘fixed’ it by installing the GOG version instead (I was playing from my physical disc). I was using Bottles at that time. Since then I’ve distro-hopped to Debian, and the problem is back, even with the GOG version. It doesn’t matter what runner I use, the game either fails to launch or launches with the texture issues. I have backups of my old filesystem so I have the prefix, but I forget what runner I used when it was working in Bottles. It was either Proton or Proton-GE.

I also own the game on Steam so maybe I’ll test it out there next (although I prefer no DRM). I know it’s possible to play the game on Linux without those texture issues, so if there are any logs I can attach or more information I can provide I’m open to suggestions.

I can only attach one pic per post. Here is another example:

Update: After installing and launching the game through Steam there are no texture issues:

When I tried making an offline launcher through Lutris it failed to start. I’ve figured out that this is because of DRM baked into the exe file. Replacing Steam’s exe with GOG’s allows me to play the game, but then the texture issues come back. I’d rather have a DRM-free version of the game so that I can play without Steam. I figure it must be something in Steam’s runtime that makes the textures render correctly. How do I use it? Setting it to a Steam for Linux game fails to boot

SOLVED

After reading the following github issue on DXVK I think I have figured out the problem:

I believe it was Esync causing the texture issues. I re-downloaded then reinstalled my copy from GOG, disabled DXVK/Fsync/Esync and the textures loaded properly. Then, I re-enabled DXVK and imported my saves. Everything seems to be working except those low texture assets took a second to load. I’m not sure why that was, so I’m going to experiment a bit more and see if I can make any other helpful config changes. The above github thread has some helpful suggestions, like setting d3dx10_33.dll and d3dx9_33.dll as native overrides.

Esync should be set to disabled somewhere in the install script. I’m new here, so I’m not sure how to do that, but if someone could point me in the right direction I’d be happy to do it.

This is pretty much solved. I will have to check if I get silent shotgun blasts like I did on my Bottles install, in which case I’ll have to install EAX into the prefix (source: https://www.pcgamingwiki.com/wiki/BioShock#Audio_cutting_out)
The install script should probably take that into account as well.

First I’d download the original YAML installer, then add your amendments in to test…a couple of times :slight_smile:

As examples, the GoG remastered installer has (obey the indent, it’s YAML) " esync: false" in the wine: section.
If someone chose to use Proton, they would need the variable PROTON_NO_ESYNC=1 in the env: section instead.
DLL Overrides are documented in GitHub docs (lutris/docs/installers.rst at master · lutris/lutris · GitHub)

Once you’re happy, login to the Lutris site and on the game page, use the dropdown on the installer and use the edit option. You’ll get the idea - add the relevant lines to the installer section, some git-like info for the moderators and submit it.

The old installer uses a 32 bit prefix and other workarounds. I don’t have original media to test anymore :slight_smile:
Edit: Sorry - Just tested the Remastered version again - works if you disable both ESYNC and FSYNC in Proton. Probably messes with the internal “desired FPS” measure and streams LQ textures as a result. Also, playing in 4k, a default 32MB texture cache is a “bit low” to say the least.

So I would add something like this to the installer script?

Screenshot from 2024-11-13 06-34-32

The overrides might not even be necessary.

1 Like