Installing and playing the classic PC Doom game on Linux/Ubuntu.

  1. Install Doom on Linux
  2. Set a custom resolution for prboom
  3. Install a map editor
  4. Set a custom resolution for Chocolate Doom
  5. Doomsday source port on Linux
  6. Very old but useful Doom files
  7. Various Doom FAQ files
  8. Extracting and viewing Sega 32X Doom assets on Windows easily
Scythe2.wad MAP30.
MAP02 of Freedoom. This is a great IWAD.
MAP02 of Freedoom running in Prboom.

The Classic PC Doom game is a masterwork of game design. It is a first-person shooter that other games such as Halo copied, but they can not do as well as this classic game, since 1993, it has dominated the first-person shooter market. No other game has the atmosphere and gameplay that classic PC Doom has. The Prboom source port is the best for playing Doom on PC.

Install Doom on Linux

Type this command to install Doom and all needed files right away.

jason@jason-desktop:~$ sudo apt-get install chocolate-doom doom-wad-shareware prboom-plus freedoom

The Doom IWADS, freedoom.wad, doom1.wad live in the /usr/share/games/doom folder. If you own a copy of Doom or Doom2, then copy the doom.wad and doom2.wad into this folder and then they will be accessible to prboom and chocolate-doom.

flynn@ubuntu:~/Documents$ ls /usr/share/games/doom/
doom1.wad  freedoom.wad  prboom.wad

Prboom Plus is an enhanced version of Prboom with extra features. The Prboom+ source port has many useful features for recording demos and many features that benefit all Doomers in general. Install it on Ubuntu thusly.

jason@jason-desktop:~$ sudo apt-get install prboom-plus

This will also install Freedoom, giving the player a full IWAD with 30 maps to slaughter through.

Gzdoom is another magnificent source port that allows a fun gaming experience with countless mods and wad files that use advanced engine features.

Download Gzdoom from this website.

https://zdoom.org/downloads.

This is a lot of fun to use when playing Russian Overkill.

You may also install this with a Debian package.

https://securitronlinux.com/battlefield/how-to-install-gzdoom-on-ubuntu-and-play-russian-overkill-easily/. Russian Overkill is a lot of fun and playing with Gzdoom gives the best experience.

To add the IWADS for the Gzdoom snap, copy them to this folder.

Bash
~/snap/gzdoom/current/.config/gzdoom

Then the IWADS will be available in the game menu.

The old vanilla Doom executable would show a flashing floppy disk icon when there was disk activity. Do any modern source ports use this feature or is it a bit superfluous in these days of super-fast 7200 rpm SATA2 drives and computers with an I7 CPU? I miss that feature from the days of playing vanilla Doom on a 486 sx33 with 4MB of RAM. Those were the days, we could never have imagined that we would be playing Doom on our phones. Or on an Android tablet. The great game has come so far in these modern times with Gzdoom and Chocolate Doom we have a wide choice if we want either accelerated graphics and 3d models or just classic vanilla Doom gaming. The Chocolate Doom game has a game engine that closely replicates the behavior of the vanilla Doom engine as closely as possible.

Classic Doom E1M1.
Classic Doom E1M1.

Set a custom resolution for prboom

To set a custom resolution for prboom; open the ~/.prboom/prboom.cfg file with vim.tiny and change the video resolution to the values you desire. Below is an example. set the screen_width and screen_height to the proper resolution of your monitor.

# Video settings
videomode                 "16bit"
screen_width               1920
screen_height              1080
use_fullscreen                1
use_doublebuffer              1
translucency                  1
tran_filter_pct              87
screenblocks                 10
usegamma                      2
uncapped_framerate            1
filter_wall                   1
filter_floor                  1
filter_sprite                 1
filter_z                      1
filter_patch                  1
filter_threshold          49152
sprite_edges                  0
patch_edges                   0

This will fix the resolution of prboom. This is how I always fix it.

Install a map editor

