Id Software

Quake unter Linux

05. August 2026 · Spiele · andreas · Kein Kommentar

Zum 30. Geburtstag war es mal wieder Zeit, eine Runde durch das “originale” Quake zu drehen.

Quake!

Obwohl zwischenzeitlich eine überarbeitete PC-Version veröffentlicht wurde, ist diese leider nur für Windows erschienen. Da aber der Quellcode des originalen Quake von id Software als Open Source freigegeben wurde, kann man zum nativen Spielen unter Linux glücklicherweise auf verschiedene Engines in den Distributionsquellen zurückgreifen. Eine Darstellung recht nah am Original liefert das Paket quakespasm, welches in den Debian-Quellen enthalten ist:

QuakeSpasm is a Unix-friendly Quake engine based on the SDL port of the popular FitzQuake. It includes some new features, important fixes, and aims for portability and correctness.

Wer das Rundum-Sorglos-Paket möchte, kann das Paket “quake” installieren, welches auch gleich den “game-data-packager” mitinstalliert. Dieser schnürt für eine ganze Reihe von Spielen mehr oder minder vollautomatisch aus bereits vorhandenen Spiel-Installationen oder Original-CDs die benötigten Datenpakete.

Wer möchte, kann aber auch mit Hilfe einer Minimalinstallation und ein paar Befehlen auf der Kommandozeile eine spielfähige Installation erstellen.

Sollte man das Original-Spiel nicht oder nicht mehr besitzen, so gibt es mehr oder minder regelmäßig bei GOG.com für wenig Geld die Originalversion zu erwerben.

Die Installation der Engine erfolgt durch das Paket “quakespasm”:

$ sudo apt install quakespasm

Anschließend kann mit Hilfe von “innoextract” das Installationspaket entpackt werden

$ sudo apt install innoextract $ innoextract setup_quake_the_offering_2.0.0.6.exe Extracting "Quake - The Offering" - setup data version 5.5.0 (unicode) ... - "app/id1/config.cfg" - overwritten - "app/id1/autoexec.cfg" - "app/id1/PAK0.PAK" - "app/id1/PAK1.PAK" ... Done.

Standardmäßig sucht QuakeSpasm die Spieldateien in einem Verzeichnis “id1” im Benutzerverzeichnis.

$ /usr/games/quakespasm Command line: /usr/games/quakespasm Found SDL version 2.32.4 Detected 12 CPUs. Initializing QuakeSpasm v0.96.3 Host_Init Playing shareware version. ERROR-OUT BEGIN QUAKE ERROR: W_LoadWadFile: couldn't load gfx.wad Basedir is: /home/andreas Check that this has an id1 subdirectory containing pak0.pak and pak1.pak, or use the -basedir command-line option to specify another directory.

Wer die Dateien lieber an einer anderen Stelle in Dateisystem ablegen möchte, kann dies ebenfalls tun und muß den Aufruf des Clients um den Parameter “-basedir” ergänzen:

$ mkdir /<PFAD>/Quake $ cp -r --preserve=timestamps app/id1 /<PFAD>/Quake $ cp -r --preserve=timestamps app/hipnotic /<PFAD>/Quake $ cp -r --preserve=timestamps app/rogue /<PFAD>/Quake $ cp --preserve=timestamps app/goggame-1435828198.ico /<PFAD>/Quake $ /usr/games/quakespasm -basedir /<PFAD>/Quake

Obwohl der Pfad stimmt, scheitert der Aufruf allerdings erneut mit einem Fehler:

Check that this has an id1 subdirectory containing pak0.pak and pak1.pak, or use the -basedir command-line option to specify another directory.

Der Grund hierfür ist, daß Linux im Gegensatz zu Windows bei Dateinamen zwischen Groß- und Kleinschreibung unterscheidet und “pak0.pak” sowie “pak1.pak” nicht gefunden werden, da sie als “PAK0.PAK” und “PAK1.PAK” auf der Festplatte liegen. Wenn man dies korrigiert, kann auch gleich der nicht benötigte Ordner “glquake” entsorgt werden.

