Moved to proper subfolder to make room for other VWE projects.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -183,20 +183,20 @@ runs from the copy, and a **full clean rebuild of `MW4Application - Win32 Releas
|
||||
`<c:\stlnative/##x>` (3 macro defs, the only references in the codebase). STLport wraps a
|
||||
27 MB snapshot of the VC98 + Platform SDK headers (974 files) restored from the image.
|
||||
Originally placed at `C:\stlnative`; now **moved into `build-env\stlnative\`** and the 3
|
||||
macros repointed to `<c:\VWE\build-env\stlnative/##x>`. Verified: with `C:\stlnative`
|
||||
macros repointed to `<c:\VWE\firestorm\build-env\stlnative/##x>`. Verified: with `C:\stlnative`
|
||||
removed, a full clean rebuild still succeeds (MW4.exe, 0 errors). The build is now
|
||||
self-contained under `c:\VWE` — no external `C:\stlnative` needed.
|
||||
self-contained under `c:\VWE\firestorm` — no external `C:\stlnative` needed.
|
||||
|
||||
---
|
||||
|
||||
## ✅ STEP 4: Runnable deployment assembled at `C:\VWE\MW4` — DONE
|
||||
## ✅ STEP 4: Runnable deployment assembled at `C:\VWE\firestorm\MW4` — DONE
|
||||
Rules-based deploy (no image/E: dependency) via **`build-env\deploy-mw4.ps1`**:
|
||||
- **Result: `C:\VWE\MW4` — 845 files, 895 MB** (target was ~900 MB), with our freshly
|
||||
- **Result: `C:\VWE\firestorm\MW4` — 845 files, 895 MB** (target was ~900 MB), with our freshly
|
||||
built `MW4.exe` (3,637,248 bytes) + all runtime DLLs + prebuilt `resource\*.mw4`.
|
||||
- Sources (all from working dir): runtime base = `Gameleap\mw4`; binaries = `rel.bin`.
|
||||
- The old `game_*.bat` assumed a `binaries\mw4\MW4_dbg.exe` layout that the real game
|
||||
never used — the runnable game has `MW4.exe` at the deployment root. Launch via
|
||||
**`C:\VWE\MW4\run-mw4.bat`** (resources prebuilt, no `-build` needed).
|
||||
**`C:\VWE\firestorm\MW4\run-mw4.bat`** (resources prebuilt, no `-build` needed).
|
||||
|
||||
### Deployment selection rules (the dev tree `Gameleap\mw4` is a ~6 GB bloated superset)
|
||||
- KEEP whole: `Resource\` (767 MB .mw4 packages), `hsh\` (102 MB), `Assets\`, `Stats\`.
|
||||
@@ -210,7 +210,7 @@ Rules-based deploy (no image/E: dependency) via **`build-env\deploy-mw4.ps1`**:
|
||||
|
||||
---
|
||||
|
||||
## ✅ STEP 5: Runtime brought up at `C:\VWE\MW4` — RUNS (fullscreen + windowed)
|
||||
## ✅ STEP 5: Runtime brought up at `C:\VWE\firestorm\MW4` — RUNS (fullscreen + windowed)
|
||||
Reference for "working" = **`C:\MW4knowngood`** (NOT `E:\gameleap`, NOT `D:\5.0.8.2_console`
|
||||
— those are unrelated). Two independent issues had to be fixed; both are now in
|
||||
`deploy-mw4.ps1` so a fresh deploy is runnable out of the box:
|
||||
@@ -219,7 +219,7 @@ Reference for "working" = **`C:\MW4knowngood`** (NOT `E:\gameleap`, NOT `D:\5.0.
|
||||
its DirectDraw hardware-surface creation with `DDERR_NODIRECTDRAWHW` unless the
|
||||
**`DWM8And16BitMitigation`** AppCompat layer is applied to the exe *path*. Our path had a
|
||||
stray `HIGHDPIAWARE`-only layer that suppressed the auto-shim. Fix: set HKCU layer
|
||||
`DWM8And16BitMitigation HIGHDPIAWARE` for `C:\VWE\MW4\MW4.exe` (deploy script does this;
|
||||
`DWM8And16BitMitigation HIGHDPIAWARE` for `C:\VWE\firestorm\MW4\MW4.exe` (deploy script does this;
|
||||
matching all-users HKLM `$ DWM8And16BitMitigation` is in `build-env\mw4-compat-hklm.reg`).
|
||||
Note: AppCompat is keyed on exe PATH, so a copy at a new path needs the layer re-applied.
|
||||
2. **Dev-only DLLs shadowing system DLLs.** Our rules copied every root `*.dll`, which pulled
|
||||
@@ -230,7 +230,7 @@ Reference for "working" = **`C:\MW4knowngood`** (NOT `E:\gameleap`, NOT `D:\5.0.
|
||||
|
||||
Diagnostic note: swapping known-good binaries into our deploy still failed *before* the shim
|
||||
was applied — that proved our rebuilt binaries are NOT the cause (the shim + DLL excludes were).
|
||||
Final deployment: **`C:\VWE\MW4` = 894 MB, 839 files, DLL set identical to known-good**, running
|
||||
Final deployment: **`C:\VWE\firestorm\MW4` = 894 MB, 839 files, DLL set identical to known-good**, running
|
||||
our freshly built `MW4.exe`.
|
||||
|
||||
---
|
||||
@@ -367,7 +367,7 @@ DirectInput init cascade** during `CMInstall` (GameOS), reproducible and determi
|
||||
path (valid `hWindow`) is unchanged. Tagged `[editor modern-Windows fix]`.
|
||||
|
||||
Rebuilt **`MW4GameEd2 - Win32 Profile`** (recompiles GameOS + MFCPlatform, relinks; 0 errors) ->
|
||||
deployed `pro.bin\MW4Ed2.exe`+`.pdb` to `C:\VWE\MW4Editor`. With both fixes + the content fixes
|
||||
deployed `pro.bin\MW4Ed2.exe`+`.pdb` to `C:\VWE\firestorm\MW4Editor`. With both fixes + the content fixes
|
||||
below, the editor **launches to a live, responsive, idle (0% CPU) main window** ("MechWarrior 4
|
||||
Mission Editor - 05.07.00.00", ~70 MB) — the old "100% spin / not responding" is GONE. Launch with
|
||||
just `-armorlevel 3` (no `/gos` flag needed).
|
||||
@@ -396,23 +396,23 @@ with `0x88760082 = DDERR_INVALIDOBJECT`** for BOTH the hardware HAL (`IID_IDirec
|
||||
-> `IID_IDirect3DHALDevice`) and the Blade software device — i.e. **Win11's legacy DirectDraw does
|
||||
not support creating a windowed Direct3D7 device** on an offscreen backbuffer (the game avoids
|
||||
this by using a fullscreen flip-chain). Not a code-flag issue.
|
||||
**Fix:** dropped **DDrawCompat** (narzoul, v0.7.1, `ddraw.dll`) into `C:\VWE\MW4Editor\` — a
|
||||
**Fix:** dropped **DDrawCompat** (narzoul, v0.7.1, `ddraw.dll`) into `C:\VWE\firestorm\MW4Editor\` — a
|
||||
drop-in ddraw/d3d7 reimplementation. With it, `CreateDevice` succeeds and the **Game View/Overview
|
||||
render** (user-confirmed). Source kept at `build-env\ddrawcompat\ddraw.dll`; `deploy-editor.ps1`
|
||||
now copies it. The standalone game (`C:\VWE\MW4`, fullscreen) is unaffected and does NOT use it.
|
||||
now copies it. The standalone game (`C:\VWE\firestorm\MW4`, fullscreen) is unaffected and does NOT use it.
|
||||
**The editor is now fully working: launches, edits, and renders the 3D viewport.**
|
||||
|
||||
### ✅ Open-Mission dialog now lists ALL source missions (2026-06-22)
|
||||
Symptom: editor's File->Open showed only **5** missions. Cause: `COpenMissionDlg::OnInitDialog`
|
||||
(`OpenMissionDlg.cpp`) listed `Resource\UserMissions\*.mw4` (compiled/published user-mission
|
||||
packages) — only 5 exist in the dev tree (and **0** in the game deploy `C:\VWE\MW4`, so co-locating
|
||||
packages) — only 5 exist in the dev tree (and **0** in the game deploy `C:\VWE\firestorm\MW4`, so co-locating
|
||||
the editor with the game would have shown ZERO, not more). But `CMainFrame::LoadMission` loads from
|
||||
`Content\Missions\<name>\<name>.Instance`. **Fix:** changed the dialog to enumerate
|
||||
`Content\Missions\*` subdirectories that contain a matching `<name>.instance` -> now lists all **51**
|
||||
source missions. Tagged `[editor data fix]`. (Note: `INVALID_FILE_ATTRIBUTES` isn't defined in the
|
||||
VC6 SDK; used the literal `0xFFFFFFFF`.) This made the requested "move editor into the game-binaries
|
||||
folder" unnecessary — the editor already junctions the dev tree (`Gameleap\mw4`), the most complete
|
||||
data (51 missions, 46 maps); the game deploy `C:\VWE\MW4` actually has **0** user missions, so it
|
||||
data (51 missions, 46 maps); the game deploy `C:\VWE\firestorm\MW4` actually has **0** user missions, so it
|
||||
would have shown FEWER.
|
||||
|
||||
**Second half of the fix — actually LOADING the listed missions (`EditorApplication.cpp`
|
||||
@@ -450,20 +450,20 @@ compat layer (e.g. DDrawCompat), forcing a supported windowed surface format, or
|
||||
viewport via a different present path. NOT yet solved.
|
||||
|
||||
### ✅ Deployment finalized (2026-06-22)
|
||||
- **PageHeap REMOVED** (debug aid only): ran `reg import C:\VWE\build-env\mw4ed2-pageheap-off.reg`
|
||||
- **PageHeap REMOVED** (debug aid only): ran `reg import C:\VWE\firestorm\build-env\mw4ed2-pageheap-off.reg`
|
||||
ELEVATED (UAC) -> HKLM IFEO `MW4Ed2.exe` key gone. The real-name `MW4Ed2.exe` now runs directly
|
||||
(no longer AVs at ~2s). The `MW4Ed2_nph.exe` copy remains as a page-heap-immune fallback.
|
||||
- **`deploy-editor.ps1` updated:** sources the **Profile** build (`pro.bin`, the working config) +
|
||||
`.pdb`; writes `run-editor.bat` (`MW4Ed2.exe -armorlevel 3`, no `/gos`); sets the DDraw shim;
|
||||
warns if PageHeap IFEO is present. A fresh deploy is runnable to the editor UI.
|
||||
- **Launch:** `C:\VWE\MW4Editor\run-editor.bat` (or `MW4Ed2.exe -armorlevel 3`). Pick a mission in
|
||||
- **Launch:** `C:\VWE\firestorm\MW4Editor\run-editor.bat` (or `MW4Ed2.exe -armorlevel 3`). Pick a mission in
|
||||
the startup "Open Mission" dialog. Everything except the live 3D render works.
|
||||
- Expect more WIP content STOPs only if exercising missions/maps not loaded at startup.
|
||||
- (Optional) Build Debug/Armor configs (need `dbg.bin`/`arm.bin` output dirs).
|
||||
|
||||
## ✅ STEP 9: Editor runs IN PLACE in the data tree — no separate `MW4Editor` dir (2026-06-23)
|
||||
The editor's only job is editing the source content/resources in `Gameleap\mw4`, so the separate
|
||||
`C:\VWE\MW4Editor` deploy (which just junctioned back to `Gameleap\mw4`) was removed. `deploy-editor.ps1`
|
||||
`C:\VWE\firestorm\MW4Editor` deploy (which just junctioned back to `Gameleap\mw4`) was removed. `deploy-editor.ps1`
|
||||
now **installs the editor into `Gameleap\mw4`**: copies `MW4Ed2.exe`(+pdb) + DDrawCompat `ddraw.dll`,
|
||||
renames the two DDraw-breaking DLLs (`dbghelp.dll`/`imagehlp.dll` → `.disabled`), sets the DWM shim on
|
||||
`Gameleap\mw4\MW4Ed2.exe`, and writes `Gameleap\mw4\run-editor.bat`. Verified: editor launches in place
|
||||
@@ -473,9 +473,9 @@ with the full UI + DDrawCompat viewport (Game View/Overview/Object Manager/Resou
|
||||
`build-resources.ps1` now moves `ddraw.dll` aside (`.buildaside`) for the build and restores it in a
|
||||
`finally` (verified: build exit 0, ddraw restored).
|
||||
- **Game deploy unaffected:** `deploy-mw4.ps1` adds `ddraw.dll` to its skip list, so DDrawCompat + the
|
||||
editor exe/pdb/launcher/`.disabled` DLLs never leak into `C:\VWE\MW4` (verified: 682 files / 868 MB,
|
||||
58 packages, fullscreen native DDraw). Old launch path `C:\VWE\MW4Editor\...` is superseded by
|
||||
`C:\VWE\Gameleap\mw4\run-editor.bat`.
|
||||
editor exe/pdb/launcher/`.disabled` DLLs never leak into `C:\VWE\firestorm\MW4` (verified: 682 files / 868 MB,
|
||||
58 packages, fullscreen native DDraw). Old launch path `C:\VWE\firestorm\MW4Editor\...` is superseded by
|
||||
`C:\VWE\firestorm\Gameleap\mw4\run-editor.bat`.
|
||||
|
||||
## 📋 Reference: raising the MP player cap 16 → 24 (investigated 2026-06-24; NOT planned)
|
||||
Captured for the future; **we are not tackling this in the foreseeable future.** Question was
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#define __STL_INC_FINDHPP__
|
||||
#define __PLACEMENT_NEW_INLINE
|
||||
void * _cdecl operator new(size_t, void *_P);
|
||||
#define __STL_NATIVE_HEADER(x) <c:\VWE\build-env\stlnative/##x> // relocated into working tree (was c:\stlnative)
|
||||
#define __STL_NATIVE_C_HEADER(x) <c:\VWE\build-env\stlnative/##x> // relocated into working tree (was c:\stlnative)
|
||||
#define __STL_NATIVE_CPP_C_HEADER(x) <c:\VWE\build-env\stlnative/##x> // relocated into working tree (was c:\stlnative)
|
||||
#define __STL_NATIVE_HEADER(x) <c:\VWE\firestorm\build-env\stlnative/##x> // relocated into working tree (was c:\stlnative)
|
||||
#define __STL_NATIVE_C_HEADER(x) <c:\VWE\firestorm\build-env\stlnative/##x> // relocated into working tree (was c:\stlnative)
|
||||
#define __STL_NATIVE_CPP_C_HEADER(x) <c:\VWE\firestorm\build-env\stlnative/##x> // relocated into working tree (was c:\stlnative)
|
||||
#endif
|
||||
|
||||
@@ -15,7 +15,7 @@ build/runtime reconstruction notes.
|
||||
|
||||
### Build / deploy scripts (in `build-env\`)
|
||||
- **`deploy-mw4.ps1`** — packs resources from source (`build-resources.ps1`) then assembles the
|
||||
runnable game into `c:\VWE\MW4`. Trims dev bloat, ships only the canonical game packages,
|
||||
runnable game into `c:\VWE\firestorm\MW4`. Trims dev bloat, ships only the canonical game packages,
|
||||
optimizes mech BMPs to 256-color, applies the DirectDraw compat shim.
|
||||
- **`build-resources.ps1`** — (re)packs `resource\*.mw4` from `Gameleap\mw4\Content` using the
|
||||
in-exe compiler (`MW4pro.exe -build`). Called by the deploy; can be run standalone.
|
||||
|
||||
+7
-7
@@ -1,6 +1,6 @@
|
||||
# Disaster recovery — rebuild this machine from the Gitea mirror
|
||||
|
||||
This repo is a **complete mirror of `C:\VWE`** (source + game assets + the VC6 toolchain +
|
||||
This repo is a **complete mirror of `C:\VWE\firestorm`** (source + game assets + the VC6 toolchain +
|
||||
SDKs + build outputs + the deployed game + the `_UNUSED` archive). Nothing is excluded.
|
||||
Large binaries are stored in **Git LFS**. A single clone reconstitutes a working tree.
|
||||
|
||||
@@ -15,20 +15,20 @@ Large binaries are stored in **Git LFS**. A single clone reconstitutes a working
|
||||
(Also enable the OS setting: `HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled = 1`.)
|
||||
3. Clone to the same location so the absolute paths baked into the toolchain config resolve:
|
||||
```
|
||||
git clone <gitea-url>/firestorm.git C:\VWE
|
||||
git clone <gitea-url>/firestorm.git C:\VWE\firestorm
|
||||
```
|
||||
`git clone` pulls LFS objects automatically. If any are missing: `cd C:\VWE && git lfs pull`.
|
||||
`git clone` pulls LFS objects automatically. If any are missing: `cd C:\VWE\firestorm && git lfs pull`.
|
||||
|
||||
## After restore — make it buildable / runnable
|
||||
- **Build toolchain (VC6):** import the registry config (ELEVATED), per `build-env\README.md`:
|
||||
```
|
||||
reg import C:\VWE\build-env\vc6-hklm-registration.reg
|
||||
reg import C:\VWE\build-env\vc6-directories.reg
|
||||
reg import C:\VWE\firestorm\build-env\vc6-hklm-registration.reg
|
||||
reg import C:\VWE\firestorm\build-env\vc6-directories.reg
|
||||
```
|
||||
Then build `Gameleap\code\mw4\Code\MechWarrior4.dsw` (see `CLAUDE.md` STEP 1/3), or just use the
|
||||
already-mirrored `Gameleap\code\rel.bin` / `pro.bin` binaries.
|
||||
- **Run the game:** `build-env\deploy-mw4.ps1` reassembles `C:\VWE\MW4` and applies the Win11
|
||||
DirectDraw compat shim; or run the already-mirrored `C:\VWE\MW4\MW4.exe` after re-applying the
|
||||
- **Run the game:** `build-env\deploy-mw4.ps1` reassembles `C:\VWE\firestorm\MW4` and applies the Win11
|
||||
DirectDraw compat shim; or run the already-mirrored `C:\VWE\firestorm\MW4\MW4.exe` after re-applying the
|
||||
shim (AppCompat is keyed on exe *path*, so a new machine needs it re-set — the deploy script does this).
|
||||
- **Editor:** `Gameleap\mw4\run-editor.bat` (installed in place; see `CLAUDE.md` STEP 9).
|
||||
|
||||
|
||||
+7
-7
@@ -48,15 +48,15 @@ Two non-obvious but verified facts that make this work:
|
||||
STLport (`mw4\Libraries\stlport`) wraps a 27 MB snapshot of the VC98 + Platform SDK
|
||||
headers (974 files). It used to require a hardcoded `C:\stlnative`; it now lives here at
|
||||
`build-env\stlnative\`, and the 3 macros in `stl_inc_find.hpp` point at
|
||||
`<c:\VWE\build-env\stlnative/##x>`. No external `C:\stlnative` is needed — the build is
|
||||
self-contained under `c:\VWE`. (If you ever relocate the working tree, update those 3
|
||||
`<c:\VWE\firestorm\build-env\stlnative/##x>`. No external `C:\stlnative` is needed — the build is
|
||||
self-contained under `c:\VWE\firestorm`. (If you ever relocate the working tree, update those 3
|
||||
macro lines to the new absolute path.)
|
||||
|
||||
### One-time setup: register VC6 + the directory paths
|
||||
Run **elevated** (HKLM write needs admin; do both in the same shell):
|
||||
```cmd
|
||||
reg import c:\VWE\build-env\vc6-hklm-registration.reg
|
||||
reg import c:\VWE\build-env\vc6-directories.reg
|
||||
reg import c:\VWE\firestorm\build-env\vc6-hklm-registration.reg
|
||||
reg import c:\VWE\firestorm\build-env\vc6-directories.reg
|
||||
```
|
||||
- `vc6-hklm-registration.reg` → registers the VC6 install (ProductDir/InstallDir,
|
||||
environment packages) under `HKLM\SOFTWARE\Wow6432Node\Microsoft\{VisualStudio,DevStudio}\6.0`
|
||||
@@ -72,14 +72,14 @@ reg import c:\VWE\build-env\vc6-directories.reg
|
||||
1. Launch `VisualStudio6\Common\MSDev98\Bin\MSDEV.EXE`.
|
||||
2. (Directories are already set by the `.reg` import — verify under
|
||||
Tools → Options → Directories if desired.)
|
||||
3. Open `c:\VWE\Gameleap\code\mw4\Code\MechWarrior4.dsw`, set
|
||||
3. Open `c:\VWE\firestorm\Gameleap\code\mw4\Code\MechWarrior4.dsw`, set
|
||||
**MW4Application** as the Active Project, pick a config, Build.
|
||||
|
||||
### Option B — command line (scriptable)
|
||||
```cmd
|
||||
cd c:\VWE\build-env
|
||||
cd c:\VWE\firestorm\build-env
|
||||
setup-mw4-build.bat
|
||||
cd c:\VWE\Gameleap\code\mw4\Code
|
||||
cd c:\VWE\firestorm\Gameleap\code\mw4\Code
|
||||
msdev MechWarrior4.dsw /MAKE "MW4Application - Win32 Release"
|
||||
```
|
||||
> `msdev /MAKE` reads include/lib dirs from the **registry** (the `.reg` above),
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
picks them up automatically.
|
||||
#>
|
||||
param(
|
||||
[string]$Runtime = "c:\VWE\Gameleap\mw4", # source tree: Content\ + resource\
|
||||
[string]$BinDir = "c:\VWE\Gameleap\code\rel.bin", # our freshly built MW4pro.exe
|
||||
[string]$Runtime = "c:\VWE\firestorm\Gameleap\mw4", # source tree: Content\ + resource\
|
||||
[string]$BinDir = "c:\VWE\firestorm\Gameleap\code\rel.bin", # our freshly built MW4pro.exe
|
||||
[int] $TimeoutSec = 1800 # kill a hung (modal-STOP) build
|
||||
)
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<#
|
||||
deploy-editor.ps1 - install the MW4GameEd2 editor INTO the game-data tree (c:\VWE\Gameleap\mw4).
|
||||
deploy-editor.ps1 - install the MW4GameEd2 editor INTO the game-data tree (c:\VWE\firestorm\Gameleap\mw4).
|
||||
|
||||
The editor's entire job is editing the source content + resources, which live in Gameleap\mw4.
|
||||
So instead of a separate deploy dir that just junctions back here, we drop the editor binaries
|
||||
@@ -16,8 +16,8 @@
|
||||
Editor launches via run-editor.bat (just -armorlevel 3; joystick disabled in code, no /gos switch).
|
||||
#>
|
||||
param(
|
||||
[string]$Data = "c:\VWE\Gameleap\mw4", # game-data tree = the editor's working dir
|
||||
[string]$BinDir = "c:\VWE\Gameleap\code\pro.bin" # our built MW4Ed2.exe (PROFILE = working config)
|
||||
[string]$Data = "c:\VWE\firestorm\Gameleap\mw4", # game-data tree = the editor's working dir
|
||||
[string]$BinDir = "c:\VWE\firestorm\Gameleap\code\pro.bin" # our built MW4Ed2.exe (PROFILE = working config)
|
||||
)
|
||||
$ErrorActionPreference = "Stop"
|
||||
Write-Host "== Install MW4 editor into the data tree ==" -ForegroundColor Cyan
|
||||
@@ -73,7 +73,7 @@ Write-Host " wrote run-editor.bat"
|
||||
$ifeo = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\MW4Ed2.exe'
|
||||
if (Test-Path $ifeo) {
|
||||
Write-Host " WARNING: PageHeap IFEO for MW4Ed2.exe is set. Remove it (ELEVATED):" -ForegroundColor Red
|
||||
Write-Host " reg import C:\VWE\build-env\mw4ed2-pageheap-off.reg" -ForegroundColor Red
|
||||
Write-Host " reg import C:\VWE\firestorm\build-env\mw4ed2-pageheap-off.reg" -ForegroundColor Red
|
||||
}
|
||||
|
||||
Write-Host "`nEditor installed into the data tree: $Data" -ForegroundColor Green
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<#
|
||||
deploy-mw4.ps1 - assemble a runnable copy of BattleTech:FireStorm at c:\VWE\MW4
|
||||
deploy-mw4.ps1 - assemble a runnable copy of BattleTech:FireStorm at c:\VWE\firestorm\MW4
|
||||
|
||||
RULES-BASED deployment, sourced entirely from the working directory (c:\VWE).
|
||||
RULES-BASED deployment, sourced entirely from the working directory (c:\VWE\firestorm).
|
||||
No external/image paths are read.
|
||||
|
||||
Sources:
|
||||
Runtime = c:\VWE\Gameleap\mw4 (dev superset: runtime DLLs, resources, config)
|
||||
BinDir = c:\VWE\Gameleap\code\rel.bin (our freshly built binaries)
|
||||
Runtime = c:\VWE\firestorm\Gameleap\mw4 (dev superset: runtime DLLs, resources, config)
|
||||
BinDir = c:\VWE\firestorm\Gameleap\code\rel.bin (our freshly built binaries)
|
||||
|
||||
The dev runtime tree is bloated (~6 GB) with source content and dev-only data.
|
||||
A clean runnable deployment is ~900 MB. These rules select the runtime subset:
|
||||
@@ -33,9 +33,9 @@
|
||||
#>
|
||||
|
||||
param(
|
||||
[string]$Runtime = "c:\VWE\Gameleap\mw4",
|
||||
[string]$BinDir = "c:\VWE\Gameleap\code\rel.bin",
|
||||
[string]$Dest = "c:\VWE\MW4",
|
||||
[string]$Runtime = "c:\VWE\firestorm\Gameleap\mw4",
|
||||
[string]$BinDir = "c:\VWE\firestorm\Gameleap\code\rel.bin",
|
||||
[string]$Dest = "c:\VWE\firestorm\MW4",
|
||||
[switch]$SkipResourceBuild,
|
||||
[int] $ResourceBuildTimeoutSec = 1800
|
||||
)
|
||||
|
||||
@@ -2,8 +2,8 @@ Windows Registry Editor Version 5.00
|
||||
|
||||
; Apply the DirectDraw 16-bit mitigation shim to the deployed MW4.exe at the
|
||||
; SYSTEM (all-users) level, exactly matching the known-good C:\MW4knowngood entry.
|
||||
; Import elevated: reg import c:\VWE\build-env\mw4-compat-hklm.reg
|
||||
; Import elevated: reg import c:\VWE\firestorm\build-env\mw4-compat-hklm.reg
|
||||
; (HKCU per-user layer is set separately by deploy-mw4.ps1 / already applied.)
|
||||
|
||||
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
|
||||
"C:\\VWE\\MW4\\MW4.exe"="$ DWM8And16BitMitigation"
|
||||
"C:\\VWE\\firestorm\\MW4\\MW4.exe"="$ DWM8And16BitMitigation"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Windows Registry Editor Version 5.00
|
||||
|
||||
; Disable PageHeap for the editor (removes the IFEO MW4Ed2.exe subkey).
|
||||
; Import ELEVATED: reg import c:\VWE\build-env\mw4ed2-pageheap-off.reg
|
||||
; Import ELEVATED: reg import c:\VWE\firestorm\build-env\mw4ed2-pageheap-off.reg
|
||||
|
||||
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\MW4Ed2.exe]
|
||||
|
||||
@@ -5,7 +5,7 @@ Windows Registry Editor Version 5.00
|
||||
; immediately at the corrupting write (instead of corrupting the free-list and
|
||||
; hanging/crashing later). GlobalFlag 0x02000000 = FLG_HEAP_PAGE_ALLOCS;
|
||||
; PageHeapFlags 0x3 = enabled + full page heap.
|
||||
; Import ELEVATED: reg import c:\VWE\build-env\mw4ed2-pageheap.reg
|
||||
; Import ELEVATED: reg import c:\VWE\firestorm\build-env\mw4ed2-pageheap.reg
|
||||
; To DISABLE later: delete the MW4Ed2.exe subkey (or run mw4ed2-pageheap-off.reg).
|
||||
; (IFEO is a shared key - NOT redirected to Wow6432Node - so this applies to the
|
||||
; 32-bit editor's ntdll heap.)
|
||||
|
||||
@@ -4,7 +4,7 @@ rem play-mr.bat - drag-and-drop launcher for MW4 mission-review (.mr) replay.
|
||||
rem Drop a .mr file onto this .bat, or run: play-mr.bat "C:\path\match.mr"
|
||||
rem
|
||||
rem EDIT THIS to your game install folder (the one containing MW4.exe):
|
||||
set "GAMEDIR=C:\VWE\MW4"
|
||||
set "GAMEDIR=C:\VWE\firestorm\MW4"
|
||||
rem ============================================================================
|
||||
if "%~1"=="" (
|
||||
echo Usage: drag a .mr file onto this file, or: play-mr.bat "path\to\match.mr"
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory=$true)] [string]$MrFile,
|
||||
[string]$GameDir = "C:\VWE\MW4", # point this at your game install on another system
|
||||
[string]$GameDir = "C:\VWE\firestorm\MW4", # point this at your game install on another system
|
||||
[string]$Exe = "MW4.exe",
|
||||
[string]$ExtraArgs = "-window -dragon -nomovie", # e.g. "-window -nomovie"
|
||||
[switch]$NoShim, # skip the DirectDraw AppCompat shim
|
||||
|
||||
@@ -4,17 +4,17 @@ Windows Registry Editor Version 5.00
|
||||
; VC6 Tools->Options->Directories for the MW4 / FireStorm build.
|
||||
; EXACT original ordering recovered from the build machine's jeff hive,
|
||||
; rebased from the original paths to the local build-env\ copies:
|
||||
; C:\Program Files\Microsoft Visual Studio -> c:\VWE\build-env\VisualStudio6
|
||||
; C:\CODE\DX7ASDK -> c:\VWE\build-env\dx7asdk
|
||||
; C:\CODE\DXMEDIA -> c:\VWE\build-env\DXMedia
|
||||
; C:\Program Files\Microsoft Visual Studio -> c:\VWE\firestorm\build-env\VisualStudio6
|
||||
; C:\CODE\DX7ASDK -> c:\VWE\firestorm\build-env\dx7asdk
|
||||
; C:\CODE\DXMEDIA -> c:\VWE\firestorm\build-env\DXMedia
|
||||
;
|
||||
; Imports into HKEY_CURRENT_USER (no admin needed). Double-click to apply,
|
||||
; or: reg import c:\VWE\build-env\vc6-directories.reg
|
||||
; or: reg import c:\VWE\firestorm\build-env\vc6-directories.reg
|
||||
; This is what lets `msdev ... /MAKE` and the IDE find DX7 headers first.
|
||||
; ===========================================================================
|
||||
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Build System\Components\Platforms\Win32 (x86)\Directories]
|
||||
"Path Dirs"="c:\\VWE\\build-env\\VisualStudio6\\Common\\MSDev98\\Bin;c:\\VWE\\build-env\\VisualStudio6\\VC98\\BIN;c:\\VWE\\build-env\\VisualStudio6\\Common\\TOOLS;c:\\VWE\\build-env\\VisualStudio6\\Common\\TOOLS\\WINNT;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem"
|
||||
"Include Dirs"="c:\\VWE\\build-env\\DXMedia\\INCLUDE;c:\\VWE\\build-env\\dx7asdk\\INCLUDE;c:\\VWE\\build-env\\VisualStudio6\\VC98\\INCLUDE;c:\\VWE\\build-env\\VisualStudio6\\VC98\\MFC\\INCLUDE;c:\\VWE\\build-env\\VisualStudio6\\VC98\\ATL\\INCLUDE"
|
||||
"Library Dirs"="c:\\VWE\\build-env\\VisualStudio6\\VC98\\LIB;c:\\VWE\\build-env\\VisualStudio6\\VC98\\MFC\\LIB"
|
||||
"Source Dirs"="c:\\VWE\\build-env\\VisualStudio6\\VC98\\MFC\\SRC;c:\\VWE\\build-env\\VisualStudio6\\VC98\\MFC\\INCLUDE;c:\\VWE\\build-env\\VisualStudio6\\VC98\\ATL\\INCLUDE;c:\\VWE\\build-env\\VisualStudio6\\VC98\\CRT\\SRC"
|
||||
"Path Dirs"="c:\\VWE\\firestorm\\build-env\\VisualStudio6\\Common\\MSDev98\\Bin;c:\\VWE\\firestorm\\build-env\\VisualStudio6\\VC98\\BIN;c:\\VWE\\firestorm\\build-env\\VisualStudio6\\Common\\TOOLS;c:\\VWE\\firestorm\\build-env\\VisualStudio6\\Common\\TOOLS\\WINNT;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem"
|
||||
"Include Dirs"="c:\\VWE\\firestorm\\build-env\\DXMedia\\INCLUDE;c:\\VWE\\firestorm\\build-env\\dx7asdk\\INCLUDE;c:\\VWE\\firestorm\\build-env\\VisualStudio6\\VC98\\INCLUDE;c:\\VWE\\firestorm\\build-env\\VisualStudio6\\VC98\\MFC\\INCLUDE;c:\\VWE\\firestorm\\build-env\\VisualStudio6\\VC98\\ATL\\INCLUDE"
|
||||
"Library Dirs"="c:\\VWE\\firestorm\\build-env\\VisualStudio6\\VC98\\LIB;c:\\VWE\\firestorm\\build-env\\VisualStudio6\\VC98\\MFC\\LIB"
|
||||
"Source Dirs"="c:\\VWE\\firestorm\\build-env\\VisualStudio6\\VC98\\MFC\\SRC;c:\\VWE\\firestorm\\build-env\\VisualStudio6\\VC98\\MFC\\INCLUDE;c:\\VWE\\firestorm\\build-env\\VisualStudio6\\VC98\\ATL\\INCLUDE;c:\\VWE\\firestorm\\build-env\\VisualStudio6\\VC98\\CRT\\SRC"
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user