What is this bug, and how do I fix it?

mscorsvwbug

This error window keeps popping up after I installed world of tanks blitz in wine steam and tried to play it. The game won’t start, and no matter which button I click, the error message will return in a few seconds. What should I do?

To stop the error message from returning you’ll want to kill the wine (or the game) process, either via general process manager (I use htop) or a wine-specific one (I use q4wine, it provides a rather handy one).

As for the error, it appears to be this one, which is caused by a .NET bug when looking up non-US locale resources (the bug was fixed in a fairly recent release of the core library). Possible fixes seem to be either to enforce US locale (running wine with LANG="en_US.UTF-8" should work, I think) or to override the .NET runtime in wineprefix (hopefully can be done with winetricks but that might depend on which version is used by the game).

but how do I run wine with LANG=“en_US.UTF-8” ? do I have to use the terminal ? sorry newb question, but I know almost nothing about using wine

have you tried the environment variables under the system options tab?

I couldn’t find the system options tab in lutris…

its in the runner or game configuration window

I’ve tried adjusting the environment variables, but the game still won’t run

How do I enforce the US locale? what does that even mean?

Well, it’s actually more of “suggesting” (what I meant by “enforcing” is basically overriding the settings). While many applications that support localization allow you to set up desired locale from within the UI, the default method of informing them about your preference is via environment.
In Linux, that means environment variables. You can view the list of locale-related variables and their current values by running the locale command in terminal (though the only ones you actually need to bother with are LANG for language setting and LC_ALL which overrides all others). And just so you know – for the program to know of a variable setting, it needs to be exported in the parent process (“global” settings are applied within the main session process).

That said, windows programs aren’t necessarily bound by such tradition, and thus your system settings for locale (mirrored by Wine) could easily get ignored for a reason like “it only cares about internal settings”, or “it only cares about Steam setting which in turn doesn’t care about internal ones”, or maybe “it remembers the setting on the first run and ignores any subsequent changes”, or even “it relies on a registry key that was set during creation of the Wine prefix”… (Hardcore “solution”: reinstall the wineprefix from scratch – and everything in it – with required locale and see if it helps).

In this particular case, however, I’ve tried installing the game myself and ran into the same issue, though I’m using an English locale systemwise (but not US one so can’t say for sure). I’ve also tried installing .NET 4.6 via winetricks, after which the error did not appear anymore, but the game didn’t run either (I could’ve messed up the .NET install, so can’t say for sure).

The WineHQ page of the game shows gold rating, but that could be related to either a) the game version being a year old (they could’ve introduced a problematic update) or b) the Wine version also being older (there had been cases of regressions, that is, some games that worked at some point in Wine stopped working with later Wine versions). If someone else tried that Lutris install script and it worked for him, it means that either he does have an en_US setup and the game works with it, or that he had some additional libraries in that wineprefix which are required with current game version…
Bottom line, setting locale might or might not require additional effort, and it might or might not produce the desired results. The only way to find out I can think of is to try this (and other things) until something works

thanks for the detailed explanation