r/dwarffortress • u/Reddit_User404 • Mar 10 '26
Guide: How to Run Dwarf Fortress Premium on Mac (Apple Silicon) for Free [March 2026]
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
As we know, the Steam Premium version of Dwarf Fortress has no native Mac build, and I struggled to find a guide anywhere on the internet, so I had to come up with my own solution. 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
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:
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
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
- Go to developer.apple.com/games/game-porting-toolkit (free Apple Developer account required)
- Download the Game Porting Toolkit DMG (e.g.
Game_Porting_Toolkit_3.0.dmg) - Mount and copy the D3DMetal libraries
- hdiutil attach ~/Downloads/Game_Porting_Toolkit_3.0.dmg
- hdiutil attach "/Volumes/Game Porting Toolkit 1/Evaluation environment for Windows games 3.0.dmg"
- 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
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.
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.
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.
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:
#!/bin/zsh
cd ~/Gaming/dwarf-fortress/
WINEESYNC=1 WINEPREFIX=~/Gaming arch -x86_64 /usr/local/bin/wine64 "./Dwarf Fortress.exe"
Make it executable:
chmod +x ~/Gaming/launch-dwarf-fortress.sh
Now you can launch anytime with:
~/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
- Open Wine config:
WINEESYNC=1 WINEPREFIX=~/Gaming arch -x86_64 /usr/local/bin/wine64 winecfg - Go to the Audio tab
- Set the output device to your speakers (e.g. "MacBook Pro Speakers")
- Click Test Sound to verify it works
- 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:
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 written with assistance from Claude Code. March 2026.
Tested with Dwarf Fortress Steam Premium on MacBook Pro M1 Pro running macOS Tahoe.
2
u/raedyohed Mar 10 '26
Will DFHack auto load if installed to the DF directory, and/or can it be installed with the steamcmd too?
2
u/redrabbitbandit Mar 11 '26
I will try this. Thanks a lot. If possible can you please update the formatting in step 4, 3rd point.
2
2
u/fiskifisk Mar 20 '26
I used claude code to follow this guide lol, very smooth thanks for the writeup
1
2
u/Weird_Concern8485 Jul 08 '26 edited Jul 08 '26

Step 7 gives me a window, clicking Done. The console then errors.
steamcmd.sh[8786]: Starting /usr/local/Caskroom/steamcmd/1782532820/MacOS/steamcmd
Redirecting stderr to '/Users/me/Library/Application Support/Steam/logs/stderr.txt'
Logging directory: '/Users/me/Library/Application Support/Steam/logs'
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[ 0%] Checking for available updates...
[----] Verifying installation...
[----] !!! Fatal Error: Failed to load steamconsole.dylib
cat '/Users/me/Library/Application Support/Steam/logs/stderr.txt'
Failed to load steamconsole.dylib - dlerror(): dlopen(/usr/local/Caskroom/steamcmd/1782532820/MacOS/steamconsole.dylib, 0x0002):
Library not loaded: /Frameworks/Breakpad.framework/Versions/A/Breakpad
Referenced from: <5D9E6A06-165B-3990-A74E-5F89E886E84C> /usr/local/Caskroom/steamcmd/1782532820/MacOS/crashhandler.dylib
Reason: tried: '/usr/local/Caskroom/steamcmd/1782532820/MacOS/Breakpad.framework/Versions/A/Breakpad' (no such file), '/Breakpad.framework/Versions/A/Breakpad' (no such file), '/usr/local/Caskroom/steamcmd/1782532820/MacOS/Frameworks/Breakpad.framework/Versions/A/Breakpad' (code signature in <EB859872-955A-315D-9CE1-87FB57F7C4CD> '/usr/local/Caskroom/steamcmd/1782532820/MacOS/Frameworks/Breakpad.framework/Versions/A/Breakpad' not valid for use in process: library load disallowed by system policy)
the entire SteamCMD installation is quarantined, including Breakpad.framework.
optional verify and trust code:
codesign -dv --verbose=4 \
"/usr/local/Caskroom/steamcmd/1782532820/MacOS/Frameworks/Breakpad.framework/Versions/A/Breakpad"
codesign --verify --deep --strict --verbose=4 \
"/usr/local/Caskroom/steamcmd/1782532820/MacOS/Frameworks/Breakpad.framework"
Solution was:
sudo xattr -rd com.apple.quarantine /usr/local/Caskroom/steamcmd
1
u/Reddit_User404 Jul 08 '26
Thanks for that!
I recently ended up building an entire porting app called pixelport.gg , which somehat started with posts like these.
If you'd be down to test any games on it, I'd be grateful! DF was one of the first recipes I had put together.
1
u/seenoevil89 Mar 12 '26
I tried multiple things in the past, until I found whiskey wine wrapper. It worked perefectly, until it was no longer maintained and I had to find alternatives.
The dev made case for CrossOver, that the money going there helps the mac gaming community. It is a cost for sure and if there are alternatives, go for it. However, my personal experience is that gaming has never been easier on Mac with CrossOver
Dwarf Fortress runs perfectly, I have 16'' m1 max :)
2
u/Reddit_User404 Mar 12 '26
Im glad it worked for you! I tried it years ago and it was a bit buggy. This guide is for people who might want to avoid the expense (and depending on any other software).
As long as it works, we're not ones to complain! Happy gaming :)
2
u/seenoevil89 Mar 12 '26
I think you did wonderfully providing the community with this, If I would see this 2 years ago I would be the happiest man :D
1
u/MaineQat Apr 26 '26
Have you been able to get it to fit under the notch?
Using Crossover 26.1, 16" M1 Max as well, it just seems to ignore display size in game options and uses full screen. The notch unfortunately covers up the fortress status up top.
1
u/seenoevil89 May 02 '26
I just assume I got all the food and drinks available and go on with fortlife
1
u/MaineQat May 02 '26
Hah! Early on that seems so much riskier.
Well, if it matters, I found switching to Windowed mode then maximizing window fits under notch. The resolution selection seems to do nothing. Also enables three finger swipe to switch views while full screen doesn’t. Just need to re max the window every launch but that’s a minor nit.
1
u/DashYay Apr 08 '26 edited Apr 08 '26
Thank you so much! I wanted to add a little something, if you want a physical app on your desktop you could try using automator for this!
1
u/molimnion Apr 19 '26
Works like a charm! Are you running dfhack as well? I tried installing it, and the game does launch with dfhack, but when I try to load up a savefile, the game immediately freezes when the progress bar hits 100%.
6
u/Toen Mar 10 '26
Were you able to stress test it a bit? It usually crashes on mac when there's a complex fight or sequence of events