4.10 literal-source campaign: manifest DP upgrade, Route A closed, toolchain facts
- manifest410.py: monotone-DP TU labeling (data-cluster affinity + CLASSMAP seeds + recon @addr soft votes) replaces naive fill; BT region = 917 fn / ~230 KB, extents match every independently-known TU boundary. - source-completeness: ROUTE A CLOSED (Nick holds no further assets); toolchain = BC++ 4.52 PROVEN by CW32.LIB byte-match, archived at TeslaRel410/BORLAND; OPT.MAK = the shipped binary's exact recipe; extender corrected to Borland PowerPack DPMI32 (was "Phar Lap TNT"); "all BT headers survive" corrected (17/36 bt-side; mech.hpp etc. reconstruction-only); engine gaps enumerated (vdata.hpp first, back-dated from BT412). - phases/phase-03: rounds 1-3 of the source410 campaign - 6/10 surviving originals compile clean under BC4.52; console wire IDs recovered from the binary ctors (Killed=9 Damaged=10 ScoreUpdate=13 DWH=15 [T1], TeamScore guessed 12 [T4] - answers the TeslaSuite console-port spec's open item); round-3 finding: MECH.HPP is the capstone grown with the mech TU reconstructions, BTREG.CPP green = the header-family milestone. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -13,11 +13,13 @@ would resolve it, status. Deferred ≠ broken — most are marked-and-guarded st
|
||||
authentic path scoped.
|
||||
|
||||
## From Nick (external — gating for some paths)
|
||||
- **[GATING] The BT game SOURCE CODE** — the missing implementation `.cpp` (mech, subsystems,
|
||||
mapper, HUD, app; see [[source-completeness]]). Without it, Route A (recompile original) is
|
||||
impossible; we reconstruct from the binary instead. Likely on a backup/dev drive. Status: OPEN.
|
||||
- Confirmation the PodPC image is the complete content master. (Low priority — the runtime
|
||||
`BTL4.RES` already has 8 maps + the full mech anim set.) Status: OPEN.
|
||||
- ~~**[GATING] The BT game SOURCE CODE**~~ **CLOSED 2026-07-19: per the user, Nick holds NO
|
||||
assets beyond what has already been provided.** Route A (recompile original) is permanently
|
||||
off; the decomp reconstruction ([[source-completeness]]) is THE route — behavioral in
|
||||
`game/reconstructed/`, literal in `TeslaRel410/restoration/source410/`. Asset-type asks below
|
||||
are likewise closed; knowledge/lore asks (throttle detents, pod procedures) remain valid.
|
||||
- ~~Confirmation the PodPC image is the complete content master~~ **CLOSED 2026-07-19** (no
|
||||
further assets exist; the runtime `BTL4.RES` with 8 maps + full anim set is the master we have).
|
||||
- Pod specifics for Phase 8: the 7-monitor driver setup, the RIO cockpit I/O protocol, current
|
||||
Win10+wrapper pod config. Status: OPEN.
|
||||
- **Did the pod throttle quadrant have MECHANICAL detents** (how many / lever positions)? The
|
||||
|
||||
@@ -6,7 +6,7 @@ source_sections: "PROGRESS_LOG.md §5a; docs/BT_SOURCE_STATUS.md"
|
||||
related_topics: [wintesla-port, reconstruction-method, decomp-reference, open-questions]
|
||||
key_terms: [BTL4OPT, decomp, oracle, WinTesla, BT]
|
||||
open_questions:
|
||||
- "Get the missing BT .cpp from Nick (gating for Route A)"
|
||||
- "Backfill the missing 1995 engine headers/TUs (vdata.hpp first) by back-dating the WinTesla/BT412 versions — the compile-closure blocker"
|
||||
---
|
||||
|
||||
# Source Completeness — the gating blocker
|
||||
@@ -15,27 +15,76 @@ The archive has the **engine and all headers, but NOT the BT game's implementati
|
||||
This is THE gating fact that shapes the whole project. Full map: `docs/BT_SOURCE_STATUS.md`.
|
||||
|
||||
## What's present vs missing (verified across all 3 zips + the WinTesla archive)
|
||||
- **MUNGA engine** (shared): ~183 `.cpp` — largely complete (renderer, MOVER/JMOVER, math, scene). [T1]
|
||||
- **All BT game `.hpp` headers** present — every class/interface defined (the reconstruction's "answer key"). [T1]
|
||||
- **MUNGA engine** (shared): ~183 `.cpp` — largely complete (renderer, MOVER/JMOVER, math, scene),
|
||||
BUT NOT gapless: a 2026-07-19 header-vs-impl audit + compile bootstrap found missing engine
|
||||
`.cpp` (PLAYER, NETWORK, GRAPH2D, OBJSTRM, SCNROLE, EXPLODE, L4SPLR, L4APP + ~15 smaller) AND at
|
||||
least one missing engine HEADER (`vdata.hpp`, included by plug.hpp — exists only as the drifted
|
||||
WinTesla/BT412 `VDATA.h`). `CODE/BT/MUNGA` is a PARTIAL BT-drift overlay (69 files) over the
|
||||
fuller `CODE/RP/MUNGA` (305); a 1995 build needs the merged BT-over-RP view. [T1]
|
||||
- **BT game `.hpp` headers: PARTIAL, not complete** (2026-07-19 correction — the old "all headers
|
||||
present" claim was WRONG): only 17 of ~36 bt-side `.hpp` survive (mech.hpp, mech2-4, heat.hpp,
|
||||
mechmppr.hpp, torso.hpp, gyro.hpp, hud.hpp, myomers.hpp, powersub.hpp, btplayer.hpp are
|
||||
reconstruction-only), and BTL4VID.HPP/BTL4MPPR.HPP are missing on the btl4 side. `BT.HPP`'s
|
||||
`NO_PRECOMPILED_HEADERS` gate skips the missing mech/btplayer/mechsub includes, which is why
|
||||
TUs outside the mech family still compile-close. [T1]
|
||||
- **BT game logic `.cpp`: MISSING** — `mech`, `mech2/3/4`, `mechsub`, `mechmppr`, `mechtech`, `heat`,
|
||||
`sensor`, `gyro`, `torso`, `myomers`, `hud`, `mechweap`, `powersub`, `btplayer`, and the main app
|
||||
`btl4` are all absent. Only ~10 BT `.cpp` survive (BTCNSL/BTMSSN/BTREG/BTSCNRL/BTTEAM/BTTOOL +
|
||||
GAUSS/PPC + BTL4ARND/BTL4MODE). [T1]
|
||||
- **RP can't backfill BT** — RP's game source is gutted the same way. The per-game source for BOTH
|
||||
titles is missing; only shared *engine* game-logic survives. A complete repo likely exists
|
||||
elsewhere (Nick). [T1]
|
||||
- **RP can't backfill BT** — RP's game source is gutted the same way; only shared *engine*
|
||||
game-logic survives. [T1]
|
||||
|
||||
## Consequence — routes forward
|
||||
Route A (recompile original source) is **impossible as-is** — the code that IS the game isn't here.
|
||||
Paths: (1) **get the missing `.cpp` from Nick** [gating, top priority]; (2) run `btrel410.exe` under
|
||||
DOSBox by emulating the VPX/IG board (blocked — needs board emulation); (3) **decompile
|
||||
`BTL4OPT.EXE` + reconstruct from headers** — the chosen route (in progress). [T2]
|
||||
**Route A is CLOSED (2026-07-19): per the user, Nick holds NO assets beyond what's already been
|
||||
provided.** The decompile-and-reconstruct route is THE route: (behavioral) the WinTesla-hosted
|
||||
port in `game/reconstructed/`, and (literal) `TeslaRel410/restoration/source410/` — both fed by
|
||||
the decomp + the manifest. [T1]
|
||||
|
||||
## The binary is a near-ideal decompile target
|
||||
`btrel410.exe` is a PKZIP self-extractor; inside is **`BTL4OPT.EXE`** (1.24 MB, clean uncompressed
|
||||
PE32, Phar Lap TNT). It retains **class names, `Class::Method` strings, and source-file paths in
|
||||
asserts** (`d:\tesla_bt\bt\mech.cpp`) — confirming the missing modules ARE in the binary. No COFF
|
||||
symbol table (naming comes from those strings). Extracted to `reference/decomp/`. [T1]
|
||||
PE32). CORRECTION (2026-07-19 [T1]): the DOS-extender is **Borland PowerPack DPMI32**, not Phar
|
||||
Lap TNT — proven by `OPT.MAK` (`-Tpe`, STARTUP `c0x32.obj + dpmi32.lib + cw32.lib`) + the archived
|
||||
`32STUB.EXE`/`32RTM.EXE`/`DPMI32VM.OVL`. It retains **class names, `Class::Method` strings, and
|
||||
source-file paths in asserts** (`d:\tesla_bt\bt\mech.cpp`) — confirming the missing modules ARE in
|
||||
the binary. No COFF symbol table (naming comes from those strings). Extracted to
|
||||
`reference/decomp/`. [T1]
|
||||
|
||||
## THE TOOLCHAIN IS IN HAND (2026-07-19) [T1]
|
||||
**Borland C++ 4.52** identified by BYTE-MATCH: the archived fleet `CW32.LIB` (`CODE/RP`) is
|
||||
identical to the 4.52 install's and differs from 4.5's. Installed at `TeslaRel410/BORLAND/BC45/`
|
||||
(the 4.5 CD was disposed per the user). BCC32/TLINK32/TLIB/MAKE all run NATIVELY on Win11
|
||||
(hello-world compiled+linked+ran). **`CODE/BT/OPT.MAK` is the shipped binary's exact recipe**:
|
||||
`BCC = bcc32` (NOT bcc32i — that was only EXAMPLE.CFG), `-DLBE4;DEBUG_LEVEL=0;DEBUG_STREAM=cout`,
|
||||
`-5 -a4 -ff -k- -V -Jg -x- -RT- -O2 -Ot -Oc -Og -O -Ol -Z -Ob -Oe -Oi -Om -Op -Ov`, PCH via
|
||||
`-H=btopt.csm`; link `-Tpe -ax` + c0x32/dpmi32/cw32. Gaps: TASM32 absent (separate product;
|
||||
only JOYSTICK.ASM needs it); compile bootstrap of original BTL4MODE.CPP parses deep into the real
|
||||
headers but stops at the missing `vdata.hpp` closure (see What's-missing above). Source paths for
|
||||
a build: include order = `CODE/BT/*` OVER `CODE/RP/*` (BT drift wins), roots per `BTL4.PTH` /
|
||||
`EXAMPLE.CFG` (all under the archive: LIBDPL/SOS/NETNUB in `CODE/BT/MUNGA_L4/`). [T1]
|
||||
|
||||
## The mountain, measured (2026-07-18) — the per-TU manifest
|
||||
`tools/manifest410.py` → **`reference/BT410_SOURCE_MANIFEST.md`**: every image function
|
||||
attributed to its original TU via the makefile link order (BT.MAK/BTL4.MAK — census + the
|
||||
tlink32 lib order), Fail() path+line anchors, CLASSMAP seeds, and a monotone-in-link-order DP
|
||||
over data-section cluster affinity. **The missing BT game code = 917 functions / ~230 KB**
|
||||
(bt.lib 482 fn/153 KB + btl4.lib 435 fn/76 KB) out of 6267 image functions; DP extents match
|
||||
every independently-known TU boundary. [T1 region totals / T3 unanchored boundaries]
|
||||
Corrections/leads: the **`.TCP` files are TEST-CLASS files** (debug self-test bodies with
|
||||
SOME shipped code — minor partial survivors for heat, gnrator, emitter, projweap, ammobin,
|
||||
projtile, missile); toolchain = **Borland BCC/tlib/tlink32** (from the makefiles;
|
||||
`TeslaRel410/BORLAND/` placeholder is EMPTY — no byte-match compiler archived yet, though
|
||||
`CODE/RP` keeps C0X32.OBJ/CW32.LIB/32STUB.EXE); `TeslaRel410/sda4` + `CODE/` swept — NO BT
|
||||
`.cpp` there; PVCS conventions (sda4 install) ⇒ **`.CPV`/`.HPV`/`.TCV` are the grep
|
||||
targets** for future drive dumps. Full log: `phases/phase-03-bt410-source-manifest.md`.
|
||||
|
||||
## The literal 4.10 tree — `TeslaRel410/restoration/source410/` (started 2026-07-18)
|
||||
The archival-grade recreation of the missing TUs in 1995 house style against the surviving
|
||||
1995 engine headers (distinct from OUR WinTesla port). Rules + status in its README; every
|
||||
file carries a `.NOTES.md` evidence sidecar; binary `Fail()` file:line records are treated
|
||||
as LINE CONSTRAINTS. **Pilot complete: `BT_L4/BTL4APP.CPP`** — 12/12 functions, all decomp
|
||||
constants resolved to named 1995 expressions (`ApplicationID` BTL4=1 + an unreleased `BTW4`
|
||||
slot in APPMSG.HPP; `ModeInitial`=0x50421; `AddModeMask` inlines byte-exact), Fail lands on
|
||||
its recorded line 400 exactly. [T1/T3 per the sidecar]
|
||||
|
||||
## Why reconstruction is viable (THREE anchors)
|
||||
1. **All BT headers** = exact class layouts, vtable order, signatures (the answer key).
|
||||
@@ -47,5 +96,5 @@ behavior-equivalent **reconstruction**, NOT original source. [T2]
|
||||
|
||||
## Key Relationships
|
||||
- Feeds: [[reconstruction-method]] (the loop that fills the gap), [[decomp-reference]].
|
||||
- Gated on: [[open-questions]] (get the source from Nick).
|
||||
- Route A closed 2026-07-19 (Nick holds nothing further); gated now only on reconstruction labor + the engine-closure backfill.
|
||||
- Built atop: [[wintesla-port]].
|
||||
|
||||
Reference in New Issue
Block a user