Files
RP412/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

144 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Repository & Build Findings
Notes from the initial git import and build assessment of the Red Planet v4.10
Win32 source. See [BUILD.md](../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`](../.gitignore) — VS build artifacts, IDE state, `*.log`,
OS cruft. This excludes the runtime log `RP_L4/rpl4.log`.
- Added [`.gitattributes`](../.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`
### Link dependencies
- **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)?