60 lines
3.9 KiB
Markdown
60 lines
3.9 KiB
Markdown
|
|
# Command & Conquer Generals (inc. Zero Hour) Source Code
|
|
|
|
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](https://steamcommunity.com/workshop/browse/?appid=2229870) and [C&C Generals - Zero Hour](https://steamcommunity.com/workshop/browse/?appid=2732960)).
|
|
|
|
|
|
## Dependencies
|
|
|
|
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` and `CompLibHeader`)
|
|
|
|
|
|
## Compiling (Win32 Only)
|
|
|
|
To use the compiled binaries, you must own the game. The C&C Ultimate Collection is available for purchase on [EA App](https://www.ea.com/en-gb/games/command-and-conquer/command-and-conquer-the-ultimate-collection/buy/pc) or [Steam](https://store.steampowered.com/bundle/39394/Command__Conquer_The_Ultimate_Collection/).
|
|
|
|
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.
|
|
|
|
|
|
## Known Issues
|
|
|
|
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
|
|
STLport will require changes to successfully compile this source code. The file [stlport.diff](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.
|
|
|
|
|
|
## Contributing
|
|
|
|
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.
|
|
|
|
|
|
## Support
|
|
|
|
This repository is for preservation purposes only and is archived without support.
|
|
|
|
|
|
## License
|
|
|
|
This repository and its contents are licensed under the GPL v3 license, with additional terms applied. Please see [LICENSE.md](LICENSE.md) for details.
|