-
-
Notifications
You must be signed in to change notification settings - Fork 29
Comparing changes
Open a pull request
base repository: fbraz3/GeneralsX
base: GeneralsX-Beta-7
head repository: fbraz3/GeneralsX
compare: GeneralsX-Beta-8
- 17 commits
- 234 files changed
- 5 contributors
Commits on May 7, 2026
-
Configuration menu - View commit details
-
Copy full SHA for f936bdb - Browse repository at this point
Copy the full SHA f936bdbView commit details
Commits on May 8, 2026
-
ci(workflows): upgrade actions for node24 (#130)
* ci(workflows): upgrade actions for node24 Update active GitHub Actions workflows to Node 24-compatible major versions to remove runner deprecation warnings in release and CI jobs. Align checkout, cache, upload-artifact, and download-artifact usage across the active workflow set and document the change in the development diary. * ci(ci): upgrade dorny/paths-filter to v4 for node24
Configuration menu - View commit details
-
Copy full SHA for daea0c3 - Browse repository at this point
Copy the full SHA daea0c3View commit details -
refactor: Split preserve retail behavior flags (TheSuperHackers#2691)
And default enable 5 Committee approved fixes
Configuration menu - View commit details
-
Copy full SHA for 9f0d2fb - Browse repository at this point
Copy the full SHA 9f0d2fbView commit details
Commits on May 9, 2026
-
refactor: Remove the W3DMPO class to remove clutter and unnecessary v…
…tables (TheSuperHackers#2607)
Configuration menu - View commit details
-
Copy full SHA for b6a6007 - Browse repository at this point
Copy the full SHA b6a6007View commit details
Commits on May 10, 2026
-
Configuration menu - View commit details
-
Copy full SHA for e3515af - Browse repository at this point
Copy the full SHA e3515afView commit details -
fix(audio-openal): advance Attack/Sound/Decay portions on sample comp…
…letion (#134) * fix(audio-openal): advance Attack/Sound/Decay portions on sample completion The OpenAL backend polled sourceIsStopped() in processPlayingList() but discarded PlayingAudio without calling notifyOfAudioCompletion(). Miles Sound System used EOS callbacks for this, so the port lacked the equivalent polling-based trigger. Result: the Attack portion (radio static, gradio1*.wav) played once, then the PlayingAudio was released before the Sound (voice) or Decay portions could start. All aircraft and unit voice lines were silent on Linux/macOS. Fix: call notifyOfAudioCompletion() before releasing a stopped sample. If it starts the next portion the AL source transitions back to playing and the object remains in the list; only release when the source is still stopped after the call (cycle complete or failed to load). Apply the same fix to both m_playingSounds (2D) and m_playing3DSounds (3D positional) loops. Skip the call when m_requestStop is set (user explicitly stopped the event). Also add a multichannel positional-audio fallback in playSample3D() and OpenALAudioCache so that stereo voice assets fall back to 2D playback instead of being dropped or crashing. Fixes #129 * chore(audio-openal): remove voice diagnostics instrumentation
Configuration menu - View commit details
-
Copy full SHA for b71f493 - Browse repository at this point
Copy the full SHA b71f493View commit details
Commits on May 11, 2026
-
fix(dx8wrapper): restore macOS transparency (#135)
Use wrapper-managed render-target transitions in pillarbox begin/end, re-sync cached render states after the final blit, and keep pillarbox presentation from semantically enabling RTT for the entire frame. Fixes #131
Configuration menu - View commit details
-
Copy full SHA for dc25651 - Browse repository at this point
Copy the full SHA dc25651View commit details -
fix(linux-filesystem): resolve asset-root case mismatches (#137)
* fix(linux-filesystem): resolve asset-root case mismatches Fix Linux asset-root fallback lookups to preserve case-insensitive path resolution semantics used by legacy data references. This unblocks cursor ANI discovery and related media lookups when file names differ only by case on disk. Fixes #128 Related-to #103 * fix(linux-filesystem): resolve asset-root case mismatches ## Summary This PR fixes Linux asset lookup behavior when game data references mixed-case paths but files on disk differ only by case. The root cause was in asset-root fallback resolution: the fallback path did not perform case-insensitive traversal, unlike the main local path resolution flow. ## What Changed - Added Linux-only case-insensitive traversal to asset-root fallback in [Core/GameEngineDevice/Source/StdDevice/Common/StdLocalFileSystem.cpp](Core/GameEngineDevice/Source/StdDevice/Common/StdLocalFileSystem.cpp). - Kept platform behavior isolated with `#ifdef __linux__` to avoid changing macOS behavior. - Kept SDL3 cursor loading hardening in both products: - [GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp](GeneralsMD/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp) - [Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp](Generals/Code/GameEngineDevice/Source/SDL3Device/GameClient/SDL3Mouse.cpp) - Updated docs: - [docs/DEV_BLOG/2026-05-DIARY.md](docs/DEV_BLOG/2026-05-DIARY.md) - [docs/WORKDIR/lessons/2026-05-LESSONS.md](docs/WORKDIR/lessons/2026-05-LESSONS.md) ## Validation Manual Linux validation confirmed: - default/action/attack cursors render correctly (no fallback to OS pointer). - intro playback works. - campaign start videos play. ## Issues Fixes #128 Related-to #103
Configuration menu - View commit details
-
Copy full SHA for 4186a3d - Browse repository at this point
Copy the full SHA 4186a3dView commit details
Commits on May 12, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 0b2baed - Browse repository at this point
Copy the full SHA 0b2baedView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6781d5d - Browse repository at this point
Copy the full SHA 6781d5dView commit details -
Configuration menu - View commit details
-
Copy full SHA for e887d02 - Browse repository at this point
Copy the full SHA e887d02View commit details -
chore(generals-parity): complete wave 1-5 code parity baseline (#139)
* fix(timing): protect timer APIs and validate FPS limits on non-Windows platforms Resolve FPS uncapping and frame counter instability that affected both Generals and Zero Hour on macOS and Linux. Changes: - protect timeBeginPeriod/timeEndPeriod Windows API calls with #ifdef _WIN32 guards in FramePacer constructor/destructor - add early-exit validation in FrameRateLimit::wait() to handle zero or invalid FPS limits without division-by-zero errors - ensure uncapped mode (maxFps > 1000000) skips limiting gracefully Shared Core/GameEngine fixes apply to both games automatically. Both GeneralsX and GeneralsXZH build and launch successfully with stable frame pacing. Fixes #132" * fix(fps-init): ensure valid FPS default independent of m_useFpsLimit flag state Root cause analysis: Generals base had FPS uncapped while Zero Hour worked because GameEngine.cpp was checking (m_useFpsLimit && m_framesPerSecondLimit <= 0) before setting default FPS. When m_useFpsLimit=FALSE (default) and m_framesPerSecondLimit=0 (default from INI loading), the condition failed and FPS remained 0 (uncapped). Changed initialization logic to always set BaseFps default when m_framesPerSecondLimit <= 0, regardless of m_useFpsLimit flag state. This ensures stable frame pacing on startup. Applied to both GeneralsX and GeneralsXZH for consistency. Fixes #132 completely" * chore(generals-parity): complete parity audit wave 1-5 with CompatLib headers and GameEngine alignment Summary of changes: - Added full CompatLib header suite to Generals base for Win32/COM compatibility - Completed GeneralsMD GameLOD, Player, PlayerList, and UI alignments - Updated WWVegas2 libraries for both games - Fixed FPS initialization logic (previously: only reset FPS when m_useFpsLimit=TRUE, now always set default) - Protected Windows timer APIs with #ifdef guards - Added FPS limit validation for uncapped mode - Comprehensive audit trails in docs/WORKDIR/audit/ Generals base now has feature parity with Zero Hour for core systems. Both titles compile successfully with stable frame pacing on macOS/Linux. Related commits: - 62dab6f: fix(timing) - timer API guards and FPS limit validation - c722ca1: fix(fps-init) - ensure valid FPS default independent of flag state
Configuration menu - View commit details
-
Copy full SHA for defdb6f - Browse repository at this point
Copy the full SHA defdb6fView commit details
Commits on May 13, 2026
-
Configuration menu - View commit details
-
Copy full SHA for c8b5f61 - Browse repository at this point
Copy the full SHA c8b5f61View commit details -
bugfix(contain): Abort containee's AIExitState if its container objec…
…t dies (TheSuperHackers#2513)
Configuration menu - View commit details
-
Copy full SHA for 05e518d - Browse repository at this point
Copy the full SHA 05e518dView commit details
Commits on May 15, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 44deb06 - Browse repository at this point
Copy the full SHA 44deb06View commit details
Commits on May 16, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 4b52903 - Browse repository at this point
Copy the full SHA 4b52903View commit details -
Merge pull request #141 from fbraz3/thesuperhackers-sync-15-05-2026
merge(sync): import TheSuperHackers upstream into GeneralsX (2026-05-15)
Configuration menu - View commit details
-
Copy full SHA for a9be923 - Browse repository at this point
Copy the full SHA a9be923View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff GeneralsX-Beta-7...GeneralsX-Beta-8