How to Install Quake to run Natively on a 64bit MacOS

Overview

Unfortunately since Apple dropped support for 32-bit applications several years ago, getting older games to run on MacOS can be a bit tricky. This is a shame since many of the classics still hold up great. Today we’ll be going over how to install Quake from source to run natively on a 64-bit MacOS system.

The particular version of Quake we’ll be installing is vkQuake which runs beautifully once set up. This was tested on a 2020 x86-64 MacBook but it should work on M1/M2 Macs as well. There are quicker ways to run Quake on a modern Mac, like running WinQuake through Crossover/Wine or by running the original DOS version on DOSBox, but both of these require you to run the game through a translation or emulation layer.

Instead, we'll be building the Vulkan source port so that we can run Quake natively.

Make Sure You Have the Correct Version of Xcode

First you’ll need to make sure you have Xcode installed on your Mac. This is mostly for the MoltenVK support. This means BOTH the command line tools AND the actual Xcode application. If you don’t already have the command line tools, type the following into terminal:

$ xcode-select --install


This may give you a prompt to install command line developer tools. Hit “Install”. Alternatively you can go to  developer.apple.com/downloads and download Command_Line_Tools_for_Xcode_X.X.dmg. To do the latter you will need to create an Apple developer account if you don’t already have one. Creating an account is pretty painless though and requires very little information.

Similarly you’ll need version 11.7 or above of the Xcode application. I’m doing this with version 11.7, but there are several newer versions if you’d prefer one that's more up to date. You can download specific versions of the Xcode application from developer.apple.com/downloads, or download the latest version on the Apple App Store.

You’ll also need to make sure homebrew is installed on your mac. I’m guessing a lot of you already have it installed, but if not, get it from https://brew.sh/. Once you have all of the above, you are ready to install vkQuake.

Getting and building the source

The GitHub page for vkQuake can be found here: https://github.com/Novum/vkQuake

Step 1: Install the vkQuake dependencies with hombrew:

$ brew install molten-vk vulkan-headers glslang spirv-tools sdl2 libvorbis flac opus opusfile flac mad meson pkgconfig

This may take some time to finish installing. Find something else to do while it grabs all of the dependencies.

Step 2: Clone the vkQuake repo:

$ git clone https://github.com/Novum/vkQuake.git


Step 3: cd into your new directory and build:

$ cd vkQuake
$ meson build && ninja -C build

The build process will also take some time. But once completed, you’re almost done.

Step 4: Verify that you have a “build” directory and “build/id1” directory:

Go back to the main project directory:

$ cd ..

There should now be a “build” directory in your project directory (<PATH_TO_PROJECT>/vkQuake/build). Go into this build directory and verify that a Unix executable called “vkquake” is present. Also check that there is an “id1” folder. If there is no “id1” folder in the build directory then create one.

Step 5: Add *.pak game data file(s):

If you don’t have a copy of the pak0.pak or pak1.pak Quake files handy, download the “PAK0.PAK” file from the original shareware release of the game. You can download this for free from the following archive:



Click “ZIP” on the the right side:



Download the “zQUAKE_SW-play.zip” file



Once downloaded, extract it and copy the contents of the “ID1” folder to “<path_to_project_directory>/vkQuake/build/id1”. Once “PAK0.PAK” is inside “vkQuake/build/id1”, you’re all set to play.

Running Quake

In terminal cd into the vkQuake/build directory if you’re not already there. Now run the executable with:

$ ./vkquake




Quake should now boot up and you should see the famous menu and the demo loop running. Jump into a single player game and see how everything looks. You can also play multiplayer over LAN and if you’re lucky you might even find a public server to play on with others. Happy fragging.