Repository navigation
A native Android (arm64) port of Command & Conquer: Generals — Zero Hour — the original Direct3D 8 engine running on a phone through GeneralsX + DXVK (D3D8 → Vulkan) + SDL3. No emulator, no streaming.
Source & docs only. This release contains no game data — the
.big/.bik/maps are EA's copyright. Bring your own from a retail copy you own. See docs/GAME-FILES.md.
What works
- ✅ Boot → main menu, native fullscreen on Mali-G57
- ✅ Skirmish (all factions) and the USA / GLA / China single-player campaigns
- ✅ Rendering: terrain, units, water, shadows, HUD, minimap/radar
- ✅ Audio (music / SFX / speech) via OpenSL ES
- ✅ Bink video cutscenes via FFmpeg, with an on-screen skip button
- ✅ A purpose-built multi-touch control scheme (tap / drag-box / 2-finger pan-zoom / commands)
- 🚧 LAN multiplayer — in progress
Highlights of the engineering
This milestone includes 13 in-depth write-ups of the non-obvious problems solved along the way — see docs/DISCOVERIES.md. A few:
- The
__linux__-includes-Android trap that routed all audio to the null device (silence) - A 10-bit DXVK swapchain that blacked out the radar two different ways
- A latent 16-bit sorting-buffer overflow that DXVK turned into a delayed heap-corruption
SIGSEGV - Synthesizing precise mouse/keyboard input from multi-touch
Try it
Follow the step-by-step SETUP-GAME-FILES.md (find your install → copy files → one packaging command → build → install), or the full BUILDING.md.
Help wanted
GPU compatibility beyond Mali-G57 (Adreno / PowerVR / Xclipse), LAN multiplayer, controls, performance. See the roadmap, the open issues, and the Discussions. If you get it running, post your device result — that's the most useful thing you can do.
Unofficial, non-commercial, GPLv3. C&C, Generals and all game assets are trademarks/copyright of Electronic Arts.