Quakespasm. User manual. How to install, setup and play Quake 1
Quake is a first true 3d action shooter released in 1996 by Id Software. John Carmack has reconsidered the whole engine since Doom to get polygonal models for almost every aspect of a new world. Maps, enemies, weapons, loot and even special effects like flames in torches were performed as 3d models compared to 2d sprites in the previous game. The main difference was not only more detailed and plausible environment, but the way a player interacts with it. Now you are able to look around without distortions using a mouse. And finally, levels get a more complicated multi-floor structure. Those features allow getting rich gameplay experience with higher dynamic and variety of situations.
Just take a look at the demo when you run Quake for the first time. Despite on primitive graphics compared to present AAA game titles you will get the same pace and impressions of modern 3d action shooters. Please do remember that Quake 1 was produced more than 20 years ago and it still has fans all around the world. So I hope you want to play this game if you haven't done this already. This manual will help you to get working version of Quake without common issues so you can play it with pleasure and comfort using new hardware.
Why do you need a new game engine to play Quake 1 in 2018?
Original Quake was made to work under control of Microsoft DOS operating system. If you have even old PC you are probably running Windows XP, Vista, 7 or 10 version. But that is not a problem, because when you buy Quake at Steam (4.99$) you will get Windows version besides MS-DOS one and even 3d accelerated GL version which supports video resolutions up to 1920x1080 pixels. But there are still some problems:
No support for ultra wide (21:9 ratio) screen resolutions like 2560×1080 pixels. You may play in windowed mode or the maximum of 1920x1080 with GL version;
No playback of the soundtrack which comes with original cd;
No autosave for options. You need to set all options again after each restart or edit the config file manually;
Limits of the original game engine like frame by frame animation (which appears very rough), weird monsters movement etc;
No overbright lighting, and no support for fullbrights textures in GL version. This small feature affects overall atmosphere of the game;
Non-square pixels on textures that are not sized in a power of two.
John Carmack has released the source code of Quake 1 in 1999. This initiates the creation of lots of forks and mods development. Enthusiasts reconsidered the code and created new versions of the engine, which allows to play Quake in a more comfortable way. New solutions aren't perfect, but they have fewer bugs and introduce new features. Let's check the first one and find out how we can use it to get a better experience.
Quakespasm (official page) is a modern, cross-platform (Windows, Linux, macOS) Quake 1 OpenGL engine based on another source port FitzQuake (official page). It supports 64-bit processors, cd music playback, includes a new sound driver, fixes common graphical problems. This is what readme file talks, but what do we get when choosing Quakespasm:
This is one of few engines, which supports ultra wide screens including resolution of 2560x1080 pixels;
Fixed lighting and texture problems of GL version;
Autosave game options on exit;
Supports a cd music;
Supports a mouse wheel to switch a weapon;
Supports a FOV (field of view) parameter which is essential for a widescreen;
Supports mods (new levels saved in separate folders). This will be useful when you decide to play new episode produced by MachineGames to celebrate the 20th anniversary of original Quake;
Supports new graphical features like fog, skyboxes and vertical synchronization.
Ok, let's check how the game will look like on Quakespazm after quick setup:
Not bad, right? I would say it feels like a classic old school, which is pretty close to the original atmosphere. Together with an ambient music, you will easily dive into the dark world of Quake. To get the same picture you need to complete several steps.
Install Quake and find data files of the game. Go to the game main folder. Usually, it is located at SteamLibray/steamapps/common/Quake. We need a folder called Id1:
Download Quakespasm for your operating system. I use Windows 10, but should work just fine with older versions (7, Vista, XP);
Create a new folder called Quakespasm to store engine and original Quake files;
Unzip all files inside the archive (mine is "quakespasm-0.92.1_win64.zip") to the new folder;
Copy Id1 folder from original Quake to Quakespasm folder. Now you have original Quake data files and Quakespasm engine files in the same directory. You should get something like this:
Now we are ready for the first run. Double click on file quakespasm-sdl2.exe to start. You will see main menu screen. To be honest original game starts demo playback and we are going to return the same behavior a little bit later. Right now we need to do initial setup:
Go to Options → Video Options → Video Mode. Set your monitor's native resolution. For example, I have set 2560 x 1080. Turn Vertical Sync on. Turn Fullscreen on;
Save changes by hitting Apply Changes;
Now go back to the main menu and start the new game via Single Player → New Game;
If the game starts without problems we can continue setting up the engine. Let's quit;
Create new folder Quakespasm/Id1/music. Go to directory quake_campaign_soundtrack.zip/quake_campaign_soundtrack/id1/music inside zip archive. Copy all music files to Quakespasm/Id1/music. Now you will get music inside the game;
Let's fix demo playback when you run the game. Create shortcut for file "quakespasm-sdl2.exe". Go to Properties" → Tab Shortcut → Target. This field allows running the game with options. Add command +playback demo1 to the end of the target and click Ok:
Now we want to tweak some video settings. To accomplish this create new file autoexec.cfg in folder Quakespasm/Id1/. Engine runs this file at the end of the initialization each time you run the game. It allows tweaking some engine variables. Put this code inside autoexec.cfg:
scr_showfps — Shows frames per second rate. "0" — hide, "1" — show;
scr_conalpha — Sets the opacity of the console. The value must be in the range between "0.0" and "1.0";
fog — Enables fog effect. The first number sets density in the range between "0.0" and "1.0". Next three numbers set RGB components for the color of the fog in the same range. This command will not be executed automatically like other previous variables. To make it work you need to run "autoexec.cfg" manually each time. I will show you how to do this later in this manual. Now let's continue with other options;
r_skyfog — Controls fog density for sky background. I set it to 0, because looks weird with other values;
gl_texture_mode — Sets method for texture mapping. "1" — GL_NEAREST, "2" — GL_NEAREST_MIPMAP_NEAREST, "3" — GL_NEAREST_MIPMAP_LINEAR, "4" — GL_LINEAR, "5" - GL_LINEAR_MIPMAP_NEAREST, "6" - GL_LINEAR_MIPMAP_LINEAR. Set value to "1" to get a sharp look and use "4" to get smooth textures;
crosshair — Sets the shape of the crosshair. "0" — hide, "1" — cross;
Ok, we are ready to play Quake using Quakespasm engine. Run the shortcut that we have created previously to start:
Looks and sounds much better now. Try to complete few levels before we continue our experiments. Tweak settings and find out what works better for you.
Do you remember "fog" command located in autoexec.cfg? It doesn't work yet, let's fix this. Run the game and press "~" key (usually located above Tab key). The console will appear. This is command line interface like terminal in operation system. You can execute commands here one by one. Let's turn on fog effect. Start new game and type inside console:
fog "0.02" "0.8" "0.6" "0.4"
Config files allow executing console commands, set variables and make key aliases. File "config.cfg" is managed by engine. You can tweak it, but if you start the game you may lose some lines of commands, comments, and spaces. So the good way to work with configs is to put lines inside "autoexec.cfg" file and this is what we already accomplished. Now open "config.cfg" and find line bind "ENTER" "+jump" at the beginning and replace it with:
bind "ENTER" "exec autoexec.cfg"
This command will execute "autoexec.cfg" config file each time you press Enter key. Now run Quakespasm, start a new game and press Enter. Fog effect will be turned on immediately. You can create separate config files, for example, "fog.cfg", put fog command inside and assign other button in "config.cfg". This will allow you to create multiple configurations if needed. If you have any questions or want to know more about console commands please use this thread.
Time to play Quake
Setup is complete. Run our shortcut and have fun with four episodes of strange world. By the way there is a lot of secrets on each level. Try to find the secret portal at the beginning of the game. It may be not an easy task. Have fun!