The 1993 video game Doom, by id Software, was released for Mac on November 4, 1994. But, good luck if you want to:

  1. find that version
  2. figure out a way to run it within some kind of emulation of Mac OS 9 on your modern macOS-running computer (is that even possible?).

Fortunately for us, GZDoom1 (official site), a “3D-accelerated Doom source port based on ZDoom2”, has our backs. It enables us to play the game as long as we can extract the WAD file from the Doom .exe file for Windows.

If getting from zero to fighting demon hordes on macOS was a straightforward course of action, there would be no need for this blog post. But, it’s a bit of an involved process, so here is the missing manual to get you up and running.

I currently use an Intel-based Macbook Pro running macOS Monterey, so that is what the following guide has been tested on. The process should still hopefully work for Apple Silicon-based Macs and/or other macOS versions, but your mileage may vary.
Update 6 October 2022: I now use a M1 Macbook Pro, and Doom with GZDoom works just fine. Apple Silicon-based Mac users can keep reading.

Get GZDoom

GZDoom downloads page

It is possible to get GZDoom from its downloads page.

You can click on the Macintosh link to download it, and install it like you would any other macOS application.

However, since you are going to have to get comfortable with using the Terminal application during this guide, I would suggest using this installation as the first opportunity to try it out (assuming you are not already comfortable, and have your own terminal emulator of choice).

You are going to need to get Homebrew, a package manager for macOS. Go to the Homebrew homepage, copy the installation command, open up your terminal, paste the command, and press enter.

Once Homebrew is installed, you should be able to run the brew command in the terminal, so let’s do that using the following command to install GZDoom:

brew install gzdoom

If everything was successful, you should see output that looks something like this:

$ brew install gzdoom
==> Downloading https://github.com/coelckers/gzdoom/releases/download/g4.7.1/gzdoom-4-7-1-macOS.zip
==> Downloading from https://objects.githubusercontent.com/github-production-release-asset-2e65be/10879376/59b36246-0a5b-4b9e-8fd8-90c6fce651f9?X-Amz-Algorith
######################################################################## 100.0%
==> Installing Cask gzdoom
==> Moving App 'GZDoom.app' to '/Applications/GZDoom.app'
🍺  gzdoom was successfully installed!

Open up your Applications folder, and you should find GZDoom there, ready to go.

GZDoom in the macOS Applications directory

However, if you double-click the icon and open GZDoom, you will likely find yourself greeted with an error message that looks like the following:

GZDoom cannot find a Doom WAD file

GZDoom needs WAD files to run (and for you to place them in your local Library directory, ~/Library/Application Support/gzdoom, which we will get to later…).

GZDoom’s purpose is to run Doom, and is not, itself, the game Doom. So, it’s off to the store to go get it!

Get Doom

The Ultimate Doom may be available on Steam, but we are going to need a file that is only provided in the version available on GOG.com.

So, if you have not got a GOG.com account yet, create one, then go and buy your copy of The Ultimate Doom.

GOG.com The Ultimate Doom purchase page
The price displayed here is in AUD. Your price will likely reflect your region.

All paid up and ready to go? Great! Go to the game detail page for your copy of The Ultimate Doom and let’s have a look at the files that are available to download.

Download the Doom Offline Backup Game Installers from GOG.com

See that big blue “DOWNLOAD AND INSTALL NOW” button that GOG.com is trying to guide you toward? Ignore it. The file downloaded from that button is for Windows users only, and cannot be used on a Mac.

What we want is the less obvious “Offline Backup Game Installer”. Download the file linked from there, which will have a name like setup_the_ultimate_doom_1.9_(28044).exe. Although we cannot directly use this .exe file on Mac, it contains the Doom WAD file that we seek to extract.

Update 19 February 2024: If you buy The Ultimate Doom from GOG.com, you will now also find “Doom I Enhanced” in your game collection. This has a different set of files in its “Offline Backup Game Installer” to The Ultimate Doom, and, as of this writing, seems to not be compatible with GZDoom (same for “Doom II Enhanced” if you also bought Doom II). So, for now, do not download files from any “enhanced” versions of Doom.

