- 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>
144 lines
5.5 KiB
Markdown
144 lines
5.5 KiB
Markdown
# 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` (v2–v4) — 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)?
|