$ mv /<PFAD>/Quake/id1/PAK0.PAK /<PFAD>/Quake/id1/pak0.pak $ mv /<PFAD>/Quake/id1/PAK1.PAK /<PFAD>/Quake/id1/pak1.pak $ rm -r /<PFAD>/Quake/id1/glquake

Um das Starten komfortabler zu gestalten, fehlt noch eine “.desktop”-Datei:

.local/share/applications/Quake.desktop
[Desktop Entry] Type=Application Encoding=UTF-8 Name=Quake Exec=/usr/games/quakespasm -basedir /<PFAD>/Quake Icon=/<PFAD>/Quake/goggame-1435828198.ico Terminal=false Categories=Game

In dem von GOG vertriebenen Paket sind auch die beiden Erweiterungen “Quake Mission Pack I: Scourge of Armagon” (von Hipnotic Interactive) sowie “Quake Mission Pack II: Dissolution of Eternity” (von Rogue Entertainment) enthalten, deren Aufruf jeweils mit einem entsprechenden Parameter erfolgt:

/usr/games/quakespasm -basedir /<PFAD>/Quake -hipnotic /usr/games/quakespasm -basedir /<PFAD>/Quake -rogue

Musik

GOG liefert auch die Images der originalen CDs mit, jeweils als Kombination aus “cue” und “bin”-Datei. Damit die Musik innerhalb des Spiels verwendet werden kann, müssen die Audio-Tracks aus den Images extrahiert werden, was am einfachsten mit bchunk funktioniert, welches ebenfalls in den Debian-Quellen vorhanden ist.

$ sudo apt install bchunk

Nach der Installation wird dann zuerst die Musik des Hauptspiels extrahiert. Die Musik beginnt immer bei Track 2, Track 1 enthält den Datenteil der Original-CD:

$ bchunk -w game.gog game.cue track ... Writing tracks: 1: track01.iso 117/117 MB [********************] 100 % 2: track02.wav 52/52 MB [********************] 100 % 3: track03.wav 24/24 MB [********************] 100 % 4: track04.wav 84/84 MB [********************] 100 % 5: track05.wav 61/61 MB [********************] 100 % 6: track06.wav 75/75 MB [********************] 100 % 7: track07.wav 87/87 MB [********************] 100 % 8: track08.wav 56/56 MB [********************] 100 % 9: track09.wav 65/65 MB [********************] 100 % 10: track10.wav 36/36 MB [********************] 100 % 11: track11.wav 52/52 MB [********************] 100 %

Anschließend werden die Audio-Dateien in das noch anzulegende Unterverzeichnis “music” kopiert, wo sie dann automatisch verwendet werden:

$ mkdir /<PFAD>/Quake/id1/music $ mv *.wav /<PFAD>/Quake/id1/music $ rm *.iso

Die Musik zur Erweiterung “Scourge Of Armagon” ist in den Dateien “gamea.cue” / “gamea.gog” enthalten und muß in ein Unterverzeichnis des “hipnotic”-Ordners:

$ bchunk -w gamea.gog gamea.cue track ... Writing tracks: 1: track01.iso 58/58 MB [********************] 100 % 2: track02.wav 32/32 MB [********************] 100 % 3: track03.wav 32/32 MB [********************] 100 % 4: track04.wav 30/30 MB [********************] 100 % 5: track05.wav 32/32 MB [********************] 100 % 6: track06.wav 32/32 MB [********************] 100 % 7: track07.wav 31/31 MB [********************] 100 % 8: track08.wav 30/30 MB [********************] 100 % 9: track09.wav 30/30 MB [********************] 100 % $ mkdir /<PFAD>/Quake/hipnotic/music $ mv *.wav /<PFAD>/Quake/hipnotic/music $ rm *.iso

