Skip to content

Commit f0a15bf

Browse files
Rename Navbar to Sidebar and enhance wiki pages
* Rename Navbar to Sidebar and enhance wiki pages * remove msvc guide and fix Home file name
1 parent 1ba3375 commit f0a15bf

File tree

4 files changed

+270
-2
lines changed

4 files changed

+270
-2
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# Build Pure Visual Studio 6 Guide
2+
3+
This guide outlines the steps required to build and compile the source code for *Command & Conquer Generals* and its
4+
expansion pack *Zero Hour*. The repository includes the source code and supports the Steam Workshop for both
5+
games ([C&C Generals](https://steamcommunity.com/workshop/browse/?appid=2229870)
6+
and [C&C Generals - Zero Hour](https://steamcommunity.com/workshop/browse/?appid=2732960)).
7+
8+
[![WARNING]]: This build guide is based on the original EA build instructions and has not been verified.
9+
10+
## Dependencies
11+
12+
Before starting the build process, you need to obtain or replace several libraries and tools. These are required for
13+
successfully compiling the source code:
14+
15+
- **DirectX SDK** (Version 9.0 or higher)
16+
Expected path: `\Code\Libraries\DirectX\`
17+
18+
- **STLport** (Version 4.5.3)
19+
Expected path: `\Code\Libraries\STLport-4.5.3`
20+
21+
- **3DSMax 4 SDK**
22+
Expected path: `\Code\Libraries\Max4SDK\`
23+
24+
- **NVASM**
25+
Expected path: `\Code\Tools\NVASM\`
26+
27+
- **BYTEmark**
28+
Expected path: `\Code\Libraries\Source\Benchmark`
29+
30+
- **RAD Miles Sound System SDK**
31+
Expected path: `\Code\Libraries\Source\WWVegas\Miles6\`
32+
33+
- **RAD Bink SDK**
34+
Expected path: `\Code\GameEngineDevice\Include\VideoDevice\Bink`
35+
36+
- **SafeDisk API**
37+
Expected paths:
38+
`\Code\GameEngine\Include\Common\SafeDisk`
39+
`\Code\Tools\Launcher\SafeDisk\`
40+
41+
- **Miles Sound System "Asimp3"**
42+
Expected path: `\Code\Libraries\WPAudio\Asimp3`
43+
44+
- **GameSpy SDK**
45+
Expected path: `\Code\Libraries\Source\GameSpy\`
46+
47+
- **ZLib** (Version 1.1.4)
48+
Expected path: `\Code\Libraries\Source\Compression\ZLib\`
49+
50+
- **LZH-Light** (Version 1.0)
51+
Expected paths:
52+
`\Code\Libraries\Source\Compression\LZHCompress\CompLibSource`
53+
`\Code\Libraries\Source\Compression\LZHCompress\CompLibHeader`
54+
55+
Ensure all dependencies are correctly set up before continuing.
56+
57+
## Compiling (Win32 Only)
58+
59+
**Important:** You must own the game to use the compiled binaries. The *Command & Conquer Ultimate Collection* is
60+
available for purchase on
61+
the [EA App](https://www.ea.com/en-gb/games/command-and-conquer/command-and-conquer-the-ultimate-collection/buy/pc)
62+
or [Steam](https://store.steampowered.com/bundle/39394/Command__Conquer_The_Ultimate_Collection/).
63+
64+
### Quick Build (Using Microsoft Visual Studio 6.0)
65+
66+
1. Open the project by loading `rts.dsw` in **Microsoft Visual Studio C++ 6.0** (SP6 recommended for binary matching
67+
with Generals Patch 1.08 and Zero Hour Patch 1.04).
68+
2. Go to **Build -> Batch Build** in the menu.
69+
3. Click the **Rebuild All** button to build all configurations.
70+
71+
This is the simplest way to compile the game.
72+
73+
### Modern Visual Studio (2015 and Newer)
74+
75+
If you want to compile using a more recent version of Visual Studio, follow these steps:
76+
77+
1. Open `rts.dsw` in **Microsoft Visual Studio .NET 2003**.
78+
2. A new project and solution file will be created.
79+
3. Open the newly created project in **Visual Studio 2015 or newer**.
80+
81+
**Note:** Modern versions of Visual Studio require significant changes to the codebase, especially for Win64
82+
compilation, due to stricter C++ standards. You will need to make extensive modifications to ensure compatibility.
83+
84+
### After Building
85+
86+
Once the build is complete, the compiled binaries will be located in the `/Run/` folder inside each game’s root
87+
directory.
88+
89+
## Known Issues
90+
91+
- **UAC Elevation Requirement:** Windows enforces UAC Elevation for executables with "version", "update", or "install"
92+
in their filenames. This affects the “versionUpdate” and “buildVersionUpdate” projects.
93+
94+
To resolve this, **rename the output binary** to avoid including these words.
95+
96+
## STLport Compilation Issues
97+
98+
To compile with STLport, you will need to apply a patch. The patch file `stlport.diff` is provided in the repository.
99+
Make sure you are using **STLport 4.5.3** before applying the patch.

SourceCode/Home.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Welcome to the *Generals: Zero Hour - Source Code* Wiki
2+
3+
> [![WARNING]]
4+
> This wiki is a work in progress and not yet complete. Contributions are welcome!
5+
6+
## **Overview**
7+
8+
Welcome to the **Generals: Zero Hour Game Code** repository! This project is dedicated to the game’s source code, which
9+
enables contributors to work on improvements, fixes, and new features. The **Generals: Zero Hour - Asset Patch** project
10+
focuses on improving the game's assets (textures, localizations, models), whereas this project centers on the underlying
11+
game mechanics and the technical aspects of *Command & Conquer: Generals - Zero Hour*. If you're interested in coding,
12+
modifying, or extending the game’s core functionality, you're in the right place!
13+
14+
## **Getting Started**
15+
16+
To get started with the project, you will need a basic understanding of the source code and how to build it. If you're
17+
new to the project, here’s how you can contribute:
18+
19+
- Check out the [**Build Guides**](Build_Guides.md) for instructions on how to compile the game code on
20+
different platforms.
21+
- Learn about the project's **dependencies** and **libraries** in the [Dependencies](Dependencies.md) section.
22+
- Look through the **community forks** and other variations of the project in the [Forks](Forks.md) section.
23+
- If you're an experienced developer, you can start contributing by reviewing and submitting **pull requests** or
24+
opening **issues**.
25+
26+
## **Quick Links**
27+
28+
- [Build Guides for Different Platforms](Build_Guides.md)
29+
- [Dependencies and Libraries](Dependencies.md)
30+
- [Community Forks](Forks.md)
31+
- [Tools for Developers](Tools.md)
32+
- [FAQ](FAQ.md)
33+
34+
## **Building the Game Code**
35+
36+
Here you'll find detailed guides on how to compile and build *Generals: Zero Hour* from source code for various
37+
platforms:
38+
39+
- **Windows**: Instructions for building on Windows using Visual Studio.
40+
- **Linux**: Instructions for building on Linux with the necessary tools and libraries.
41+
- **macOS**: Instructions for building on macOS, with support for cross-compiling where necessary.
42+
43+
These guides will help you get set up and running, so you can start working on the game code in no time.
44+
45+
## **Dependencies & Libraries**
46+
47+
This section outlines all the essential dependencies and libraries you need in order to successfully build and run the
48+
source code. It includes:
49+
50+
- **External Libraries**: Instructions on downloading and configuring the third-party libraries required by the project.
51+
- **Codebase Structure**: Understanding the layout and architecture of the game code.
52+
53+
## **Tools for Developers**
54+
55+
As a developer, you will need a set of tools to interact with the codebase efficiently. Here are some tools that can
56+
assist you:
57+
58+
- **Code Editors/IDEs**: Recommended editors/IDEs for working with the game’s code (e.g., Visual Studio, Eclipse, etc.).
59+
- **Debugging Tools**: Recommended tools for debugging and troubleshooting.
60+
- **Version Control**: Using Git for managing changes, commits, and collaboration.
61+
62+
Check out the [**Tools for Developers**](Tools.md) page for more information.
63+
64+
## **Community and Forks**
65+
66+
The **Generals: Zero Hour Game Code** project has several community-driven forks. These forks often implement
67+
experimental features or enhancements, and it’s a great place to explore different approaches to the game code. You can
68+
also contribute to these forks or integrate them into the main codebase.
69+
70+
For a list of active forks, visit the [**Community Forks**](Forks.md) page.
71+
72+
## **Contact and Community**
73+
74+
For any questions, discussions, or to get involved in the community, check out the [**Contact and Community Page
75+
**](contact_community.md). Join our forums, Discord channels, or GitHub discussions to communicate with other
76+
contributors and developers.

SourceCode/_Navbar.md renamed to SourceCode/_Sidebar.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
<!-- markdownlint-disable -->
2-
# Source Code
2+
3+
## [Home](Home.md)
4+
5+
- [How to Get Involved](how_to_involved.md)
6+
- [How to Contribution](contribution.md)
7+
- [License](license.md)
8+
- [Credits](credits.md)
9+
- [Changelog](changelog.md)
10+
- [FAQ](faq.md)
11+
- [Known Issues](known_issues.md)
12+
- [Contact & Community](contact_community.md)
313

414
## Builds
515

@@ -8,6 +18,7 @@
818
- [Using pure Visual Studio 6 (x86) (Windows)](Builds/build_with_ea_msvc6.md)
919
- [Using Cmake & Visual Studio 6 (x86) (Windows)](Builds/build_with_msvc6.md)
1020
- [CLion & VC6 Toolchain](Builds/build_with_clion_vc6_toolchain.md)
21+
- [Docker & VC6](Builds/build_with_msvc6_on_docker.md)
1122

1223
- **Visual Studio 2022 Guides**:
1324
- [Using Cmake (x86) (Windows)](Builds/build_with_msvc22.md)
@@ -34,7 +45,6 @@
3445
## Tools
3546

3647
- [Command Line Arguments](Tools/switchers_arguments.md)
37-
- [NVASM](Tools/NVASM)
3848
- [SafeDiskLauncher](Tools/SafeDiskLauncher)
3949
- [CRCDiff](Tools/CRCDiff)
4050
<!-- markdownlint-restore -->

SourceCode/how_to_involved.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# **How to Contribute to the Code Repository as CPP Developer**
2+
3+
Welcome to the **Generals Zero Hour** code repository! If you're interested in contributing to the development of the
4+
game engine, there are several areas where you can help improve the code, add new features, or fix bugs. Whether you
5+
specialize in game development, tools, or platform compatibility, your contributions are highly valued!
6+
<!-- markdownlint-disable -->
7+
8+
#### Contributing for Non-CPP Developers
9+
<!-- markdownlint-enable -->
10+
11+
You don't need to be a C++ developer to contribute! Here are some ways you can help:
12+
13+
- **Documentation**
14+
Improve or create documentation to make the project more accessible. Clear guides and explanations are always needed!
15+
16+
- **Game Assets and Localization**
17+
If you're an artist or designer, you can contribute by creating or improving game assets such as textures, models,
18+
animations, and other visual elements. Additionally, you can help by translating the game into other languages or
19+
improve AI scripts to enhance gameplay.
20+
21+
Your contributions in these areas are just as valuable in improving the overall project!
22+
23+
### **1. Building and Compilation**
24+
25+
At the moment, there isn't a stable and organized build system in TheSuperHackers repository. If you have experience
26+
with build systems, this is an area where your help is needed. Improving and stabilizing the build process will help
27+
future contributors get started more easily. Contributions may include setting up tools like CMake or enhancing
28+
integration with IDEs such as Visual Studio.
29+
30+
### **2. Bug Fixes in the Code**
31+
32+
There are many bugs within the game’s core engine that need attention. Whether it's fixing crashes, resolving memory
33+
leaks, or improving game performance, your expertise can help make a significant difference. Bugs are tracked within the
34+
repository, and contributions to their resolution are highly appreciated.
35+
36+
### **3. Adding New Features**
37+
38+
The game engine is constantly evolving, and there are many opportunities to add new features to improve the player
39+
experience. This could include enhancing AI, introducing new game mechanics, or adding customizable modules to expand
40+
gameplay options. If you have ideas for new features, we encourage you to contribute your code and help bring them to
41+
life.
42+
43+
### **4. Memory Management and Optimization**
44+
45+
Memory management is crucial to the game’s performance. Many areas of the game’s codebase could be optimized to improve
46+
memory handling, reduce CPU and GPU load, and ensure smoother gameplay across different hardware. This includes:
47+
48+
- Fixing memory leaks
49+
- Optimizing resource allocation
50+
- Improving performance for large-scale maps and complex game logic
51+
52+
### **5. Tools Development and Enhancement**
53+
54+
Several tools are available to help modders and developers work with the game, and there’s plenty of room for
55+
improvement. For example:
56+
57+
- **GUIEdit:** This tool allows editing of `wnd` files that define the user interface layout. It has a released version
58+
called **WNDEdit**, but there are still improvements and bug fixes that can be applied.
59+
- **WorldBuilder:** This tool is used by map creators and has a list of bugs and features that could be enhanced.
60+
- **FinalBIG:** A tool used for managing the game’s archive files (BIG files). Enhancing or fixing bugs in FinalBIG will
61+
help make modding easier for the community.
62+
63+
The open-source code for these tools is available in the repository, and contributions to these projects are welcome.
64+
65+
### **6. Cross-Platform Compatibility**
66+
67+
Many players use Linux and Mac systems to play **Generals Zero Hour**, and ensuring cross-platform compatibility is
68+
important. If you have experience with porting games to different operating systems, your help in making the game run
69+
smoothly on platforms such as Linux and MacOS would be extremely valuable. Contributions may include adapting code,
70+
ensuring compatibility with open-source libraries, or fixing platform-specific issues.
71+
72+
### **7. Replacing Outdated or Closed-Source Dependencies**
73+
74+
As **Generals Zero Hour** continues to evolve, there may be dependencies in the code that are either outdated or
75+
closed-source. Replacing these with open-source alternatives can improve the game’s maintainability and compatibility
76+
with modern systems. If you have experience with finding or implementing open-source replacements for deprecated
77+
libraries or closed-source tools, your contributions in this area would be highly valuable.
78+
79+
---
80+
81+
There are many ways to contribute to the **Generals Zero Hour** project, whether it's through improving the game’s core
82+
engine, enhancing the tools used by the community, or ensuring cross-platform compatibility. Your contributions will
83+
help us improve the game and make it more accessible to players and developers alike.

0 commit comments

Comments
 (0)