diff --git a/emulator/pod-launch/README.md b/emulator/pod-launch/README.md index 7a62083..aacc7ef 100644 --- a/emulator/pod-launch/README.md +++ b/emulator/pod-launch/README.md @@ -39,32 +39,65 @@ installed: dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true ``` -## Usage +## Console argument reference -``` -pod-launch [mode] [options] -``` +`pod-launch [mode] [options]` — the single installed entry-point. The product is +installed once; the console activates features by the args it passes. The per-rig +layout is fixed at `postinstall` time, so a typical call is just `pod-launch bt` +(± `--no-sound`). -**Modes** (the console's ExitCodeID vocabulary → a launch): `bt` → `net_loop.conf`, -`rp` → `net_rp.conf` (supported). `bt`/`rp` also serve the **camera ship** and -**live mission-review** roles — the console assigns those per-IP via the egg -`hostType`, so they're *not* separate modes (see `../CAMERA-REVIEW-NOTES.md`). -`review` (playback of `last.spl`) and the diagnostics (`test-plasma`, -`reset-rio`, `audio-test`) are recognized but fail clean (exit 3 + reason) until -their DOS launch mechanics are confirmed. +### Mode — the primary feature selector (positional, or `--mode `) -Paths resolve relative to `--root` (default: the exe's own dir = the deployed -game dir), with dev fallbacks so the same exe runs against the `emulator/` tree: +| Arg | Activates | Status | +|---|---|---| +| `bt` | BattleTech, networked cockpit (`net_loop.conf`, looped) | wired | +| `rp` | Red Planet, networked cockpit (`net_rp.conf`, looped) | wired | +| `review` | mission-review PLAYBACK of `last.spl` | recognized, exits 3 (DOS arg TBD) | +| `test-plasma` | plasma-display diagnostic | recognized, exits 3 | +| `reset-rio` | RIO reset diagnostic | recognized, exits 3 | +| `audio-test` | audio test diagnostic | recognized, exits 3 | + +Camera ship and LIVE mission-review are **not** modes — same `bt`/`rp` boot; the +console sets the role per-IP via the egg `hostType` (0 pod / 1 camera / 2 review), +see `../CAMERA-REVIEW-NOTES.md`. Default mode: `bt`. + +### Feature toggles + +| Arg | Effect | +|---|---| +| `--no-sound` | skip the ~4-min AWE32 SoundFont upload (fast boot, no audio) | +| `--mipmap` | mip-filter minified textures (fixes RP floor shimmer; non-authentic) | +| `--layout cockpit\|explode` | `cockpit` = borderless VDB head windows (default); `explode` = 7-window debug | +| `--no-bridge` | pod only, no GL render window | +| `--no-focus` | skip the renderer-topmost / DOSBox-focus pass | + +### Window placement (per-rig; normally fixed, overridable per-launch) + +| Arg | Effect | +|---|---| +| `--bridge-pos x,y` | main render window position (default `0,0`) | +| `--bridge-size w,h` | main render size (default `800,600`) | +| `--dosbox-xy x,y` | DOSBox window position + focus (default `10,10`) | + +### Path / asset overrides (dev / edge — `postinstall` already wires these) + +`--root ` · `--conf ` · `--dosbox ` · `--renderer ` · +`--bridge-script ` · `--awe-rom ` · `--work ` + +### Diagnostics + +`--dry-run` (resolve + print the launch plan, don't launch) · `-h` / `--help` ``` pod-launch bt --root C:\VWE\TeslaRel410\emulator --dry-run ``` -`--dry-run` prints the resolved plan (dosbox / conf / renderer / work / layout) -without launching — use it to validate a rig's layout. Key flags: `--layout -cockpit|explode`, `--no-sound`, `--mipmap`, `--dosbox-xy x,y`, `--bridge-pos -x,y`, `--renderer ` (frozen renderer; else falls back to `pyw -live_bridge.py`). `-h` for the full list. +### Exit codes the console reads back + +- **normal run** → returns **DOSBox's exit code** = the game's **`ExitCodeID`**, + passed straight through (the same remote-ops code the pod loop dispatched on). +- **`2`** → bad arguments (usage on stderr). +- **`3`** → recognized mode not yet wired (reason on stderr). ## Deploy layout it expects (under the game dir / `--root`)