Dead Space 2
I had that installed in EA in its Lutris wine prefix, and EA had activation for Dead Space 2 and 3 broken (immediate failure... wrong servers or something) and when I moved them to the new rig, I couldn't play them. Finally an EA App client update fixed that and the activation worked for those games. Dead Space 3 is fine, but Dead Space 2 would start to launch and crashabort. It's an old 32 bit game, so it could have been for any number of reasons. I hadn't played it on modern wine/dxvk in some time.
Well, tonight I wanted to see that game. So I installed it in Steam again, figuring I could troubleshoot it better with various Proton versions (and drop-ins) and PROTON_LOG=1 etc. at my disposal, with no EA getting in my way. It's actually better to have this game on on Steam anyway, as it's pre-EA Client. I couldn't get it to run with mine and then it occurred to me, that proton (well, Valve's wine within it) has an easy peasy WINE_CPU_TOPOLOGY variable and functionality patched in and I see people using it for a lot of old games. What I mostly see is people limiting it to 4, as in the example below. This is hardly a game that's going to need much CPU (and not much can be parallelized anyway), so I just went with that.
Code: Select all
WINE_CPU_TOPOLOGY="4:0,1,2,3" %command%
I can't find any documentation for that, but the way I see it used, it's pretty straight forward to understand. I'm giving it 4 cores, and using cores 0,1,2 and 3... whatever the "cores" happen to be (could be fake hyperthreading CPUs I'd think. It would not know the difference... you'd have to make the right numeric choices. It likely doesn't matter for just getting an old game to work)
Zing... my game works with that (and doesn't need to be fed a downgraded version of anything)
You can also do things like 16: and specify which cores you want, to avoid the E-cores. (I see no point in doing that)
You can also just use taskset of course, which should work for wine and native games, and you can use a numerical list like that with the -c switch. It's much easier than figuring out a bitmask and with that, it's really just as easy. You can also use hyphens for a range of numerical cores. That shit is in the man page for it and it goes like this:
Code: Select all
taskset -c 0,1,2,3 %command%