Files
RP412/BUILD.md
T
CydandClaude Opus 4.8 2229f154d1 Clean solution, un-hardcode DirectX SDK path, add build docs
- 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>
2026-07-01 09:12:29 -05:00

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 audio
  • libsndfile-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.vcproj
  • RP_L4/RP_L4 VS2008.vcproj
  • RP_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

  1. Install VS 2005/2008 (with the C++ workload) and the DirectX SDK. Confirm the SDK set DXSDK_DIR:
    echo $env:DXSDK_DIR
    
  2. Open WinTesla.sln in Visual Studio.
    • If prompted to upgrade the projects (newer VS), accept — this rewrites the .vcproj files to .vcxproj. Keep those changes on a branch.
  3. Select a configuration: Debug | Win32 or Release | Win32. (x64 is not configured — this is a 32-bit build.)
  4. Build the solution (Ctrl+Shift+B). Munga_l4.lib is produced first into lib\, 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.exe on this solution — it fails with MSB3428: 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 x64 configuration exists.
  • Remote Debug|Win32 configuration 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.