Install a nice map editor for Linux and start making levels for Doom.

The Eureka map editor for Linux is a good way to make awesome maps for this old game.

http://eureka-editor.sourceforge.net/.

This is not too hard to use and would allow a user to make whatever they want.

The user manual is here: http://eureka-editor.sourceforge.net/?n=User.Index.

So get cracking and make a cool map today!

Install gzdoom by typing sudo apt install gzdoom. This is a very good source port that supports mods like Ultimate Torment and Torture. And looks very good running on a good GPU. It also supports some build engine features like 3D floors and movable 3D floors using portals. As well as ACS scripting to create cool effects.

Home page: https://zdoom.org/index. I ran gzdoom while in a folder containing IWADS and it finds them and allows you to select which one to play with.

Running this command will return many Doom packages available for Linux.

4.4 Fri Nov 01 jason@Yog-Sothoth 0: $ apt-cache search doom
darkradiant - Level design toolchain for DOOM3 and The Dark Mod
darkradiant-plugins-darkmod - DarkMod-specific plugins for DarkRadiant
deutex - composition tool for doom-style WAD files
doomsday - enhanced version of the legendary DOOM game
doomsday-common - enhanced version of the legendary DOOM game - common files
doomsday-data - enhanced version of the legendary DOOM game - data files
doomsday-server - enhanced version of the legendary DOOM game - server
eureka - map editor for the classic DOOM games
freedm - multiplayer deathmatch game for Doom-compatible engines
freedoom - two single player campaigns for Doom-compatible engines
glbsp - nodes builder for Doom-style games; has support for OpenGL
libbluray-bdj - Blu-ray Disc Java support library (BD-J library)
libbluray-bin - Blu-ray disc playback support library (tools)
libbluray-dev - Blu-ray disc playback support library (development files)
libbluray-doc - Blu-ray disc playback support library (documentation)
libbluray2 - Blu-ray disc playback support library (shared library)
libglbsp-dev - node builder library for OpenGL-based Doom-style games (headers)
libglbsp3 - node builder library for OpenGL-based Doom-style games
marsshooter - ridiculous space shooter governed by the laws of gravity
opl3-soundfont - OPL3 SoundFont that simulates the sound of an OPL3 chip
prboom-plus - enhanced clone of the classic first-person shooter Doom
prboom-plus-game-server - enhanced clone of the classic first-person shooter Doom (server)
rbdoom3bfg - Doom3 BFG edition game engine
slashem - variant of Nethack
slashem-gtk - variant of Nethack (Gtk window port)
slashem-sdl - variant of Nethack (SDL window port)
slashem-x11 - variant of Nethack (X11 window port)
ttf-aenigma - 465 free TrueType fonts by Brian Kent
ufoai - UFO: Alien Invasion -- build your team and stop the aliens
unmass - Extract game archive files
chocolate-common - dummy transitional package for chocolate-doom related packages
chocolate-doom - Doom engines closely-compatible with Vanilla Doom
spring-mods-kernelpanic - The Kernel Panic game for the Spring engine, a fast-paced RTS with no economy
wadc - programming environment for creating Doom maps
dosemu - DOS Emulator for Linux
game-data-packager - Installer for game data files
dhewm3 - GPL Doom 3 game engine
dhewm3-d3xp - dhewm3's gamelibrary for the title DOOM³: Resurrection of Evil
dhewm3-doom3 - dhewm3's gamelibrary for the title DOOM³
doom-wad-shareware - Shareware game files for the 3D game Doom
game-data-packager-runtime - Launcher for proprietary games
gzdoom - OpenGL version of ZDoom.
zdoom - Advanced Doom source port.

As well as a few unrelated packages, there are a lot of Doom source ports for Linux. Proving that this game is never going to die. But I wish that they would release a new Doom game with the same story as the 1993 version, and updated versions of the same maps. Would be cool to see the Tei Tenga planet and the Doom alpha content.

Doom map editing on Linux with Yandex.

