Run The Settlers IV Gold Edition (GOG) on macOS, including Apple Silicon (M1/M2/M3/M4).
This wrapper solves the "Error initializing Graphic Interface" crash that affects Settlers 4 under Wine on macOS. It uses cnc-ddraw to replace the broken DirectDraw implementation with one that works under Wine's macOS graphics stack.
- macOS 11+ (tested on macOS 15 / Apple Silicon)
- Homebrew
- A licensed copy of The Settlers IV Gold Edition from GOG
git clone git@github.com:romanonthego/settlers-4-mac.git
cd s4
# Copy your GOG game files into the game/ directory
cp -R "/path/to/Settlers 4 Gold" ./game
# Run setup (installs Wine, creates prefix, downloads cnc-ddraw)
./setup.sh
# Play
./run.sh- Installs wine-crossover via Homebrew (if not present)
- Checks for Rosetta 2 (required for x86 translation on Apple Silicon)
- Creates a local Wine prefix in
./wineprefix/(portable, self-contained) - Downloads cnc-ddraw and installs it into the game directory
- Configures windowed mode with free mouse and full resolution list
No game files are included or distributed. You must supply your own licensed GOG copy.
Settlers 4 is a 32-bit Windows DirectDraw game from 2001. On macOS, the translation chain is:
S4_Main.exe → cnc-ddraw (DirectDraw → OpenGL) → Wine (Win32 → macOS) → Rosetta 2 (x86 → ARM)
The core problem is that Wine's built-in DirectDraw implementation fails to initialize graphics on macOS — both software and hardware 3D renderers crash with "Error initializing Graphic Interface". This is a known issue with no existing macOS-specific fix.
cnc-ddraw replaces Wine's DirectDraw with a purpose-built implementation that renders via OpenGL/GDI, which Wine on macOS handles correctly. The WINEDLLOVERRIDES="ddraw=n,b" environment variable tells Wine to use cnc-ddraw's ddraw.dll instead of its own.
If you installed via GOG on a Whisky bottle, your game files are typically at:
~/Library/Containers/com.isaacmarovitz.Whisky/Bottles/<ID>/drive_c/GOG Games/Settlers 4 Gold
The game/ directory should contain S4.exe and an Exe/ subfolder with S4_Main.exe.
Change resolution in-game via the settings menu. The full resolution list is available (up to 1280x1024).
You can also edit game/Config/GameSettings.cfg:
Screenmode = 1 # 800x600
Screenmode = 2 # 1024x768
Screenmode = 3 # 1280x1024
The wrapper adds a [S4_Main] section to game/Exe/ddraw.ini:
[S4_Main]
nonexclusive=true
adjmouse=true
windowed=true
devmode=true
width=0
height=0
resizable=true
resolutions=2Key settings:
windowed=true— run in a window instead of fullscreendevmode=true— mouse is not captured (move freely between game and desktop)resolutions=2— expose full resolution list to the game
To lock the mouse inside the window, set devmode=false.
To run fullscreen, set windowed=false in the [S4_Main] section of game/Exe/ddraw.ini.
Make sure setup.sh completed successfully. Check that game/Exe/ddraw.dll is the cnc-ddraw version (not the original). The original is backed up as ddraw.dll.orig.
Wine's audio usually works out of the box on macOS. If you have issues, check that your audio output device is active before launching the game.
Edit game/Exe/ddraw.ini and set maxgameticks=60 in the [S4_Main] section.
Set width=1024 and height=768 (or your preferred size) and resizable=false in the [S4_Main] section.
In game/Config/GameSettings.cfg, set LandscapeHardware=1 and ObjectHardware=1. This may cause visual artifacts under Wine — software rendering is recommended.
s4/
├── setup.sh # One-time setup script
├── run.sh # Launch script
├── game/ # Your GOG game files (gitignored)
├── wineprefix/ # Wine environment (gitignored, created by setup.sh)
├── .cache/ # Downloaded files (gitignored)
├── README.md
├── LICENSE
└── CLAUDE.md
- cnc-ddraw by FunkyFr3sh — DirectDraw reimplementation
- wine-crossover by Gcenx — Wine for macOS
- Blue Byte / Ubisoft — The Settlers IV
- GOG.com — DRM-free game distribution
MIT — see LICENSE. This applies to the wrapper scripts and configuration only. The Settlers IV is property of Ubisoft. Game files are not included.