- WinTesla.sln: remove 6 dangling project references (BT410_L4, TextureExp, MeshExp, SphereExp, DetailExp, MatReplaceExp) that are not present in the repo, plus their config entries. Solution now builds the 4 present projects: Munga_L4, RP_L4, RPL4TOOL, DivLoader. - Munga_L4.vcproj / RP_L4.vcproj: replace hardcoded "C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\" include/lib paths with the installer-provided $(DXSDK_DIR) variable, matching the existing VS2008 project variants. - Add BUILD.md (toolchain/SDK requirements and build steps) and docs/BUILD-NOTES.md (findings, cleanup history, orphaned files). - .gitignore: ignore *.sln.cache. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4.9 KiB
Building Red Planet (v4.10, Win32)
This is the Win32 source for the pod-racing game Red Planet, built on the in-house MUNGA engine and its L4 (Win32 / DirectX 9) platform layer. The code targets the Visual Studio 2005/2008 era and the legacy DirectX SDK.
1. Requirements
You must supply the toolchain — none of it is checked into this repo.
| Component | Required version | Notes |
|---|---|---|
| Visual Studio | 2005 (v8) or 2008 (v9) | Project files are the legacy .vcproj format. Modern MSBuild cannot build .vcproj directly — it needs VCBuild.exe, which only ships with VS 2005/2008. A newer VS (2022) can build these but will first upgrade the projects to .vcxproj. |
| DirectX SDK | March 2009 (June 2010 also works) | Provides d3d9.lib, d3dx9.lib, dinput8.lib, dxguid.lib, dxerr.lib and headers. |
| Windows SDK / Platform SDK | Matching your VS | Provides WS2_32.lib, dbghelp.lib, etc. |
DXSDK_DIR environment variable |
— | The DirectX SDK installer sets this automatically (includes a trailing backslash). The projects reference the SDK only through this variable — see §4. |
Bundled third-party libraries (already in the repo)
These are committed under lib/ and do not need to be installed:
OpenAL32.lib— OpenAL audiolibsndfile-1.lib— sound-file loading
Their headers live in MUNGA_L4/openal/ and
MUNGA_L4/sndfile.h. You will still need the matching
runtime DLLs (OpenAL32.dll, libsndfile-1.dll) next to the built .exe to run it.
2. Solution / project layout
The solution is WinTesla.sln. It builds four projects:
| Project | File | Type | Output | Depends on |
|---|---|---|---|---|
| Munga_L4 | MUNGA_L4/Munga_L4.vcproj | Static lib | lib\Munga_l4.lib |
— |
| RP_L4 | RP_L4/RP_L4.vcproj | Application (exe) | rpl4opt.exe |
Munga_L4 |
| RPL4TOOL | RP_L4/RPL4TOOL.vcproj | Application (exe) | tool exe | Munga_L4 |
| DivLoader | DivLoader/DivLoader.vcproj | Static lib | lib\*.lib |
— |
Build order: Munga_L4 → then RP_L4 / RPL4TOOL (the dependency is
declared in the solution, so a solution-level build resolves it automatically).
RP_L4 is the game itself. Its release output is rpl4opt.exe
(subsystem: Windows GUI).
VS2008 project variants
Each of the three main projects also ships a ... VS2008.vcproj variant
(format 9.00) alongside the original 8.00 files:
MUNGA_L4/Munga_L4 VS2008.vcprojRP_L4/RP_L4 VS2008.vcprojRP_L4/RPL4TOOL VS2008.vcproj
The .sln references the 8.00 files. If you open in VS 2008, either let it
upgrade the 8.00 projects, or repoint the solution at the VS2008 variants.
3. Build steps
- Install VS 2005/2008 (with the C++ workload) and the DirectX SDK.
Confirm the SDK set
DXSDK_DIR:echo $env:DXSDK_DIR - Open
WinTesla.slnin Visual Studio.- If prompted to upgrade the projects (newer VS), accept — this rewrites the
.vcprojfiles to.vcxproj. Keep those changes on a branch.
- If prompted to upgrade the projects (newer VS), accept — this rewrites the
- Select a configuration: Debug | Win32 or Release | Win32.
(
x64is not configured — this is a 32-bit build.) - Build the solution (
Ctrl+Shift+B).Munga_l4.libis produced first intolib\, then the executables link against it.
Command-line build (only with VS 2005/2008 installed)
# From a "Visual Studio 2008 Command Prompt":
vcbuild WinTesla.sln "Release|Win32"
Do not use
C:\Windows\Microsoft.NET\Framework\...\MSBuild.exeon this solution — it fails withMSB3428: Could not load the Visual C++ component "VCBuild.exe"because the legacy C++ toolset is not present.
4. DirectX SDK path (no longer hardcoded)
Originally Munga_L4.vcproj and RP_L4.vcproj hardcoded the absolute path
C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\.... These have been
changed to use the standard installer-provided variable, matching what the
VS2008 variants already did:
- Include dir →
"$(DXSDK_DIR)Include" - Library dir →
"$(DXSDK_DIR)Lib\x86"
So any DirectX SDK version installed to any location will work, as long as
DXSDK_DIR is set. If you build in an environment where it is not set, either
set it manually or pass it to the build, e.g.:
$env:DXSDK_DIR = "C:\DXSDK\" # note the trailing backslash
5. Known caveats
- 32-bit only. No
x64configuration exists. Remote Debug|Win32configuration is present but is a debugging target, not a normal build config.- Requires the OpenAL and libsndfile runtime DLLs at run time (see §1).
- See docs/BUILD-NOTES.md for the repository cleanup history, orphaned files, and the full findings behind this document.