Linux.com

Home Learn Linux Linux Documentation Linux How Tos How To Play Classic Quake on Linux

How To Play Classic Quake on Linux

Don't get rid of your classic Quake and Quake 2 disks, because you can play them better on Linux.

I have a shelf full of classic board and card games. Some of them are older than me. They need no power, didn't cost all that much when they were new, and will probably outlive me. I still play them; you just can't beat the feel of good heavy carved chess pieces in hand, or racing around a nice wood Cribbage board. I also have a shelf that contains some old classic PC games like Myst, Riven, Quake, and Doom. These go back to Windows 3.1, 95, and MS-DOS. They cost meaningful amounts of money, and they have been collecting dust because I don't feel like buying Windows just so I can play these on my good PC. But I don't have to buy Windows, because thanks to open source Quake engines I can play them on Linux. In fact the gameplay is better: a 24" high-resolution LCD screen beats the heck out of the little old CRTs of yesteryear, the action is smoother, and they never crash.

Figure 1: Going up against a Scrag in Quake 1Figure 1: Going up against a Scrag in Quake 1

Quake 1 and 2

Quake 1 and 2 are still my favorite shootemup games. The environments are different, but the gameplay is the same: first-person shooters, maze-like environments with multiple levels, and monsters everywhere trying to kill you. In Quake 1 you are a lone medieval Ranger fighting your way through gothic castles infested with hostile zombies, ogres, shamblers, and knights to find and kill the ultimate boss of all these baddies, Shub-Niggurath. The music soundtrack, scored by Trent Reznor, is moody and scary, and a vital part of the game's atmosphere. Quake 2 is a science-fiction military adventure in which you, as Space Marine Bitterman, must fight your way through the alien Strogg base and assassinate their leader the Makron. The excellent music soundtrack is by Sonic Mayhem. In both games you can play all by yourself, or go online and play against other human players.

Quake 1's graphics were amazing for the time (1996), and still look good. Windows was the dominate PC desktop operating system, crappy low-resolution graphics and instability and all, and Quake took full advantage of the latest graphics technology to look wonderful even on Windows. ID Software, the creators of Quake, created Linux ports, and then open-sourced the game engine code. Fast-forward to now, and we have a number of Linux Quake engines to choose from: QuakeSpasm, Yamagi Quake II, FitzQuake, Darkplaces, and many more. I tried several and wound up using Darkplaces for Quake 1, and Yamagi Quake for Quake 2.

Installing Quake 1

As long as you have your original Quake disks it's fast and easy to get up and running. For Quake 1, first install the darkplaces package with your favorite package manager. Then create a directory to hold your game files, which you will copy from your Quake CD. On my system my game directory is /home/carla/games/quake/id1/. Copy the config.cfg, PAK0.PAK, and PAK1.PAK files from the WINQUAKE/Data/ID1/ directory on your Quake CD into your game directory, which must be named quake/id1. Very important: change the PAK filenames to lowercase, or your game won't work.

Now run a quick test to see if you did it right:

$ darkplaces -basedir /home/carla/games/quake/

This opens your game in the normal fashion to the opening demo video; press the Esc key to bring up the game menu for configuring your sound, video, and control options, or just leap into playing. When you install Darkplaces it should create a menu entry for you under Games. This probably won't have the correct command path, so you can correct it using your exact command-line incantation with the basedir option. Your saved games and configuration options are stored in ~/darkplaces.

I ran into a little bug. There are four sections to Quake; when you win to the end of each section you collect a rune. When you collect all four runes that opens the passage to do combat against Shub-Niggurath. My installation did not save the runes, so I had to use a cheat code to get them back. To run cheat codes, press the tilde/backtick key to bring down the Quake command console. Type impulse 11 to get a rune, and enter it four times to get all the runes. Press the tilde/backtick key to close the command console.

Installing Quake 2

All of the Quake game engines are a little eccentric, perhaps as a consequence of adapting Windows games to Linux and working around licensing obstacles. Yamagi Quake is no exception. The included README has installation instructions; let's walk through the steps together.

fig-2-quake-2 1Figure 2: Quake 2

First download the official point release from ID Softwware into its own directory from ftp://ftp.idsoftware.com/idstuff/quake2/q2-3.20-x86-full-ctf.exe. This brings your Quake 2 up to date. When it is finished downloading, use the unzip command to unpack it:

carla@studio:~/Downloads/q2-exe$ unzip q2-3.20-x86-full-ctf.exe

Now go through this directory and delete the following files and directories:

3.20_Changes.txt
quake2.exe
ref_gl.dll
ref_soft.dll
baseq2/gamex86.dll
baseq2/maps.lst
ctf/ctf2.ico
ctf/gamex86.dll
ctf/readme.txt
ctf/server.cfg
xatrix/gamex86.dll
rogue/gamex86.dll

 

Next, create a directory for your Quake 2 files, like /home/carla/games/quake2/. Copy the remaining q2-3.20-x86-full-ctf.exe files into this directory. Then insert your Quake 2 CD and copy the QUAKE2/Install/Data/baseq2/pak0.pak file from the CD into your quake2/baseq2 directory, and also the QUAKE2/Install/Data/baseq2/video directory. These are several hundred megabytes, so it will take a little while. When you're finished your quake2/baseq2 directory should look like this:

carla@studio:~$ ls /home/carla/games/quake2/baseq2/
pak0.pak  pak1.pak  pak2.pak  players  video

Change to your Quake2 directory and run this command:

carla@studio:~/games/quake2$ /usr/lib/yamagi-quake2/quake2

And behold, you have Quake 2 on your Linux machine. Installing Yamagi Quake may or may not create a menu icon for it. If you have to create one manually, you'll have to set the work path separately, which is the directory you created for your game files. On my system it's /home/carla/games/quake2. Then the command is /usr/lib/yamagi-quake2/quake2, or wherever your distro puts it. Yamagi stores your saved games and setting in ~/.yq2.

 

Music

Getting your music tracks into your games requires some separate steps. If you open your Quake disks with a music player, you'll see the music tracks (figure foo) at the top level of the CD's filesystem. The first track is a data track, so don't use that. You need to rip and convert the music tracks to Ogg format. If you're not into doing this yourself you can find Quake audio files ready to use online if you poke around a little. The tracks must be named like this: 02.ogg, 03.ogg, and so on. For Quake 1 put your music tracks in id1/music, and for Quake 2 they go in baseq2/music. Your Quake engine will automatically find and use them.

fig-3-audio 1Figure 3: Quake music tracks in VLC

A few more tips: these games were built in the time of single-tasking, and you won't be able to switch to other apps while they're running. If you have more than one audio device you'll probably have to disable all of them except the one you want Quake to use, which is just a couple of mouse clicks in Pulseaudio. Use the game option menus to control screen resolution and size, fullscreen or windowed, brightness, and audio volume.

 

 

Comments

Subscribe to Comments Feed
  • Q Said:

    Amazing coincidence... Just a few weeks ago I installed these on my old Pentium III machine. Runs like a breeze. And YES, still BIG FUN of course ! :)

  • Dugan Said:

    I think Quakespasm is a better Quake 1 engine than Darkplaces. Darkplaces focuses on eye candy, Quakespasm focuses on an authentic and unobtrusively enhanced pure Quake experience.

  • Mike Said:

    Both had native support for linux from the beginning. I've always used to play from linux because of the fewer resources required by the OS. Both have opengl engines (all quakes if you count 3,4) so there isn't anything special for the port.

  • Holger Said:

    Just a side note: For Quake 2 there is also an enhance client for Linux: http://www.yamagi.org/quake2/


Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board