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

asronline 469 points 184 comments July 04, 2026
github.com · View on Hacker News

Discussion Highlights (20 comments)

asronline

EA released the Generals source under GPL v3, the GeneralsX project got it running on macOS/Linux, and I've taken it the rest of the way: native iOS and iPadOS builds of Zero Hour, plus Apple Silicon macOS. What works (all verified on a real iPad and iPhone): Campaign, Skirmish, and Generals Challenge: full missions, objectives, cutscenes, saves All audio: music, unit voices, EVA announcements, Challenge taunts, briefing FMVs Touch controls built for RTS: tap select, drag a selection box, long-press deselect, two-finger camera pan, pinch zoom Self-contained install: game data ships inside the app bundle It's the real engine: unmodified game logic compiled for ARM64, rendering DirectX 8 → DXVK → Vulkan → MoltenVK → Metal. Not emulation, not streaming. No game assets are included or distributed. You need your own copy (Steam sells Zero Hour) and a script pulls the data from your own account. Code is GPL v3. Repo, with a full engineering log of every bug and fix (the black-minimap one is a 2003 texture-format fallback that ate the alpha channel; worth a read if you like archaeology): https://github.com/ammaarreshi/Generals-Mac-iOS-iPad/blob/ma... Building: macOS is about four commands; iPhone/iPad needs Xcode and a free Apple developer account since you sideload your own build. Known issues (long-session memory on iPad, a rare backgrounding crash) are documented in the README. Credit: fbraz3/GeneralsX did the heavy macOS/Linux lifting, TheSuperHackers keep the community codebase alive, and EA did a genuinely good thing releasing the source. The engine fixes I found are heading upstream so every platform benefits. (And of course, not affiliated with or endorsed by EA, and sorry China had to deal with all of those particle cannons in that demo video)

bigyabai

> rendering DirectX 8 → DXVK → Vulkan → MoltenVK → Metal Another great case study in why native Vulkan drivers would be a boon for Apple's mobile computing. That's quite the render pipeline...

evanjrowley

I wanna know if these techniques would be useful for Emperor: Battle for Dune (2001). It's the first 3D RTS by Westwood Studios, predating C&C Generals by just a couple years. It's popularity was hampered by intellectual property disputes and a introduction of a new faction that diverged from the book series lore. The gameplay, soundtrack, and campaign missions were awesome.

advenn

someone do it for debian, omg. i use debian family, it has been years, i haven't played this gem

namuol

> 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).

gigatree

This is an actual dream come true

OsrsNeedsf2P

I'm doing something similar, using AI to make Battle for Middle Earth (same engine) "open source" with AI: https://github.com/dginovker/BFME-Source-Code

baq

When someone ported pylint to rust this place was full of ‘who will maintain this’ and met with blank stares when the answer was ‘what do you mean’ or ‘it’ll maintain itself’. Good job. It was inevitable, but still someone had to, please excuse me, say the words.

HaloZero

Is there any hope for Red Alert 2?

siva7

no way fable did this. It would have stopped after the words "command and conquer" and nerfed you to opus (while also landing you on some nsa watch list)

xg15

> (tap-select, drag-box, long-press deselect, two-finger scroll, pinch zoom) This is another "AI-ism" I noticed, mostly in coding agents - they seem to be very fond of making up new "compound nouns" (and occasionally verbs) to sum up relatively complex and specific concepts into single noun phrases. I wasn't sure if it's to save tokens or if the AI uses this to get a concise "identifier" for a concept that it can refer back to later, but I found it very noticeable. I find the resulting sentences hard to read, though it does get better if you're aware of that tendency and make a conscious effort to parse the noun phrases. But I guess since it's just intermediate output from coding agents and not text for essays or blog posts, it's fine.

8note

ive had opus try movin Merlin's revenge up from director/shockwave. the result: http://jhedin.github.io/merlin-s-revenge/ reasonably it works quite close to the lingo, but this is way difficult, and not just from being rusty. steve had most things triggered on the animation frame, which opus hasnt quite figured out by looking at the code and pulling stuff out of the .dir i do remember that playing at double scale was a lot harder in general, but theres a really clear cooldown missing between attackes

OsrsNeedsf2P

I just noticed a Flatpak folder in the repo. Does MacOS Support Flatpak somehow??

Eufrat

IMHO, this is an actual good use of what sounds like a person guiding a model to do a mass conversion. Although, I wish the porting docs were a little wordsmithed by a human, the AI generated text style is grating. The stakes are low, it’s mostly for fun and you can iterate on it. Compare this with Bun which was just like, “hey we converted everything to Bun to Rust from Zig, of course it works, what could possibly go wrong, I’ll totally write up a blogpost (that still doesn’t exist) explaining what we did, you can put this into your production environment soon!”

vaygr

Tiberian Sun next.

ChrisMarshallNY

Very cool. One big caveat with iPad and mobile, though, is battery usage. I strongly suspect that power consumption is the reason that a number of games made it to Mac, but not iPad.

dools

How is it done "using Fable" when the first commit was Feb last year??

Madmallard

Does it actually play identically or is there going to be weird bugs all over the place? Seems like an impossible ask to verify if you don't have an immense test suite that covers everything.

Jyaif

I tell folks there's a chance GTA6 will be ported to PC before it's officially released to PC.

pjmlp

In the old days this would have required a proper team...

Semantic search powered by Rivestack pgvector
14,015 stories · 131,331 chunks indexed