Die Musik zur Erweiterung “Dissolution Of Eternity” ist in den Dateien “gamed.cue” / “gamed.gog” enthalten und muß in ein Unterverzeichnis des “rogue”-Ordners:

$ bchunk -w gamed.gog gamed.cue track ... Writing tracks: 1: track01.iso 68/68 MB [********************] 100 % 2: track02.wav 32/32 MB [********************] 100 % 3: track03.wav 31/31 MB [********************] 100 % 4: track04.wav 31/31 MB [********************] 100 % 5: track05.wav 31/31 MB [********************] 100 % 6: track06.wav 33/33 MB [********************] 100 % 7: track07.wav 30/30 MB [********************] 100 % 8: track08.wav 31/31 MB [********************] 100 % 9: track09.wav 31/31 MB [********************] 100 % $ mkdir /<PFAD>/Quake/rogue/music $ mv *.wav /<PFAD>/Quake/rogue/music $ rm *.iso

Quakespasm unterstützt verschiedene Audioformate - wer ohne Klangverlust noch etwas Plattenplatz sparen möchte, kann die entpackten “wav”-Dateien in “flac” konvertieren:

$ for wav in *.wav; do flac $wav; done

Quake Is For Everyone!

23. Juli 2026 · Spiele · andreas · 2 Kommentare

Am 22. Juni 2026 feierte Quake seinen 30. Geburtstag.

Quake Is For Everyone!

Ich kann mich noch gut an den Tag bzw. die Nacht erinnern, als die Shareware-Version endlich zum Download bereitgestellt wurde: Nicht nur das Warten auf die Veröffentlichung hat gefühlt ewig genauert, auch der Download der ersten Episode über FTP war mit 56k-Modem eine Geduldsprobe.

In den frühen Morgenstunden, so irgendwann zwischen 5 und 6 Uhr, war der Download dann vollbracht, die Installation abgeschlossen und es konnte eine erste Runde in der beeindruckenden grafischen Welt gedreht werden. Aber nicht nur die Optik war beeindruckend, auch der von Trent Raznor bzw. Nine Inch Nails komponierte Soundtrack passte perfekt zum Spiel.

Passend zum Geburtstag gibt es bei heise.de “30 Fakten zu 30 Jahren Quake”, in denen u.a. auch die Anzeigenkampagne für “Das spannende Gesellschaftsspiel für die ganze Familie” erwähnt wird.

Nachträglich Happy Birthday!


Robert Beckebans RBDOOM-3-BFG

06. März 2023 · Spiele · andreas · Kein Kommentar

Was mit Quake 2 funktioniert, funktioniert auch mit Doom 3 - zumindest mit der Doom 3 BFG-Edition. Für diese wurde das ursprüngliche Doom 3 nicht nur überarbeitet, sondern auch um die Missionspakete “Resurrection of Evil” und “The Lost Mission” sowie die Vorgängerspiele Doom und Doom 2 ergänzt.

Die am weitesten verbreitete Portierung der Spiele-Engine stammt von Robert Beckebans, der das Projekt “RBDOOM-3-BFG” bis heute kontinuierlich pflegt und auftretende Fehler bereinigt.

RBDOOM-3-BFG is based on DOOM-3-BFG and the goal of this port is to bring DOOM-3-BFG up to latest technology in 2023 making it closer to Doom 2016 while still remaining a DOOM 3 port regarding the gameplay. [Quelle]

Die benötigten Dateien können entweder direkt von der Projektseite auf Github heruntergeladen oder - sofern verfügbar - aus den offiziellen Paketquellen einer Linux-Distribution installiert weden:

$ sudo apt install rbdoom3bfg

Wie üblich sind bei der Spiele-Engine keinerlei Inhalte enthalten, diese müssen zusätzlich bereitgestellt werden. Der einfachste (legale) Weg führt entweder über einen Kauf bei Steam oder GOG.com, die weitere Vorgehensweise ist auf der Projektseite beschrieben.

