Skip to content

fbraz3/GeneralsX

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1,295 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Ask DeepWiki

GeneralsX - Cross-Platform Command & Conquer: Generals

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.

Project Goals

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

๐Ÿ’– Support This Project

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:

๐ŸŽฏ Sponsor on GitHub

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!

๐ŸŒ Cross-Platform Vision

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

๐ŸŽฎ Features

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

๐Ÿ“ฆ Official Downloads

For stable releases and official builds, visit: TheSuperHackers/GeneralsGameCode Releases

๐Ÿ”จ Building from Source

Windows

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 4

Linux - โœ… FUNCTIONAL (Docker)

Linux 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-deploy

Key features:

  • Native ELF binaries (not Wine!)
  • DXVK for DirectX โ†’ Vulkan rendering
  • SDL3 for windowing/input
  • Docker-based builds (no system pollution)

macOS - ๐Ÿ“‹ PLANNED (Future)

โš ๏ธ macOS builds are NOT currently functional - this is a future development target.

Planned build instructions for macOS development: ๐Ÿ“– macOS Build Guide (Reference only)

Targeted for future implementation after Linux port stabilization.

๐Ÿ“– Documentation

Complete documentation is available in the docs/ directory:

๐Ÿ› Known Issues & Limitations

For documented limitations and known bugs, check the development diary in docs/DEV_BLOG/.

โš™๏ธ Build Requirements

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.

๐Ÿš€ Project Phases

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 Enhancements

๐Ÿงต Multithreading Modernization

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

๐Ÿค Contributing

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:

  1. Check current issues and GitHub discussions
  2. Read platform-specific build guides (Windows, macOS, Linux)
  3. Follow CONTRIBUTING.md guidelines
  4. Submit issues or pull requests with detailed information

Contributing to Official Project: For contributions to the main project, visit: TheSuperHackers/GeneralsGameCode

๐Ÿ™ Special Thanks

  • 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!

๐Ÿ“„ License

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.

About

Command and Conquer: Generals - Zero Hour

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 96.3%
  • C 2.8%
  • CMake 0.6%
  • Python 0.2%
  • Shell 0.1%
  • Perl 0.0%