https://securitronlinux.com/doom-map-editing-on-linux-with-yadex/. How to install and set up the Yadex Doom editor for Linux.

Set a custom resolution for Chocolate Doom

To set a custom resolution for Chocolate Doom, edit the chocolate-doom.cfg file and edit the following lines to set a custom window size.

fullscreen                    0
video_display                 0
aspect_ratio_correct          1
integer_scaling               0
vga_porch_flash               0
window_width                  1440
window_height                 1080
fullscreen_width              0
fullscreen_height             0

Doomsday source port on Linux

The Doomsday source port on Linux is a great way to play Doom on a Linux machine. This has a launcher that will show all available Doom and Hexen/Heretic IWADS and allows you to play them with a single click. This is great.

Put all your wads in a folder such as $HOME/Doom and then tell Doomsday where they are.

┏jcartwright@jcartwright-System-Version╼╸╸╸╸╸╸╾
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◉:~$ export DOOMWADDIR=/home/jcartwright/Doom

This will define where the Doom wads are to any source port on Linux. Then they will appear in the launcher.

Crispy Doom is another very good Doom source port, this is just like vanilla Doom, but limit removing to avoid visplane overflows.

Install this very easily.

┏jcartwright@jcartwright-System-Version╼╸╸╸╸╸╸╾
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◉:/media/jcartwright/Media$ sudo apt install prboom-plus crispy-doom 
[sudo] password for jcartwright: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
prboom-plus is already the newest version (3:0.26.2+dfsg-2).
The following NEW packages will be installed:
  crispy-doom libsdl2-net-2.0-0
0 upgraded, 2 newly installed, 0 to remove and 11 not upgraded.
Need to get 1,186 kB of archives.
After this operation, 4,498 kB of additional disk space will be used.
Get:1 http://au.archive.ubuntu.com/ubuntu mantic/universe amd64 libsdl2-net-2.0-0 amd64 2.2.0+dfsg-2 [12.0 kB]
Get:2 http://au.archive.ubuntu.com/ubuntu mantic/universe amd64 crispy-doom amd64 6.0-2 [1,174 kB]
Fetched 1,186 kB in 1s (1,742 kB/s)    
Selecting previously unselected package libsdl2-net-2.0-0:amd64.
(Reading database ... 174432 files and directories currently installed.)
Preparing to unpack .../libsdl2-net-2.0-0_2.2.0+dfsg-2_amd64.deb ...
Unpacking libsdl2-net-2.0-0:amd64 (2.2.0+dfsg-2) ...
Selecting previously unselected package crispy-doom.
Preparing to unpack .../crispy-doom_6.0-2_amd64.deb ...
Unpacking crispy-doom (6.0-2) ...
Setting up libsdl2-net-2.0-0:amd64 (2.2.0+dfsg-2) ...
Setting up crispy-doom (6.0-2) ...
update-alternatives: using /usr/games/crispy-strife to provide /usr/games/strife (strife) in auto mode
Processing triggers for libc-bin (2.38-1ubuntu6) ...
Processing triggers for man-db (2.11.2-3) ...
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Processing triggers for desktop-file-utils (0.26-1ubuntu5) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1.1ubuntu1) ...

Then, run it like this to enable taking screenshots with the F1 key.

┏jcartwright@jcartwright-System-Version╼╸╸╸╸╸╸╾
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◉:/media/jcartwright/Media$ crispy-doom -devparm
                           Crispy Doom 6.0.0
Z_Init: Init zone memory allocation daemon. 
zone memory: 0x7f59d13fc010, 32 MiB allocated for zone
Development mode ON.
Using /home/jcartwright/.local/share/crispy-doom/ for configuration and saves
V_Init: allocate screens.
M_LoadDefaults: Load system defaults.
saving config in /home/jcartwright/.local/share/crispy-doom/default.cfg
W_Init: Init WADfiles.
 adding /usr/share//games/doom/doom1.wad
  loaded 0 DEHACKED lumps from PWAD files.