Extract WAD File

The extraction process is going to generate a lot of new files, so I would suggest first creating a new directory somewhere that can contain them.

I just created a temporary TheUltimateDoom directory on my home Desktop, and put the setup file in there (feel free to do the same, or name it whatever you would like):

The offline backup game installer in its own directory
Terminal path: ~/Desktop/TheUltimateDoom

In order to perform the extraction, you will need to install a new program called innoextract (source code).

innoextract web page screenshot

innoextract is a “tool to unpack installers created by Inno Setup”, which is a “tool to create installers for Microsoft Windows applications”. Of particular interest to us is that it supports GOG.com’s Inno Setup-based game installers, which the “Offline Backup Game Installer” you downloaded most definitely is.

Like with GZDoom, you install innoextract using Homebrew with the following command:

brew install innoextract

Unlike with GZDoom, using Homebrew is the only installation option available. So, if you ignored the last suggestion to install GZDoom using a terminal, now is the time to acquaint yourself with the command line.

If everything is successful, you should get output that looks something like this:

$ brew install innoextract
==> Downloading https://ghcr.io/v2/homebrew/core/innoextract/manifests/1.9_1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/innoextract/blobs/sha256:7206f8b88483356746d682b1e631d214e6172b808bd7b8b0567cb9c0f0906abb
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:7206f8b88483356746d682b1e631d214e6172b808bd7b8b0567cb9c0f0906abb?se=2022-05-13T23%3A25%3A00Z&sig=AvLqNPFvkGI%2B9T1AJqz%2FWNuK0AW%2FzO%2FrIVjRHJeiBc4%3D&sp=r&spr=https&s
######################################################################## 100.0%
==> Pouring innoextract--1.9_1.monterey.bottle.tar.gz
🍺  /usr/local/Cellar/innoextract/1.9_1: 7 files, 622.9KB
==> Running `brew cleanup innoextract`...

Let’s now put innoextract into action. In your terminal, change directory (cd) to the location where you put the Offline Backup Game Installer file, and run innoextract against it.

For the directory and installer filename above, that would be:

cd ~/Desktop/TheUltimateDoom
innoextract setup_the_ultimate_doom_1.9_(28044).exe

If everything is successful, you will get a whole bunch of output on your screen, that will include something like the following:

Extract WAD file from Offline Backup Game Installer file

And there is your payload: DOOM.WAD. Let’s go and introduce it to GZDoom!

Play Doom with GZDoom

Open up a Finder window, go to the directory where all of your now-extracted files are, and find DOOM.WAD:

Locate DOOM.WAD file in a Finder window

Copy DOOM.WAD into your local Library files under a gzdoom directory, so that GZDoom knows where to find it. If a gzdoom directory does not exist already, you can create it:

Copy DOOM.WAD over to your local Library files
Terminal path: ~/Library/Application Support/gzdoom

Once you have done this, you can safely delete your TheUltimateDoom directory where you extracted all of Doom’s files.

Now, all that is left is to run GZDoom! Double-click GZDoom in your Applications directory, and you should be greeted with a familiar title screen:

Doom on Mac using GZDoom

If you ever buy any other titles that also have WAD files, like Doom II, or Heretic (or get any of the other list of notable WADs), repeat the same process, and you should also be able to play them in GZDoom.

But for now, don your helmet and armour, load your shotgun, and get yourself back to Mars for some classic 2.5D fragging fun!


Check out my Steno Gaming: Doom Typist post to see how to turn Doom into a typing game with Typist.pk3, and then use it with Plover stenography. Here it is in action!

  1. GZDoom is named after Graf Zahl, the German name for Sesame Street character Count von Count, which Christoph Oelckers, GZDoom’s coder and maintainer, uses as an online moniker

  2. The meaning (and pronunciation) of the “Z” in ZDoom would seem to be up for debate

Tags:

Updated:

Leave a comment