Quake
Quake I
In lieu of an x86-64 Quake I binary, we can install e.g. Darkplaces and point it to the Quake installation directory:
darkplaces-glx -basedir /mnt/nfs/data/games/Quake # Try darkplaces-sdl if you experience focus problems[1]
Forks
- QuakeSpasm
- ezQuake
- Fitzquake
- FTE (QuakeWorld)
- Quore
All forks can be usually started with -basedir
pointing to the Quake data files:
[...] -basedir /usr/local/games/quake/
Quake2
Installation
Debian
The game-data-packager
[2] should be able to build all necessary packages. Before that, we'll have to fetch a few files:
$ for a in q2-314-demo-x86.exe q2-3.20-x86-full-ctf.exe q2-3.20-x86-full.exe; do wget ftp://ftp.idsoftware.com/idstuff/quake2/$a; done $ md5sum q2*exe 4d1cd4618e80a38db59304132ea0856c q2-314-demo-x86.exe 490557d4a90ff346a175d865a2bade87 q2-3.20-x86-full-ctf.exe c5a1c2878c2e88fa576b7afb26b411e4 q2-3.20-x86-full.exe # Not really needed if we use the -ctf version
With that in place, let's try this:
sudo apt-get install game-data-packager quake2
Note: this will install yamagi-quake2, a Quake II client for various operating systems.
Create quake2-demo-data:
game-data-packager -d . quake2 --demo ./q2-314-demo-x86.exe
Create quake2-full-data:
game-data-packager -d . quake2 --full /mnt/cdrom/ ./q2-3.20-x86-full-ctf.exe
Create quake2-music:
sudo apt-get install cdparanoia vorbis-tool game-data-packager -d . quake2 --music
Note: for some reason, oggpath was not accepted and we needed to insert the actual Quake2 disc to copy (and transcode) file music files.
$ ls -lhgo quake2*deb -rw-r--r-- 1 29M Sep 15 01:58 quake2-demo-data_37_all.deb -rw-r--r-- 1 165M Sep 15 02:09 quake2-full-data_37_all.deb -rw-r--r-- 1 21M Sep 15 02:22 quake2-music_37_all.deb $ sudo dpkg -i quake2-full-data_37_all.deb quake2-music_37_all.deb
Fedora
Fedora ships its own version of Yamagi Quake II, but we have to provide the game data of course:
sudo dnf install quake2 sudo mkdir /usr/local/games/quake2 sudo mv /usr/lib64/games/quake2/baseq2/{game.so,yq2.cfg} /usr/local/games/quake2/ sudo mount -o bind,ro /mnt/nfs/data/games/Quake2/baseq2/ /usr/lib64/games/quake2/baseq2/ # Adjust as needed! sudo mount -o bind,ro /usr/local/games/quake2/game.so /usr/lib64/games/quake2/baseq2/game.so
Source
Build and install the Yamagi Quake II client:
sudo dnf install SDL2-devel openal-soft-devel git clone https://github.com/yquake2/yquake2.git yquake2-git cd yquake2-git && make sudo mv release/ /opt/yamagi
git clone https://github.com/yquake2/rogue.git rogue-git cd rogue-git && make sudo mv release/ /opt/yamagi/rogue
git clone https://github.com/yquake2/xatrix.git xatrix-git cd xatrix-git && make sudo mv release/ /opt/yamagi/xatrix
Adjust permissions:
sudo chown -cR root:root /opt/yamagi/ && sudo chmod -c a+rX /opt/yamagi/
Setup mount points:
TBD
The Reckoning
The Reckoning is a mission pack delevoped by Xatrix Entertainment. Fortunately, Yamagi implemented those as well, so let's try to install it:
git clone https://github.com/yquake2/xatrix.git xatrix-git cd xatrix-git make -j4 sudo mkdir -p /usr/local/games/quake2/xatrix/ sudo cp release/game.so /usr/local/games/quake2/xatrix/
We only got hold of a CCD file containing the original mission pack and we need to extract this first:
$ ls -goh *.{ccd,img,sub} -rw------- 1 2.8K Dec 17 2001 the.reckoning.ccd # md5: d4d44c1fc37bfd7156b3eed11e0a3970 -rw------- 1 526M Dec 17 2001 the.reckoning.img # md5: b276a881e94b915519df6cdd40182710 -rw------- 1 22M Dec 17 2001 the.reckoning.sub # md5: c1f4846500b259008ed6ed4f490e83ed $ ccd2iso the.reckoning.img the.reckoning.iso 102537 sector written Unrecognized sector mode (a7) at sector 102537!
However, ccd2iso
[3] mentions:
> currently only copies the first session of multisession discs, as well as > outputting a harmless warning of Unrecognized sector mode.
And although the resulting ISO file is much smaller, it's just enough:
$ ls -goh *.iso -rw------- 1 201M Sep 28 20:10 the.reckoning.iso # md5: 7ca003d62e144e1e087c2c1f9309b697 $ sudo mount -t iso9660 -o ro the.reckoning.iso /mnt/cdrom/ $ sudo cp -a /mnt/cdrom/Data/{all/{docs,pak0.pak},max/xatrix/video/} /usr/local/games/quake2/xatrix/
Since yamagi-quake2
is probably installed in /usr/share/games/quake2
, let's create a symlink:
sudo ln -s /usr/local/games/quake2/xatrix /usr/share/games/quake2/xatrix
This is how it should look like now:
$ find /usr/share/games/quake2/xatrix/ -type f | xargs ls -gohtrd -r-xr-xr-x 1 3.1M Nov 26 1997 /usr/share/games/quake2/xatrix/video/idlog.cin -r-xr-xr-x 1 18M May 1 1998 /usr/share/games/quake2/xatrix/video/xu1.cin -r-xr-xr-x 1 14M May 1 1998 /usr/share/games/quake2/xatrix/video/xu2.cin -r-xr-xr-x 1 8.8M May 1 1998 /usr/share/games/quake2/xatrix/video/xu3.cin -r-xr-xr-x 1 15M May 1 1998 /usr/share/games/quake2/xatrix/video/xu4.cin -r-xr-xr-x 1 4.5M May 7 1998 /usr/share/games/quake2/xatrix/video/logo.cin -r-xr-xr-x 1 11M May 12 1998 /usr/share/games/quake2/xatrix/video/xout.cin -r-xr-xr-x 1 13M May 13 1998 /usr/share/games/quake2/xatrix/video/xin.cin -r-xr-xr-x 1 89M May 17 1998 /usr/share/games/quake2/xatrix/pak0.pak -rw-r--r-- 1 458K Oct 16 1998 /usr/share/games/quake2/xatrix/gamex86.dll -rwxr-xr-x 1 2.1M Sep 28 2016 /usr/share/games/quake2/xatrix/game.so
Start the new mission pack with:
quake2 +set game xatrix
Ground Zero
Ground Zero is a mission pack delevoped by Rogue Entertainment. Fortunately, Yamagi has a working port available too.
git clone https://github.com/yquake2/rogue.git rogue-git cd rogue-git make -j4 sudo mkdir -p /usr/local/games/quake2/rogue/ sudo cp release/game.so /usr/local/games/quake2/rogue/
We still need to copy the actual game content. It's a CCD file again, containing the original mission pack:
$ ls -goh *.{ccd,img,sub} -rw------- 1 2.8K Dec 13 2001 ground.zero.ccd # md5: d383f2e9d912f7452486273838f15592 -rw------- 1 591M Dec 13 2001 ground.zero.img # md5: a275379cf87d6b84032fbbe7cfa1e270 -rw------- 1 25M Dec 13 2001 ground.zero.sub # md5: c357c18d10e70b5228e8dd8c1ffb81ce
Convert into an ISO file and ignore[3] the warning:
$ ccd2iso ground.zero.img ground.zero.iso 124684 sector written Unrecognized sector mode (a7) at sector 124684! $ ls -goh *.iso -rw------- 1 244M Sep 28 22:20 ground.zero.iso # md5: fea42b54157d201c8e7c3ef8c98f95d3
Mount the image and copy the necessary content:
sudo mount -t iso9660 -o ro ground.zero.iso /mnt/cdrom/ sudo cp -a /mnt/cdrom/Data/{all/{docs,pak0.pak},max/Rogue/video} /usr/local/games/quake2/rogue/
Since yamagi-quake2
is probably installed in /usr/share/games/quake2
, let's create a symlink:
sudo ln -s /usr/local/games/quake2/rogue /usr/share/games/quake2/rogue
This is how it should look like now:
$ find /usr/share/games/quake2/rogue/ -type f | xargs ls -gohtrd -r-xr-xr-x 1 3.1M Aug 25 1998 /usr/share/games/quake2/rogue/video/logo.cin -r-xr-xr-x 1 15K Aug 31 1998 /usr/share/games/quake2/rogue/docs/license.txt -r-xr-xr-x 1 37M Aug 31 1998 /usr/share/games/quake2/rogue/video/rintro.cin -r-xr-xr-x 1 22M Sep 1 1998 /usr/share/games/quake2/rogue/video/rend.cin -r-xr-xr-x 1 14M Sep 1 1998 /usr/share/games/quake2/rogue/video/reu1_.cin -r-xr-xr-x 1 12M Sep 1 1998 /usr/share/games/quake2/rogue/video/reu2_.cin -r-xr-xr-x 1 12M Sep 1 1998 /usr/share/games/quake2/rogue/video/reu3_.cin -r-xr-xr-x 1 15M Sep 1 1998 /usr/share/games/quake2/rogue/video/reu4_.cin -r-xr-xr-x 1 9.5K Sep 1 1998 /usr/share/games/quake2/rogue/docs/release.txt -r-xr-xr-x 1 52K Sep 1 1998 /usr/share/games/quake2/rogue/docs/Readme.htm -r-xr-xr-x 1 36K Sep 1 1998 /usr/share/games/quake2/rogue/docs/readme.txt -r-xr-xr-x 1 18K Sep 1 1998 /usr/share/games/quake2/rogue/docs/license.doc -r-xr-xr-x 1 26K Sep 2 1998 /usr/share/games/quake2/rogue/docs/Release.htm -r-xr-xr-x 1 105M Sep 2 1998 /usr/share/games/quake2/rogue/pak0.pak -rwxr-xr-x 1 2.5M Sep 28 2016 /usr/share/games/quake2/rogue/game.so
Start the new mission pack with:
quake2 +set game rogue
Quake3
Installation
Debian
The quake3 package[4] contains the launcher script only:
sudo apt-get install quake3
Now we need to create the quake3-data
package with game-data-packager[2]
game-data-packager -d . quake3 ../Quake3/baseq3/pak0.pk3 ../linuxq3apoint-1.32b-3.x86.run
Note: linuxq3apoint-1.32b-3.x86.run
(MD5: c71fdddccb20e8fc393d846e9c61d685
) can be omitted if not available and game-data-packager
will try to download it from known sources.[5]
After quake3-data_NN_all.deb
has been built, it can be installed:
sudo dpkg -i quake3-data_*_all.deb
Fedora
Again, Fedora ships a quake3 package and we only need to provide the data files:
sudo dnf install quake3
sudo ln -s /mnt/nfs/data/games/Quake3/baseq3 /usr/share/quake3/baseq3 # Adjust as needed!
The only inconsistency here is that the Quake 2 data files were expected in /usr/lib64/games/quake2
and the Quake 3 files in /usr/share/quake3
.
Other
Get ioquake3 and install as needed:
$ ls -hdgo baseq3/ ioquake3* missionpack/ drwxr-xr-x. 1 224 Mar 6 20:50 baseq3/ -rwxr-xr-x. 1 879 Mar 6 20:45 ioquake3 -rwxr-xr-x. 1 916 Mar 6 20:48 ioquake3-q3ta -rwxr-xr-x. 1 1.6M Mar 6 20:45 ioquake3.x86_64 drwxr-xr-x. 1 128 Mar 6 20:48 missionpack/
Brightness
If Quake3 appears too dark in-game, try the following[6] in the console:
r_ignorehwgamma 1 r_overbrightbits 1 vid_restart
Maps
Unpack maps either into the baseq3
directory or create a subdirectory and call quake3
accordingly:
$ ls -go /usr/share/quake3/
lrwxrwxrwx. 1 33 Jan 9 17:22 baseq3 -> /nfs/games/Quake3/baseq3
lrwxrwxrwx. 1 31 Apr 2 16:58 cpma -> /nfs/games/Quake3/cpma
lrwxrwxrwx. 1 35 Apr 2 16:57 lvlworld -> /nfs/games/Quake3/lvlworld
lrwxrwxrwx. 1 38 Apr 2 16:58 missionpack -> /nfs/games/Quake3/missionpack
lrwxrwxrwx. 1 30 Apr 2 16:58 osp -> /nfs/games/Quake3/osp
$ quake3 +set fs_game lvlworld
[...]
----- FS_Startup -----
Current search path:
/home/bob/.q3a/lvlworld
/usr/share/quake3/lvlworld
/usr/share/quake3/lvlworld/ztn2dm3.pk3 (50 files)
/usr/share/quake3/lvlworld/ztn2dm2.pk3 (27 files)
[...]
Note: some (newer) maps are quite large and may fail to load with:
HUNK_ALLOCATETEMPMEMORY: FAILED ON 8294408
Increasing com_hunkMegs
from its default ("56") seems to help:
$ grep hunk ~/.q3a/lvlworld/q3config.cfg seta com_hunkMegs "128"
- LvL - Q3A Database
- CPMA - Challenge ProMode Arena
- Orange Smoothie Productions - (orangesmoothie.org (Archive))
Quake4
Installation
The following has been tested for Debian GNU/Linux.
We will need the original Quake4 installation disk for this:
mkdir -p /opt/quake4/q4base rsync -avP /mnt/cdrom/Setup/Data/q4base/*.pk4 /opt/quake4/q4base
Download quake4-linux-1.4.2.x86.run
(MD5: bd2cb8164ede4272adcc091f724855ac)
wget ftp://ftp.idsoftware.com/idstuff/quake4/linux/quake4-linux-1.4.2.x86.run sh quake4-linux-1.4.2.x86.run # Adjust TMPDIR if /tmp is mounted with "noexec"
Follow the instructions, adjust the installation directory as needed. To play the game, use one of:
/opt/quake4/quake4smp.x86 # For SMP systems /opt/quake4/quake4.x86
unable to load driver: i965_dri.so
--------------- R_InitOpenGL ---------------- Initializing SDL subsystem Loading GL driver 'libGL.so.1' through SDL SDL_ListModes: 1920x1080 SDL_ListModes are currently ignored for resolution filtering. Set r_useSDLModes to 1 if you want it libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL error: failed to load driver: i965 libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 151 (GLX) Minor opcode of failed request: 3 (X_GLXCreateContext) Value in failed request: 0x0 Serial number of failed request: 34 Current serial number in output stream: 35 pure virtual method called terminate called without an active exception signal caught: Aborted si_code -6 Trying to exit gracefully.. pure virtual method called terminate called recursively double fault Aborted, bailing out
Most likely the libgl1-mesa-dri package needs to be installed for the i386
architecture, since Quake4 doesn't ship x86_64
binaries:
sudo apt-get install libgl1-mesa-dri:i386
Note: this didn't help on a Fedora installation though :-\
...using GL_ARB_multitexture ...using GL_ARB_texture_env_combine ...using GL_ARB_texture_cube_map ...using GL_ARB_texture_env_dot3 ...using GL_ARB_texture_env_add ...using GL_ARB_texture_non_power_of_two ...using GL_NV_blend_square ...using GL_ARB_texture_compression X..GL_EXT_texture_compression_s3tc not found Fatal Error: Texture compression unavailable Shutting down SDL subsystem idRenderSystem::Shutdown() Sys_Error: Texture compression unavailable
This happened on a Intel HD4000 video adapter - which may not support S3TC texture compression[7]. To workaround this, use driconf
sudo apt-get install driconf driconf # As a user! => Image Quality => Enable S3TC texture compression even if software support is not available
Mods
- SABot a11 for Q4 1.4.2 (2007-07-27) [download]
- Q4Max v0.82 (2008-06-16)
- Q4Max 0.82 fix - will allow the Mac players to actually play games with everyone else
- AAS files - needed to use bots
Installation
Since we installed Quake4 via the Mac App Store, here's how to install the mods on our Mac:
cd ~/Library/Containers/com.aspyr.quake4appstore/Data/Library/Application\ Support/Quake\ 4 mkdir q4max sabot cd q4max unzip ~/q4max082.zip cd ../sabot unzip ~/sabota11.zip cd ../ unzip ~/q4max-aas-01.zip
With all that in place, the mods should be loadable via the in-game "MODS" loader.
Now, in the Quake4 console again:
addBot cortez # Add bot with "cortez" skin
addbot cortez 3 blue 100 foobar # Same, with skill level 3, team blue, 100 msec delay and name "foobar"
bot_skill 2 # Set bot skill to "2"
ui_autoSwitch 0 # Disable automatic weapon switching
ui_showGun 0 # Do not show weapon
m_pitch -0.222 # Set to a negative value to invert the mouse
com_showFPS 1 # Display frames-per-second
pm_speed 250 # How fast you move when running (160)
pm_crouchspeed 150 # How fast you move when crouched (80)
pm_walkspeed 150 # How fast you move when walking (80)
pm_jumpheight 60 # How high you can jump (48)
pm_noclipspeed 300 # How fast you move in noclip mode (270)
To set these values permanently, Quake4Config.cfg
has to be modified:
$ cat ~/Library/Containers/com.aspyr.quake4appstore/Data/Library/Application\ Support/Quake\ 4/q4base/Quake4Config.cfg bind "`" "toggleconsole" bind "~" "toggleconsole" seta com_allowConsole "1" [...]
Known Issues
- Unknown event 'setState' when loading the SABot mod:
ERROR: Error: file pak000.pk4/scripts/bot_sabot_events.script, line 10: Unknown event 'setState'
Links
- Cheatcodes
- Ubuntu: Quake2
- Console Commands
- q4max.com (archive.org)
References
- ↑ Xonotic loses focus on full screen with Gnome 3 on Debian Wheezy (7.0.0)
- ↑ 2.0 2.1 Installer for game data files
- ↑ 3.0 3.1 ccd2iso(1)
- ↑ quake - classic gothic/horror-themed first person shooter
- ↑ GWDG Mirror: ftp.idsoftware.com/idstuff/quake3/linux
- ↑ Quake III Arena is too dark in Wine
- ↑ quake 4 is not starting