This branch is focused getting the original code to compile with Visual C++ 6.0 with minimal changes. Currently focusing efforts on the GeneralsMD directory (Zero Hour).
- Compression
- EABrowserDispatch
- GameEngine
- GameEngineDevice
- ww3d2
- wwdebug
- WWDownload
- wwlib
- wwmath
- wwsaveload
- wwshade
- wwutil
- launcher
- RTS
- WorldBuilder
This section logs the steps taken to get to this point on Windows 10 Professional.
My initial Git configuration had all line endings converted to LF, but that messes up the VC++6 project files when cloning them down (since all of the CRs are stripped). Changing my config to the following alleviated this.
[core]
autocrlf = true
These instructions to Install Visual Studio 6.0 on Windows 10 were helpful. I just had the Visual C++ 6.0 ISO instead of the full Visual Studio.
For service pack 6, acquire Vs6sp6.exe (mine had a SHA256 of 7fa1d1778824b55a5fceb02f45c399b5d4e4dce7403661e67e587b5f455edbf3).
If you intend to debug with VS 6.0, these instructions show how to fix an issue where the application remains stuck after debugging.
Download ZLib 1.1.4 from the ZLib Fossils page and place the contents in \Code\Libraries\Source\Compression\ZLib\.
Download the LZHL files from the rFactorTools project and place all the files in \Code\Libraries\Source\Compression\LZHCompress\CompLibSource and a copy of the headers in CompLibHeader.
In the LZHL source, add this line to the top of lzhl_tcp.cpp to suppress the debug info warning:
#pragma warning(disable: 4786) // don't warn about debug info truncation
Download 4.5.3 here STLport-4.5.3.tar.gz.
Within the tar file, extract the contents of just the stlport directory and place the files in \Code\Libraries\STLport-4.5.3.
In that directory, run the following to patch the files:
patch -p0 < ../../../../../stlport.diff
An older version of DirectX SDK is needed that includes the full set of DirectX 8 headers. Download the windows executable option from Archive.org. Extract the contents to a directory of your choosing, and then copy the Lib and Include directories to \Code\Libraries\DirectX.
Place nvasm.exe from The Wayback Machine in \Code\Tools\NVASM\.
TODO document and link to the specific DbgHelp.h and DbgHelp.Lib
Open Visual C++, click File->Open Workspace..., and then select the \Code\RTS.dsw file.
- Click the FileView tab
- In the build toolbar, select "Win32 Debug" or "Win32 Release"
- Right-click the RTS project and select the "Build". When the build is complete you should see:
RTS.exe - 0 error(s), 0 warning(s)
- one-time only Install the Steam version of both Generals and Zero Hour. Launch each game once so the appropriate Windows registry keys are setup.
- Copy these files and directories from the Steam copy of Zero Hour to the
Rundirectory:- all of the
.bigfiles Install_Final.bmpmss32.dllDatadirectoryMSSdirectory
- all of the
- Double-click
RTS.exe(orRTSD.exefor debug) to launch the game and play!
added to the preprocessor include settings
../Libraries/Source/STLport-4.5.3../Libraries/DirectX/Include../Libraries/Source/Stubs/Bink
removed from the preprocessor include settings
../Libraries/Include/MSS
- removed project from workspace as the implementation of RunBenchmark was not present
- introduced the
GAMESPY_DISABLEDpreprocessor define to disable code that uses the GameSpy SDK - disabled copy protection (by commenting out define
DO_COPY_PROTECTION) - the crash handler is commented out. This allows for easier debugging.
- Some Bugfixes in Load Replay Menu
- the FPS limit is no longer disabled for LAN games (panning the game window was uncontrollable and trees swayed at ultra speed)
- Networking can be tested on one machine with new
#define ENABLE_FAKE_IP - Fix LAN player tooltip
- Remove Duplicate Serial Check
- includes a modified version of the Miles stub library created by OmniBlade
- includes an X macro setup to dynamically link with the audio library
- disable call to
AIL_MSS_version() - define
u32inBinkVideoPlayer.cpp
- includes the stub files created by OmniBlade
- Output executables are renamed to buildVersionUpd.exe and versionUpd.exe to prevent an UAC prompt after every compilation of the RTS project. (Those binaries are just for building)
-fakeip NwhenENABLE_FAKE_IPis defined-logBIGDetailsdisplays the individual files found within the BIG file archives
This repository and its contents are licensed under the GPL v3 license, with additional terms applied. Please see LICENSE.md for details.