CydandClaude Fable 5 85595b8c52 Console: fix volume menu check-mark off-by-one (original 4.11.3 bug)
mnuVolume_DropDownOpening checked the item where i+1 == num/10, but the
items are index=level (rVolumeItems[0]="mute", [8]="80"), so the mark
sat one step below the reported volume and mute (0) never got a mark.
Set path was always correct — display only. Now checks i == num/10.

Faithful reproduction of a bug in the original decompiled console;
fixed here. Verified live: console reports 80 -> "80" checked, mute ->
"mute" checked, against vPOD. 106/106 diff tests unaffected.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 22:06:37 -05:00

TeslaSuite

The Tesla cockpit-pod software, in one repository:

Folder What it is Target
Console/ TeslaConsole — the operator console (WinForms) that configures and drives the pods. A decompiled reconstruction of the original TeslaConsole.exe (now the modernized 4.11.4.x line), with a differential test suite pinning it to the original 4.11.3.37076 baseline. .NET Framework 4.0
Launcher/ TeslaLauncher — the pod-side launcher: ONE userland tray app (RPC listener + app launcher). A clean rewrite of the original; the old Service+Agent split (a Session 0 workaround) is gone. .NET Framework 4.0
Contract/ Tesla.Contract — the shared Console↔Launcher RPC contract: wire types, the client, and the framed-JSON protocol. Emits assembly TeslaConsoleLaunchLib. .NET Framework 4.0
SecureConfig/ Tesla.SecureConfig — the first-boot pod provisioning protocol (UDP beacons, OFB crypto, RSA key exchange). Emits assembly TeslaSecureConfiguration. .NET Framework 4.0
vPOD/ vPOD — a virtual pod for testing the consoles without cockpit hardware: impersonates both the game client (Munga, TCP 1501) and the pod's TeslaLauncher (provisioning + Site Management / Install Product on TCP 53290). .NET Framework 4.0

Everything targets net40 on purpose (the XP11 port, v4.11.4.3): it is the newest .NET Framework that installs on Windows XP SP3, and net40 assemblies run in-place on the 4.8 runtime that ships in Windows 10/11 — so the same binaries cover the original XP-era cockpit PCs and modern hardware. That rules out net45+ APIs (System.Text.Json, ZipFile, async/await, ...); JSON is Newtonsoft, zip extraction is the launcher's own MiniZip.cs.

The console and launcher talk over TCP 53290 using length-prefixed JSON frames over an OFB-encrypted stream (Contract/PodRpcProtocol.cs), dispatched by method name. The wire contract lives in one source project (Contract/) referenced by both sides — a single source of truth, no duplication or hand-syncing.

Note: Red Planet game control uses a separate protocol (Munga, TCP 1501) via the vendored Munga Net.dll — not the RPC channel above. The game itself is C++ and lives in its own repo (gitea.mysticmachines.com/VWE/RP411.git).

Building

dotnet build TeslaSuite.sln -c Release
dotnet test  Console/tests/TeslaConsole.DiffTests     # differential + protocol + crypto guards

Pod deployment: Launcher/build.bat publishes the framework-dependent net40 package into Launcher/dist/ — the launcher itself is tiny, but the package bundles the pod redists (DirectX June 2010, OpenAL, UltraVNC, and dotNetFx40_Full_x86_x64.exe for XP-era pods that don't have .NET 4.0 yet). Launcher/install.bat deploys it on a cockpit PC — dual-OS (XP SP3 and Win10/11 code paths): auto-login, Run-key registration for the single launcher binary, firewall + box hardening. The operator console packages the same way: Console/build-package.batConsole/dist/, installed with Console/install.bat. vPOD packages with vPOD/pack.ps1vPOD/dist/vPOD.zip, deployable to a pod via the console's Install Product (or run directly on any machine).

Release packages for all three are attached to the Gitea releases (latest: v4.11.4.3).

Layout notes

  • Console/original/TeslaConsole.exe — the 4.11.3.37076 reference baseline the differential tests compare against. Keep it.
  • Console/lib/*.dll — the remaining vendored binary dependencies (Munga Net, BitmapLibrary, WeifenLuo docking). The original TeslaConsoleLaunchLib.dll and TeslaSecureConfiguration.dll are also kept here, but only as byte-compatibility test baselines — both are now built from source (Contract/, SecureConfig/).
  • Console/RedPlanet/Apps.xml — the data-driven product catalog (see the console's Site Management → Add Product / Register Product on Pods).

History

The system was modernized in 2026: the duplicated wire contract was extracted to a single source project, BinaryFormatter (an RCE sink, and what pinned the launcher to an old runtime) was replaced with the framed-JSON protocol, and the launcher was rebuilt — briefly on net8/x64, then on net48, then (the XP11 port, v4.11.4.3) the whole suite settled on net40 so one set of binaries runs on the original Windows XP SP3 cockpit hardware and on Windows 10/11 alike. XP11 also merged the launcher's Service+Agent pair — a workaround for Vista+ Session 0 isolation that XP never needed — back into a single userland app, and moved the console's .resx BinaryFormatter bitmaps to raw embedded images (their runtime reader doesn't exist on net40). The whole console↔pod path (provisioning, install, launch) is validated on real pods; the net40 build is bench-validated on Win11's 4.8 runtime (real XP SP3 hardware still pending).

S
Description
No description provided
Readme
151 MiB
Languages
C# 94.9%
Batchfile 2.6%
Python 2.2%
C++ 0.2%
PowerShell 0.1%