===========================================================================
                            DOOM Shareware
===========================================================================
 Crispy Doom is free software, covered by the GNU General Public
 License.  There is NO warranty; not even for MERCHANTABILITY or FITNESS
 FOR A PARTICULAR PURPOSE. You are welcome to change and distribute
 copies under certain conditions. See the source for more information.
===========================================================================

This is a very good Doom source port to play classic Doom with.

Very old but useful Doom files

Here are some very useful and old Doom files.

These should be very interesting to a Classic Doom fan.

https://securitronlinux.com/doomstuff/.

Various Doom FAQ files

Doom BFG FAQ: https://www.securitronlinux.com/linux/walkthru/BFGFAQ13.TXT

List of all Doom secrets: https://www.securitronlinux.com/linux/walkthru/D1SECRET.TXT

List of all Doom ][ secrets: https://www.securitronlinux.com/linux/walkthru/D2SECRET.TXT

List of all Doom ][ Sound FX: https://www.securitronlinux.com/linux/walkthru/D2SFXLST.TXT

Doom FAQ 66A: https://www.securitronlinux.com/linux/walkthru/DMFAQ66A.TXT

Doom FAQ 66B: https://www.securitronlinux.com/linux/walkthru/DMFAQ66B.TXT

Doom FAQ 66C: https://www.securitronlinux.com/linux/walkthru/DMFAQ66C.TXT

Doom FAQ 66D: https://www.securitronlinux.com/linux/walkthru/DMFAQ66D.TXT

Extracting and viewing Sega 32X Doom assets on Windows easily

How to extract Sega 32X Doom assets into a PC wad file.

This program should compile and run on Linux, I have just not tried it yet. But it does work to extract patches and the colour map as well as sprites.

And yes it does compile fine on Linux.

╭──(john㉿DESKTOP-PF01IEE)───╮
╰───────────────────────────╾╯(/mnt/g/Code/wad32x_100)-(172.29.84.24)┋ ./main
------------------------------
 DOOM 32X WAD CONVERTER v1.00
 Written by Damian Grove
 Mar  4 2024
------------------------------
 
USAGE: wad32x.exe [command] [in file] [out file]
  example 1:  wad32x.exe -export doom32x.bin doompc.wad
  example 2:  wad32x.exe -import doompc.wad doom32x.bin
 
sh: 1: PAUSE: not found

And it managed to create a dump of Sega 32X Doom files into a wadfile.

╭──(john㉿DESKTOP-PF01IEE)───╮
╰───────────────────────────╾╯(/mnt/g/Code/wad32x_100)-(172.29.84.24)ls -hula
total 8.8M
drwxrwxrwx 1 john john 4.0K Mar  4 23:47  .
drwxrwxrwx 1 john john 4.0K Mar  4 23:41  ..
-rwxrwxrwx 1 john john 3.0M Mar  3 09:06 'Doom 32X.bin'
-rwxrwxrwx 1 john john 3.0M Mar  4 23:41 'Doom 32X - Copy.bin'
-rwxrwxrwx 1 john john 2.6M Mar  4 00:01  doompc.wad
-rwxrwxrwx 1 john john  55K Mar  4 23:37  main
-rwxrwxrwx 1 john john  69K Mar  4 23:35  main.c
-rwxrwxrwx 1 john john  28K Mar  4 23:41  wad32x.exe
-rwxrwxrwx 1 john john 2.3K Jan  7  2010  wad32x.txt

2 thoughts on “Installing and playing the classic PC Doom game on Linux/Ubuntu.”

  1. OK, so you do all that. Then play freedoom and exit, now your display is stuck in 640×480 with no way out! The display control to change it is off the screen and you can’t get it back! You have to reboot to fail-safe mode to set it back up. X screens aren’t made to handle 640×480 the default for .prdoom. Need to include this problem and a fix in the instructions above.

    Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.