Skip to content

GeneralsX Beta 19

Choose a tag to compare

@github-actions github-actions released this 09 Sep 01:56
· 443 commits to main since this release
fa7911e

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, and AnimateWindowManager into shared Core/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 IRenderBackend foundations (#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.md to 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

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