Getting modded Witcher 3 to run in Proton?
This one has been a thorn in my side since I switched to Linux.
The game runs great before mods are installed. After installing a basic set of bug fix and graphical mods, it doesn't launch anymore. It finishes compiling shaders, then the process just hangs, eating up 100% of one CPU core. No window is launched or anything, the process just hangs until I kill it.
System Specs:
Intel 2500k @ 4.5Ghz, 8GB of RAM, EVGA GTX 1060 6GB. Running Arch Linux, latest proprietary drivers, latest Proton (though I've tried several versions over the last couple of years). Again, all other games work fine, and so does TW3 before mods. This is an issue specifically related to modding.
Here is a pastebin of the output from running Steam in the terminal and launching the game. I can't see anything useful in there, but I'm not used to having to troubleshoot Proton. It usually just works.
Anybody have any ideas where to go from here? I'd really like to replay this game, and I'd be even happier to do it on Linux this time.
Posted May 15, 2021, 11:46 PM UTC
You don't say what mods you've used.
I suggest starting with a vanilla install of the game and then try each mod individually until you find the one that causes the game to break then just avoid using that one.
The vast majority are purely texture and mesh mods, so I don't think they would cause any issues. The others are bug fixes, not sure if any of them are scripted.
My prime suspect right now is the Mod Limit Adjuster mod, which is an ASI plugin loaded via a modified
dinput8.dll. Unfortunately, that one is basically mandatory as the game won't run smoothly without it (constant loading during conversations).Maybe I will start by removing the Mod Limit Adjuster and see if that helps to pinpoint the problem at least. I was kind of hoping that this would be a common problem with a known fix, but perhaps not...
Sounds stupid but have you set the DLL override for dinput8 to native? Maybe it hangs because some of the mods expect the injection to be there but it isn't. Slap this in Steams launch option if you haven't: WINEDLLOVERRIDES="dinput8=n" %command%
I didn't even know that was a thing tbh. Usually all I have to do is click "Play" for proton games.
Thanks for the suggestion, I'll give that a try.
So this didn't make it launch correctly, but it did change the behavior of the process.
Now the process starts, does some stuff on all cores, and then dies shortly after.
If I try again without that environment variable it acts as before - hangs using all of one core. If change the dlls extension (effectively disabling that mod) the behavior also remains as before. None of the other mods should explicitly depend on that dll.
So now I'm not sure if the issue is related to the dll or not lol...
So the game is starting to load! A different crash is also progress! And which proton version are you using? For some games and mods, newer isn't always better, funnily enough. Maybe try different proton versions, whether old or proton experimental. I hope one of them introduces changes!
And obligatory question: Did you remember to downgrade the game to version 1.31?
Oh! And what you can also try is disabling esync and fsync (if you use a kernel supporting the latter in the first place).
PROTON_NO_ESYNC=1 PROTON_NO_FSYNC=1 then the winedlloverride and %command% thing from before.
Try disabling fsync first if you use it. Then both if it doesn't fix things. Esync likes to fuck with some games. I know Fallout 4 doesn't like it, e.g.
Edits: I keep expanding the list of steps for troubleshooting.