Skip to content

v0.3 — Android Alpha (Garrison-crash fix + Scudo symbol-hiding)

Pre-release
Pre-release

Choose a tag to compare

@tarek369 tarek369 released this 11 Aug 18:45
· 7 commits to main since this release

v0.3 — Android Alpha

Engine null-deref crash fix, plus the Scudo symbol-hiding mitigation that v0.2 was missing.

What's fixed since v0.2

  • ✅ Garrison-death crash fixed (#8) — the game no longer SIGSEGVs when a unit dies while garrisoned inside a building/vehicle. Root cause: W3DTreeBuffer::unitMoved() dereferenced a null m_data pointer after an out-of-bounds treeType index (fault address 0x20, an exact match). The redeploy-occupants motion swept a unit over a stale tree-partition cell. Bounds-checked treeType against m_numTreeTypes and null-checked m_data, mirroring a guard the save/load path already had. Hardened two sibling code paths with the same hazard.
  • ✅ Scudo allocator: symbol-hiding now included — v0.2 shipped ~55 minutes before the commit that hides the engine's operator new/delete from the dynamic symbol table. As a result, v0.2 still let DXVK/libc++/SDL3 allocations reach the engine's pool operator delete, which triggered Scudo "invalid chunk state" / "corrupted chunk header" aborts on Samsung/Exynos and ARM Mali devices. v0.3 is built from current HEAD and carries that fix. This should address the launch crashes in #4 (Galaxy S24+/Exynos 2400) and #9 (Tecno Camon 30 Pro / Mali-G610). Please retest and report back.

Likely improved (needs device confirmation)

  • 🔄 #6 — crash after selecting Solo Play (Galaxy Z Flip 5) — plausibly the same allocator path as #4. Likely improved by the symbol-hiding change; cannot confirm without the device.

Known issues (not fixed in this build)

  • ❌ #5 — Enemy AI not working — upstream gameplay-logic issue, not Android-specific. Tracked separately.
  • ❌ #7 — black-screen crash (Poco X3 Pro) — Adreno 640 is below the stated Adreno 7xx+ minimum. Likely hardware/Vulkan-driver support; please attach a logcat if you can.
  • ❌ Magenta/pink screen tint (#8 follow-up) — the color-tint rendering issue reported alongside the garrison crash is a separate shader/rendering problem still under investigation.
  • 🔄 #3 — High RAM usage (~2–3 GB) — architectural (legacy memory-pool design). Expected for now.

How to install / upgrade

  1. Download GeneralsZH-full.apk below
  2. Uninstall v0.1/v0.2 first if you hit a signature mismatch, then adb install GeneralsZH-full.apk (the APK is signed with the same debug key as v0.1/v0.2, so in-place upgrade should work — but if your installed copy came from elsewhere, uninstall first)
  3. Copy your game's .big files to /sdcard/Android/data/me.generalsx.zh/files/GameData/Data/

Requirements (unchanged)

  • arm64-v8a Android tablet/phone (Android 7.0+, API 24+)
  • Vulkan-capable GPU — Adreno 7xx+, Mali-G77+ (older GPUs like Adreno 6xx are below minimum)
  • ~3 GB free RAM
  • Your own copy of C&C Generals Zero Hour (Steam ~$5)

Feedback

If v0.3 fixes your crash, a one-line "works on " comment on the relevant issue (#4, #8, #9) is hugely helpful. If it still crashes, please attach a logcat / bug report — the Scudo situation is tracked and real device logs are the fastest path to a fix.