Register Descent 3 in the product catalog

Single GameClient entry (no {res}: D3 takes -width/-height, resolution
pinned to the pod main screen; no supervisor: single process). Args boot
straight into the campaign first level for phase-0 free flight; they
change to -venue once the D3_VENUE Munga build ships. LC/MR keys
...971/...972 reserved. Catalog diff tests updated (21 passing).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-30 08:11:46 -05:00
co-authored by Claude Fable 5
parent ad6f566834
commit 8d6c1e7881
2 changed files with 39 additions and 2 deletions
+21
View File
@@ -121,6 +121,27 @@
hostType="None" />
</Product>
<!-- Descent 3 (open-source engine + site-owned GOG assets; C:\VWE\Descent3
repo, venue\pack-dist.ps1 builds the package). Pod input arrives through
the RIOJoy "Descent 3" profile (RioGamepad HID), merged by the package's
postinstall. No {res} token: D3 takes -width/-height, not " -res W H" -
resolution is pinned to the pod main screen. Single process, no
supervisor; kill = terminate Descent3.exe. The args boot straight into
the campaign's first level (phase-0 free flight); when the D3_VENUE
Munga build lands, args change to "-venue -nointro{res} -framecap 60"
and LC/MR role entries get added (keys ...971/...972 reserved). -->
<Product id="B7E6D3A0-52C4-4F19-9A8E-6D40C1F2A970"
name="Descent 3"
menuText="Descent 3..."
hostTypeDialog="false">
<Launch key="B7E6D3A0-52C4-4F19-9A8E-6D40C1F2A970"
displayName="Descent 3"
exe="C:\Games\Descent3\Descent3.exe"
args="-pilot pod -nointro -nooutragelogo -fullscreen -width 800 -height 600 -framecap 60 -mission d3 -loadlevel 1"
autoRestart="true"
hostType="None" />
</Product>
<!-- TeslaRel410 - the DOSBox-X preservation pods (C:\VWE\TeslaRel410 repo).
The package (emulator\dist\TeslaPod410.zip, built by deploy\package.ps1)
extracts to C:\Games (postinstall.bat + TeslaPod410\); pod-launch.exe is
@@ -25,8 +25,8 @@ namespace TeslaConsole.DiffTests
=> _fx.Recovered.Run("CatalogEntry", new[] { _catalog, launchKey, w, h });
[Fact]
public void Catalog_Has_Five_Products_And_Fourteen_Entries()
=> Assert.Equal("products=5;entries=14",
public void Catalog_Has_Six_Products_And_Fifteen_Entries()
=> Assert.Equal("products=6;entries=15",
_fx.Recovered.Run("CatalogSummary", new[] { _catalog }));
[Fact]
@@ -101,6 +101,22 @@ namespace TeslaConsole.DiffTests
@"BattleTech 4.11 MR|f4c957fd-72f7-4c5f-8971-28095007e8d1|C:\Games\BT411\btl4.exe|-net 1501 -mr|C:\Games\BT411|True",
Entry("F4C957FD-72F7-4C5F-8971-28095007E8D1"));
// Descent 3 — open-source engine + site GOG assets (C:\VWE\Descent3 repo,
// venue\pack-dist.ps1 package). Single GameClient entry, resolution pinned
// in args ({res} absent — D3 takes -width/-height, not " -res W H").
[Fact]
public void Descent3_Matches_Expected()
=> Assert.Equal(
@"Descent 3|b7e6d3a0-52c4-4f19-9a8e-6d40c1f2a970|C:\Games\Descent3\Descent3.exe|-pilot pod -nointro -nooutragelogo -fullscreen -width 800 -height 600 -framecap 60 -mission d3 -loadlevel 1|C:\Games\Descent3|True",
Entry("B7E6D3A0-52C4-4F19-9A8E-6D40C1F2A970"));
[Fact]
public void Descent3_Resolution_Choice_Has_No_Effect()
=> Assert.Equal(
@"Descent 3|b7e6d3a0-52c4-4f19-9a8e-6d40c1f2a970|C:\Games\Descent3\Descent3.exe|-pilot pod -nointro -nooutragelogo -fullscreen -width 800 -height 600 -framecap 60 -mission d3 -loadlevel 1|C:\Games\Descent3|True",
Entry("B7E6D3A0-52C4-4F19-9A8E-6D40C1F2A970", "1024", "768"));
// TeslaRel410 — the DOSBox-X preservation pods. All six entries launch
// pod-launch.exe; the mode arg ("bt"/"rp") selects the game, LC/MR boot
// identically (the console assigns the role via the egg hostType), and