
Zero Hour kann nun (mit Tricks) nativ auf Apple Silicon Macs, iPhones und iPads laufen. Dabei handelt es sich um die originale Engine von 2003, die für ARM64 kompiliert wurde und DirectX 8 über DXVK → Vulkan → MoltenVK → Metal rendert. Diese Portierung basiert auf dem GPL v3-Quellcode von EA und einem Gemeinschaftsprojekt, das auf früheren Arbeiten wie Fighter19's Unix-Port und GeneralsX aufbaut.

Es ist wichtig zu erwähnen, dass keine Spielinhalte enthalten oder verteilt werden. Spieler müssen ihre eigene Kopie besitzen, beispielsweise von Steam. Die Portierung auf iOS und iPadOS war eine komplexe Herausforderung, da iOS-Umgebungen nicht den Anforderungen eines Windows-RTS aus dem Jahr 2003 entsprechen. Von der Umleitung von Schreibvorgängen bis zur Anpassung des Renderers von DirectX 8 auf Metal war viel technische Arbeit erforderlich. Interessant sind auch die Details zu den Anpassungen für Touch-Steuerung und die speziellen Herausforderungen, die mit der Portierung verbunden waren.
Diese Leistung war das Ergebnis einer Zusammenarbeit zwischen menschlichen Entwicklern (maßgeblich ammaarreshi ) und KI, wobei Claude Code (Anthropic's Claude, Fable-Modell) maßgeblich an der technischen Umsetzung beteiligt war.
Hier die Kurzerklärung direkt aus dem Entwicklerrepository:
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, standing on a chain of community work — TheSuperHackers, Fighter19's original Unix port, and fbraz3/GeneralsX — this fork adds the iOS/iPadOS port and a set of engine fixes. See Lineage & credits for who built what. The original GeneralsX README lives on the
upstream-mainbranch.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's modernization, 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 a 2003 Windows RTS:
The engine assumes a writable filesystem wherever it lives. iOS apps live in a read-only, code-signed bundle. Every config write, cache, and save path had to be rerouted — and the working directory bootstrapped from the bundle itself.
The renderer speaks DirectX 8. The iPad speaks Metal. In between: DXVK translating D3D8→Vulkan, MoltenVK translating Vulkan→Metal — and DXVK had never been built for iPhoneOS. That took a Meson cross-build and a patch to its Vulkan loader, because iOS confines
dlopento the app bundle (Patches/dxvk-ios.patch).iOS owns your process. Open the app switcher and the OS seizes the Metal drawable without backgrounding you — draw one more frame and you're dead on resume. 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 processed hover (or menu buttons never highlight), a drag has to decide "selection box or camera pan," long-press became right-click, and a cancelled touch must never ghost-click a rally point.
And then the bug hunts — the best part. The minimap that rendered black because a 2003 texture-format fallback silently dropped the alpha channel. The EVA 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 root cause 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/PORTING_PATTERNS.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 is black" and "I hear chirping" and owned every decision. Neither half ships this alone: one of us can't write C++, and the other can't hear the chirping.
Quelle: https://github.com/ammaarreshi/Generals-Mac-iOS-iPad
Sitzung wird überprüft...
Keine Kommentare vorhanden.