Nach mehr als 15 abstinenten Jahren habe ich das Hobby meiner Kindheit und Jugendzeit wiederentdeckt: Computerspiele. Neben aktuellen Titeln haben es mir vor allem die DOS- und Windows-Spiele der 1990er Jahre angetan. Doch wie spielt man diese auf moderner Hardware und unter Linux?

Wolfenstein 3D (1992)

LZWolf Source Port

Im Jahr 2019 wurde nach 25 Jahren die Beschlagnahmung und Indizierung von Wolfenstein 3D aufgehoben. Der First Person Shooter aus dem Jahr 1992 gilt als wegweisender Meilenstein der Videospielgeschichte.

Die meisten DOS-Spiele lassen sich im problemlos mit dem Emulator DOSBox spielen und Wolfenstein 3D ist da keine Ausnahme. Da der Quelltext freigegeben wurde, gibt es aber auch zahlreiche Source Ports von Hobbyprogrammierern, die das Spiel an moderne Hardware und Betriebssysteme angepasst haben.

Für Wolfenstein 3D verwende ich den Source Port LZWolf. Dieser unterstützt nicht nur das Hauptspiel sondern auch den Nachfolger Spear of Destiny, die beiden offiziellen Zusatzmissionen sowie weitere Spiele auf Basis der Wolf3D-Engine.

Auch für den Source Port wird das Originalspiel benötigt. Falls dieses noch nicht vorhanden ist, kann es z.B. auf GOG.COM erworben werden.

Der aktuelle Entwicklungsstand von LZWolf kann wie folgt heruntergeladen und kompiliert werden:

Im Folgenden wird davon ausgegangen, dass sich die DOS-Version von Wolfenstein 3D im Ordner ~/Wolf3D befindet. Auf Abhängigkeiten zu externen Bibliotheken wird an dieser Stelle nicht eingegangen.

user@linux ~/Wolf3D $ git clone https://bitbucket.org/linuxwolf6/lzwolf.git
user@linux ~/Wolf3D $ cd lzwolf
user@linux ~/Wolf3D/lzwolf $ cmake .
user@linux ~/Wolf3D/lzwolf $ make

LZWolf kann wie folgt gestartet werden:

user@linux ~/Wolf3D $ lzwolf/lzwolf

Alternativ können die Datendateien der unterstützten DOS-Spiele (*.WL6, *.SOD, *.SD1 bzw. *.SD2) in das lzwolf-Verzeichnis kopiert und lzwolf dort gestartet werden. Ein Popup fragt ab, welches der vorhandenen Spiele ausgeführt werden soll.

Falls das Spiel nicht startet ...

LZWolf ist sehr empfindlich, was die unterstützten Versionen der verschiedenen Spiele angeht und erwartet die jeweils letzte offizielle Version. Liegt diese nicht vor, startet das Spiel ggf. nicht, und nicht immer ist die Fehlermeldung aussagekräftig. In meinem Fall lautete sie "TILE8 is not a recognizable font". Abhilfe schafft das Programm Wolf3DEnginePatches, welches sämtliche unterstützte Spiele automatisch auf die jeweils letzte Version aktualisiert.

Der aktuelle Entwicklungsstand von Wolf3DEnginePatches kann wie folgt heruntergeladen und kompiliert werden:

user@linux ~/Wolf3D $ git clone https://bitbucket.org/ecwolf/wolf3denginepatches.git
user@linux ~/Wolf3D $ cd wolf3denginepatches
user@linux ~/Wolf3D/wolf3denginepatches $ cmake .
user@linux ~/Wolf3D/wolf3denginepatches $ make

Wolf3DEnginePatches kann wie folgt angewendet werden:

Im Gegensatz zu LZWolf erkennt das Patchutility die Spieldateien nur dann, wenn die Dateinamen in Kleinbuchstaben gespeichert sind. Daher müssen die Dateinamen ggf. zuerst umbenannt werden:

user@linux ~/Wolf3D $ for i in $( ls | grep [A-Z] ); do mv -i $i `echo $i | tr 'A-Z' 'a-z'`; done

Anschließend kann das Patchutility gestartet werden:

user@linux ~/Wolf3D $ wolf3denginepatches/wolf3dengpatch