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>
This commit is contained in:
@@ -15,6 +15,7 @@ ipch/
|
||||
*.suo
|
||||
*.user
|
||||
*.cachefile
|
||||
*.sln.cache
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
*.pch
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
# 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/](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/](MUNGA_L4/openal/) and
|
||||
[MUNGA_L4/sndfile.h](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](WinTesla.sln). It builds four projects:
|
||||
|
||||
| Project | File | Type | Output | Depends on |
|
||||
|---------|------|------|--------|------------|
|
||||
| **Munga_L4** | [MUNGA_L4/Munga_L4.vcproj](MUNGA_L4/Munga_L4.vcproj) | Static lib | `lib\Munga_l4.lib` | — |
|
||||
| **RP_L4** | [RP_L4/RP_L4.vcproj](RP_L4/RP_L4.vcproj) | Application (exe) | `rpl4opt.exe` | Munga_L4 |
|
||||
| **RPL4TOOL** | [RP_L4/RPL4TOOL.vcproj](RP_L4/RPL4TOOL.vcproj) | Application (exe) | tool exe | Munga_L4 |
|
||||
| **DivLoader** | [DivLoader/DivLoader.vcproj](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`:
|
||||
```powershell
|
||||
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)
|
||||
|
||||
```powershell
|
||||
# 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.:
|
||||
|
||||
```powershell
|
||||
$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](docs/BUILD-NOTES.md) for the repository cleanup
|
||||
history, orphaned files, and the full findings behind this document.
|
||||
@@ -40,7 +40,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include""
|
||||
AdditionalIncludeDirectories=""$(DXSDK_DIR)Include""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
@@ -62,7 +62,7 @@
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
AdditionalDependencies="OpenAL32.lib D3D9.lib D3DX9.lib DXERR.lib"
|
||||
AdditionalLibraryDirectories="..\lib;"C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86""
|
||||
AdditionalLibraryDirectories="..\lib;"$(DXSDK_DIR)Lib\x86""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@@ -111,7 +111,7 @@
|
||||
FavorSizeOrSpeed="1"
|
||||
EnableFiberSafeOptimizations="true"
|
||||
WholeProgramOptimization="true"
|
||||
AdditionalIncludeDirectories=""C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include""
|
||||
AdditionalIncludeDirectories=""$(DXSDK_DIR)Include""
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
|
||||
MinimalRebuild="false"
|
||||
BasicRuntimeChecks="0"
|
||||
@@ -133,7 +133,7 @@
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
AdditionalDependencies="OpenAL32.lib D3D9.lib D3DX9.lib DXERR.lib"
|
||||
AdditionalLibraryDirectories="..\lib;"C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86""
|
||||
AdditionalLibraryDirectories="..\lib;"$(DXSDK_DIR)Lib\x86""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@@ -177,7 +177,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include""
|
||||
AdditionalIncludeDirectories=""$(DXSDK_DIR)Include""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
@@ -199,7 +199,7 @@
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
AdditionalDependencies="OpenAL32.lib D3D9.lib D3DX9.lib DXERR.lib"
|
||||
AdditionalLibraryDirectories="..\lib;"C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86""
|
||||
AdditionalLibraryDirectories="..\lib;"$(DXSDK_DIR)Lib\x86""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
|
||||
+6
-6
@@ -44,7 +44,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
FavorSizeOrSpeed="0"
|
||||
AdditionalIncludeDirectories=""C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include""
|
||||
AdditionalIncludeDirectories=""$(DXSDK_DIR)Include""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
@@ -72,7 +72,7 @@
|
||||
ShowProgress="0"
|
||||
OutputFile="$(OutDir)\rpl4opt.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories=""C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86";..\lib"
|
||||
AdditionalLibraryDirectories=""$(DXSDK_DIR)Lib\x86";..\lib"
|
||||
IgnoreAllDefaultLibraries="false"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
@@ -134,7 +134,7 @@
|
||||
FavorSizeOrSpeed="1"
|
||||
EnableFiberSafeOptimizations="true"
|
||||
WholeProgramOptimization="true"
|
||||
AdditionalIncludeDirectories=""C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include""
|
||||
AdditionalIncludeDirectories=""$(DXSDK_DIR)Include""
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
|
||||
MinimalRebuild="false"
|
||||
ExceptionHandling="1"
|
||||
@@ -163,7 +163,7 @@
|
||||
ShowProgress="1"
|
||||
OutputFile="$(OutDir)\rpl4opt.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories=""C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86";..\lib"
|
||||
AdditionalLibraryDirectories=""$(DXSDK_DIR)Lib\x86";..\lib"
|
||||
GenerateDebugInformation="false"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
@@ -222,7 +222,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
FavorSizeOrSpeed="0"
|
||||
AdditionalIncludeDirectories=""C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Include""
|
||||
AdditionalIncludeDirectories=""$(DXSDK_DIR)Include""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
@@ -250,7 +250,7 @@
|
||||
ShowProgress="1"
|
||||
OutputFile="$(OutDir)\rpl4opt.exe"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories=""C:\Program Files (x86)\Microsoft DirectX SDK (March 2009)\Lib\x86";..\lib"
|
||||
AdditionalLibraryDirectories=""$(DXSDK_DIR)Lib\x86";..\lib"
|
||||
IgnoreAllDefaultLibraries="false"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
|
||||
@@ -9,15 +9,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RP_L4", "RP_L4\RP_L4.vcproj
|
||||
{F988B198-A386-40DD-A50E-9A5CE17A92A5} = {F988B198-A386-40DD-A50E-9A5CE17A92A5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BT410_L4", "BT410_L4\BT410_L4.vcproj", "{3D11EC2A-78C8-4138-AABC-5597846A30F9}"
|
||||
ProjectSection(WebsiteProperties) = preProject
|
||||
Debug.AspNetCompiler.Debug = "True"
|
||||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{F988B198-A386-40DD-A50E-9A5CE17A92A5} = {F988B198-A386-40DD-A50E-9A5CE17A92A5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Munga_L4", "MUNGA_L4\Munga_L4.vcproj", "{F988B198-A386-40DD-A50E-9A5CE17A92A5}"
|
||||
ProjectSection(WebsiteProperties) = preProject
|
||||
Debug.AspNetCompiler.Debug = "True"
|
||||
@@ -33,42 +24,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RPL4TOOL", "RP_L4\RPL4TOOL.
|
||||
{F988B198-A386-40DD-A50E-9A5CE17A92A5} = {F988B198-A386-40DD-A50E-9A5CE17A92A5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TextureExp", "TextureExp\TextureExp.vcproj", "{E5595E6E-4D04-4114-91A2-0E839698262C}"
|
||||
ProjectSection(WebsiteProperties) = preProject
|
||||
Debug.AspNetCompiler.Debug = "True"
|
||||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MeshExp", "MeshExp\MeshExp.vcproj", "{17BBD54E-1011-45B4-B53D-CDB0588CEF23}"
|
||||
ProjectSection(WebsiteProperties) = preProject
|
||||
Debug.AspNetCompiler.Debug = "True"
|
||||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DivLoader", "DivLoader\DivLoader.vcproj", "{2742FFCF-E94C-4202-BB0E-36D86CD04A09}"
|
||||
ProjectSection(WebsiteProperties) = preProject
|
||||
Debug.AspNetCompiler.Debug = "True"
|
||||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SphereExp", "SphereExp\SphereExp.vcproj", "{8FFCD624-4B77-4FE7-9226-642389E31420}"
|
||||
ProjectSection(WebsiteProperties) = preProject
|
||||
Debug.AspNetCompiler.Debug = "True"
|
||||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DetailExp", "DetailExp\DetailExp.vcproj", "{E22A8051-BD1E-44C9-ACDB-AC813C034EE1}"
|
||||
ProjectSection(WebsiteProperties) = preProject
|
||||
Debug.AspNetCompiler.Debug = "True"
|
||||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MatReplaceExp", "MatReplaceExp\MatReplaceExp.vcproj", "{F6DC05B7-882E-4C10-8462-314EC9BC7759}"
|
||||
ProjectSection(WebsiteProperties) = preProject
|
||||
Debug.AspNetCompiler.Debug = "True"
|
||||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
@@ -82,11 +43,6 @@ Global
|
||||
{01B740F7-5D4E-4E42-893F-CE018E5EE785}.Release|Win32.Build.0 = Release|Win32
|
||||
{01B740F7-5D4E-4E42-893F-CE018E5EE785}.Remote Debug|Win32.ActiveCfg = Remote Debug|Win32
|
||||
{01B740F7-5D4E-4E42-893F-CE018E5EE785}.Remote Debug|Win32.Build.0 = Remote Debug|Win32
|
||||
{3D11EC2A-78C8-4138-AABC-5597846A30F9}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{3D11EC2A-78C8-4138-AABC-5597846A30F9}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{3D11EC2A-78C8-4138-AABC-5597846A30F9}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{3D11EC2A-78C8-4138-AABC-5597846A30F9}.Release|Win32.Build.0 = Release|Win32
|
||||
{3D11EC2A-78C8-4138-AABC-5597846A30F9}.Remote Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F988B198-A386-40DD-A50E-9A5CE17A92A5}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F988B198-A386-40DD-A50E-9A5CE17A92A5}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{F988B198-A386-40DD-A50E-9A5CE17A92A5}.Release|Win32.ActiveCfg = Release|Win32
|
||||
@@ -98,42 +54,12 @@ Global
|
||||
{11BDE691-E0D7-443E-A5AF-87B35B8EEAEE}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{11BDE691-E0D7-443E-A5AF-87B35B8EEAEE}.Release|Win32.Build.0 = Release|Win32
|
||||
{11BDE691-E0D7-443E-A5AF-87B35B8EEAEE}.Remote Debug|Win32.ActiveCfg = Remote Debug|Win32
|
||||
{E5595E6E-4D04-4114-91A2-0E839698262C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E5595E6E-4D04-4114-91A2-0E839698262C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{E5595E6E-4D04-4114-91A2-0E839698262C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{E5595E6E-4D04-4114-91A2-0E839698262C}.Release|Win32.Build.0 = Release|Win32
|
||||
{E5595E6E-4D04-4114-91A2-0E839698262C}.Remote Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E5595E6E-4D04-4114-91A2-0E839698262C}.Remote Debug|Win32.Build.0 = Debug|Win32
|
||||
{17BBD54E-1011-45B4-B53D-CDB0588CEF23}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{17BBD54E-1011-45B4-B53D-CDB0588CEF23}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{17BBD54E-1011-45B4-B53D-CDB0588CEF23}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{17BBD54E-1011-45B4-B53D-CDB0588CEF23}.Release|Win32.Build.0 = Release|Win32
|
||||
{17BBD54E-1011-45B4-B53D-CDB0588CEF23}.Remote Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{17BBD54E-1011-45B4-B53D-CDB0588CEF23}.Remote Debug|Win32.Build.0 = Debug|Win32
|
||||
{2742FFCF-E94C-4202-BB0E-36D86CD04A09}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2742FFCF-E94C-4202-BB0E-36D86CD04A09}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2742FFCF-E94C-4202-BB0E-36D86CD04A09}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2742FFCF-E94C-4202-BB0E-36D86CD04A09}.Release|Win32.Build.0 = Release|Win32
|
||||
{2742FFCF-E94C-4202-BB0E-36D86CD04A09}.Remote Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2742FFCF-E94C-4202-BB0E-36D86CD04A09}.Remote Debug|Win32.Build.0 = Debug|Win32
|
||||
{8FFCD624-4B77-4FE7-9226-642389E31420}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{8FFCD624-4B77-4FE7-9226-642389E31420}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{8FFCD624-4B77-4FE7-9226-642389E31420}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{8FFCD624-4B77-4FE7-9226-642389E31420}.Release|Win32.Build.0 = Release|Win32
|
||||
{8FFCD624-4B77-4FE7-9226-642389E31420}.Remote Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{8FFCD624-4B77-4FE7-9226-642389E31420}.Remote Debug|Win32.Build.0 = Debug|Win32
|
||||
{E22A8051-BD1E-44C9-ACDB-AC813C034EE1}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E22A8051-BD1E-44C9-ACDB-AC813C034EE1}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{E22A8051-BD1E-44C9-ACDB-AC813C034EE1}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{E22A8051-BD1E-44C9-ACDB-AC813C034EE1}.Release|Win32.Build.0 = Release|Win32
|
||||
{E22A8051-BD1E-44C9-ACDB-AC813C034EE1}.Remote Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E22A8051-BD1E-44C9-ACDB-AC813C034EE1}.Remote Debug|Win32.Build.0 = Debug|Win32
|
||||
{F6DC05B7-882E-4C10-8462-314EC9BC7759}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F6DC05B7-882E-4C10-8462-314EC9BC7759}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{F6DC05B7-882E-4C10-8462-314EC9BC7759}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{F6DC05B7-882E-4C10-8462-314EC9BC7759}.Release|Win32.Build.0 = Release|Win32
|
||||
{F6DC05B7-882E-4C10-8462-314EC9BC7759}.Remote Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F6DC05B7-882E-4C10-8462-314EC9BC7759}.Remote Debug|Win32.Build.0 = Debug|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
# 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)?
|
||||
Reference in New Issue
Block a user