Files
RP411/docs/BUILD-NOTES.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

5.5 KiB
Raw Blame History

Repository & Build Findings

Notes from the initial git import and build assessment of the Red Planet v4.10 Win32 source. See BUILD.md for the practical build instructions; this file records what was found and what was changed, and why.


1. What this repository is

  • Win32 source for the game Red Planet v4.10 (string confirmed in RP_L4/rpl4.log: Red Planet v4.10).
  • Engine: MUNGA (MUNGA/) — a cross-platform C++ game/sim engine.
  • Platform layer: MUNGA_L4 (MUNGA_L4/) — Win32 + DirectX 9 backend (Direct3D 9, DirectInput 8, OpenAL audio, SOS audio middleware headers).
  • Game code: RP (RP/) and RP_L4 (RP_L4/).
  • Support projects: DivLoader (asset/DIV loader), Setup1 (installer).
  • ~551 tracked files, ~9 MB.

Toolchain detected on the import machine

At import time the build machine had no usable C++ toolchain:

  • No Visual Studio, no cl.exe, no VCBuild.exe, no vswhere.
  • Only .NET Framework MSBuild.exe (v2v4) — which cannot build .vcproj.
  • MinGW gcc/g++ (unusable for this MSVC/DirectX codebase).
  • The required DirectX SDK (March 2009) was not installed.

A build attempt confirmed the blocker:

error MSB3428: Could not load the Visual C++ component "VCBuild.exe".

Building therefore requires installing VS 2005/2008 + the DirectX SDK (the user is sourcing these separately).


2. Changes made during preparation

2.1 Git hygiene (initial import commit)

  • Removed stale Subversion metadata (Setup1/.svn/) that pointed at a dead server (https://dev.vgcorps.com/svn/WinTesla).
  • Added .gitignore — VS build artifacts, IDE state, *.log, OS cruft. This excludes the runtime log RP_L4/rpl4.log.
  • Added .gitattributes — normalizes line endings, forces CRLF on Win32 source, marks .lib/.res/.egg/.rtf as binary.

2.2 Solution cleanup (WinTesla.sln)

The original solution referenced 10 projects, but only 4 exist in the repo. The 6 dangling references were removed so the solution loads cleanly:

Removed project Path referenced Present?
BT410_L4 BT410_L4\BT410_L4.vcproj missing
TextureExp TextureExp\TextureExp.vcproj missing
MeshExp MeshExp\MeshExp.vcproj missing
SphereExp SphereExp\SphereExp.vcproj missing
DetailExp DetailExp\DetailExp.vcproj missing
MatReplaceExp MatReplaceExp\MatReplaceExp.vcproj missing

Remaining (present) projects: RP_L4, Munga_L4, RPL4TOOL, DivLoader. Their GlobalSection(ProjectConfigurationPlatforms) entries were pruned to match. SolutionConfigurationPlatforms (Debug/Release/Remote Debug | Win32) were left unchanged.

The 6 missing projects appear to be model/texture exporter tools and a sister game project (BT410 — a different pod title) that live in other repositories. If you obtain them, re-add them to the solution.

2.3 DirectX SDK path un-hardcoded

Munga_L4.vcproj and RP_L4.vcproj (the VS2005 / v8.00 files) hardcoded:

C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include
C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86

Both were replaced (6 occurrences each) with the installer-provided variable, matching what the existing ... VS2008.vcproj variants already used:

$(DXSDK_DIR)Include
$(DXSDK_DIR)Lib\x86

DXSDK_DIR is set by the DirectX SDK installer and ends in a trailing backslash, so $(DXSDK_DIR)Include resolves correctly.


3. Project reference data

Collected from the .vcproj files for quick reference.

Configuration types

  • ConfigurationType="1" → Application (exe): RP_L4, RPL4TOOL
  • ConfigurationType="4" → Static library: Munga_L4, DivLoader
  • Munga_L4: OpenAL32.lib D3D9.lib D3DX9.lib DXERR.lib
  • RP_L4: WS2_32.lib Munga_l4.lib dinput8.lib dxguid.lib openal32.lib libsndfile-1.lib d3dx9.lib d3d9.lib dbghelp.lib
  • RPL4TOOL: Munga_l4.lib libsndfile-1.lib WS2_32.lib dinput8.lib dxguid.lib

Preprocessor definitions (RP_L4)

  • Debug: WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE
  • Release: WIN32;_WINDOWS;_CRT_SECURE_NO_DEPRECATE

Character set

  • Munga_L4, RP_L4, RPL4TOOL: CharacterSet="1" (Unicode)
  • DivLoader: CharacterSet="2" (MBCS)

4. Orphaned / non-build files (informational)

These files are present but are not referenced by any project, so they do not affect the build. Left in place for historical completeness:

  • MUNGA_L4/JOYSTICK.asm — MASM source, not in any .vcproj. No MASM toolchain is required to build. (L4JOYSTK.h exists but the .asm is unused.)
  • MUNGA_L4/sos/SOSMAWE.C and the sos/bc4, sos/wc header trees — SOS audio middleware for old Borland/Watcom compilers; headers only.
  • RP_L4/TEST.EGG, RP_L4/last.egg.egg data blobs. last.egg is likely runtime-generated ("last loaded"); kept in tracking pending confirmation.
  • docs/audionotes.rtf — design notes.

5. Open questions for the owner

  1. Are the 6 removed projects (BT410_L4, *Exp tools) needed here, or do they belong to separate repos?
  2. Is RP_L4/last.egg a real asset or generated output? If generated, add it to .gitignore and untrack it.
  3. Which VS version is the target going forward — keep VS2005/2008 .vcproj, or upgrade to .vcxproj for a modern VS + Windows SDK (dropping the legacy DirectX SDK in favor of the Windows SDK's Direct3D)?