How I set up vanilla Doom on Linux
Doom source ports¶
It happened again, I got the craving to play DOOM — the original. And I wanted it to really have the feel of the original.
GZDoom is very popular, or should I say notorious for definitely not being faithful to the original. Running the actual original through DOSBox seemed quite ugly. At first, Chocolate Doom seemed to be exactly what I wanted, but unfortunately it lacked basic quality-of-life improvements, especially regarding controls. I concluded that Crispy Doom is a strictly better source port: it adds a lot of improvements over Chocolate Doom, and that doesn't mean we have to use all of them.
On Arch Linux I just needed to run yay -S crispy-doom
to install it from AUR.
Otherwise, you can install it from source anyway
Getting the game¶
Then there was the issue of actually obtaining the game's resource files (since only the engine is free and open-source).
tl;dr I bought the Steam version
Installing on Steam¶
Then we can proceed to install the game(s) on Steam, as normal. Of course, we don't want to actually run it from Steam, as that's running through DOSBox for Windows, through Wine...
So... you could just go to the game folder, copy the WAD files and forget about Steam. But I'll stick to Steam and properly integrate Crispy Doom into the launcher.
I'll be using the globally installed crispy-doom
but pointing it to the normal game directory.
I right click on "The Ultimate DOOM" in Steam and Set Launch Options to the following:
cd base && mkdir -p ~/.local/share/crispy-doom/savegames && ln -sf "$(pwd)" ~/.local/share/crispy-doom/savegames/doom.wad && crispy-doom -iwad DOOM.WAD # %command%
Explanation:
- Change to the
base
subdirectory, because that's how the Steam version organizes the files. - Pre-create the savegame directory and symlink it, for Steam Cloud integration.
- Run
crispy-doom
with the file DOOM.WAD, which is now in the current directory (Steam switches to the game directory before giving control). - Append the original command that Steam was supposed to use and comment it out. Otherwise (if the
%command%
token is not present) whatever we put here is treated as a suffix to the original command.
Same for "Doom II: Hell on Earth" — Set Launch Options:
cd base && mkdir -p ~/.local/share/crispy-doom/savegames && ln -sf "$(pwd)" ~/.local/share/crispy-doom/savegames/doom2.wad && crispy-doom -iwad DOOM2.WAD # %command%
Same for "Final DOOM"
And you're ready to play! Just launch the game(s) through Steam.
Your in-game status will be shown correctly to friends, even though you're running through an external executable.
Configuring Crispy Doom¶
Having launched the game, within the menu, choose Options > Crispness and disable High Resolution Rendering. That's the only significant non-standard enhancement over the original DOOM that Crispy Doom enables by default. Smooth Pixel Scaling should also be disabled. Uncapped Framerate is something I found nice to enable, even though it's also decidedly non-standard. The game's behavior doesn't change, internally everything runs like under the standard 35 fps, but the interpolated smoothness is really nice.
Last but not least, after being put into the actual game, don't forget to press Caps Lock, to enable the Always run feature, as a nice quality-of-life improvement. Otherwise you'll end up holding the Run button literally the entire time. But note that this is non-standard for original DOOM.
Steam Cloud integration¶
Integration with Steam Cloud Sync is achieved by telling Crispy Doom to write save files directly into the game's directory, like the original game would do. Crispy Doom writes save files into ~/.local/share/crispy-doom/savegames/{{lowercase(current_wad_file_name)}}/doomsav*.dsg
. We preemptively symlink over that in the launch options, before crispy-doom
is able to create the directory itself (otherwise you have to retroactively move the files and replace the directory).
And then Steam is configured to synchronize the files under these locations across all your computers/installations. Not only that, but you can even revert the game to the "original" DOSBox version and resume from the very same save files.
Music packs¶
So this is nice and all, but the in-game music just doesn't sound right. What happened? Well, the music is defined as instructions (in terms of music instruments) to be sent to the sound card. In the old days these needed to be advanced and behaviors varied greatly. You might be remembering how your particular sound card sounded. But I'm sure everyone agrees that music playback here is inferior. So instead we can get full pre-recorded audio tracks of how these sounded on an old sound card, Roland SC-55.
wzxhzdk:1
Here I'm downloading .ogg
music packs rather than .flac
to save space, and then point the pre-made music config files to use those.
Restart the game, and it will pick up those audio files instead of the default music playback.
Comments powered by Disqus