Magic the Gathering: Arena current version
Playing itself works perfectly, as far as I can tell. However, many workarounds were needed to get there, and some glitches remain (see below).
The game installs with the official installer.
Then the game downloads many files.
The game connects to the game servers.
Deckbuilding, matchmaking, and playing - all work.
What does not
The installer displays several graphical glitches, making it essentially impossible to read anything. However if you've done the installation previously (e.g. on Windows), you can figure out to just click Next a lot, at the bottom. The early check box is "create a desktop icon?", which I declined. As far as I know there is no workaround for these graphical glitches.
When the game downloads files, for example right after the initial installation finishes, intermittently the program will crash, displaying a "gcThreadContext" error. This is apparently a known bug (https://bugs.winehq.org/show_b...). See below for a partial workaround to this.
In order for MtgaLauncher.exe to run, I had to install dotnet 4.7.2. This in itself is a process, which you can google for more details. But the basic procedure is:
- create a 32-bit wine prefix;
- uninstall mono from it;
- set windows version to XP;
- install .net 4.0 (download from Microsoft);
- set windows version to 7;
- set mscoree.dll to native in winecfg -> Libraries;
- install .net 4.7.2 (also download from Microsoft).
Alternatively, you can use the latest winetricks to install dotnet472 (download the latest winetricks from the winetricks github - it's just a single file: a huge shell script). But for me, doing it with winetricks took much longer, because it installs many more intermediate versions of dotnet.
To get around the gcThreadContext crash while downloading files, you can just restart the game when it happens, and it'll continue downloading where it left off. However, if you'd like to go do something else while it downloads, you can minimize how many times the crash occurs, by running like this:
WINEDEBUG=+relay,-debug wine MtgaLauncher
This makes the game run much slower, but it steadily makes progress downloading, and can do so unattended. Sometimes it still crashes, but it's much, much less. Once it finishes downloading, exit the game, and run normally, without WINEDEBUG=+relay,-debug.
In order to connect to the game servers, I needed another workaround, and this one I couldn't find with google. The game was giving an error: "Unable to connect. Could not establish connection to environment: An exception has occurred while attempting to connect. wss://client.arenagame-a.east.magic-the-gathering-arena.com:9405/Prod/WS" (the exact address may vary). To fix this, I had to turn on IPv6 in my Linux kernel.
What was not tested
In game shop
Major game version changes
Many thanks to DarkShadow4444 from FreeNode irc #winehq, who helped me produce and understand the wine debugging output, which helped me figure out that I had to turn on IPv6 in my kernel.
|Operating system||Test date||Wine version||Installs?||Runs?||Used|
|Show||Fedora 32 x86_64||May 24 2020||5.5||No, but has workaround||No||Yes||Garbage||Marco Devillers|
|Show||Manjaro Linux 19.0.2||Apr 17 2020||5.5||Yes||Yes||Yes||Silver||vries|
|Show||Arch Linux x86_64||Apr 10 2020||5.5||No, but has workaround||No||Yes||Garbage||Nate Droppo|
|Show||Debian 10.x "Buster"||Mar 23 2020||5.0||Yes||No||No||Garbage||thatCarpenter|
|Show||Ubuntu 19.04 "Disco" amd64 (+ variants like Kubuntu)||Oct 05 2019||4.17||No, but has workaround||Yes||Yes||Gold||Arthur Peters|
|Bug #||Description||Status||Resolution||Other apps affected|
|24501||wine-mono does not support WPF||NEW||View|
|45546||Magic The Gathering Arena updater: Unity fork of Mono-runtime reports 'Fatal error in gc, GetThreadContext failed' (suspension of Mono-managed threads sometimes exceed 100ms)||NEW||View|
|45937||Magic The Gathering Arena stops accepting any input after losing and regaining focus||UNCONFIRMED||View|
|47753||Magic The Gathering: Arena (MTGA) issue crashing on start||UNCONFIRMED||View|
It is possible to overcome the "Fatal error in gc, GetThreadContext failed" crash when downloading game files by using a patched version of wine. (see the discussion here https://bugs.winehq.org/show_bug.cgi?id=45546)