Skip to content

FAQ

Can you play Command & Conquer Generals: Zero Hour on Android?

Yes — natively. This project compiles the real 2003 engine (EA's GPL v3 source release) for arm64 Android. It renders DirectX 8 through DXVK to Vulkan 1.3 and plays skirmish matches at 30–60 FPS on a Galaxy Tab S7+. It is not an emulator, not a streaming client, and not a remake.

Which Android devices are supported?

Devices with a Qualcomm Adreno 6xx or 7xx GPU (e.g. Snapdragon 855/865/888/8-Gen phones and tablets). The port bundles the Mesa Turnip Vulkan driver, which only supports Adreno. Samsung Exynos (Xclipse) and Mali GPUs don't work yet — that's tracked here.

Do I need root?

No. The bundled Turnip driver is loaded rootlessly via libadrenotools, which redirects the Vulkan driver inside the app's own process. Nothing on the system is modified.

Where do I get the APK?

From the project's Releases page. The APK is debug-signed for sideloading; Samsung devices may need Play Protect's adb verification and Auto Blocker disabled (how-to).

Where do the game files come from?

From your own copy of the game. The APK contains no game assets — Zero Hour's data files are copyrighted and are not distributed here. Buy the game (Steam, often ~$5) and push your files to the device with the provided script (details).

The engine code is EA's official GPL v3 source release, forked through a chain of community ports — everything here complies with that license. The game assets (art, audio, maps) remain EA's copyrighted content, which is why you must supply your own purchased copy.

How does a DirectX 8 game run on Android?

Through a translation chain, all in-process: DirectX 8 → DXVK (D3D8/9 → Vulkan) → Vulkan 1.3 on Mesa Turnip (bundled, because stock Adreno drivers only expose Vulkan 1.1) → the Android surface. Full technical detail: rendering pipeline.

How do the touch controls work?

A gesture translator converts touch into the mouse events the 2003 engine expects: tap = select, drag = selection box, long-press = right-click (deselect), two-finger drag = camera pan, pinch = zoom. Design and rationale: Touch controls.

Does multiplayer work?

Untested. The GameSpy-era networking code compiles but online play hasn't been attempted on Android. Skirmish vs AI is the tested mode; campaign and Generals Challenge are being verified.

How was this ported in under 24 hours?

By standing on documented shoulders: the iOS/iPadOS parent port had already solved the DirectX-on-mobile renderer chain, the touch translation, and the app lifecycle — and written it all down. Android's own walls (a Vulkan 1.1 driver, a one-producer window rule, a dirty allocator unmasking 2003-era bugs) are told in The Android Journey, and every defect found is cataloged in Bugs & Lessons.

Can I play this on iPhone, iPad, or Mac?

Yes — via the parent project this port descends from: ammaarreshi/Generals-Mac-iOS-iPad.