Posted: November 26, 2020
Updated: December 9, 2020
Classic games from id Software run great on Linux, if you have the right source port. The original Windows versions on Steam will run with Proton, but source ports provide:
- Improved widescreen support
- Increased FPS cap (so I can play at 155hz)
- Mouse look support
- Many bug fixes
- Removal of censorship
I prefer vanilla source ports rather than ports which overhaul the graphics and change the gameplay. I like the classic experience (though I do prefer mouse look).
These are my preferred source ports.
DOOM, DOOM 2: crispy-doom
Crispy Doom is widely used and well-maintained. It offers a mostly vanilla experience with some bug fixes and other improvements.
I used the WAD files from Doom 3 BFG Edition on Steam. You have to copy them somewhere and then run crispy-doom from the command line: crispy-doom -iwad *filename*
DOOM and DOOM 2 have amazing music, but the MIDI sound output kind of sucks on my computer. I downloaded pre-recorded music packs for a bunch of id games instead: http://sc55.duke4.net/
That website contains mp3 files for a variety of id games along with instructions on how to use them with your source port.
DOOM 64
DOOM 64 runs on a different engine than the original DOOMs, and there is no source port available. DOOM 64 from Steam seems to run fine on Arch Linux.
Quake: quakespasm-spiked-git
Quakespasm seems to be the most-well-maintained vanilla source port for Quake.
quakespasm-spiked-git offers a significant improvement - no FPS cap, and physics are not negatively affected by high FPS.
To play the Mission Packs, open Quake, hit the grave key to open the console, and type either:
game hipnoticfor Mission Pack 1game roguefor Mission Pack 2game idfor the original game
If you’re not able to get to the finale in the original game (bug), open the console, and type map end. This will take you to the finale map.
By default, quakespasm applies some texture filtering, which makes textures look blurry. Two config options will restore the aesthetic vanilla taste.
I was also horrified to learn that I had played the main game at 72fps, even though 155fps was selected in the video options.
The following commands can be run in the console to fix all that. It seems that when you use the console commands and quit, it saves the options in ~/.quakespasm/*/config.cfg even if you only configured them in one of the games. You can also place the options in those files manually.
gl_texturemode gl_nearest
r_particles 2
host_maxfps 200
vid_vsync 1
scr_showfps 1
Quake 2: yamagi-quake2
This source port works pretty well… Launch it from the command line in the Quake 2 directory eg:
/home/user/.local/share/Steam/steamapps/common/Quake 2/ yamagi-quake2
Steam doesn’t include the music… to fix that, find the ogg files somewhere, and put them in this directory: /home/user/.local/share/Steam/steamapps/common/Quake 2/baseq2/music
The filenames should be 02.ogg through 21.ogg
This source port creates a directory at ~/.yq2 for saves and config files. There are some config options to put inside ~/.yq2/baseq2/config.cfg
cl_maxfps 200
set gl3_particle_square "1"
set gl_texturemode "GL_NEAREST"
To play the expansion packs, copy config.cfg from baseq2 to the directories ~/.yq2/xatrix and ~/.yq2/rogue to keep your config options. Then run the game with these commands:
/home/user/.local/share/Steam/steamapps/common/Quake 2/ yamagi-quake2 +set game xatrix
/home/user/.local/share/Steam/steamapps/common/Quake 2/ yamagi-quake2 +set game rogue
I should note that the expansions don’t seem to work properly on Linux. I played through Xatrix, and near the end, a green keycard will not spawn. Some platforms do not move properly - I used noclip in the console, then got stuck without the keycard.
Also, none of the new weapons or enemies spawned, so that explains why the game felt so boring.
Apparently both mission packs for Quake 2 got pretty poor reviews, and I read that people also had issues with Rogue, so I didn’t bother playing it :(
Heretic, HeXen, HeXen 2
crispy-heretic is installed on my PC but I don’t know where it came from. crispy-doom doesn’t seem to support Heretic and HeXen anymore, yet launching crispy-heretic launches Heretic the game and I didn’t even relocate my WAD files…