Repository navigation
Releases
GeneralsX - 1.0.5
If you run into any problems, please open an issue so we can investigate.
Getting Started
GeneralsX lets you play Command & Conquer: Generals and Zero Hour natively on modern systems with cross-platform online multiplayer.
π¦ Which file should I download?
- macOS (Apple Silicon): Download
macOS-GeneralsXZH.zip(Zero Hour) ormacOS-GeneralsX.zip(Generals). - Linux: Download
Linux-GeneralsXZH.flatpak(Zero Hour) orLinux-GeneralsX.flatpak(Generals). - Windows: Download
Windows-GeneralsXZH.zip(Zero Hour) orWindows-GeneralsX.zip(Generals).
π Follow the Installation & Setup Guide on our Wiki to set up your original game data files.
π Cross-Platform Multiplayer
Zero Hour includes built-in online lobbies via GeneralsOnline (NGMP). Players on macOS, Linux, and Windows can host, join, and play together without GameSpy, Hamachi, or third-party VLAN tools.
What's New
π GeneralsX Options Menu & Deterministic Simulation Math
This release introduces the dedicated GeneralsX Options Menu directly from the main menu, giving players on-the-fly control over camera height, terrain draw distance, advanced dynamic shadows, lighting pulses, and post-processing shaders. Under the hood, we have fully synchronized with upstream TheSuperHackers PR TheSuperHackers#2670, routing simulation math across all game logic through deterministic WWMath wrappers to guarantee bit-identical cross-platform play between macOS (Apple Silicon ARM64) and Linux/Windows (x86_64).
π Cross-Platform Multiplayer & Networking
- Client Version Reporting & Update Check Gating: Transmit client version and platform details on all GeneralsOnline authentication requests (
CheckLogin,LoginWithToken, OAuth browser URLs), and actively gate the "Online" main menu button on update checker completion to ensure players run compatible versions before entering lobbies (#364 by @fbraz3). - NetPacket Command Hardening: Guarded packet processing against repeating corrupted command sequences and unhandled command packet structures (#398 by @fbraz3).
π― Engine, Gameplay & Determinism
- Cross-Platform Deterministic Simulation (PR TheSuperHackers#2670): Backported upstream deterministic single-precision math via
WWMath/GameMathacross allGameLogic,Locomotor, physics, andBezierSegmentsystems in both Generals and Zero Hour, eliminating floating point divergence and multiplayer SyncCrash desyncs across macOS ARM64 and Linux/Windows x86_64 (#389, #398 by @fbraz3). - Fixed General's Challenge Auto-Defeat: Prevented premature defeat during the intro cinematic when advancing to the next challenge mission or retrying after a loss by preserving slot setup and suppressing dormant menu re-initialization during shell transitions (#392 by @fbraz3).
- Fixed Simulation Speedup After Save Load: Re-evaluated
TheFramePacerlogic time scale when loading in-game savegames, preventing the simulation from running at double speed (60 FPS) instead of the intended 30 ticks/sec rate (#395 by @fbraz3, thanks to @Moortu). - 64-bit Memory Pool Alignment: Standardized
SINGLEBLOCK_USERDATA_OFFSETto 16 bytes for safe memory allocations on 64-bit platforms (#398 by @fbraz3). - Synchronized Upstream TheSuperHackers Core Fixes: Merged 163 upstream commits including path utility templates, 0-based
DeathTypeFlags, and core cleanup (#398 by @fbraz3).
π₯οΈ UI & Quality of Life
- Dedicated GeneralsX Options Menu: Accessible directly from the main menu, providing sliders for Max Camera Height and Terrain Draw Distance, plus toggles for Advanced Shadows, Dynamic Lighting, and Post-Processing shaders (#368 by @fbraz3).
- Main Menu Frame Expansion: Expanded main menu layout borders to cleanly accommodate all 7 menu items, eliminating border clipping and ensuring responsive mouse click hit-testing (#368 by @fbraz3).
π¨ Graphics & Visuals (DXVK / Vulkan)
- Volumetric Shadow Heap Overflow Fix: Fixed a buffer overflow in volumetric shadow edge list allocation that corrupted the DMA memory pool on complex meshes in mods like ShockWave (#383 by @elmeriniemela).
- Weapon Recoil List Out-of-Bounds Fix: Dynamically resized weapon recoil info vectors when weapon barrels are validated late during logic updates, resolving crashes during weapon fire in China mission 7 (#394 by @fbraz3, thanks to @Moortu).
- Rendering & Water Parity: Merged upstream reflection transforms in
W3DWaterwhile preserving oblique near clip planes and underwater depth transparency (#398 by @fbraz3).
π Audio & Video Subsystems (MiniAudio / FFmpeg)
- MiniAudio Focus & Hardening: Focused core documentation, wrapper scripts, and Flatpak builds on the modern cross-platform MiniAudio backend (#377 by @fbraz3).
- OpenAL Stopped Stream Hiss Fix: Unqueued and dropped processed audio buffers when streams reach
AL_STOPPEDto prevent lingering hissing noise or looping speech lines on legacy OpenAL builds (#393 by @fbraz3).
π Platform, Packaging & CI (macOS, Linux, Windows)
- Unified
generalsx.bigPackaging: Bundled custom layouts, shaders, and INIs into an atomicgeneralsx.bigarchive staged cleanly byrun.shacross macOS app bundles, Linux Flatpaks, and Windows builds without loose file pollution (#368 by @fbraz3). - Windows CI Optimization & Reproducibility: Pinned the
vcpkgtoolchain commit and bumped the binary cache key tov4, slashing Windows CI build and cache restore times and preventing workflow timeouts (#396 by @fbraz3).
β€οΈ Contributor Acknowledgements
A special thank you to our community contributors who made this release possible:
- @elmeriniemela for identifying and fixing the volumetric shadow heap overflow and memory pool corruption on Linux (#383)!
- @Moortu for diagnosing and providing the patches for the China mission 7 weapon recoil crash (#394) and the double-speed simulation pacing bug after loading savegames (#395)!
π± Ecosystem & Community Ports
If you enjoy GeneralsX, check out these community ports powered by the engine:
- Generals-Mac-iOS-iPad - iOS port by @ammaarreshi
- Generals-Android - Android port by @fadi-labib
- wasm-generals - Browser port by @ebellumat, playable at generals.wasm.com.br
Changelog
- feat(ngmp): transmit client version on login and restore update check gating by @fbraz3 in #364
- feat(gui): implement generalsx options menu and archive packaging by @fbraz3 in #368
- chore(audio): focus documentation and CI pipelines on miniaudio by @fbraz3 in #377
- fix(shadow): fix volumetric shadow heap overflow that corrupted the memory pool by @elmeriniemela in #383
- feat(math): backport upstream deterministic math and route gamelogic via wwmath (TheSuperHackers#2670) by @fbraz3 in #389
- fix(challenge): prevent auto-defeat on next match and retry by @fbraz3 in #392
- fix(audio): drop processed buffers on stopped OpenAL stream by @fbraz3 in #393
- fix(graphics): resize recoil list when weapon barrels validated late by @fbraz3 in #394
- fix(gameplay): re-evaluate logic time scale after savegame load by @fbraz3 in #395
- ci(windows): pin vcpkg toolchain and bump binary cache to v4 by @fbraz3 in #396
- chore(sync): merge thesuperhackers/main into GeneralsX by @fbraz3 in #398
Full Changelog: 1.0.4...1.0.5
GeneralsX - 1.0.4
If you run into any problems, please open an issue so we can investigate.
Getting Started
GeneralsX lets you play Command & Conquer: Generals and Zero Hour natively on modern systems with cross-platform online multiplayer.
π¦ Which file should I download?
- macOS (Apple Silicon): Download
macOS-GeneralsXZH.zip(Zero Hour) ormacOS-GeneralsX.zip(Generals). - Linux: Download
Linux-GeneralsXZH.flatpak(Zero Hour) orLinux-GeneralsX.flatpak(Generals). - Windows: Download
Windows-GeneralsXZH.zip(Zero Hour) orWindows-GeneralsX.zip(Generals).
π Follow the Installation & Setup Guide on our Wiki to set up your original game data files.
π Cross-Platform Multiplayer
Zero Hour includes built-in online lobbies via GeneralsOnline (NGMP). Players on macOS, Linux, and Windows can host, join, and play together without GameSpy, Hamachi, or third-party VLAN tools.
What's New
π Cross-Platform Multiplayer & Networking
- Multiplayer Socket & Connection Cleanup: Sockets that fail to bind are now properly closed, lobby players are deleted when leaving the lobby, and disconnect chat messages are safely released after transmission (#370 by @fbraz3).
- LAN Memory Leak Fixes: Resolved
GameInfomemory leaks inLANAPI::OnGameStart()andLANAPI::RequestGameLeave()(#370 by @fbraz3).
π― Engine, Gameplay & Determinism
- Early Mod Mounting Support:
-modcommand-line archives are now mounted beforeGameData.iniis parsed, ensuring custom shell maps, weapon bonuses, camera heights, and AI difficulty bonuses are correctly loaded and applied in both Zero Hour and Generals (#369 by @elmeriniemela). - Modularized Pathfinder: Decomposed monolithic pathfinding into discrete components (
PathfindLayer,PathfindZoneManager,ZoneBlock,PathfindCell,PathfindCellList,PathfindCellInfo,Path,PathNode) with deterministicWWMath::SqrtfOriginmath across macOS and Linux (#370 by @fbraz3). - Save/Load & Combat Fixes: Saved the next evaluation frame of delayed scripts, restored retail compatibility for Generals save games and
PATHFIND_CELL_SIZE_F, fixed 2D diagonal movement speed calculations, fixed Helix gaining experience from gun attachments, and ensured groups force-attack reliably (#370 by @fbraz3). - AI & Object Lifecycle: Fixed
AIUpdateInterface::checkForCrateToPickup()returning valid crates, prevented premature AI state exiting during reset updates, and cleared stranded occupants fromTunnelTrackerduring immediate object destruction (#370 by @fbraz3). - Map & World Builder Stability: Fixed crashes in World Builder's Team Builder when selecting team members of neutral players, rejected map sizes that overflow heightmap cell array allocations, and freed buffers when map preview copies fail (#370 by @fbraz3).
π₯οΈ UI & Quality of Life
- Tactical Air Unit Ground Indicator & Selection Picking: Local human player combat aircraft now display a dynamic, team-colored ground projection reticle directly below their flight coordinates, resolving altitude targeting ambiguity and allowing intuitive click-selection by clicking the reticle on the ground (#373 by @fbraz3).
- Cross-Platform Animated & Custom Cursors: Restored primary asset root propagation and extended SDL3 cursor hotspot extraction and static color cursor fallbacks across macOS and Linux, ensuring custom game cursors load properly (#373 by @fbraz3).
- In-Game Window & UI Teardown: Properly deleted
ControlBarandReplayControlwindows on resolution change and game shutdown, avoiding leaked system window handles and terrain tile leaks on device reset (#370 by @fbraz3). - Font & Glyph Rendering Optimization: Replaced full-texel font glyph caching with 1-byte coverage per glyph pixel, allowed sentence textures to grow dynamically beyond 256 pixels for high resolutions, and discarded cached glyphs on map transitions and resolution changes (#370 by @fbraz3).
π¨ Graphics & Visuals (DXVK / Vulkan)
- Advanced Shadows & Skeletal Volumes: Added real-time dynamic volumetric stencil shadows for animated infantry meshes, tree/prop scenery triangle shadow casting, bridge shadow casters, and projectile/missile shadows cast along the sun vector (#365 by @fbraz3).
- Planar Water Reflections & Softening: Implemented real-time planar mirror reflections for water surfaces with oblique near plane projection, natural shadow attenuation over water, and shoreline blend protection (#365 by @fbraz3).
- Dynamic Lighting & Vehicle Headlights: Added dynamic point light illumination for explosions and superweapons via
FXListGeneralsX.ini, alongside vehicle night headlights projecting warm dynamic beams (#365 by @fbraz3). - Post-Processing Pipeline: Screen-space Bloom bright-pass extraction, 4-tap separable Gaussian blur, and HDR soft-shoulder contrast tone mapping with full hierarchical toggles in
GameData.iniandOptions.ini(#365 by @fbraz3). - Static WW3D Renderer Architecture: Replaced the dynamic render backend object with a static
Rendererclass and consolidated rendering calls across the engine (#370 by @fbraz3).
π Audio & Video Subsystems (MiniAudio / FFmpeg)
- Shell Map Startup Sequencing: Fixed
GameEngine::init()prematurely pushing the main menu during startup, preventing the shell map and its background audio from playing under intro movies (#376 by @elmeriniemela). - MiniAudio Sound Slot & Priority Fixes: Sound effect replacement under high load now only replaces sounds of the same type (2D or 3D), preventing shell map and battle sounds from silencing menu music and speech (#376 by @elmeriniemela).
- Continuous Music Looping: Enabled infinite looping for music tracks in MiniAudio (
ma_sound_set_looping), restoring retail parity (#376 by @elmeriniemela). - Audio Pause / Resume Semantics: Audio pause and stop commands now target individual playing sounds rather than whole sound groups, allowing pause menus, General challenge voice lines, and button clicks to play cleanly (#376 by @elmeriniemela).
- Uninterruptible Speech Flag Reset: Ensured the speech restriction flag is properly cleared when uninterruptible streaming audio is released, preventing speech playback from dropping after the first line (#376 by @elmeriniemela).
π Platform, Packaging & CI (macOS, Linux, Windows)
- Linux glibc Library Bundling Exclusions: Updated Linux deployment, Flatpak, bundle, and AppImage scripts to skip all host glibc runtime libraries (
libc,libm,libpthread,librt,libdl,libmvec,libresolv,libutil, etc.) across Arch, Debian, and Fedora, preventing runtime loader mismatches when host glibc is updated (#375 by @elmeriniemela). - Automated Contributor Acknowledgements: Integrated automated detection of community contributions into the release pipeline and release note generator (#371 by @fbraz3).
- Unified Archive Filesystem: Replaced separate Win32 and standard filesystem implementations with a unified, cross-platform
BIGFileSystemandArchiveFilearchitecture (#370 by @fbraz3). - Automated Unit Testing & Benchmarks: Added Google Test and Google Benchmark suites into the build tree with CI execution across platforms (#370 by @fbraz3).
β€οΈ Contributor Acknowledgements
A special thank you to our community contributors who made this release possible:
- @elmeriniemela for mounting
-modarchives beforeGameData.ini(#369), excluding host glibc libraries from Linux deployment bundles (#375), and fixing intro shell map sequencing along with major MiniAudio sound slot, looping, and priority improvements ([#376](https://github.com/fbraz3/Gen...
GeneralsX - 1.0.3
If you run into any problems, please open an issue so we can investigate.
Getting Started
GeneralsX lets you play Command & Conquer: Generals and Zero Hour natively on modern systems with cross-platform online multiplayer.
π¦ Which file should I download?
- macOS (Apple Silicon): Download
macOS-GeneralsXZH.zip(Zero Hour) ormacOS-GeneralsX.zip(Generals). - Linux: Download
Linux-GeneralsXZH.flatpak(Zero Hour) orLinux-GeneralsX.flatpak(Generals). - Windows: Download
Windows-GeneralsXZH.zip(Zero Hour) orWindows-GeneralsX.zip(Generals).
π Follow the Installation & Setup Guide on our Wiki to set up your original game data files.
π Cross-Platform Multiplayer
Zero Hour includes built-in online lobbies via GeneralsOnline (NGMP). Players on macOS, Linux, and Windows can host, join, and play together without GameSpy, Hamachi, or third-party VLAN tools.
What's New
π Cross-Platform Multiplayer & Networking
- Multi-Interface LAN Discovery & Slot Desync Resolution: Fixed LAN multiplayer discovery on hosts with multiple network adapters (such as simultaneous wired Ethernet and Wi-Fi). Prioritizes wired Ethernet over Wi-Fi, filters self-echo announcement packets to prevent duplicate name rejections, fans out discovery broadcasts across all active local subnets, and fixes player slot mapping so the "Accept" button remains properly enabled (#346 by @fbraz3).
- Automated Replay Upload to Cloudflare R2: Integrated automated, asynchronous replay (
.rep) upload to Cloudflare R2 storage upon match completion in NGMP multiplayer games, running on dedicated background workers without stalling the main game thread or post-game flow (#355 by @fbraz3). - Midgame Combat Telemetry & Random Faction Resolution: Implemented periodic combat progress reporting (at Frame 0 and every 120 seconds) to GeneralsOnline to track live kills, losses, and cash. Automatically resolves active sides from player templates when Random factions are selected, preventing matches from recording unassigned faction data (#353 by @fbraz3).
- Accurate CRC Desync Telemetry in Match Outcomes: Detects CRC mismatch events at match end to accurately report desync states in outcome telemetry, clearing false win flags and allowing the backend to mark desynced matches with No Result (#361 by @fbraz3).
π― Engine, Gameplay & Determinism
- Cross-Platform Random Faction Determinism: Enforced strict candidate slot locking against Challenge Mode boss factions in multiplayer random pools and initialized persona states, eliminating Frame 0 cross-platform RNG desyncs between macOS, Linux, and Windows clients (#359 by @fbraz3).
- Mod Archive Precedence Over Stock Loose Files: Prioritized mod archives (
!*.big,-mod) over stock loose files inData/Scripts/, restoring full skirmish AI and custom script compatibility for major mods like Shockwave without requiring manual script renaming (#352 by @fbraz3). - Upstream Sync with TheSuperHackers (October 2026): Merged 23 upstream commits from
TheSuperHackers/GeneralsGameCode, bringing retail AI attack state compatibility, physics transform interpolation for render updates, terrain deformation scan optimizations, BIG archive timestamp speedups, and particle cannon script crash fixes while maintaining cross-platform deterministic math (#363 by @fbraz3).
π₯οΈ UI & Quality of Life
- Configurable Mouse Wheel Zoom Speed: Added the
MouseScrollSpeedFactorINI setting to configure mouse wheel camera zoom speed in both Generals and Zero Hour, with SagePatch setting it to1.0to match keyboard scrolling smoothness (#344 by @gabrielpetry). - Windows GDI Font Awesome Brands Registration: Fixed missing OS platform icons (Apple, Windows, Linux) in the multiplayer lobby under Windows by registering bundled
fa-brands-400.ttfdirectly with Windows GDI and mapping font family names properly (#345 by @fbraz3).
π¨ Graphics & Visuals (DXVK / Vulkan)
- Null Pointer Dereference Fix in Tree Buffer: Prevented a crash (
SIGSEGV) inW3DTreeBuffer::unitMovedduring shell maps and occupant redeployment by validating tree model loading, guarding spatial partition inserts, and adding bounds checks across tree rendering routines (#350 by @fbraz3). - Decoupled Physics Transform Interpolation: Integrated upstream drawable physics transform interpolation to decouple visual updates from simulation logic steps, improving animation and rendering smoothness (#363 by @fbraz3).
π Audio & Video Subsystems (MiniAudio / OpenAL / FFmpeg)
- Unified MiniAudio Backend on Linux: Switched the default Linux deployment preset (
linux64-deploy) from OpenAL to MiniAudio, establishing MiniAudio as the unified cross-platform audio engine across Linux and macOS and resolving taunt/speech audio starvation in General's Challenge mode (#358 by @fbraz3). - Windows MSVC DirectSound Build Compatibility: Fixed
dsound.hwave format header compilation errors under MSVC following globalWIN32_LEAN_AND_MEANadoption in the upstream sync (#363 by @fbraz3).
π Platform, Packaging & CI (macOS, Linux, Windows)
- Windows CI Build Acceleration & vcpkg Cache v3: Bumped vcpkg binary cache prefix to
v3and passed overlay triplets explicitly after a GitHub Actions runner image update, resolving long ~40-minute rebuild cycles back to ~6-minute incremental builds (#362 by @fbraz3). - Docker Mount & Workspace Path Hardening: Improved Linux Docker build and configuration scripts with shared mounts and reliable relative path resolution (#344 by @gabrielpetry).
- Cleaned CMake Configuration for NGMP: Stripped obsolete external reference paths from
cmake/ngmp.cmakefor cleaner cross-platform library resolution (#343 by @fbraz3).
π± Ecosystem & Community Ports
If you enjoy GeneralsX, check out these community ports powered by the engine:
- Generals-Mac-iOS-iPad - iOS port by @ammaarreshi
- Generals-Android - Android port by @fadi-labib
- wasm-generals - Browser port by @ebellumat, playable at generals.wasm.com.br
Changelog
- refactor(build): remove external reference paths from ngmp cmake by @fbraz3 in #343
- feat(camera): configure mouse wheel zoom speed by @gabrielpetry in #344
- fix(font): resolve and register Font Awesome Brands for Windows GDI by @fbraz3 in #345
- fix(network): resolve multi-interface LAN discovery and slot desync (#337) by @fbraz3 in #346
- docs(worklog): sanitize server hostnames and internal domains by @fbraz3 in #349
- fix(graphics): prevent null dereference in W3DTreeBuffer by @fbraz3 in #350
- fix(fs): prioritize mod archives over stock loose files by @fbraz3 in #352
- feat(net): add match progress telemetry and resolved side persistence by @fbraz3 in #353
- feat(ngmp): implement match replay upload to Cloudflare R2 by @fbraz3 in #355
- feat(audio): unify Linux audio backend to MiniAudio by @fbraz3 in #358
- fix(logic): enforce deterministic random faction pool and persona state by @fbraz3 in #359
- fix(net): report CRC desync status in NGMP match outcome telemetry by @fbraz3 in #361
- ci(windows): bump vcpkg binary cache to v3 and pass overlay triplets by @fbraz3 in #362
- chore(sync): merge thesuperhackers/main (10-07-2026) by @fbraz3 in #363
Full Changelog: 1.0.2...1.0.3
GeneralsX - 1.0.2
If you run into any problems, please open an issue so we can investigate.
Getting Started
GeneralsX lets you play Command & Conquer: Generals and Zero Hour natively on modern systems with cross-platform online multiplayer.
π¦ Which file should I download?
- macOS (Apple Silicon): Download
macOS-GeneralsXZH.zip(Zero Hour) ormacOS-GeneralsX.zip(Generals). - Linux: Download
Linux-GeneralsXZH.flatpak(Zero Hour) orLinux-GeneralsX.flatpak(Generals). - Windows: Download
Windows-GeneralsXZH.zip(Zero Hour) orWindows-GeneralsX.zip(Generals).
π Follow the Installation & Setup Guide on our Wiki to set up your original game data files.
π Cross-Platform Multiplayer
Zero Hour includes built-in online lobbies via GeneralsOnline (NGMP). Players on macOS, Linux, and Windows can host, join, and play together without GameSpy, Hamachi, or third-party VLAN tools.
What's New
π Cross-Platform Multiplayer & Networking
- QuickMatch Map Pack Notice & Direct Guide Link: Added a notice in the QuickMatch status window informing players about the official multiplayer map pack requirement, featuring a clickable short link (https://generalsx.org/maps) directing straight to the installation guide (#340 by @fbraz3).
- OS Brand Glyphs in Online Lobby: Render Font Awesome 6 Brands glyphs (Apple, Windows, Linux) in the multiplayer lobby roster instead of text tags (
[MAC],[WIN],[LNX]), including fallback font verification and robust unprofiled tooltip / right-click name resolution (#338 by @fbraz3).
π― Engine, Gameplay & Determinism
- Decoupled General's Challenge Framerate Limit: Decoupled rendering FPS in General's Challenge mode from the legacy hardcoded 30 FPS cap, standardizing it to the global rendering limit (default 60 FPS or user-configured
SagePatch.ini) with smooth frame pacing while maintaining 30 Hz simulation logic (#342 by @fbraz3). - Upstream Sync with TheSuperHackers: Synchronized latest upstream changes from
thesuperhackers/main(27-09-2026), resolving 36 merge conflicts across platform device layers, game logic, memory pools, tools, and build definitions while preserving cross-platform determinism and platform isolation (#341 by @fbraz3). - Saturate Out-of-Range INI Integers for Mod Compatibility: Saturated out-of-range integer tokens to type limits instead of throwing errors, restoring retail mod compatibility for mods like Shockwave 1.201 that specify extreme values (e.g.
9999999999999999999) for infinite delays (#330 by @fbraz3). - Fix Replay Frame 0 Desync and Completion Loop: Deferred replay command processing until after initial map initialization and frame 0 script execution finish, preventing AI group ID divergence on scripted maps and fixing infinite simulation loops in automated replay tests (#325 by @fbraz3).
π₯οΈ UI & Quality of Life
- Universal Font Resolution & Bundled Liberation Fonts: Bundled SIL OFL-licensed Liberation Fonts (Sans, Serif, Mono) and Font Awesome Brands with multi-tier font resolution fallback, eliminating missing text or crashes on clean systems without system Microsoft fonts or Fontconfig (#336 by @fbraz3).
- Interactive Browser Opening & Platform Isolation: Implemented
Platform::OpenBrowserURL()across SDL3 and Windows to safely open external links (like wiki guides and discord auth) without leaking OS headers into game UI menus (#340 by @fbraz3).
π¨ Graphics & Visuals (DXVK / Vulkan)
- Restored Animated Cloud Shadows & D3DX Matrix Parity: Replaced GLM helper matrix translations and multiplications in
d3dx8math.cppwith direct row-major DirectX implementations, restoring animated sliding cloud shadows (UseCloudMap) across terrain on macOS and Linux (#339 by @fbraz3).
π Audio & Video Subsystems (MiniAudio / OpenAL / FFmpeg)
- Audio & Video Parity & Upstream Unification: Preserved strict feature parity across OpenAL and MiniAudio backends and maintained video subsystem stability during upstream display and audio unifications (#341 by @fbraz3).
π Platform, Packaging & CI (macOS, Linux, Windows)
- Windows CI Build Acceleration & vcpkg Caching: Fixed a vcpkg binary cache invalidation trap by adding custom triplets with compiler tracking disabled and optimizing cache keys, reducing Windows CI build time from ~40 minutes down to ~6 minutes (#327 by @fbraz3).
- Workspace Reference & Submodule Cleanup: Removed internal git submodules in favor of clean workspace-level sibling repositories and modernized
cmake/dx8.cmakelocal fork detection (#331 by @fbraz3). - Packaging & Deployment Scripts Parity: Updated macOS application bundling, Linux Flatpak manifests, and deployment scripts to package bundled fonts and license files (#336 by @fbraz3).
π± Ecosystem & Community Ports
If you enjoy GeneralsX, check out these community ports powered by the engine:
- Generals-Mac-iOS-iPad - iOS port by @ammaarreshi
- Generals-Android - Android port by @fadi-labib
- wasm-generals - Browser port by @ebellumat, playable at generals.wasm.com.br
Changelog
- fix(recorder): defer replay commands until map load finishes by @fbraz3 in #325
- ci(windows): fix vcpkg binary cache invalidation and update wiki docs by @fbraz3 in #327
- fix(ini): saturate out-of-range integers to match retail mod behavior by @fbraz3 in #330
- chore(build): remove submodules and relocate references to workspace by @fbraz3 in #331
- feat(fonts): implement universal font resolution with bundled liberation fonts by @fbraz3 in #336
- feat(lobby): render os brand glyphs for players using font awesome by @fbraz3 in #338
- fix(graphics): correct D3DX row-major matrix operations to restore animated cloud shadows by @fbraz3 in #339
- feat(quickmatch): add map pack notice and clickable wiki guide link by @fbraz3 in #340
- chore(sync): merge thesuperhackers/main (27-09-2026) by @fbraz3 in #341
- fix(engine): decouple general's challenge render fps from legacy 30 fps cap by @fbraz3 in #342
Full Changelog: 1.0.1...1.0.2
GeneralsX - 1.0.1
If you run into any problems, please open an issue so we can investigate.
Getting Started
GeneralsX lets you play Command & Conquer: Generals and Zero Hour natively on modern systems with cross-platform online multiplayer.
π¦ Which file should I download?
- macOS (Apple Silicon): Download
macOS-GeneralsXZH.zip(Zero Hour) ormacOS-GeneralsX.zip(Generals). - Linux: Download
Linux-GeneralsXZH.flatpak(Zero Hour) orLinux-GeneralsX.flatpak(Generals). - Windows: Download
Windows-GeneralsXZH.zip(Zero Hour) orWindows-GeneralsX.zip(Generals).
π Follow the Installation & Setup Guide on our Wiki to set up your original game data files.
π Cross-Platform Multiplayer
Zero Hour includes built-in online lobbies via GeneralsOnline (NGMP). Players on macOS, Linux, and Windows can host, join, and play together without GameSpy, Hamachi, or third-party VLAN tools.
What's New
π Cross-Platform Multiplayer & Networking
- NGMP Session Token Renewal & Live Player Count: Added automatic, transparent session token renewal on HTTP 401 Unauthorized during extended matches and bound the Zero Hour welcome screen's online player counter directly to real-time NGMP backend state (#320 by @fbraz3).
- LAN & Online Host IP Selection (POSIX / Linux): Added active carrier checks (
IFF_RUNNING) and filtering for Docker user bridge interfaces (br-<hex>), ensuring the game selects the true host LAN/WAN IP rather than unreachable virtual bridge addresses (#307 by @beckren). - POSIX LAN Interface Architecture: Refactored POSIX interface enumeration and broadcast address discovery into
Core/GameEngineDevice/behindLANInterfaceDevice, cleanly decoupling OS networking headers from game logic (#313 by @fbraz3). - LAN Game Room Stability: Prevented LAN game room hangs caused by player names exceeding buffer bounds by ensuring bounded UTF-8 encoding across player slots (#321 by @thesuperhackers).
- GeneralsOnline GameServer Remote Migration: Updated the
references/GameServersubmodule remote to the canonicalgeneralsx-projectorganization (#312 by @fbraz3).
π― Engine, Gameplay & Determinism
- Configurable Skirmish Simulation Tick Rate: Introduced an INI preference (
TickRate,GameSpeed, orSkirmishTickRate) inOptions.iniandSkirmish.ini, allowing players to customize offline Skirmish game simulation speed between 5 Hz and 120 Hz without altering rendering FPS or desyncing multiplayer matches (#314 by @fbraz3). - Cross-Platform Determinism & Crater Safety: Guarded crater creation math with finite coordinate validation (
std::isfinite), clamped bounds against map extents before floor conversions, and eliminated index overflow risks across ARM64 (macOS) and x86_64 (Linux/Windows) simulation environments (#321 by @fbraz3). - Upstream Map Subsystem Unification: Unified map subsystem classes (
SidesList,PolygonTrigger,TerrainLogic, andMapReaderWriterInfo) into sharedCore/GameEngine/across Generals and Zero Hour, eliminating duplicate implementations (#321 by @thesuperhackers). - Save/Load Transfer Versioning: Fixed version checking logic in
xfermethods and corrected kill flag version checks inDamageInfoInput::xfer(#321 by @thesuperhackers). - Hierarchical Pathfinder Crash Guard: Fixed a potential crash in
Pathfinder::processHierarchicalCellduring complex pathing calculations (#321 by @thesuperhackers). - Replay Playback Mismatch Warnings: Replaced ambiguous live multiplayer desync warning strings during replay playback with clear, dedicated replay mismatch diagnostic alerts (#322 by @arazmj).
- Detailed Nested INI Diagnostics: Preserved nested exception details, file paths, and line numbers during INI parsing failures, with explicit numeric conversion error reporting (#323 by @arazmj).
- Startup INI Failure Safety: Resolved startup INI parsing failures and preserved working directory integrity on Linux Flatpak runtimes (#308 by @fbraz3).
π₯οΈ UI & Quality of Life
- Steam "Custom Mission" Menu Support: Activated the retail "Custom Mission" solo play menu option for Steam asset installations, allowing players to directly load and play custom maps from their
Maps/directory without overwriting campaign files (#316 by @fbraz3). - Resolution-Scaled HUD Cards Restored: Removed horizontal aspect-ratio compression on ultra-wide and high-resolution displays, restoring crisp and proportionally accurate command cards, build queues, and unit portraits (#319 by @arazmj).
- HUD Message Delay Frames: Converted
MessageDelayMSto logic frames so customized HUD message durations in INI settings take effect as intended (#321 by @thesuperhackers). - Control Bar Rally Point Safety: Guarded against null pointer crashes when displaying rally points if
RallyPointMarkeris not defined in custom or mod INIs (#321 by @thesuperhackers).
π¨ Graphics & Visuals (DXVK / Vulkan)
- DXVK Subproject Organization Migration: Updated the DXVK translation layer repository URL to
generalsx-project/dxvk(branchgeneralsx-macos-v2.6) and ensured clean dependency clones during builds (#311 by @fbraz3). - Rendering & Model Draw Safety: Prevented null pointer dereferences in
W3DTerrainVisual::loadRequire(),PointGroupClass::RenderVolumeParticle(), andW3DModelDraw::handleClientRecoil(), alongside particle alignment enum optimizations for rendering batches (#321 by @thesuperhackers). - Aliased String Setter Safety in WW3D2: Prevented memory corruption during texture and material setup by copying string inputs before freeing storage in WW3D2 (#321 by @thesuperhackers).
π Audio & Video Subsystems (MiniAudio / OpenAL / FFmpeg)
- Audio Subsystem Stability & Parity: Maintained strict cross-platform parity across macOS, Linux, and Windows for both OpenAL and MiniAudio backends throughout the upstream engine synchronization (#321 by @fbraz3).
π Platform, Packaging & CI (macOS, Linux, Windows)
- Flatpak NVIDIA Driver Diagnostics: Added automatic detection for NVIDIA GPU hardware in Linux Flatpak runtimes, emitting actionable diagnostics if the matching
org.freedesktop.Platform.GL.nvidiadriver extension is missing from the sandbox (#317 by @fbraz3). - generalsx-project Organization Migration: Migrated CI test asset repositories, replay verification suites, and submodules to the dedicated generalsx-project organization (#310, #311, #312 by @fbraz3).
- Automated NGMP Integrity Review: Integrated an automated CodeRabbit pre-merge check to enforce Next-Gen Multiplayer protocol invariants across all PRs (#318 by @fbraz3).
- Documentation & Release Modernization: Streamlined project README to highlight cross-play, updated setup guides on the wiki, and modernized release note generation templates (#324, #326 by @fbraz3).
π± Ecosystem & Community Ports
If you enjoy GeneralsX, check out these community ports powered by the engine:
- Generals-Mac-iOS-iPad - iOS port by @ammaarreshi
- Generals-Android - Android port by @fadi-labib
- wasm-generals - Browser port by @ebellumat, playable at generals.wasm.com.br
Changelog
GeneralsX - 1.0.0
If you run into any problems, please open an issue so we can investigate.
Getting Started
Follow the Installation Guide to set up GeneralsX on your platform.
What's New
π Historic Milestone: Generals Online Multiplayer Integration for Zero Hour (NGMP)
GeneralsX achieves a monumental milestone with the debut of Generals Online for Command & Conquer: Generals Zero Hour, integrating the Next Generation Multiplayer Protocol (NGMP)! The NGMP protocol, client, and server architecture were developed by the GeneralsOnline team. In this release, GeneralsX brings a native Zero Hour client integration built upon their client and server protocols, customized and tailored to meet the cross-platform needs of the GeneralsX project across macOS and Linux, backed by dedicated infrastructure.
With the legacy GameSpy backend long defunct, Zero Hour players can now experience modern online multiplayer: browser-based authentication, real-time WebSocket messaging, custom lobby rooms, player statistics, buddy lists, in-game chat, and robust peer-to-peer match connectivity via GameNetworkingSockets with STUN/TURN NAT traversal (#260 by @fbraz3). (Note: Generals Online multiplayer is currently exclusive to Zero Hour; the Generals base game continues to support Singleplayer, Skirmish vs AI, and LAN multiplayer).
π The First Stable Release (v1.0.0)
Welcome to GeneralsX 1.0.0 β our very first release designated as Stable! This milestone signifies that the core game engine, rendering pipeline, audio system, and platform abstraction layer have reached production quality. GeneralsX is now free of major crashes or critical bugs that impede gameplay, offering a smooth retail-compatible experience on Linux and macOS. Minor bugs or visual quirks may still occur and are welcome to be reported via GitHub Issues, but the era of experimental instability is behind us!
π€ Community & Contributor Acknowledgements
A special thank-you to the contributors helping push GeneralsX forward in this release:
- @UnicodeApocalypse for several quality fixes between Beta 19 and 1.0.0, including resolving the Overlord Battle Bunker disembark issue, fixing FreeType Unicode combining-mark crashes on non-English text, adding dynamic skirmish map lists, and ensuring retail patch archives and strings take priority.
- @arazmj as a core project collaborator, actively helping shape project decisions, interacting on issues and bug reports, and driving continuous stability across the codebase.
π Zero Hour Multiplayer & Generals Online
- Generals Online (NGMP) Integration: Native Zero Hour client integration based on the client and server protocol developed by the GeneralsOnline team, adapted and customized for the cross-platform requirements of GeneralsX. Includes WebSocket messaging, token-based authentication, custom lobbies, player profiles, and GameNetworkingSockets transport layer (#260 by @fbraz3).
- Lobby Experience & Polish: Added clickable MOTD links, online welcome audio, post-match outcome reporting, and reliable join/password flows (#260 by @fbraz3).
β οΈ Known Issues (Zero Hour Online Multiplayer)
- Zero Hour Exclusive: Generals Online multiplayer is exclusively available for Zero Hour (
GeneralsMD/GeneralsXZH). In the base Generals game, multiplayer is fully functional via LAN (alongside Singleplayer and Skirmish vs AI). - Quick Match: The Quick Match matchmaking queue is currently not functional in this release. Please use Custom Lobbies to host and join multiplayer matches.
- Replay Uploads: Automatic replay uploading to the server is not yet implemented and will be added in a future update.
π₯οΈ UI & Quality of Life
- Unlimited Custom Skirmish Maps: Skirmish, LAN, and campaign map selection listboxes now dynamically double capacity on demand, lifting the legacy 100-map limit and correctly listing all installed custom maps (#293 by @UnicodeApocalypse).
- Cross-Platform Custom Map Previews: Escaped UNIX forward slashes in flattened preview paths on macOS and Linux, ensuring custom map preview thumbnails load properly from disk (#291 by @UnicodeApocalypse).
- Modal Window Stack Hardening: Consolidated window destruction and modal cleanup in
GameWindowManagerto prevent duplicate modals and ensure destroyed windows are purged from the modal stack (#304 by @fbraz3).
π¨ Graphics & Text Rendering Polish
- FreeType Combining-Mark Crash Fix: Switched character width calculations to signed arithmetic with proper min-extent clamping, eliminating buffer corruption and SIGBUS crashes when rendering Unicode diacritics and combining accents (such as Portuguese "ConfiguraΓ§Γ΅es") (#298 by @UnicodeApocalypse).
- Dynamic Glyph Buffer Sizing: Aligned font glyph buffer allocations to actual glyph extents to prevent buffer write overflows (#304 by @fbraz3).
- Material Color Processing: Corrected mesh material color processing logic in WW3D2 (#304 by @fbraz3).
π§ Gameplay & Engine Fixes (Upstream Sync)
- Overlord Battle Bunker Disembark: Resolved a critical bug where infantry loaded into an Overlord's Battle Bunker upgrade could not disembark or evacuate. Redirected containment queries, door reservations, and exit checks to the inner bunker container (#296 by @UnicodeApocalypse).
- Patch Archive Priority: Ensured
Patch*.bigarchives are loaded in a second pass with overwrite priority, correctly restoring patched INI files, UI definitions, and button animations (such as WindowTransitions) (#295 by @UnicodeApocalypse). - Retail Patch Text Overlay: Added support for
Data\Patch.str, resolvingMISSING: '...'text placeholders on patched retail installations without manual CSF editing (#294 by @UnicodeApocalypse). - Pathfinder Performance Optimization: Optimized
PathNodetail appending to O(1) time complexity, removed redundantisCrusherrecomputations, and cached parent cell positions outside the neighbor search loop for smoother unit movement in large battles (#304 by @fbraz3). - Dozer AI State Guard: Fixed an issue where builder units could erroneously resume completed tasks after being disabled (#304 by @fbraz3).
- Nuclear Missile Damage Correction: Fixed and improved damage calculation for large structures situated within the outer blast radius (#304 by @fbraz3).
- Direct CLI Replay Playback: Enabled launching and playing replay files directly via
-loadreplay <file>from the command line (#304 by @fbraz3).
π Audio & Video Subsystems
- Dynamic Bink & Miles Runtime Loaders: Replaced static import stubs with modular dynamic runtime loaders for Bink and Miles, preventing startup crashes when optional DLLs are not present (#304 by @fbraz3).
- Sound Scene Safety & Cleanup: Guarded against premature sound cancellations, resolved heap-buffer-overflow reads in audio provider selection, and safely copied sound scene state (#304 by @fbraz3).
π Packaging, CI & Infrastructure
- Automated SemVer Release Pipeline: Transitioned release workflows to automated Semantic Versioning, dynamic next-version detection, and unified release tooling (#301 by @fbraz3).
- Branding & Windows Icons: Refreshed project branding with classic military insignia emblems and generated complete multi-resolution Windows executable icons across 7 resolutions (#301 by @fbraz3).
- Clean macOS Distribution Archives: Fixed macOS bundle packaging using symlink-preserving zip archives, avoiding nested extraction issues (#301 by @fbraz3).
- vcpkg Binary Caching: Accelerated Windows and macOS CI builds with GitHub Actions vcpkg binary caching (#290 by @fbraz3).
- Documentation Migration: Sanitized local paths, migrated installation and setup guides to the GitHub Wiki, and streamlined developer guidelines (#300 by @fbraz3).
Community Ports based on GeneralsX
If you like Genera...
GeneralsX Beta 19
This is a beta release. Some bugs are still expected. If you run into any problems, please open an issue so we can investigate.
Getting Started
Follow the Installation Guide to set up GeneralsX on your platform.
What's New
π₯οΈ UI & Quality of Life
- Retina & High-DPI Fullscreen Hit-Testing: Fixed mouse click coordinate transformations on Retina and high-DPI displays (e.g. MacBook Pro 1512x982). Fractional SDL coordinates and logical-space aspect-fit calculations are now preserved, eliminating missed clicks near buttons and HUD elements in fullscreen mode across both Generals and Zero Hour (#286 by @arazmj).
- Unified Game Window Architecture: Consolidated
GameWindowManager,GameWindowTransitionsStyles, andAnimateWindowManagerinto sharedCore/GameEngine/, eliminating legacy code duplication between Generals and Zero Hour (#288 by @fbraz3).
π¨ Graphics & Rendering Polish
- Particle System Batching: Batched same-type particle systems during rendering to reduce particle draw call overhead by 15% to 30% (#288).
- Expanded Scorch Mark Buffer: Upgraded scorch mark buffers to 16-bit capacity with explicit bounds checks to prevent buffer exhaustion in prolonged battles (#288).
- W3D Hierarchy Validation: Added validation for W3D hierarchy pivot counts and integrated upstream WW3D2
IRenderBackendfoundations (#288).
π§ Gameplay & Engine Fixes (Upstream Sync)
- SCUD Storm Premature Launch Guard: Resolved a crash (issue #284) caused when the skirmish AI ordered a SCUD Storm while the launcher was still under construction. Hardened the entire launch pipeline to validate power bindings, reject premature launches, prevent orphan OCL payload creation, and correctly restore the module pointer upon construction and game loading (#287 by @arazmj, with attribution to @busybee13).
- Contact Weapon Obstacle Traversal: Fixed contact weapons (such as demolition or melee attacks) being erroneously blocked by obstacles or terrain (#288).
- Production Queue Refund Fix: Prevented cancelling and refunding a production entry when a portion of its units had already completed building (#288).
- Assisted Targeting Initial-Frame Parity: Resolved assisted targeting discrepancies between Generals base game and Zero Hour during initial frame updates (#288).
- Troop Crawler Destruction Safety: Prevented potential crash when a Troop Crawler is destroyed immediately before reaching a Reinforcement Pad (#288).
- Flexible Save Game Loading: Added support for loading save games from absolute paths, with user-facing dialogs for queued load failures and preserved console diagnostics (#288).
π Audio Engine (OpenAL & MiniAudio Parity)
- Movie Volume Synchronization: Configured speech and master volumes now correctly dispatch to video playback (
TheVideoPlayer) for consistent cutscene audio levels (#288). - Clean Audio Volume Architecture: Removed legacy Miles volume workarounds (
has3DSensitiveStreamsPlaying), maintaining strict feature parity between OpenAL and MiniAudio backends (#288 by @fbraz3).
π οΈ Developer Tooling & Prompts
- Release Preparation Prompt: Added
.github/prompts/prepare-release-draft.prompt.mdto automate GitHub release drafting, commit analysis, and release note structuring (#280 by @fbraz3). - Modular PR Review & CodeRabbit Workflows: Split PR review guidance into an architectural integrity prompt and a dedicated CodeRabbit findings triage/rebuttal workflow (#289 by @fbraz3).
Community Ports based on GeneralsX
If you like GeneralsX, please also take a look into these projects
- Generals-Mac-iOS-iPad - iOS port by ammaarreshi
- Generals-Android - Android port by fadi-labib
- GeneralsXWeb - Web port by meerzulee
- wasm-generals - WebAssembly Browser port by ebellumat, playable at generals.wasm.com.br
Changelog
- feat(prompts): add prepare-release-draft custom prompt by @fbraz3 in #280
- fix(input): correct Retina fullscreen clicks by @arazmj in #286
- fix(zh): abort premature SCUD Storm launches by @arazmj in #287
- chore(sync): merge thesuperhackers upstream (2026-09-08) by @fbraz3 in #288
- chore(prompts): modularize pr review and coderabbit findings workflows by @fbraz3 in #289
Full Changelog: GeneralsX-Beta-18...GeneralsX-Beta-19
GeneralsX Beta 18
This is a beta release. Some bugs are still expected. If you run into any problems, please open an issue so we can investigate.
Getting Started
Follow the Installation Guide to set up GeneralsX on your platform.
What's New
π Welcoming @arazmj to the Team!
We are thrilled to give a warm welcome to @arazmj as a new core contributor to GeneralsX! π
@arazmj has delivered phenomenal improvements across cross-platform determinism, graphics rendering enhancements, widescreen UI polish, AI stability, and codebase synchronization with upstream TheSuperHackers. Thank you and welcome aboard! π
π― Cross-Platform Multiplayer & Determinism
- Deterministic BΓ©zier Trajectories: Aligned GLM matrix and vector operations with D3DX order so projectile trajectories (such as Scorpion tank shells) stay bit-identical across macOS, Linux, and Windows (#255 by @arazmj).
- Reliable Integer-to-String (
itoa) Conversion: Replaced Unixitoabuffer handling with a portable implementation, ensuring correct bone name generation (ExitStart0...) during troop unloads (e.g., Troop Crawlers) and eliminating desyncs between macOS and Windows (#256 by @arazmj). - Deep CRC Diagnostics on Windows: Enabled automated 64-frame state snapshot logging on Windows (
deep_crc_*.bin), standardizing desync diagnosis across all platforms (#278 by @fbraz3). - Network Command Ordering: Sorted network command lists deterministically to avoid command sequencing divergence (#276 by @arazmj).
π¨ Graphics & Rendering Polish
- Texture & DDS Mipmap Quality: Authored DDS mip chains and explicit mip requests are now fully preserved. Added robust capability-aware MSAA fallbacks, clamped anisotropy to device limits with linear fallback (preventing degradation to point sampling), and corrected rectangular/sparse mip sizing (#270 by @arazmj).
- Skinned Mesh Vertex Colors: Preserved authored diffuse, team-color, and emissive vertex colors during skinned mesh rendering without state leakage (#270 by @arazmj).
- Shoreline Alpha & Shroud Blending: Configured shoreline texture alpha blending explicitly to modulate with fog-of-war/shroud alpha, preventing visual inconsistencies (#269 by @arazmj).
- Particle & Scorch Improvements: Upgraded scorch mark management with deque storage/deduplication and added volume particle depth controls (#276).
π₯οΈ UI & Quality of Life
- Widescreen Control Bar Aspect Ratios: Command buttons, science purchase buttons, unit cameos, and build queue cards now maintain their original aspect ratio on widescreen and ultrawide displays (> 4:3) rather than stretching horizontally (#268 by @arazmj).
- Generals Campaign Menu Transition: Fixed an issue where the main menu shell could overlay the campaign mission when continuing from the score screen (#275 by @arazmj).
- Loose
GameData.iniModding Precedence: User-authored looseData/INI/GameData.inifiles now take precedence over auto-generatedSagePatch.inidefaults (e.g. custom camera height), restoring standard modding flexibility (#264 by @kumait).
π§ Gameplay & Engine Fixes (Upstream Sync)
- AI State Lifecycle Safety: Fixed a crash caused by temporary AI states being prematurely cleared during update callbacks when spawning USAF aircraft/free Raptors (#277 by @arazmj).
- Save/Load Improvements: Added
-loadsavecommand-line argument, explicit success/error feedback dialogs, and graceful recovery when loading save games (#276 by @arazmj). - Shared Tunnel & Cave Network Exits: Integrated upstream's polymorphic containment validation (
isContained()), ensuring units can exit from any connected tunnel or cave endpoint (#276 by @arazmj). - Missile AI & Selection Fixes: Diving missiles no longer miss moving targets, and
KINDOF_NO_SELECTobjects are properly excluded from mass selections (#276). - UTF-8 String Utilities: Improved cross-platform UTF-8 text validation and conversion handling (#276).
Community Ports based on GeneralsX
If you like GeneralsX, please also take a look into these projects
- Generals-Mac-iOS-iPad - iOS port by ammaarreshi
- Generals-Android - Android port by fadi-labib
- GeneralsXWeb - Web port by meerzulee
- wasm-generals - WebAssembly Browser port by ebellumat, playable at generals.wasm.com.br
Changelog
- fix(math): align deterministic Bezier operations by @arazmj in #255
- fix(compat): terminate itoa output reliably by @arazmj in #256
- fix(ini): replay user GameData.ini after SagePatch overrides by @kumait in #264
- fix(ui): preserve widescreen card aspect ratios by @arazmj in #268
- fix(water): stabilize shoreline track alpha by @arazmj in #269
- fix(graphics): preserve texture and render quality by @arazmj in #270
- chore(ci): clarify conventional commit rules for trailers and co-authors by @fbraz3 in #274
- fix(generals): prevent campaign menu overlay by @arazmj in #275
- chore(sync): merge TheSuperHackers upstream by @arazmj in #276
- fix(ai): preserve temporary state lifecycle by @arazmj in #277
- feat(crc): enable deep crc memory buffer logging on windows by @fbraz3 in #278
Full Changelog: GeneralsX-Beta-17...GeneralsX-Beta-18
GeneralsX Beta 17
This is a beta release. Some bugs are still expected. If you run into any problems, please open an issue so we can investigate.
Getting Started
Follow the Installation Guide to set up GeneralsX on your platform.
What's New
πͺ Windows Support & Cross-Platform LAN Gaming
GeneralsX now features native Windows x86 builds (GeneralsX.exe and GeneralsXZH.exe) with full cross-platform LAN compatibility between Linux, macOS, and Windows!
- π€ Huge thanks to @arazmj for contributing deterministic Windows x86 support, MSVC native build support for both Zero Hour and the Generals base game, CI release pipelines, and networking fixes!
β οΈ Important Note: This enables LAN gaming (Local Area Network, Direct Connect, or Virtual LAN solutions like ZeroTier, Radmin LAN, Hamachi), NOT online matchmaking / GameSpy. All players in the LAN lobby must use compatible GeneralsX builds to play together deterministically without sync crashes.
π Multiplayer & Networking
- Cross-Platform LAN Compatibility: Play LAN matches between macOS, Linux, and Windows clients with shared deterministic simulation.
- Shared Tunnel & Cave Network Exits: Fixed passenger exit orders being rejected when units entered one tunnel/cave entrance and were ordered out of another connected endpoint belonging to the same player (#254 by @arazmj).
- Preserve Spaces in Map Names: Fixed serialization for map names with spaces (such as Twilight Flame) when communicating across clients (#252 by @arazmj).
- Network Packet Optimization: Removed unnecessary dynamic allocations in
NetPackethandling.
π₯οΈ Windowing & Platform Fixes
- macOS HiDPI & Multi-Monitor Placement: Fixed window sizing and centering issues on Retina / multi-monitor setups, preventing oversized windows and incorrect display migration (#251 by @kumait).
- Windows Big File Language Auto-Detection: Automatically detect game language when registry entries are not present.
- UI & Watermark: Improved tag casing detection and layout formatting for the on-screen watermark.
π Audio Engine (OpenAL & MiniAudio)
- Audio Event Lifetime Management: Refactored audio requests to use
RefCountPtr<DynamicAudioEventRTS>, eliminating dangling pointer crashes during looping audio playback across both OpenAL and MiniAudio backends.
π§ Gameplay & Engine Fixes (Upstream Sync)
- Pathfinder Retail Crash Fixes: Fixed legacy engine crashes caused by dangling pointers in
pathfindCelland missing info headers in closed list navigation. - Aircraft AI Fixes:
- Chinook helicopters no longer accept invalid enter commands or enter-themselves loops.
- Aircraft no longer attempt to land or remain stationed at destroyed Airfields.
- Infantry Evacuation AI: Force-evacuated infantry from destroyed/unloaded vehicles no longer path towards invalid target locations.
- Horde Mechanics: Prevented dead units from being evaluated as active horde members.
- Smooth GUI Animation: Animated GUI menus and windows now move smoothly at refresh rates above 30 FPS.
- Script Performance: Reduced lookup overhead in
ScriptEngine::findScript()by ~85%. - Scorch Rendering: Separated scorch rendering into
W3DScorchand fixed mipmap quality updates when changing graphic settings.
Community Ports based on GeneralsX
If you like GeneralsX, please also take a look into these projects
- Generals-Mac-iOS-iPad - iOS port by ammaarreshi
- Generals-Android - Android port by fadi-labib
- GeneralsXWeb - Web port by meerzulee
- wasm-generals - WebAssembly Browser port by ebellumat, playable at generals.wasm.com.br
Changelog
- fix: Correct window placement and HiDPI sizing on macOS by @kumait in #251
- fix(network): preserve spaces in map names by @arazmj in #252
- build(windows): restore deterministic x86 build by @arazmj in #253
- fix(containment): allow shared network exits by @arazmj in #254
- chore(sync): merge upstream thesuperhackers into GeneralsX by @fbraz3 in #257
- feat(windows): add native msvc build support for generals base game by @fbraz3 in #262
Full Changelog: GeneralsX-Beta-16...GeneralsX-Beta-17
GeneralsX Beta 16
This is a beta release. Some bugs are still expected. If you run into any problems, please open an issue so we can investigate.
Getting Started
Install the engine: Follow the Installation Guide to set up GeneralsX on your platform.
What's New
This is a minor release focusing on stability improvements, bug fixes, and some much-requested quality-of-life tweaks!
π Highlights
- Skip Intro Videos: You can now instantly skip the EA Games and intro movies by pressing the
ESCkey during startup. - Mac HUD Fix: Resolved a visual bug that caused issues with the HUD overlay when loading a saved game on macOS.
- Update Checker & Watermark: The in-game version watermark has been polished to scale correctly on 4K/high-res displays without text wrapping. The built-in Update Checker was also heavily improved to properly read GitHub tags and prevent downgrade prompts.
- New Community Port: Added wasm-generals (a WebAssembly + WebGPU browser port) to our list of community ports in the documentation!
π Gameplay & Logic Fixes
- Battle Bus Crashes: Fixed a critical crash (segfault) that occurred when evacuating destroyed or detached occupants from a Battle Bus.
- Immobilized Battle Buses: Passengers can now properly exit immobilized Battle Buses.
- Stinger Sites: Sniper weapons can no longer incorrectly fire upon empty Stinger Sites.
- Aircraft Logic: Fixed a bug where aircraft would fall to their death if their Airfield was destroyed during their return flight.
- Booby Traps: Allowed Booby Traps to be placed on a previously booby-trapped object.
- LAN Chat Tweaks: Changed LAN emote buttons to chat buttons and implemented the
/meemote text command in LAN chats.
βοΈ Under the Hood
- Core Stability: Applied core 64-bit and thread stability fixes for smoother overall engine performance.
- Upstream Sync: Merged massive upstream syncs from
thesuperhackers/main, bringing in dozens of engine refinements, memory leak fixes, and performance optimizations (such as hoisting global light ray computation out of the per-vertex loop).
Community Ports based on GeneralsX
If you like GeneralsX, please also take a look into these projects
- Generals-Mac-iOS-iPad - iOS port by ammaarreshi
- Generals-Android - Android port by fadi-labib
- GeneralsXWeb - Web port by meerzulee
- wasm-generals - WebAssembly + WebGPU browser port by ebellumat, playable at generals.wasm.com.br
Changelog
- fix(ui): load game HUD overlay bug on macOS by @fbraz3 in #233
- docs(engine): explain that the render FPS cap governs input responsiveness by @costin-alupului in #235
- fix(contain): remove destroyed detached occupants by @mreza0100 in #236
- feat(sync): merge upstream thesuperhackers/main (08-03-2026) by @fbraz3 in #241
- fix(core): apply core 64-bit and thread stability fixes by @fbraz3 in #242
- Add wasm-generals (WebAssembly + WebGPU browser port) to community ports by @ebellumat in #243
- feat: dynamic project watermark and update checker fixes by @fbraz3 in #249
- merge(upstream): sync thesuperhackers/main into GeneralsX by @fbraz3 in #250
Full Changelog: GeneralsX-Beta-15...GeneralsX-Beta-16