Sofern die Installationsdatei von GOG.com vorliegt, kann diese auch - statt wie empfohlen umständlich über Wine installiert - direkt mit “innoextract” entpackt und anschließend verwendet werden:

$ innoextract setup_doom_3_bfg_1.14_\(13452\).exe

Sobald die Spieldaten entpackt wurden, können diese an einen beliebigen Ort “MEIN-PFAD” kopiert werden:

$ mkdir -p /MEIN-PFAD/Doom3BFG/ $ cp -r --preserve=timestamp app/base /MEIN-PFAD/Doom3BFG/

Anschließend sollte noch das Konfigurationsverzeichnis erzeugt und eine “autoexec.cfg” darin abgelegt werden, welche die Sprache auf die gewünschte Version setzt - bei den Installationsdateien von GOG.com wird sonst automatisch “Japanisch” als Standardsprache gewählt.

$ mkdir -p ~/.local/share/rbdoom3bfg/base/ $ echo 'seta sys_lang "english"' >> ~/.local/share/rbdoom3bfg/base/autoexec.cfg

Dann kann Doom 3 BFG gestartet werden, wobei zu beachten ist, daß es keinerlei Parameter gibt, um das Datenverzeichnis anzugeben. Das ausführbare “rbdoom3bfg” ist im Ordner “MEIN-PFAD” zu starten.

Wer möchte, kann sich den Start noch mit Hilfe einer “.desktop”-Datei erleichtern.

$ cp --preserve=timestamp app/language_setup.png /MEIN-PFAD/Doom3BFG/ $ vi ~/.local/share/applications/Doom3BFG.desktop [Desktop Entry] Type=Application Encoding=UTF-8 Name=Doom 3 BFG Exec=/usr/games/rbdoom3bfg Icon=/MEIN-PFAD/Doom3BFG/language_setup.png Path=/MEIN-PFAD/Doom3BFG/ Terminal=false Categories=Game

Auch hier ist “MEIN-PFAD” mit dem oben gewählten Pfad zu ersetzen.

Optional: AppArmor Profil

Optional kann auch noch ein AppArmor Profil erzeugt und in “/etc/apparmor.d” abgelegt werden. Folgendes Profil reicht (hier) aus, um RBDOOM-3-BFG mit einer NVidia-Graphikkarte zu spielen:

# 2023-03-02 athul/initial #include <tunables/global> /usr/games/rbdoom3bfg { #include <abstractions/X> #include <abstractions/base> #include <abstractions/audio> #include <abstractions/nvidia> deny network, @{HOME}/.local/share/rbdoom3bfg/** rwk, /MEIN-PFAD/Doom3BFG/** r, /sys/devices/** r, /var/lib/dbus/machine-id r, /proc/** r, /dev/nvidia* rw, }

Zu beachten ist die Anpassung von “MEIN-PFAD” sowie das anschließende Neuladen der AppArmor-Profile, nachdem “rbdoom3bfg” hinzugefügt wurde.


Retrogaming mit Yamagi Quake II

26. Februar 2023 · Spiele · andreas · Kein Kommentar

Irgendwie fühlt es sich seltsam an, die Wörter Quake II und Retrogaming in einem Satz zu verwenden, aber Wikipedia sagt

häufig werden bereits Spiele bis zum Ende der 1990er Jahre als “retro” angesehen [Quelle]

und somit fällt das Ende 1997 veröffentlichte Quake II wohl in diese Kategorie.

Trotz des für Software fast biblischen Alters können Spieleentwickler mit der Freigabe des Quellcodes der Spiel-Engine dafür sorgen, daß auch Jahrzehnte nach der Erstveröffentlichung ihre Werke ohne größere Klimmzüge (für den Endanwender) noch gespielt werden können. So auch Quake II, dessen Spiel-Engine auf unzählige Plattformen portiert wurde und inzwischen sogar im Webbrowser lauffähig ist.

