From cdc2c724dbd94598ed551d95e95445746a44d956 Mon Sep 17 00:00:00 2001 From: Cyd Date: Thu, 16 Jul 2026 17:29:27 -0500 Subject: [PATCH] Capture triage: parse-only census of every wire capture capture_triage.py parses each capture's first slice (no emulation) and reports the embedded firmware build, action census, init config, and any actions outside cap7's known-good set. Results: all captures share build 0x31440 + the same init config; ravtest (RAV = the walled terrain map), dtest, cap6/cap8/capture/ sharksval are clean cap7-profile candidates; sdemo/duane/fishspls add morph; bt3/munga7 add act31/43/45/list_remove. cap6's earlier "boot derail" was likely just an under-budgeted run (87K cmds to parse), not a fault. Co-Authored-By: Claude Opus 4.8 --- emulator/firmware-decomp/capture_triage.py | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 emulator/firmware-decomp/capture_triage.py diff --git a/emulator/firmware-decomp/capture_triage.py b/emulator/firmware-decomp/capture_triage.py new file mode 100644 index 0000000..5f31ff1 --- /dev/null +++ b/emulator/firmware-decomp/capture_triage.py @@ -0,0 +1,79 @@ +"""Triage captures for battle-scene replay: for each capture, WITHOUT emulation, +parse the first slice of the wire log and report (a) embedded firmware build header, +(b) action census, (c) the init config string, (d) actions outside cap7's known-good +set. Cheap parse-only pass to pick the best replay candidates.""" +import sys, os, struct +sys.path.insert(0, r'C:\VWE\TeslaRel410\emulator\firmware-decomp') +sys.path.insert(0, r'C:\VWE\TeslaRel410\dpl3-revive\patha') +from vrboard import Assembler, A + +P = r'C:\VWE\TeslaRel410\dpl3-revive\patha' +BOOT = {int(A.hspcode), int(A.code860), int(A.data860), int(A.bss860), int(A.args860)} + +def parse_slice(path, slice_bytes=6_000_000): + with open(path, 'rb') as f: + data = f.read(slice_bytes) + start = None + for i in range(0, len(data) - 8): + w = struct.unpack_from('