Skip to content
Chimera readability score 70 out of 100, Academic reading level.

Zero Hour running natively on Apple Silicon Macs, iPhone, and iPad — campaign, skirmish, and Generals Challenge, with touch controls built for RTS (tap-select, drag-box, long-press deselect, two-finger scroll, pinch zoom). No emulation: this is the real 2003 engine compiled for ARM64, rendering DirectX 8 → DXVK → Vulkan → MoltenVK → Metal.

Built on EA's GPL v3 source release via fbraz3/GeneralsX

(which did the heavy lifting of the macOS/Linux port — this fork adds the iOS/iPadOS

port and a set of engine fixes). The original GeneralsX README lives on the upstream-main

branch.

No game assets are included or distributed. You need your own copy (Steam, ~$5 on sale).

Prerequisites (one time):

Toolchain

xcode-select --install

brew install cmake ninja meson pkgconf

brew install --cask steamcmd

vcpkg (full clone — a shallow clone breaks manifest baselines)

git clone https://github.com/microsoft/vcpkg ~/vcpkg && ~/vcpkg/bootstrap-vcpkg.sh

export VCPKG_ROOT=~/vcpkg # add to your shell profile

LunarG Vulkan SDK (NOT the Homebrew cask) — https://vulkan.lunarg.com/sdk/home

export VULKAN_SDK=$HOME/VulkanSDK/<version>/macOS # add to your shell profile

Clone, build, get assets, play:

git clone https://github.com/ammaarreshi/Generals-Mac-iOS-iPad.git GeneralsX

cd GeneralsX

./scripts/build/macos/build-macos-zh.sh # checks deps, configures, builds

./scripts/build/macos/deploy-macos-zh.sh # creates ~/GeneralsX/GeneralsZH + run.sh

./scripts/get-assets.sh <your_steam_username> # fetches game data you own

cd ~/GeneralsX/GeneralsZH && ./run.sh -win

On top of the macOS prerequisites: full Xcode (signed into your Apple ID),

brew install xcodegen

, and a (free or paid) Apple Developer team.

cd GeneralsX

git submodule update --init references/fbraz3-dxvk # iOS DXVK is built from this + Patches/dxvk-ios.patch

./scripts/build/ios/fetch-moltenvk.sh # pinned MoltenVK.framework (checksummed)

./scripts/build/ios/stage-fonts.sh # Liberation fonts, renamed as the game expects

cmake --preset ios-vulkan

cmake --build build/ios-vulkan --target z_generals

GX_TEAM_ID=<your-team-id> GX_BUNDLE_ID=com.you.generalszh \

./scripts/build/ios/package-ios-zh.sh --install # assembles, signs, installs

Find your team id in Xcode → Settings → Accounts. Assets ship inside the app

bundle (self-contained install); --dev

skips the ~2.7 GB copy for fast code

iteration.

| Path | What it is |

|---|---|

docs/port/PORTING_PLAYBOOK.md |

The complete engineering log of this port: every failure mode, root cause, fix — start with §8, the bug archaeology: the black minimap, the silent EVA lines, and the chirp |

docs/port/PORTING_PATTERNS.md |

Generalized methodology for porting classic Windows games to Apple platforms |

docs/port/RELEASE_CHECKLIST.md |

Gate for public release |

scripts/get-assets.sh |

Steam asset fetcher (your own copy; app 2732960) |

scripts/build/macos/ , scripts/build/ios/ |

Build, deploy, packaging pipelines |

ios/ |

XcodeGen signing-stub project + ios/config/ (staged Options.ini, dxvk.conf) |

Patches/dxvk-ios.patch |

DXVK changes the iOS d3d8/d3d9 dylibs are built from (applied via the local-fork build) |

  • Long sessions on iPad can be killed by iOS for memory (~3 GB+ resident); the app exits to the home screen with no dialog. Session logs (current + previous) are in the Files app under the game's folder. Under investigation.
  • Backgrounding mid-game can occasionally crash on iOS — the lifecycle pause covers the common paths; a rare race remains. Save often.

Engine code GPL v3 (EA's source release → GeneralsX → this fork). Game assets: not included, not licensed here. Credits: Westwood/EA Pacific (the game), EA (the source release), fbraz3/GeneralsX (the base port), TheSuperHackers/GeneralsGameCode (community mainline), DXVK, MoltenVK, SDL, OpenAL Soft, FFmpeg, Liberation Fonts.

This port was built as a human+AI collaboration: engineering by

Claude Code (Anthropic's Claude, Fable model),

directed and playtested on real devices by Ammaar Reshi. The engineering log in

docs/port/

is the unedited record of how that worked.

Sentinel — Human

Confidence

This text functions as detailed technical documentation for a complex software port and exhibits strong human characteristics through specific pathing, procedural depth, and explicit attribution.

Signals Detected
low severity: Erratic sentence length variance and highly specific technical syntax mixed with narrative flow.
low severity: High logical coherence; the text flows perfectly as a single, complex instruction set without unnecessary hedging or vague transitions.
low severity: Presence of specific commands, file paths, and explicit attribution (e.g., 'git clone', 'export VCPKG_ROOT', naming specific patches) indicates highly controlled, non-generic structure.
low severity: Claims regarding the internal engineering log and collaborative authorship ('Claude Code', 'Ammaar Reshi') ground the text in verifiable human context, reducing synthetic risk concerning the process description itself.
Human Indicators
The complexity of the setup, the deep referencing of specific Git commits/paths (e.g., 'docs/port/PORTING_PLAYBOOK.md'), and the explicit statement of human collaboration strongly suggest genuine engineering documentation.
The flow contains moments of human-like digression regarding observed bugs ('Long sessions on iPad can be killed...') which is characteristic of engineering log writing, not typical LLM output.