Ein auf PCs weitverbreiteter Client für Quake II ist Yamagi Quake II, der für verschiedene Betriebssysteme verfügbar und auch bei vielen Linux-Disttributionen in den Standard-Paketquellenenthalten ist.

Screenshot

Wer das Rundum-Sorglos-Paket möchte, sollte das Paket “quake2” installieren, welches auch gleich den “game-data-packager” mitinstalliert. Dieser schnürt für eine ganze Reihe von Spielen mehr oder minder vollautomatisch aus bereits vorhandenen Spiel-Installationen oder Original-CDs installationsfähige Datenpakete, im Fall von Quake II werden bei Bedarf sogar die Daten der Demo heruntergeladen und paketiert.

Wer möchte, kann aber auch mit Hilfe einer Minimalinstallation und ein paar Befehlen auf der Kommandozeile eine spielfähige Installation erstellen. Die Anleitung hierfür bietet der Yamagi Quake II Installation Guide.

Wer das Original-Spiel nicht oder nicht mehr besitzt, kann sich mehr oder minder regelmäßig bei GOG.com für wenig Geld die Originalversion inklusive der offiziellen Missionspakete zulegen.

Die Installation des Yamagi-Clients erfolgt in diesem Fall ohne die “recommends”-Pakete

$ sudo apt install yamagi-quake2 --no-install-recommends

Anschließend kann mit Hilfe von “innoextract” das GOG-Installationspaket entpackt werden und die Dateien können in das Yamagi Quake II-Standard-Verzeichnis “~/.yq2/” kopiert werden.

$ sudo apt install innoextract ... $ innoextract setup_quake2_quad_damage_2.0.0.3.exe ... $ mkdir ~/.yq2/ $ cp -r --preserve=timestamps app/baseq2 ~/.yq2/ $ cp -r --preserve=timestamps app/music ~/.yq2/

Mit dem Aufruf von

$ /usr/lib/yamagi-quake2/quake2

wird Quake II gestartet. Wer die Dateien lieber an einer anderen Stelle in Dateisystem ablegen möchte, kann dies ebenfalls tun und muß den Aufruf des Clients um den Parameter “-datadir” ergänzen:

$ /usr/lib/yamagi-quake2/quake2 -datadir VERZEICHNISNAME

Um das Starten komfortabler zu gestalten, kann noch eine “.desktop”-Datei erstellt werden:

$ cp --preserve=timestamp app/goggame-1441704824.ico ~/.yq2/ $ vi .local/share/applications/Quake2.desktop [Desktop Entry] Type=Application Encoding=UTF-8 Name=Quake ][ Exec=/usr/lib/yamagi-quake2/quake2 Icon=~/.yq2/goggame-1441704824.ico Terminal=false Categories=Game

Das Kopieren der Missionspakete erfolgt analog zum Hauptspiel:

$ cp -r --preserve=timestamps app/rogue ~/.yq2/ $ cp -r --preserve=timestamps app/xatrix ~/.yq2/

Beim Aufruf des Clients ist noch ein “+set game rogue” oder “+set game xatrix” hinzuzufügen.


Quake II in Full HD

21. Mai 2016 · Spiele · andreas · Kein Kommentar

Wer Quake 2 auf einem modernen Rechner installiert, erlebt eine Überraschung: die Auswahl der Bildschirmauflösungen endet bei 1600 x 1200, die heute meist übliche Full-HD-Auflösung von 1920 x 1080 wird nicht zur Auswahl angeboten.

Abhilfe schaffen entweder ominöse Patches aus unbekannten Quellen oder ein kurzer Eingriff mit dem HEX-Editor: in der “Quake2.exe” nach der Bytefolge

00 40 06 00 00 B0 04 00

suchen und diese durch

00 80 07 00 00 38 04 00

ersetzen. Hierdurch wird bei Auswahl der 1600 x 1200’er Auflösung stattdessen 1920 x 1080 eingestellt.