I found a way to make Magicka runnable.
First of all, go to this Reddit guide which, I found in this comment, and follow it.
Second, install all the dotnet35sp1 using Winetricks
winetricks -q dotnet35sp1
and wait until it finishes.
Then install xna31
winetricks -q xna31
To install it, use the following command
wine msiexec /i xnafx31_redist.msi
Then, install the directx_feb2010. Basically, you need to go to its folder and execute DXSETUP.exe
or
you can download the directx_february, which will extract the same files as in the Magicka folder, and install.
wine DXSETUP.exe
I should say that this part failed for me, yes, it gave me an error that the installation wasn't completed. But the game should run fine because you know, magic(ka).
Have fun !!
winetricks -q dotnet40
Follow the third step as said above
Kill Wineserver when starting the game(It will try to install everything again, thus, taking a lot of time)
If it's stuck because of the .NET 3.5 installation, kill again Wineserver.
HAVE FUN!!
The guide does not work for me. It hangs on "starting Magicka...", but killing the iscriptevaluator does not make the game launch
Tagging this as XNA, but note that this is an XNA3 game, so FNA compat work won't apply to this unfortunately.
While I'm not sure if it works for magicka, I have a workaround for the same issue regarding the iscriptevaluator loop with Resident Evil Revelations.
Here's a little tip to avoid killing the process each time :
When the script starts, it should create a evaluatorscript_"GAMEID".vdf file
(in /home/$USER/.local/share/Steam/legacycompat/)
4gb_patch helps to fix some crashes
https://ntcore.com/?page_id=371
Any news on this one?
Is the install procedure the same as of Proton 4.11?
Well, now it's possible to install xna31 and dotnet35sp1 on proton 5.0 without having to use a 32bit prefix. Just follow the same procedure as the 32bit tutorial on the 64bit prefix, literally same thing.
Just to note that I actually use Proton GE 5.2 and not the official one...
It does not work with proton 5.0-5 currently distributed by steam with 64bit prefix
The dependencies seem to install fine, but the result is:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. File not found.
File name: 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
at Magicka.Game..ctor()
at Magicka.Game.get_Instance()
at Magicka.GlobalSettings..ctor()
at Magicka.GlobalSettings.get_Instance()
at Magicka.Program.Main(String[] args)
@viraptor what a strange error I did not have it when I was fiddling with Proton and Magicka. Have you tried installing them with protontricks?
By the way, even though the game started for me it had an error of out of memory (XNA resource it seems) when I actually tried to play and I couldn't solve it. Sometimes the game would start okay while sometimes it wouldn't.
Yes, I've done the steps via protontricks
Gonna subscribe here, game does not launch on current Proton 5. Did no modifications to it whatsoever.
Every time I press play it shows "Installing: Microsoft .NET Framework (step 1 of 1)", then Steam shows the game is being Played and after a few seconds it reverts back to Non-Playing status. The game never opens up.
Yes, I can confirm this problem with Proton Experimental
Tried it using Wine Mono and setting WINE_MONO_OVERRIDES=Microsoft.Xna.Framework.*,Gac=y to use the XNA redist from the game, but got:
[ERROR] FATAL UNHANDLED EXCEPTION: Microsoft.Xna.Framework.Content.ContentLoadException: Error loading "UI\ToM\background_mesh". Cannot find ContentTypeReader XNAnimation.Pipeline.SkinnedModelReader, XNAnimation, Version=0.7.0.0, Culture=neutral.
XNAnimation.dll exists, is loaded in the process, and exports XNAnimation.Pipeline.SkinnedModelReader as a public type, so I'm not sure what's going wrong here.
For some reason, when XNAnimation.dll is loaded as a reference from Magicka.exe, Mono searches the exe directory, but when it's loaded by the XNA content system, Mono instead searches the parent directory of Microsoft.Xna.Framework.dll and doesn't find it.
This is very odd. It seems Mono is actually looking for steamapps\common\Magicka\neutral\XNAnimation.dll, specifically when searching via the domain search path. It sees a culture of "neutral" in the assembly name, so it looks there. If I have the check in appdomain.c:real_load test for "neutral" instead of just a NULL or empty culture string, and use an empty string in that case, it works.
Searching in a "neutral" directory seems wrong to me, but I'm not sure if the bug is there, or if there's some parsing error that led to an AssemblyName being created with a culture of "neutral" instead of a NULL or empty string.
Found the problem, it was a parsing error. https://github.com/madewokherd/mono/commit/f76cfd9e3a433f639eb0c777ea187328765efd42
This should work now with WINE_MONO_OVERRIDES=Microsoft.Xna.Framework.*,Gac=y set and a build of Wine Mono from the develop branch. https://github.com/madewokherd/wine-mono/actions/runs/1134003630 has a recent build, you can scroll down to find the "make msi output" download, and protontricks can install the msi into the game's prefix.
Game just works with Proton 6.3-7 RC :+1:
Just tried this game with Proton 6.3-8 and it launches for a few seconds and then closes silently. Running Steam under Arch with KDE and 1080 GTX card with the latest stable driver.
Also closes for me, looking at logs it is missing xna31, and I could not install it using protontricks
XNA should be included with the game and installed as a prerequisite.
Just tried this game with Proton 6.3-8 and it launches for a few seconds and then closes silently. Running Steam under Arch with KDE and 1080 GTX card with the latest stable driver.
Even with the command given by @madewokherd?
WINE_MONO_OVERRIDES=Microsoft.Xna.Framework.*,Gac=y %command%
I am using Endeavor OS KDE Proton 6.3-8 and it does not open at all.
Also tried the command WINE_MONO_OVERRIDES=Microsoft.Xna.Framework.*,Gac=y %command%.
For me it still asks for XNA, even with WINE_MONO_OVERRIDES=Microsoft.Xna.Framework.*,Gac=y %command%
Game process updated : AppID 42910 "WINE_MONO_OVERRIDES=Microsoft.Xna.Framework.*,Gac=y /home/belfalas/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=42910 -- '/home/belfalas/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/belfalas/.local/share/Steam/steamapps/common/Proton 6.3'/proton waitforexitandrun '/home/belfalas/.local/share/Steam/steamapps/common/Magicka/Magicka.exe'", ProcID 11890, IP 0.0.0.0:0
Setting breakpad minidump AppID = 42910
Steam_SetMinidumpSteamID: Caching Steam ID: 76561198015031860 [API loaded no]
Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Xna.Framework.Game, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d' or one of its dependencies.
File name: 'Microsoft.Xna.Framework.Game, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d'
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Xna.Framework.Game, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d' or one of its dependencies.
Just tried in a brand new system, was using Ubuntu 20.04, tried in Garuda Linux (based on arch), same result, adding WINE_MONO_OVERRIDES=Microsoft.Xna.Framework.*,Gac=y %command% did not help either
Game process updated : AppID 42910 "/home/belfalas/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=42910 -- '/home/belfalas/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/belfalas/.local/share/Steam/steamapps/common/Proton 6.3'/proton waitforexitandrun '/home/belfalas/.local/share/Steam/steamapps/common/Magicka/Magicka.exe'", ProcID 122112, IP 0.0.0.0:0
Setting breakpad minidump AppID = 42910
Steam_SetMinidumpSteamID: Caching Steam ID: 76561198015031860 [API loaded no]
Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Xna.Framework.Game, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d' or one of its dependencies.
File name: 'Microsoft.Xna.Framework.Game, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d'
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Xna.Framework.Game, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d' or one of its dependencies.
I got this working now with Proton 6.3-8 for some reason. I did a fresh install of the game and ran it first with proton-ge 6.21. Here it would launch and I got get to the menu of the game but crash there. I then switched to proton 6.3-8 and the game would perfectly and now I can play it just fine. Have no idea why that has worked though.
@afettouhi About the crash with Proton GE 6.21, I think that you meant that it froze, right? The thing with Proton GE is that you need to wait 30 seconds to 1 minute for it to keep going. It will stop in the intro and in EVERY loading screen, which is pretty bad but there's only so many loading screens so it was pretty ok for me.
BTW, I ran it with the WINE_MONO_OVERRIDES=Microsoft.Xna.Framework.*,Gac=y %command% launch options for it to work.
Knowing that using that switching to Proton 6.3-8 fixes it after using the Proton GE is pretty sweet as well. I guess that there's no freezing when doing this step, right?
What a weird quirk...
No the I got a crash desktop with Proton GE.
I could make it start by executing the before mentioned command:
WINEPREFIX=~/.local/share/Steam/steamapps/compatdata/42910/pfx wine msiexec /i ~/.local/share/Steam/steamapps/common/Magicka/Dependencies/xnafx31_redist.msi
But it freezes when the main menu start appearing.
Tried with 6.3-8, Experimental and Proton-GE
Edit:
Stacktrace https://pastebin.com/KPnmHJ0V
Works for me with Proton 6.3-8 out of the box, no crashes.
Now it doesn't start with proton 7.0 or experimental, but 6.8 still works
Starts with 7.0-2 RC.
With this I at least get into the game and can start a game, the into plays, but then the screen stays dark.
I could make it start by executing the before mentioned command:
WINEPREFIX=~/.local/share/Steam/steamapps/compatdata/42910/pfx wine msiexec /i ~/.local/share/Steam/steamapps/common/Magicka/Dependencies/xnafx31_redist.msi
Starts and runs with current Proton Experimental. Does not start with Proton 7.0-3.
Doesn't start out of the box, but works with WINEPREFIX=~/.local/share/Steam/steamapps/compatdata/42910/pfx wine msiexec /i ~/.local/share/Steam/steamapps/common/Magicka/Dependencies/xnafx31_redist.msi.
I can confirm this starts and runs (tested in-game) with Proton 9.0-4, Proton Experimental, and GE-Proton9-25, no crashes. There are some slight artifacts when the "Windowed" option is off in the game settings, but switching Windowed off and fullscreening manually through your desktop environment makes it work without issues.
EDIT: On another system, it started out of the box, no artifacts, worked perfectly.
Non-blocking TCP connect() incorrectly returns STATUS_DEVICE_NOT_READY (0xC00000A3) for all destinations, including localhost and destinations with an explicit firewall reject
Issue transferred from https://github.com/ValveSoftware/Proton/issues/10054.
@daro-almeida posted on 2026-08-10T11:58:30:
Black screen for 60-120+ seconds and no audio when loading into a level (also happens on level exit). Enough to time out friends trying to join co-op while stuck on the loading screen.
Cause: Magicka tries to contact two backend hosts that don't exist anymore - opstm.paradoxplaza.com and a GameSparks endpoint (live-g347409i9fs2.ws.gamesparks.net), AWS GameSparks was shut down. That part's expected and not really Proton's fault.
What is a bug: the actual delay comes from Wine's winsock layer,. Non-blocking connect() always returns NTSTATUS 0xC00000A3 (STATUS_DEVICE_NOT_READY, not even a networking code) no matter what it's connecting to - dead external host, localhost, a LAN device with nothing on the port, even a destination with a hard firewall reject in front of it. All identical. Meanwhile curl/ping inside the same Steam Runtime sandbox connect fine to all of the above, so it's not SELinux/firewall/sandbox networking. Also reproduces on a fresh prefix, so not prefix state either.
Stronger evidence it's a Wine bug and not a real failure: on one socket, right after connect failed, status 0xc00000a3 is logged, getpeername()/getsockname() on that same socket succeed. That shouldn't be possible on an actually-failed connect. The real outcome only shows up much later as WSAECONNRESET/broken pipe, way after the bogus failure was already reported.
WINEDEBUG=+winsock PROTON_LOG=1 %command%$HOME/steam-42910.log for connect failed, status 0xc00000a3 - same result regardless of destinationgetpeername/getsockname right after - they'll succeed despite the logged failurege-proton11-3x1 2026-08proton experimentalx3 2025-03ge-proton9-25x1 2025-03proton 9.0-4x1 2025-03proton 7.0-3x1 2022-07proton 7.0x1 2022-03proton 6.3-8x6 2022-02proton 6.3x2 2021-12proton 6.3-7x1 2021-09proton 5.0-5x1 2020-04proton 5.0x1 2020-03proton 4.11x1 2019-11proton 3.7-5x1 2018-09PROTON_LOG=1x1 2026-08WINEDEBUG=+winsockx1 2026-08WINEPREFIX=~/.local/share/Steam/steamapps/compatdata/42910/pfxx3 2025-03WINE_MONO_OVERRIDES=Microsoft.Xna.Framework.*,Gac=yx5 2021-12WINE_MONO_OVERRIDES=Microsoft.Xna.Framework.*,Gac=y`x2 2021-08xnanimation.dllx3 2021-08framework.dllx1 2021-080xc00000a3x1 2026-08
Compatibility Report
System Information
I confirm:
Symptoms
Won't open unless .NET3.5(non SP1 or SP1) is installed, otherwise it closes without an error. Not to mention that it requires XNA31 and Directx_Feb2010 to at least not crash when .NET3.5 is installed. All of this seems to work only in 32Bit prefixes. No error is thrown.
Reproduction
Start the game on steam
Log
steam-42910.log Default
steam-42910.tar.gz +all argument (25,8MB)