A comprehensive cross-platform port of Command & Conquer: Generals and Zero Hour, bringing the classic RTS experience to Linux and Windows through native DXVK (DirectX 8 โ Vulkan) rendering and SDL3 API.
Current Status: Linux native builds functional with Docker (Phase 1 complete). macOS planned for future development.
This repository focuses on cross-platform development and serves as the technical foundation for multi-platform support of the classic RTS game.
To keep updated about this project status, visit our Dev Blog
For official releases and stable builds (Windows only), visit:
๐ TheSuperHackers/GeneralsGameCode Releases
Cross-platform game development requires significant time, resources, and technical expertise. If GeneralsX has been valuable to you or the Command & Conquer community, consider supporting continued development:
Your support helps with:
- Development Time - Hundreds of hours invested in cross-platform porting
- Testing Infrastructure - Multiple platforms, hardware configurations, and tools
- Documentation - Comprehensive guides and technical resources
- Community Support - Maintaining issues, discussions, and contributions
Every contribution, no matter the size, makes a difference in keeping classic games alive across all platforms!
This project transforms the Windows-exclusive Command & Conquer: Generals into a truly cross-platform game:
- ๐ง Linux Native Support - โ FUNCTIONAL - Native builds via Docker with DXVK + SDL3
- ๐ช Windows Enhanced - Maintained compatibility with original VC6 builds
- ๐ macOS Native Support - ๐ PLANNED - Future development target
- ๐ฎ Modern Graphics - DXVK translates DirectX 8 โ Vulkan for native Linux rendering
- ๐ง Modern Architecture - SDL3 windowing/input, portable INI configuration
Cross-Platform Compatibility:
- Linux native builds via Docker (SDL3 + DXVK)
- Windows compatibility maintained (VC6/MSVC2022 presets)
- Unified configuration system via INI files (replacing Windows Registry)
- Platform-native file system integration
- No Wine/Proton required - Native DirectX โ Vulkan translation via DXVK
Graphics Enhancements:
- DXVK - Native DirectX 8 โ Vulkan translation layer
- SDL3 for cross-platform window management and input handling
- Improved texture loading and memory management
- Enhanced graphics debugging and profiling tools
- Modern GPU compatibility via Vulkan backend
Modern Development:
- Updated from Visual C++ 6.0 to modern C++20 standards
- CMake build system for consistent cross-platform builds
- Comprehensive development documentation and phase tracking
- Automated builds for Windows, macOS, and Linux
For stable releases and official builds, visit: TheSuperHackers/GeneralsGameCode Releases
Primary development platform with full MSVC BuildTools 2022 support:
# Quick build (Windows)
git clone https://github.com/fbraz3/GeneralsX.git
cd GeneralsX
cmake --preset win32
cmake --build build/win32 --target GeneralsXZH -j 4Linux native builds are fully functional using Docker: ๐ Linux Build Guide
Quick start:
# Clone and build with Docker
git clone https://github.com/fbraz3/GeneralsX.git
cd GeneralsX
./scripts/docker-build-linux-zh.sh linux64-deployKey features:
- Native ELF binaries (not Wine!)
- DXVK for DirectX โ Vulkan rendering
- SDL3 for windowing/input
- Docker-based builds (no system pollution)
Planned build instructions for macOS development: ๐ macOS Build Guide (Reference only)
Targeted for future implementation after Linux port stabilization.
Complete documentation is available in the docs/ directory:
- docs/ETC/MACOS_BUILD_INSTRUCTIONS.md - Complete macOS build instructions and troubleshooting
- docs/ETC/LINUX_BUILD_INSTRUCTIONS.md - Linux port status and contribution guidelines
- docs/DEV_BLOG/ - Technical development diary organized by month
- docs/WORKDIR/ - Phase planning, implementation notes, and strategic decisions
- CONTRIBUTING.md - Guidelines for contributing to cross-platform development
For documented limitations and known bugs, check the development diary in docs/DEV_BLOG/.
The repository uses a vcpkg manifest (vcpkg.json) paired with a lockfile (vcpkg-lock.json). Key dependencies:
- SDL3 - Cross-platform windowing and input handling
- DXVK - DirectX 8 โ Vulkan translation layer (Linux)
- Vulkan SDK - Modern graphics rendering backend
- OpenAL - Cross-platform audio system (Phase 2 - planned)
- CMake - Build system
For dependency management details, see vcpkg.json.
The Linux native port is organized into phases:
- Phase 0: โ COMPLETE - Deep analysis & planning (DXVK architecture, OpenAL patterns)
- Phase 1: โ COMPLETE - Linux Graphics (DXVK integration, SDL3 windowing, Docker builds)
- Phase 2: ๐ NEXT - Linux Audio (OpenAL integration, Miles โ OpenAL compatibility)
- Phase 3: ๐ PLANNED - Video Playback (Bink alternative investigation)
- Phase 4+: ๐ FUTURE - Polish, optimization, macOS port
Approach: Native DXVK (DirectX โ Vulkan), NOT Wine emulation.
See docs/DEV_BLOG/ and docs/WORKDIR/phases/ for detailed phase progress.
Future initiative to leverage multi-core CPUs while preserving deterministic gameplay. High-level plan:
- Start with low-risk tasks (parallel asset/INI loading, background audio/I/O)
- Evolve to moderate threading (AI batches, object updates with partitioning)
- Consider advanced loop decoupling (producerโconsumer) once stable
Contributions are welcome! We're particularly interested in:
Current Priority Areas:
- Phase 2 (Audio) - OpenAL integration for Linux native audio
- Runtime Testing - Validate Linux binary smoke tests and gameplay
- Cross-Platform Testing - Validate functionality across distributions
- Performance Optimization - Identify and fix bottlenecks
- Documentation - Improve build guides and technical resources
- macOS Port - Future development (after Linux stabilization)
How to Contribute:
- Check current issues and GitHub discussions
- Read platform-specific build guides (Windows, macOS, Linux)
- Follow CONTRIBUTING.md guidelines
- Submit issues or pull requests with detailed information
Contributing to Official Project: For contributions to the main project, visit: TheSuperHackers/GeneralsGameCode
- TheSuperHackers Team for their foundational work and official integration of this cross-platform effort
- Xezon and contributors for maintaining the GeneralsGameCode project
- Westwood Studios for creating the legendary Command & Conquer series
- EA Games for Command & Conquer: Generals, which continues to inspire gaming communities
- All contributors and sponsors helping to make this game truly cross-platform and accessible worldwide
Special thanks to GitHub Sponsors supporting this open-source effort!
See the LICENSE file for details.
EA has not endorsed and does not support this product. All trademarks are the property of their respective owners.