This repository includes source code for Command & Conquer Generals, and its expansion pack Zero Hour. This release provides support to the Steam Workshop for both games (C&C Generals and C&C Generals - Zero Hour).
If you wish to rebuild the source code and tools successfully you will need to find or write new replacements (or remove the code using them entirely) for the following libraries;
- DirectX SDK (Version 9.0 or higher) (expected path
\Code\Libraries\DirectX\
) - STLport (4.5.3) - (expected path
\Code\Libraries\STLport-4.5.3
) - 3DSMax 4 SDK - (expected path
\Code\Libraries\Max4SDK\
) - NVASM - (expected path
\Code\Tools\NVASM\
) - BYTEmark - (expected path
\Code\Libraries\Source\Benchmark
) - RAD Miles Sound System SDK - (expected path
\Code\Libraries\Source\WWVegas\Miles6\
) - RAD Bink SDK - (expected path
\Code\GameEngineDevice\Include\VideoDevice\Bink
) - SafeDisk API - (expected path
\Code\GameEngine\Include\Common\SafeDisk
and\Code\Tools\Launcher\SafeDisk\
) - Miles Sound System "Asimp3" - (expected path
\Code\Libraries\WPAudio\Asimp3
) - GameSpy SDK - (expected path
\Code\Libraries\Source\GameSpy\
) - ZLib (1.1.4) - (expected path
\Code\Libraries\Source\Compression\ZLib\
) - LZH-Light (1.0) - (expected path
\Code\Libraries\Source\Compression\LZHCompress\CompLibSource
andCompLibHeader
)
To use the compiled binaries, you must own the game. The C&C Ultimate Collection is available for purchase on EA App or Steam.
The quickest way to build all configurations in the project is to open rts.dsw
in Microsoft Visual Studio C++ 6.0 (SP6 recommended for binary matching to Generals patch 1.08 and Zero Hour patch 1.04) and select Build -> Batch Build, then hit the “Rebuild All” button.
If you wish to compile the code under a modern version of Microsoft Visual Studio, you can convert the legacy project file to a modern MSVC solution by opening rts.dsw
in Microsoft Visual Studio .NET 2003, and then opening the newly created project and solution file in MSVC 2015 or newer.
NOTE: As modern versions of MSVC enforce newer revisions of the C++ standard, you will need to make extensive changes to the codebase before it successfully compiles, even more so if you plan on compiling for the Win64 platform.
When the workspace has finished building, the compiled binaries will be copied to the folder called /Run/
found in the root of each games directory.
Windows has a policy where executables that contain words “version”, “update” or “install” in their filename will require UAC Elevation to run. This will affect “versionUpdate” and “buildVersionUpdate” projects from running as post-build events. Renaming the output binary name for these projects to not include these words should resolve the issue for you.
STLport will require changes to successfully compile this source code. The file stlport.diff has been provided for you so you can review and apply these changes. Please make sure you are using STLport 4.5.3 before attempting to apply the patch.
This repository will not be accepting contributions (pull requests, issues, etc). If you wish to create changes to the source code and encourage collaboration, please create a fork of the repository under your GitHub user/organization space.
This repository is for preservation purposes only and is archived without support.
This repository and its contents are licensed under the GPL v3 license, with additional terms applied. Please see LICENSE.md for details.