The games/vkquake port

vkquake-1.30.1 – port of Quake 1 using Vulkan instead of OpenGL (cvsweb github mirror)


vkQuake is a Quake 1 port using Vulkan instead of OpenGL for
rendering. It is based on the popular QuakeSpasm port and runs all
mods compatible with it like Arcane Dimensions or In The Shadows.

Compared to QuakeSpasm vkQuake also features a software Quake like
underwater effect, has better color precision, generates mipmap for
water surfaces at runtime and has native support for anti-aliasing
and AF.

vkQuake also serves as a Vulkan demo application that shows basic
usage of the API. For example it demonstrates render passes & sub
passes, pipeline barriers & synchronization, compute shaders, push
& specialization constants, CPU/GPU parallelism and memory pooling.
WWW: https://github.com/Novum/vkQuake


| Running ${PKGSTEM} on OpenBSD

Running vkQuake

Quake has 4 episodes that are split into 2 files:

pak0.pak: contains episode 1
pak1.pak: contains episodes 2-4

These files aren't free to distribute, but pak0.pak is sufficient to run the
game and it's freely available via the shareware version of Quake. Use 7-Zip or
a similar file archiver to extract quake106.zip/resource.1/ID1/PAK0.PAK.
Alternatively, if you own the game, you can obtain both .pak files from its
install media.

Now copy the .pak files to


Note that the filename must be all lower case (e.g. 'pak0.pak') to work with

Optional - Music / Soundtrack
The original quake had a great soundtrack by Nine Inch Nails. Unfortunately, the
Steam version does not come with the soundtrack files. The GOG-provided files
need to be converted before they are ready for use. In general, you'll just need
to move a "music" folder to the correct location within your vkQuake
installation (i.e. ${PREFIX}/share/vkquake/id1/music). Most Quake engines play
nicest with soundtracks placed in the id1/music subfolder vs. sound\cdtracks

QuakeSpasm, the engine vkQuake is derived from, supports OGG, MP3, FLAC, and WAV
audio formats. The Linux version of QuakeSpasm/VkQuake requires external
libraries: libogg or libvorbis for OGG support, libmad or libmpg123 for MP3, and
libflac for FLAC. If you already have a setup that works for the engine you're
currently using, then you don't necessarily have to change it.

To convert the WAV files to FLAC, run this command with libflac and sox
installed in a directory containing the WAV files:

for f in *.wav; do sox "$f" "${f%.wav}.flac"; done

Generally, the below setup works for multiple engines, including

* The music files are loose files, NOT inside a pak or pk3 archive.

* The files are placed inside a "music" subfolder of the "id1" folder. For
missionpack or mod soundtracks, the files are placed in a "music" subfolder of
the appropriate game folder. So the original Quake soundtrack files go inside
"id1\music", Mission Pack 1 soundtrack files go inside "hipnotic\music", and
Mission Pack 2 soundtrack files go inside "rogue\music".

* The files are named in the pattern "tracknn", where "nn" is the CD track
number that the file was ripped from. Since the soundtrack starts at the second
CD track, MP3 soundtrack files are named "track02.mp3", "track03.mp3", etc. OGG
soundtrack files are named "track02.ogg", "track03.ogg", etc. FLAC soundtrack
files are named "track02.flac", "track03.flac", etc. WAV soundtrack files are
named "track02.wav", "track03.wav", etc.


Thomas Frohwein

Only for arches

aarch64 alpha amd64 arm hppa i386 mips64 mips64el powerpc powerpc64 riscv64 sparc64


games x11

Library dependencies

Build dependencies