ARTICSTRACKER
TORRENT WORLD
Back to catalog

github.com-ammaarreshi-Generals-Mac-iOS-iPad_-_2026-07-05_17-23-48

macOS · iOS · ammaarreshi

Command & Conquer Generals: Zero Hour running natively on macOS, iPhone & iPad — real engine (EA GPL v3 source, via GeneralsX), DXVK/MoltenVK renderer, RTS touch controls. No game assets included. Command & Conquer Generals: Zero Hour — macOS, iOS & iPadOS 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: thisis the real 2003 engine compiled for ARM64, rendering DirectX 8 → DXVK → Vulkan → MoltenVK → Metal. Built on EA's GPL v3 source release, standing on a chain of community work — TheSuperHackers , Fighter19's original Unix port , and fbraz3/GeneralsX — this fork adds the iOS/iPadOSport and a set of engine fixes. See Lineage & credits for who builtwhat. 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). What this port actually involved "Porting" undersells how weird this journey was, so here's the honest shape of it.The lineage below built the foundation: EA's source release, the community'smodernization, Fighter19's original Unix port, GeneralsX's macOS/Linux work.What did not exist was any of this on iOS — and iOS is a hostile place for a2003 Windows RTS: The engine assumes a writable filesystem wherever it lives. iOS apps live in aread-only, code-signed bundle. Every config write, cache, and save path had to bererouted — and the working directory bootstrapped from the bundle itself. The renderer speaks DirectX 8. The iPad speaks Metal. In between: DXVKtranslating D3D8→Vulkan, MoltenVK translating Vulkan→Metal — and DXVK had neverbeen built for iPhoneOS. That took a Meson cross-build and a patch to its Vulkanloader, because iOS confines dlopen to the app bundle ( Patches/dxvk-ios.patch ). iOS owns your process. Open the app switcher and the OS seizes the Metaldrawable without backgrounding you — draw one more frame and you're dead onresume. The whole render/sim loop learned to hold its breath. An RTS needs a mouse. SDL3 (from the lineage below) delivers raw touch events;the RTS semantics on top are new. Taps defer until the 2003 GUI has processedhover (or menu buttons never highlight), a drag has to decide "selection box orcamera pan," long-press became right-click, and a cancelled touch must neverghost-click a rally point. And then the bug hunts — the best part. The minimap that rendered blackbecause a 2003 texture-format fallback silently dropped the alpha channel. TheEVA voice that went randomly mute because one zombie audio stream held a global"don't talk over speech" flag while chirping forever. Every one chased to rootcause on a real device, fixed, and offered upstream. → The war stories: Porting Playbook §8 — the bug archaeology → The complete engineering log: docs/port/PORTING PLAYBOOK.md → How to do this to another game: docs/port/PORTINGPATTERNS.md Worth saying plainly: this was a human + AI collaboration . The engineering —the C++, the cross-builds, the device debugging — was done by Claude Code (Anthropic's Claude, Fable model),directed and playtested by a human who described symptoms like "the minimap isblack" and "I hear chirping" and owned every decision. Neither half ships thisalone: one of us can't write C++, and the other can't hear the chirping. Quick start — macOS Prerequisites (one time): ```sh Toolchain xcode-select --installbrew install cmake ninja meson pkgconfbrew install --cask steamcmd vcpkg (full clone — a shallow clone breaks manifest baselines) git clone https://github.com/microsoft/vcpkg ~/vcpkg && ~/vcpkg/bootstrap-vcpkg.shexport 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//macOS # add to your shell profile``` Clone, build, get assets, play: shgit clone https://github.com/ammaarreshi/Generals-Mac-iOS-iPad.git GeneralsXcd 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 owncd ~/GeneralsX/GeneralsZH && ./run.sh -win Quick start — iPhone / iPad On top of the macOS prerequisites: full Xcode (signed into your Apple ID), brew install xcodegen , and a (free or paid) Apple Developer team. shcd GeneralsXgit 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 expectscmake --preset ios-vulkancmake --build build/ios-vulkan --target z_generalsGX_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 → S

Internet Archive

Наши проекты