Alby
Published
Had to disable the Steam overlay, with it on game crashed about 2 seconds onto the loading screen, so try that if you're having the same issue. Reading some other people's reports below mine, the issue seems to be specific to AMD hardware? Whatever, I don't use Steam overlay anymore these days, so I couldn't be bothered to test amdvlk or anything like that.
Also, fun fact about this game. Did you know that using wined3d is actually a workaround for 3d acceleration not working below a certain primary monitor resolution with too much VRAM on Microsoft Windows? So this game is ironically easier to run on Linux on odd configurations.
The full game itself is native. The free demo is not, unfortunately. So, want to try before you buy? Well, for me the game crashed when I clicked "play" in Steam. Running the game outside of Steam, whether through Proton or vanilla WINE, seems to work though. If you want to rebind controls, you will need to run on a prefix with DXVK set up, as text does not show up on the controls menu with wined3d. The framerate is about the same between the two, so stick with DXVK if you already have it. Speaking of controls, when I started the demo on the first level, I couldn't move for some reason. After an alt+enter to switch to windowed mode, that never happened again. The game mostly ran at 50-60 FPS, however there was some stuttering when looking at a lot of drones; even so, the performance was respectable considering I was using integrated graphics as I cannot afford a discrete graphics card right now, hopefully native port performs better when I purchase the full game.
Run the game. You will not see a window, but you will hear background music. Use your task manager (e.g. htop) to find out where this extracted executable is being run from. (I would just tell you where to navigate, but the generated folder has a random name every time you run the game, sorry). Copy that executable to the Codename Gordon folder. rename cg.exe to something else, and the copied executable to cg.exe and you should be able to run the self-contained flash player.
An internet search suggests you could use a swf extraction tool, or just download a version from moddb.com with an already extracted swf and a newer flash player. I tried the moddb swf with the included Flash v27, and then a swf extractor (written in Python) followed by running the game with a Flash v32 I downloaded myself, and in both cases I could only jump with the s key and was unable to move down, and the game did not respect rebinding the keys in options. For all keys to work running the ancient Macromedia Flash Player in Proton seems to be the best method for me. You might have better luck trying native flash players if you wish to try it. Also, can someone explain to me why there's a launcher that extracts an executable that was self-contained to begin with? (looking at the filesizes, it's not like there's any decompression going on).
First, you will need to delete this game's prefix if you already have one. With that out of the way, the easiest way to set up this game is with these commands:
WINEARCH=win32 protontricks 370570 wmp10 protontricks 370570 xna40 protontricks 370570 ogg ~/.steam/steam/steamapps/compatdata/370570/pfx/drive_c/windows mkdir syswow64
The game needs the Microsoft XNA 4.0 library to run, and that library relies on Windows Media Player for music playback. You will need to click through some graphical installers during the first two commands. If winetricks gets stuck after closing out the media player, use a task manager to kill off wmplayer.exe. WMP will offer to install some codecs, it does not matter what you answer to that. The third command will help get music working as mentioned below. a 32-bit prefix is necessary to get WMP working, but Steam does not support these very well, so you need to create an empty syswow64 folder in the Windows directory of the prefix. The fourth and fifth commands take care of that, and must be done in the correct order so as to not interfere with protontricks.
So the game runs, but the music does not play because Proton/WINE does not support WMA playback. Searching the internet turns up a disappointing lack of workarounds, so I recommend the next best thing. convert the WMA files to either MP3 or ogg using your medica converter of choice (for example, I did ffmpeg -i Track1.wma Track1.ogg and so forth). Next use a hex editor (I used GNOME hex, refered to the package manager as ghex) to edit the .xna files to open the OGGs instead. if you are not experienced with hex editors, edit carefully; a hex editor may default to insert mode and overwrite things you do not want it to.
If you really want to convert to MP3 instead of ogg, use "protontricks 370570 l3codecx" insetad of ogg. WAV did not play at all, and FLAC crashed the game. Whatever you use, make your decision before creating the dummy syswow64 folder.
Unfocusing the game black screens it as many others have said. Fortunately this game supports the traditional alt+enter shortcut that lets you easily switch between full screen and windowed modes without going to the options menu.
The modding community has made a native mod loader for this game, so you can install Horde Mode, unofficial master levels (and a mod that lets you play unreleased official master levels hidden in the game files), custom HUD color profiles (I use violet HUD), or whatever else you like, among other tools.
Also, to play battlemode, you need to run DOOM Eternal with Windows 7 compatibility (the default Windows 10 setting does not work). I just used winecfg to set that.
Didn't work on kernel 5.14.6, game runs great otherwise. Modding works, and battlemode is possible. (yes, battlemode, read bottom)
Game was running fine for a while, but I recently did a system upgrade and launching the game froze my PC, so I had to spend some time fixing that. the culprit package was a kernel upgrade. To fix the game, I had to run
sudo pacman -U /var/cache/pacman/pkg/(name of tarball containing older kernel)
After that, game ran fine. Upgraded back to faulty kernel and crashed game again to be 100% sure this was the problem. I had reported before that this game ran great but I'm posting this follow-up in hopes that other people can get their game working in case the kernel update is causing issues for others as well.
I also mentioned battlemode can be played. This can be done by either (a. running the game in Windows 7 compatibility mode (by configuring the Proton prefix with a tool like winecfg, protontricks, etc.) or (b. by overwriting PartyWin.dll with PartyWin7.dll. With these tricks I have so far played dozens of online matches with no problems.
Proton 7.0 fixes multiplayer for good.
If you want to play battlemode with older versions of proton you can read my older reports, but TL:DR previously you had to use the Windows 7 multiplayer DLL instead of the Windows 10 DLL. I just tested Proton 7.0 with the default Windows 10 configuration with no issues, it should work out of the box now, so bump DOOM Eternal to a newer version of Proton if needed.
Don't forget to check out DOOM Eternal modding as well. Modding combined with multiplayer has given me reason to log over 300 hours in Proton, this game is amazing.
On some window managers, mouse clicks are duplicated in the menu. You might need to use the keyboard only to navigate menus, and use the in-game command line (open with the ` key below escape) to rebind your keys, or alternatively just use another window manager or DE. I had the issue in dwm, but not qtile. Another user reported having the issue in bspwm, but not in KDE.
This is not a Proton issue specifically, but please keep in mind saves in the main game exectuable will not carry over to the modded executable. You will need to redo all your keybindings and other settings as well.
The sandbox runs very slow, utilizing little VRAM, apparently due to the NVIDIA driver not recognizing the new executable name. I have a symbolic link to the sandbox executable named "DOOMEternalx64vk.exe" and I typically run that executable directly, rather than launch it through the mod portal. Hopefully NVIDIA fixes this soon. Additionally, I haven't heard of AMD users on Linux having this issue, it seems to strictly be an NVIDIA problem.
Side note: I was on the idStudio alpha testing team, I have been experimenting with the mod portal and sandbox executable months before Quakecon of 2024.
Overall surprisingly easy to run on Linux, I've had trouble getting game editors to run in the past.
idStudio tends to lock up when switching to the engine tab. The best way to work around this is to have a tab that doesn't use the GPU (such as console) near it, switch to that tab, then to engine.
The mod portal and idStudio are both running under separate steam apps and therefore different prefixes. First off, in your mod portal settings, change the paths away from the defaults on C: and into something both apps will see, and whatever you make in idStudio should now show up in the mod portal. Because of the separate WINE prefixes, idStudio cannot communicate with the mod portal; inconvenient but not feature breaking, just click on "test mod" and idStudio will copy your packaged mod over to the active mods folder you set earlier by the time you see the error message telling you the mod portal needs to be running. You can also find an option to publish a mod in the Portal itself, so don't worry about the upload mod button in idStudio not working.
Note: I only recently discovered that Steam has an environment variable to set a compatdata path, but using what I learned above I played I was fine without it.
Not a Proton specific issue but if you only have 16 GB of RAM like I do, make sure your swap file is a decent size like 16 GB or so. The system requirements list 32 GB of RAM for a reason.
Sidenote: I am one of the closed alpha testers that had idStudio months before the Quakecon announcement.
I'm surprised no one here has mentioned the d2x-rebirth source port here, a fan made native port that runs great on Linux. Even if you're not a Linux user, you probably want to play this game at a resolution higher than 640x400. Some distros allow you to get it from the package manager, and on Arch and Manjaro you can just use the AUR. (note that you will either have to install the game data for d2x-rebirth to detect it, or use can just use command-line options to specify the Steam installation.)
I never bothered with this, but if you however want to play the original DOS engine of the game, there are better ways to do so than using Proton; it really is a waste when DOSBox itself is native to Linux. Someone below mentioned something called boxtron, but you could probably also use vanilla DOSBox without any frontends, and I think I read somewhere there's a DOSBox flavor that supports 3dfx to OpenGL translation if you want the game to actually use your GPU.
alt+tab does not work in fullscreen, but alt+enter to switch between windowed and fullscreen does.
-novid -vullkan
As I explained on Portal Stories: Mel, overwrite libtcmalloc_minimal.so.4 with vanilla Portal 2's libmimalloc.so to use Vulkan without crashing on startup.
-novid -vulkan
To get Vulkan working in native version I had to replace PS:Mel's libtcmalloc_minimal.so.4 with vanilla Portal 2's libmimalloc.so. Worked fine a year ago without tweaking, Mel wasn't updated since the last time I used -vulkan so must have been a native package upgrade or something.
This report probably applies to Portal: Reloaded as well. Also, this is not specific to Linux, but the -novid parameter skips the Prism Studios intro (or whatever logo shows up for the particular source engine game you're playing).
Rendering gels is really unstable.
Here's what I did to deal with gel based puzzles:
- Navigate Steam to another page after launching, for some reason if you don't do this the Steam client uses a lot of CPU, this will slow down any game but it's particularly problematic here because high CPU usage seems to agitate this crashing problem further. (good job Valve for basing the library UI on Chromium and badly optimizing it.)
- Cap my FPS at 60 or even 30 on these test chambers.
- Reboot my PC roughly every 5 crashes or so.
- quicksave a lot on these levels.
It's quite unfortunate that this game locks your mouse if you don't pause it. So if the game freezes and your mouse is locked, a convenient way to kill it off keyboard only is to open an application launcher or terminal to run the command:
pkill -9 revolution
This mod was only released 4 days ago as of writing this, so I'm hopeful they patch this soon.
TL:DR Force the use of a specific compatibility tool.
Remember, This game was whitelisted by Valve, which means it will default to Proton 3.7-8, and not the version of proton you default to globally. That's a pretty old version of Proton from 2018, the Unity port is from 2020. If you want the Unity version, explicitly request a more recent version of Proton. I'm highly suspicious that the two people below that reported the black screen were not using Proton 5.0-9 as they claimed to be. 5.0-9 worked fine for me so GE builds might be overkill, but then again I only played the port for two minutes just for the heck of seeing if it worked.
I still strongly suggest looking into community made native ports, like PrBoom+ (demo compatible), Chocolate DOOM (looks exactly like DOSBox), or GZDOOM (the more advanced mods require it)