Skip to content

v0.1.0 — plays campaigns & skirmish on Android

Latest

Choose a tag to compare

@molotovgit molotovgit released this 10 Jul 19:33

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.