Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable

A fan project has brought Command & Conquer: Generals – Zero Hour to iOS, iPadOS and Apple Silicon Macs using EA’s newly open‑sourced engine and an AI coding agent (“Fable”) to build on an existing macOS/Linux port. Commenters are impressed by how LLMs can now handle substantial porting and reverse‑engineering work for older games, but many point out that the upstream community projects did the real heavy lifting and criticize the framing as overstating the AI’s role. The thread branches into broader reflections on AI‑assisted code conversion, game preservation, legal boundaries of decompilation, and the future flood of both revived classics and low‑effort “vibecoded” software.

Scope of the Port

  • Project builds on EA’s GPLv3 release of C&C Generals via an existing community fork that already ported the engine to macOS and Linux.
  • This fork adds iOS/iPadOS support, touch controls, some engine fixes, and Apple Silicon macOS builds.
  • No game assets are included; users must own the game (e.g. via Steam) and extract assets with provided scripts.

Role of Fable / AI

  • Many commenters stress that the “heavy lifting” (cross‑platforming, renderer work, macOS support) was done in the upstream GeneralsX project.
  • This fork’s changes are relatively small in line count; mostly iOS target, gesture mapping, and bugfixes.
  • Some see the title as overstating Fable’s role (“clickbait”); others argue that even making a working iOS port via an AI agent is still noteworthy.

Technical Approach

  • Rendering stack is DirectX 8 → DXVK → Vulkan → MoltenVK → Metal.
  • Some think this multi‑layer pipeline is overkill and would prefer a direct Metal port; others note DXVK/MoltenVK are mature and likely the most practical path.
  • Discussion about memory usage on iPad: original game used ~128 MB RAM, but the port can hit ~3+ GB; possibilities include higher‑res assets and overhead from translation layers.

Quality, Bugs, and Testing

  • Concern about edge‑case bugs in AI‑assisted ports; fear that long sessions may reveal rare crashes or logic differences.
  • Counterpoint: this codebase already has deterministic networking and replay tests upstream, which should catch many regressions, though some commenters think that’s still “nowhere near adequate.”

Legal / IP and Reverse Engineering

  • Separate thread on using LLMs plus Ghidra/IDA to reverse old games and engines (e.g., BFME, Deadlock, other classics).
  • Debate over legality: reverse engineering for interoperability vs. copyright, clean‑room standards, DMCA/copy‑protection issues; consensus is “legally murky” and jurisdiction‑dependent.
  • Some speculate that future LLMs will make rapid decompilation and cross‑platform ports of commercial games routine.

Broader AI & Ecosystem Reactions

  • Mixed views: excitement about resurrecting old games and solo‑developer power vs. worries about job displacement, shovelware, and opaque, AI‑generated codebases.
  • Side discussions about AI‑written Rust (Bun rewrite), maintainability, and AI “style” issues (compound nouns, jargon, long comments).
  • Several call out the HN title as misleading, but still see the project as a good, low‑stakes demonstration of AI‑assisted porting.