Instantly share code, notes, and snippets.
Created
March 10, 2026 18:20
-
Star
2
(2)
You must be signed in to star a gist -
Fork
2
(2)
You must be signed in to fork a gist
-
-
Save seanellul/55b402058fd2309d4c85b02251a0d1db to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Dwarf Fortress Premium on Mac (Apple Silicon) — Full Setup Guide | |
| **Tested on:** MacBook Pro M1 Pro, macOS Tahoe 26.3, GPTK 3.0 | |
| **Last updated:** March 2026 | |
| **Result:** Full game with audio, world generation, and gameplay working | |
| The Steam Premium version of Dwarf Fortress has no native Mac build and the devs have cancelled macOS plans. This guide gets it running on Apple Silicon Macs using Apple's Game Porting Toolkit (GPTK) — no CrossOver, no Whisky (discontinued), no paid software needed. | |
| --- | |
| ## Prerequisites | |
| - Apple Silicon Mac (M1/M2/M3/M4) | |
| - macOS Sonoma 14.5+ (Sequoia or Tahoe recommended) | |
| - Free Apple Developer account (for GPTK DMG download) | |
| - Dwarf Fortress owned on Steam | |
| - ~5 GB free disk space | |
| ## Step 1: Install Rosetta 2 | |
| ```bash | |
| softwareupdate --install-rosetta | |
| ``` | |
| ## Step 2: Install x86 Homebrew | |
| Your existing ARM Homebrew (at `/opt/homebrew`) won't work for GPTK. You need the x86 version alongside it: | |
| ```bash | |
| arch -x86_64 zsh -c '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"' | |
| ``` | |
| This installs to `/usr/local/bin/brew`. **Do NOT add it to your PATH** — it will conflict with your ARM Homebrew. We'll call it directly with the full path. | |
| ## Step 3: Install GPTK via Gcenx | |
| ```bash | |
| arch -x86_64 /usr/local/bin/brew tap gcenx/homebrew-apple | |
| arch -x86_64 /usr/local/bin/brew install gcenx/wine/game-porting-toolkit | |
| ``` | |
| This installs a prebuilt GPTK (much faster than building from source). | |
| ## Step 4: Download and install GPTK libraries from Apple | |
| 1. Go to [developer.apple.com/games/game-porting-toolkit](https://developer.apple.com/games/game-porting-toolkit/) (free Apple Developer account required) | |
| 2. Download the Game Porting Toolkit DMG (e.g. `Game_Porting_Toolkit_3.0.dmg`) | |
| 3. Mount and copy the D3DMetal libraries: | |
| ```bash | |
| # Mount the outer DMG | |
| hdiutil attach ~/Downloads/Game_Porting_Toolkit_3.0.dmg | |
| # Mount the inner evaluation environment DMG | |
| # (check the exact volume name after mounting) | |
| hdiutil attach "/Volumes/Game Porting Toolkit 1/Evaluation environment for Windows games 3.0.dmg" | |
| # Copy the libraries | |
| ditto "/Volumes/Evaluation environment for Windows games 3.0/redist/lib/" \ | |
| "/Applications/Game Porting Toolkit.app/Contents/Resources/lib/" | |
| ``` | |
| ## Step 5: Create a Wine prefix | |
| ```bash | |
| WINEPREFIX=~/Gaming arch -x86_64 /usr/local/bin/wine64 winecfg | |
| ``` | |
| A configuration window will appear. Set Windows version to **Windows 10**, click Apply, then OK. | |
| ## Step 6: Install Visual C++ Runtime | |
| This is required — Dwarf Fortress will crash without it. | |
| ```bash | |
| arch -x86_64 /usr/local/bin/brew install winetricks | |
| WINEPREFIX=~/Gaming WINE=/usr/local/bin/wine64 arch -x86_64 \ | |
| /usr/local/bin/winetricks vcrun2022 | |
| ``` | |
| ## Step 7: Download Dwarf Fortress via steamcmd | |
| We download the Windows version directly — no need to run Steam inside Wine. | |
| ```bash | |
| brew install steamcmd | |
| steamcmd \ | |
| +@sSteamCmdForcePlatformType windows \ | |
| +force_install_dir ~/Gaming/dwarf-fortress \ | |
| +login YOUR_STEAM_USERNAME \ | |
| +app_update 975370 validate \ | |
| +quit | |
| ``` | |
| Replace `YOUR_STEAM_USERNAME` with your Steam username. It will prompt for your password and Steam Guard code. | |
| ## Step 8: Launch Dwarf Fortress | |
| **IMPORTANT:** You must `cd` into the game directory before launching. Running the exe from outside the directory causes crashes and audio failure. | |
| ```bash | |
| cd ~/Gaming/dwarf-fortress/ | |
| WINEESYNC=1 WINEPREFIX=~/Gaming arch -x86_64 /usr/local/bin/wine64 "./Dwarf Fortress.exe" | |
| ``` | |
| ### Create a launch script | |
| Save this as `~/Gaming/launch-dwarf-fortress.sh`: | |
| ```bash | |
| #!/bin/zsh | |
| cd ~/Gaming/dwarf-fortress/ | |
| WINEESYNC=1 WINEPREFIX=~/Gaming arch -x86_64 /usr/local/bin/wine64 "./Dwarf Fortress.exe" | |
| ``` | |
| Make it executable: | |
| ```bash | |
| chmod +x ~/Gaming/launch-dwarf-fortress.sh | |
| ``` | |
| Now you can launch anytime with: | |
| ```bash | |
| ~/Gaming/launch-dwarf-fortress.sh | |
| ``` | |
| --- | |
| ## Troubleshooting | |
| ### Game crashes with `msvcp140_atomic_wait.dll` error | |
| You missed Step 6. Install the VC++ runtime with winetricks. | |
| ### No audio | |
| 1. Open Wine config: `WINEESYNC=1 WINEPREFIX=~/Gaming arch -x86_64 /usr/local/bin/wine64 winecfg` | |
| 2. Go to the Audio tab | |
| 3. Set the output device to your speakers (e.g. "MacBook Pro Speakers") | |
| 4. Click Test Sound to verify it works | |
| 5. Make sure you're launching from the game directory (Step 8) | |
| ### Game crashes on "Create World" | |
| Make sure you `cd` into the game directory before launching. This is the most common cause — running the exe from outside the directory causes a null pointer crash on the audio thread. | |
| ### Steam Streaming virtual audio devices appearing | |
| If you see "Steam Streaming Speakers" and "Steam Streaming Microphone" in your audio output list, these are leftover virtual audio drivers from the native Mac Steam app. Remove them: | |
| ```bash | |
| sudo rm -rf "/Library/Audio/Plug-Ins/HAL/SteamStreamingMicrophone.driver" \ | |
| "/Library/Audio/Plug-Ins/HAL/SteamStreamingSpeakers.driver" | |
| sudo launchctl kickstart -k system/com.apple.audio.coreaudiod | |
| ``` | |
| ### `ca_channel_layout_to_channel_mask Unhandled channel 0xffffffff` in logs | |
| This is a harmless Wine warning about audio channel mapping. It does not affect gameplay or audio output. | |
| ### Updating Dwarf Fortress | |
| Re-run the steamcmd command from Step 7 to download the latest version. | |
| --- | |
| ## What's installed where | |
| | Component | Location | | |
| |-----------|----------| | |
| | x86 Homebrew | `/usr/local/bin/brew` | | |
| | GPTK app | `/Applications/Game Porting Toolkit.app` | | |
| | Wine prefix | `~/Gaming/` | | |
| | Game files | `~/Gaming/dwarf-fortress/` | | |
| | Launch script | `~/Gaming/launch-dwarf-fortress.sh` | | |
| --- | |
| ## Credits | |
| Guide by @seanellul, written with assistance from Claude Code. March 2026. | |
| Tested with Dwarf Fortress Steam Premium on MacBook Pro M1 Pro running macOS Tahoe. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment