From 706c61a98ef27504021f1bf4642d0683d3e2f48e Mon Sep 17 00:00:00 2001 From: Eric J Date: Wed, 8 Apr 2026 10:21:32 -0700 Subject: [PATCH 1/7] Add MacOS instructions for playing the weekly releases. Updated text for clarity. --- SourceCode/Builds/RunReleaseBuildsonMacOS.md | 90 ++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 SourceCode/Builds/RunReleaseBuildsonMacOS.md diff --git a/SourceCode/Builds/RunReleaseBuildsonMacOS.md b/SourceCode/Builds/RunReleaseBuildsonMacOS.md new file mode 100644 index 00000000..1de9fd4b --- /dev/null +++ b/SourceCode/Builds/RunReleaseBuildsonMacOS.md @@ -0,0 +1,90 @@ +Tested on an M4 Pro MacBook Pro (24 GB RAM) running macOS Tahoe 26.4. The game runs through Wine-CrossOver via Heroic Launcher, no native macOS build exists yet. Performance and audio were both fine. + +## What you need + +- A Mac with Apple Silicon (M1 or later) +- macOS Tahoe (or recent macOS — older versions should work but aren't tested here) +- [Heroic Games Launcher](https://heroicgameslauncher.com/) (tested with 2.20.1) +- A Steam account that owns *Command & Conquer: Generals - Zero Hour* (app ID `2732960`) +- [Homebrew](https://brew.sh/) installed + +## Step 1: Install SteamCMD + +``` +brew install steamcmd +``` + +## Step 2: Download the game files + +Run this command. Replace `YOUR_USERNAME` with your Steam username. + +``` +steamcmd +@sSteamCmdForcePlatformType windows +login YOUR_USERNAME +app_update 2732960 validate +quit +``` + +The `+@sSteamCmdForcePlatformType windows` flag forces Steam to download the Windows version of the game, since there's no macOS build. + +Steam Guard will ask you to confirm on your phone. The download is about 3 GB. + +Files end up in: + +``` +~/Library/Application Support/Steam/steamapps/common/Command & Conquer Generals - Zero Hour/ +``` + +## Step 3: Install the community patch + +Go to the [GeneralsGameCode releases page](https://github.com/TheSuperHackers/GeneralsGameCode/releases) and download the latest `weekly-*-generalszh` build. + +Extract the files directly into the game folder from Step 2, overwriting the original executables. + +## Step 4: Install Wine-CrossOver in Heroic + +Open Heroic Games Launcher. Go to **Wine Manager** (in the sidebar or settings) and install **Wine-CrossOver-Latest**. Version 23.7.1-1 was used here. + +> ⚠️ **A note on GPTK**: Game Porting Toolkit was also tested but crashed on the splash screen. Wine-CrossOver worked without issues. If a future GPTK version fixes this, it may be worth retrying since Apple's DirectX-to-Metal translation is theoretically a better long-term path. +> + +## Step 5: Add the game to Heroic + +1. Open Heroic and go to **Library** +2. Click **Add Game** +3. Fill in: + - **Name**: Generals Zero Hour (or whatever you want) + - **Platform**: Windows + - **Executable**: browse to `generalsZH.exe` in the game folder +4. Make sure **Wine-CrossOver** is selected as the Wine version (not GPTK) you may need to do this step later. + +Heroic creates the Wine prefix automatically. No need to configure it manually. + +## Step 6: Launch and play + +Hit play. No Winetricks dependencies were needed, it ran out of the box with Wine-CrossOver. + +Set your resolution in the game's graphics options. 1900x1200 worked on a 14" MacBook Pro display. + +## Known issues + +### Mouse gets stuck on first launch + +The mouse cursor can get trapped or stop responding after the game launches. Pressing **Cmd+Tab** to switch away from the game and then back a few times fixed it. It's not clear whether this happens every launch or just the first time. + +If Cmd+Tab doesn't fix it, try enabling **Virtual Desktop** in Heroic's Wine configuration settings. That gives Wine its own contained window and usually resolves mouse capture problems with old DirectX games. + +## What was NOT tested + +- Online multiplayer +- The base *Generals* game (only *Zero Hour* was tested) +- Intel Macs +- Game Porting Toolkit (crashed — see note above) +- Mods + +## Troubleshooting + +Heroic logs are at: + +``` +~/Library/Application Support/heroic/GamesConfig/last.log +``` + +Check there if the game won't start. Common things to look for: D3D errors, missing DLL calls, or Wine prefix initialization failures. From 9bd025afdf32e65c18c4280d2e5cee1542daae0d Mon Sep 17 00:00:00 2001 From: Eric J Date: Thu, 9 Apr 2026 08:55:19 -0700 Subject: [PATCH 2/7] Clarify GPTK and finding Logs Added troubleshooting information and clarified issues with Game Porting Toolkit. --- SourceCode/Builds/RunReleaseBuildsonMacOS.md | 25 ++++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/SourceCode/Builds/RunReleaseBuildsonMacOS.md b/SourceCode/Builds/RunReleaseBuildsonMacOS.md index 1de9fd4b..1b1635bd 100644 --- a/SourceCode/Builds/RunReleaseBuildsonMacOS.md +++ b/SourceCode/Builds/RunReleaseBuildsonMacOS.md @@ -1,3 +1,5 @@ +# Running Generals Zero Hour on macOS (Apple Silicon) + Tested on an M4 Pro MacBook Pro (24 GB RAM) running macOS Tahoe 26.4. The game runs through Wine-CrossOver via Heroic Launcher, no native macOS build exists yet. Performance and audio were both fine. ## What you need @@ -42,8 +44,18 @@ Extract the files directly into the game folder from Step 2, overwriting the ori Open Heroic Games Launcher. Go to **Wine Manager** (in the sidebar or settings) and install **Wine-CrossOver-Latest**. Version 23.7.1-1 was used here. -> ⚠️ **A note on GPTK**: Game Porting Toolkit was also tested but crashed on the splash screen. Wine-CrossOver worked without issues. If a future GPTK version fixes this, it may be worth retrying since Apple's DirectX-to-Metal translation is theoretically a better long-term path. -> +### Why not Game Porting Toolkit? + +GPTK was tested but crashes on the splash screen. The crash is a memory allocation assertion inside Wine's virtual memory layer when running 32-bit executables through the `x86_32on64` translation path. Generals is a 32-bit DX8 game, and GPTK's 32-bit-on-64-bit emulation can't handle it. + +The relevant error from the Heroic log: + +``` +Assertion failed: (end <= pages_vprot_size << pages_vprot_shift), function alloc_pages_vprot, file virtual.c, line 1032. +0024:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception. +``` + +This is a bug in GPTK, not something configurable on your end. Wine-CrossOver handles 32-bit apps through a more mature emulation path and doesn't hit this issue. If a future GPTK version fixes 32-bit virtual memory allocation on ARM64, it may be worth retrying since Apple's DirectX-to-Metal translation is theoretically a better long-term path. ## Step 5: Add the game to Heroic @@ -76,15 +88,8 @@ If Cmd+Tab doesn't fix it, try enabling **Virtual Desktop** in Heroic's Wine con - Online multiplayer - The base *Generals* game (only *Zero Hour* was tested) - Intel Macs -- Game Porting Toolkit (crashed — see note above) - Mods ## Troubleshooting -Heroic logs are at: - -``` -~/Library/Application Support/heroic/GamesConfig/last.log -``` - -Check there if the game won't start. Common things to look for: D3D errors, missing DLL calls, or Wine prefix initialization failures. +If the game won't start, right-click the game icon in Heroic and select **Logs**. Common things to look for: D3D errors, missing DLL calls, or Wine prefix initialization failures. From 4d022de8f7508fd2c0c01d1943b8045df3b1b299 Mon Sep 17 00:00:00 2001 From: Eric J Date: Thu, 9 Apr 2026 09:07:44 -0700 Subject: [PATCH 3/7] Add Link to MacOS Guide --- SourceCode/_Sidebar.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SourceCode/_Sidebar.md b/SourceCode/_Sidebar.md index b7400b75..06bfa4e2 100644 --- a/SourceCode/_Sidebar.md +++ b/SourceCode/_Sidebar.md @@ -30,6 +30,11 @@ - [Using Cmake (x86) (Windows)](build_with_msvc22) - [Using Cmake (Linux)](build_with_msvc22_linux) +### **Community Guides**: +- **macOS Guides**: + - [Using Heroic & Wine-CrossOver (Apple Silicon)](macos_heroic_wine_crossover.md) + + ### **Other Forks**: - [MSVC22 (x64) Generals Only (Windows)](build_with_msvc22_x64_jmarshall2323) From 8660386aa305f084210c83e135293fad8afac0f7 Mon Sep 17 00:00:00 2001 From: Eric J Date: Thu, 9 Apr 2026 12:05:23 -0700 Subject: [PATCH 4/7] Fix MD Lint errors. --- SourceCode/Builds/RunReleaseBuildsonMacOS.md | 40 +++++++++++++------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/SourceCode/Builds/RunReleaseBuildsonMacOS.md b/SourceCode/Builds/RunReleaseBuildsonMacOS.md index 1b1635bd..4dfaf336 100644 --- a/SourceCode/Builds/RunReleaseBuildsonMacOS.md +++ b/SourceCode/Builds/RunReleaseBuildsonMacOS.md @@ -1,6 +1,8 @@ # Running Generals Zero Hour on macOS (Apple Silicon) -Tested on an M4 Pro MacBook Pro (24 GB RAM) running macOS Tahoe 26.4. The game runs through Wine-CrossOver via Heroic Launcher, no native macOS build exists yet. Performance and audio were both fine. +Tested on an M4 Pro MacBook Pro (24 GB RAM) running macOS Tahoe 26.4. +The game runs through Wine-CrossOver via Heroic Launcher, no native macOS build exists yet. +Performance and audio were both fine. ## What you need @@ -12,7 +14,7 @@ Tested on an M4 Pro MacBook Pro (24 GB RAM) running macOS Tahoe 26.4. The game r ## Step 1: Install SteamCMD -``` +```bash brew install steamcmd ``` @@ -20,42 +22,50 @@ brew install steamcmd Run this command. Replace `YOUR_USERNAME` with your Steam username. -``` +```bash steamcmd +@sSteamCmdForcePlatformType windows +login YOUR_USERNAME +app_update 2732960 validate +quit ``` -The `+@sSteamCmdForcePlatformType windows` flag forces Steam to download the Windows version of the game, since there's no macOS build. +The `+@sSteamCmdForcePlatformType windows` flag forces Steam to download the Windows version of the game. Steam Guard will ask you to confirm on your phone. The download is about 3 GB. Files end up in: -``` +```bash ~/Library/Application Support/Steam/steamapps/common/Command & Conquer Generals - Zero Hour/ ``` ## Step 3: Install the community patch -Go to the [GeneralsGameCode releases page](https://github.com/TheSuperHackers/GeneralsGameCode/releases) and download the latest `weekly-*-generalszh` build. +- Go to the [GeneralsGameCode releases page](https://github.com/TheSuperHackers/GeneralsGameCode/releases) +- Download the latest `weekly-*-generalszh` build. Extract the files directly into the game folder from Step 2, overwriting the original executables. ## Step 4: Install Wine-CrossOver in Heroic -Open Heroic Games Launcher. Go to **Wine Manager** (in the sidebar or settings) and install **Wine-CrossOver-Latest**. Version 23.7.1-1 was used here. +Open Heroic Games Launcher. Go to **Wine Manager** (in the sidebar or settings) and install **Wine-CrossOver-Latest**. +Version 23.7.1-1 was used when this was written. ### Why not Game Porting Toolkit? -GPTK was tested but crashes on the splash screen. The crash is a memory allocation assertion inside Wine's virtual memory layer when running 32-bit executables through the `x86_32on64` translation path. Generals is a 32-bit DX8 game, and GPTK's 32-bit-on-64-bit emulation can't handle it. +GPTK was tested but crashes on the splash screen. +The crash is a memory allocation assertion inside Wine's virtual memory layer when running 32-bit executables +through the `x86_32on64` translation path. +Generals is a 32-bit DX8 game, and GPTK's 32-bit-on-64-bit emulation can't handle it. The relevant error from the Heroic log: -``` +```bash Assertion failed: (end <= pages_vprot_size << pages_vprot_shift), function alloc_pages_vprot, file virtual.c, line 1032. 0024:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception. ``` -This is a bug in GPTK, not something configurable on your end. Wine-CrossOver handles 32-bit apps through a more mature emulation path and doesn't hit this issue. If a future GPTK version fixes 32-bit virtual memory allocation on ARM64, it may be worth retrying since Apple's DirectX-to-Metal translation is theoretically a better long-term path. +This is a bug in GPTK, not something configurable on your end. +Wine-CrossOver handles 32-bit apps through a more mature emulation path and doesn't hit this issue. +If a future GPTK version fixes 32-bit virtual memory allocation on ARM64, +it may be worth retrying since Apple's DirectX-to-Metal translation is theoretically a better long-term path. ## Step 5: Add the game to Heroic @@ -79,9 +89,12 @@ Set your resolution in the game's graphics options. 1900x1200 worked on a 14" Ma ### Mouse gets stuck on first launch -The mouse cursor can get trapped or stop responding after the game launches. Pressing **Cmd+Tab** to switch away from the game and then back a few times fixed it. It's not clear whether this happens every launch or just the first time. +The mouse cursor can get trapped or stop responding after the game launches. +Pressing **Cmd+Tab** to switch away from the game and then back a few times fixed it. +It's not clear whether this happens every launch or just the first time. -If Cmd+Tab doesn't fix it, try enabling **Virtual Desktop** in Heroic's Wine configuration settings. That gives Wine its own contained window and usually resolves mouse capture problems with old DirectX games. +If Cmd+Tab doesn't fix it, try enabling **Virtual Desktop** in Heroic's Wine configuration settings. +That gives Wine its own contained window and usually resolves mouse capture problems with old DirectX games. ## What was NOT tested @@ -92,4 +105,5 @@ If Cmd+Tab doesn't fix it, try enabling **Virtual Desktop** in Heroic's Wine con ## Troubleshooting -If the game won't start, right-click the game icon in Heroic and select **Logs**. Common things to look for: D3D errors, missing DLL calls, or Wine prefix initialization failures. +If the game won't start, right-click the game icon in Heroic and select **Logs**. +Common things to look for: D3D errors, missing DLL calls, or Wine prefix initialization failures. From dd2f69da2dcdf6075425d6b11c55c7bae8f135e0 Mon Sep 17 00:00:00 2001 From: Eric J Date: Sat, 4 Jul 2026 07:09:10 -1000 Subject: [PATCH 5/7] Address review feedback on macOS release build guide - Clarify the patch adds generalszh.exe alongside generals.exe instead of overwriting the base executable - Move the 'Why not GPTK?' background section to the end of the article - Move the testing environment details into the 'What was (not) tested' section and note cross-platform multiplayer mismatch - Use present tense throughout the howto steps Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_014ytxqqteVop3ejLFk9TazX --- SourceCode/Builds/RunReleaseBuildsonMacOS.md | 68 +++++++++++--------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/SourceCode/Builds/RunReleaseBuildsonMacOS.md b/SourceCode/Builds/RunReleaseBuildsonMacOS.md index 4dfaf336..132ddd01 100644 --- a/SourceCode/Builds/RunReleaseBuildsonMacOS.md +++ b/SourceCode/Builds/RunReleaseBuildsonMacOS.md @@ -1,8 +1,6 @@ # Running Generals Zero Hour on macOS (Apple Silicon) -Tested on an M4 Pro MacBook Pro (24 GB RAM) running macOS Tahoe 26.4. The game runs through Wine-CrossOver via Heroic Launcher, no native macOS build exists yet. -Performance and audio were both fine. ## What you need @@ -41,32 +39,15 @@ Files end up in: - Go to the [GeneralsGameCode releases page](https://github.com/TheSuperHackers/GeneralsGameCode/releases) - Download the latest `weekly-*-generalszh` build. -Extract the files directly into the game folder from Step 2, overwriting the original executables. +Extract the files directly into the game folder from Step 2. +The patch ships its own executable (`generalszh.exe`) rather than replacing the original `generals.exe`, +so it won't overwrite the base game. ## Step 4: Install Wine-CrossOver in Heroic Open Heroic Games Launcher. Go to **Wine Manager** (in the sidebar or settings) and install **Wine-CrossOver-Latest**. Version 23.7.1-1 was used when this was written. -### Why not Game Porting Toolkit? - -GPTK was tested but crashes on the splash screen. -The crash is a memory allocation assertion inside Wine's virtual memory layer when running 32-bit executables -through the `x86_32on64` translation path. -Generals is a 32-bit DX8 game, and GPTK's 32-bit-on-64-bit emulation can't handle it. - -The relevant error from the Heroic log: - -```bash -Assertion failed: (end <= pages_vprot_size << pages_vprot_shift), function alloc_pages_vprot, file virtual.c, line 1032. -0024:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception. -``` - -This is a bug in GPTK, not something configurable on your end. -Wine-CrossOver handles 32-bit apps through a more mature emulation path and doesn't hit this issue. -If a future GPTK version fixes 32-bit virtual memory allocation on ARM64, -it may be worth retrying since Apple's DirectX-to-Metal translation is theoretically a better long-term path. - ## Step 5: Add the game to Heroic 1. Open Heroic and go to **Library** @@ -74,16 +55,16 @@ it may be worth retrying since Apple's DirectX-to-Metal translation is theoretic 3. Fill in: - **Name**: Generals Zero Hour (or whatever you want) - **Platform**: Windows - - **Executable**: browse to `generalsZH.exe` in the game folder + - **Executable**: browse to `generalszh.exe` in the game folder 4. Make sure **Wine-CrossOver** is selected as the Wine version (not GPTK) you may need to do this step later. Heroic creates the Wine prefix automatically. No need to configure it manually. ## Step 6: Launch and play -Hit play. No Winetricks dependencies were needed, it ran out of the box with Wine-CrossOver. +Hit play. No Winetricks dependencies are needed, it runs out of the box with Wine-CrossOver. -Set your resolution in the game's graphics options. 1900x1200 worked on a 14" MacBook Pro display. +Set your resolution in the game's graphics options. 1900x1200 works on a 14" MacBook Pro display. ## Known issues @@ -96,14 +77,43 @@ It's not clear whether this happens every launch or just the first time. If Cmd+Tab doesn't fix it, try enabling **Virtual Desktop** in Heroic's Wine configuration settings. That gives Wine its own contained window and usually resolves mouse capture problems with old DirectX games. -## What was NOT tested +## Troubleshooting + +If the game won't start, right-click the game icon in Heroic and select **Logs**. +Common things to look for: D3D errors, missing DLL calls, or Wine prefix initialization failures. + +## What was (not) tested + +Tested on an M4 Pro MacBook Pro (24 GB RAM) running macOS Tahoe 26.4, +with Heroic 2.20.1 and Wine-CrossOver-Latest 23.7.1-1. +Performance and audio were both fine. + +Not tested: - Online multiplayer - The base *Generals* game (only *Zero Hour* was tested) - Intel Macs - Mods -## Troubleshooting +> **Note:** Cross-platform online multiplayer isn't possible yet. +> An Apple Silicon Mac can't play against Windows players or Intel Macs - +> the game desyncs and ends in a mismatch early on. -If the game won't start, right-click the game icon in Heroic and select **Logs**. -Common things to look for: D3D errors, missing DLL calls, or Wine prefix initialization failures. +## Background: Why not Game Porting Toolkit? + +GPTK was tested but crashes on the splash screen. +The crash is a memory allocation assertion inside Wine's virtual memory layer when running 32-bit executables +through the `x86_32on64` translation path. +Generals is a 32-bit DX8 game, and GPTK's 32-bit-on-64-bit emulation can't handle it. + +The relevant error from the Heroic log: + +```bash +Assertion failed: (end <= pages_vprot_size << pages_vprot_shift), function alloc_pages_vprot, file virtual.c, line 1032. +0024:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception. +``` + +This is a bug in GPTK, not something configurable on your end. +Wine-CrossOver handles 32-bit apps through a more mature emulation path and doesn't hit this issue. +If a future GPTK version fixes 32-bit virtual memory allocation on ARM64, +it may be worth retrying since Apple's DirectX-to-Metal translation is theoretically a better long-term path. From 1134f3885c8351d9a246f76cad5fc4c618ed5eab Mon Sep 17 00:00:00 2001 From: Eric J Date: Sat, 4 Jul 2026 07:47:21 -1000 Subject: [PATCH 6/7] Updates after uninstalling and re-installing I went through the whole process again and updated the guide. --- SourceCode/Builds/RunReleaseBuildsonMacOS.md | 52 ++++++++++++++++---- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/SourceCode/Builds/RunReleaseBuildsonMacOS.md b/SourceCode/Builds/RunReleaseBuildsonMacOS.md index 132ddd01..3e487387 100644 --- a/SourceCode/Builds/RunReleaseBuildsonMacOS.md +++ b/SourceCode/Builds/RunReleaseBuildsonMacOS.md @@ -16,6 +16,13 @@ The game runs through Wine-CrossOver via Heroic Launcher, no native macOS build brew install steamcmd ``` +Then clear the macOS Gatekeeper quarantine from the install, otherwise steamcmd will fail to load its +own libraries on first run (see Step 2): + +```bash +xattr -dr com.apple.quarantine /opt/homebrew/Caskroom/steamcmd/*/MacOS +``` + ## Step 2: Download the game files Run this command. Replace `YOUR_USERNAME` with your Steam username. @@ -26,6 +33,19 @@ steamcmd +@sSteamCmdForcePlatformType windows +login YOUR_USERNAME +app_update 2 The `+@sSteamCmdForcePlatformType windows` flag forces Steam to download the Windows version of the game. +On the first run, steamcmd self-updates and re-downloads its libraries, so macOS may quarantine them again +even though you cleared it in Step 1. If that happens you'll see one or both of these: + +- A popup saying **"Breakpad.framework" was not opened** with **Move to Trash** / **Done** buttons. + Click **Done** - do NOT click Move to Trash. +- steamcmd quits with `Failed to load steamconsole.dylib ... library load disallowed by system policy`. + +Just clear the quarantine again and re-run the steamcmd command above: + +```bash +xattr -dr com.apple.quarantine /opt/homebrew/Caskroom/steamcmd/*/MacOS +``` + Steam Guard will ask you to confirm on your phone. The download is about 3 GB. Files end up in: @@ -40,8 +60,9 @@ Files end up in: - Download the latest `weekly-*-generalszh` build. Extract the files directly into the game folder from Step 2. +If it asks to replace any existing files, check **Apply to All** and choose **Replace**. The patch ships its own executable (`generalszh.exe`) rather than replacing the original `generals.exe`, -so it won't overwrite the base game. +so your base game stays intact. ## Step 4: Install Wine-CrossOver in Heroic @@ -56,11 +77,16 @@ Version 23.7.1-1 was used when this was written. - **Name**: Generals Zero Hour (or whatever you want) - **Platform**: Windows - **Executable**: browse to `generalszh.exe` in the game folder -4. Make sure **Wine-CrossOver** is selected as the Wine version (not GPTK) you may need to do this step later. Heroic creates the Wine prefix automatically. No need to configure it manually. -## Step 6: Launch and play +## Step 6: Set the Wine version + +Click the menu icon (three lines) below your Generals Zero Hour game. +On the **Wine Settings** tab, select **Wine-CrossOver** (not GPTK). +You do not need to change any other settings. + +## Step 7: Launch and play Hit play. No Winetricks dependencies are needed, it runs out of the box with Wine-CrossOver. @@ -68,17 +94,25 @@ Set your resolution in the game's graphics options. 1900x1200 works on a 14" Mac ## Known issues -### Mouse gets stuck on first launch +### Mouse gets stuck after changing resolution The mouse cursor can get trapped or stop responding after the game launches. -Pressing **Cmd+Tab** to switch away from the game and then back a few times fixed it. -It's not clear whether this happens every launch or just the first time. - -If Cmd+Tab doesn't fix it, try enabling **Virtual Desktop** in Heroic's Wine configuration settings. -That gives Wine its own contained window and usually resolves mouse capture problems with old DirectX games. +This happened after selecting the new 1900x1200 resolution. +What fixed it: **Cmd+Tab** out of the game, force quit it, then relaunch. The mouse worked again after that. ## Troubleshooting +### steamcmd: "Failed to load steamconsole.dylib" or a Breakpad.framework popup + +This is macOS Gatekeeper quarantining steamcmd's self-updated libraries, covered in Step 2. +Click **Done** on any "Breakpad.framework" popup (never Move to Trash), then clear the quarantine and re-run: + +```bash +xattr -dr com.apple.quarantine /opt/homebrew/Caskroom/steamcmd/*/MacOS +``` + +### Game won't start in Heroic + If the game won't start, right-click the game icon in Heroic and select **Logs**. Common things to look for: D3D errors, missing DLL calls, or Wine prefix initialization failures. From 396164a688f38aab2017a7e2e6bbb7de9850e81d Mon Sep 17 00:00:00 2001 From: Eric J Date: Sat, 4 Jul 2026 16:26:18 -1000 Subject: [PATCH 7/7] Update version numbers for accuracy. --- SourceCode/Builds/RunReleaseBuildsonMacOS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SourceCode/Builds/RunReleaseBuildsonMacOS.md b/SourceCode/Builds/RunReleaseBuildsonMacOS.md index 3e487387..dfc26ea5 100644 --- a/SourceCode/Builds/RunReleaseBuildsonMacOS.md +++ b/SourceCode/Builds/RunReleaseBuildsonMacOS.md @@ -6,7 +6,7 @@ The game runs through Wine-CrossOver via Heroic Launcher, no native macOS build - A Mac with Apple Silicon (M1 or later) - macOS Tahoe (or recent macOS — older versions should work but aren't tested here) -- [Heroic Games Launcher](https://heroicgameslauncher.com/) (tested with 2.20.1) +- [Heroic Games Launcher](https://heroicgameslauncher.com/) (tested with 2.22.0) - A Steam account that owns *Command & Conquer: Generals - Zero Hour* (app ID `2732960`) - [Homebrew](https://brew.sh/) installed