Inverting the capture↔part question (invert_capture over one container, vcount_index over all 166) identifies every large draw in the 2026-07-31 capture: the player's own DeltaSaber (10891 verts), its weapon packs, the backdrop and particles. Of f101/e105/e106 only 1-3 of 15-37 resources have a drawn vcount, each a 44-225-vertex far-LOD/effect piece whose count collides with dozens of unrelated resources. So the zero-correlation was not an LOD-list gap, not over-strict position validation and not a different draw path: the ships were too far away to be drawn. approach_capture.py flies at a locked capital ship and presses F10 per range band, stamping each capture with its distance. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
46 lines
2.0 KiB
Bash
Executable File
46 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# ONE blocking session: boot -> Stage 02 in flight -> fly AT a capital ship and
|
|
# dump an F10 draw capture at each distance band (approach_capture.py).
|
|
#
|
|
# Supersedes ship_capture_session.sh for correlation work: that one pressed F10
|
|
# wherever the craft happened to be, and the 2026-07-31 run proved that captures
|
|
# nothing — inverting the match showed no capital-ship hull was drawn in any of
|
|
# those frames, only the player's own craft and particles. Range is the variable
|
|
# that matters, so range is what this controls.
|
|
#
|
|
# Usage: ship_capture_close.sh [seconds] [out_dir] [target_regex]
|
|
set -u
|
|
export HOME=/sylph-home/re SDL_AUDIODRIVER=dummy DISPLAY=:98
|
|
export PYTHONPATH=/sylph-home/.local/lib/python3.12/site-packages
|
|
SD="$(cd "$(dirname "$0")" && pwd)"
|
|
SECS="${1:-240}"
|
|
OUT="${2:-/sylph-home/re/shipcap-close}"
|
|
TARGET="${3:-}"
|
|
BINDIR="/home/fabi/RE - Project Sylpheed/xenia-canary-native/build/bin/Linux/Release"
|
|
CFG=/tmp/nav-close.json
|
|
mkdir -p "$OUT"
|
|
rm -f "$BINDIR"/xenia_ship_capture_*.log "$OUT"/approach-bands.jsonl
|
|
|
|
"$SD/launch_mission.sh" fly || { echo "BOOT FAILED"; exit 1; }
|
|
python3 "$SD/entities2.py" self 0x130 "$CFG" || { echo "BIND FAILED"; exit 1; }
|
|
echo "--- config: $(cat "$CFG")"
|
|
|
|
# F10 goes to the emulator window through XTEST; the window must be focused.
|
|
win="$(xdotool search --class -- xenia | tail -1)"
|
|
[ -z "$win" ] && win="$(xdotool search --name -- Xenia | tail -1)"
|
|
echo "WINDOW=$win"
|
|
[ -n "$win" ] && { xdotool windowactivate "$win" 2>/dev/null; xdotool windowfocus "$win" 2>/dev/null; }
|
|
|
|
export SYLPH_CAPTURE_WIN="$win" SYLPH_CAPTURE_OUT="$OUT"
|
|
if [ -n "$TARGET" ]; then
|
|
python3 "$SD/approach_capture.py" "$CFG" "$SECS" --target "$TARGET" 2>&1 | tail -80
|
|
else
|
|
python3 "$SD/approach_capture.py" "$CFG" "$SECS" 2>&1 | tail -80
|
|
fi
|
|
|
|
sleep 2
|
|
cp -v "$BINDIR"/xenia_ship_capture_*.log "$OUT"/ 2>/dev/null
|
|
echo "--- bands ---"; cat "$OUT/approach-bands.jsonl" 2>/dev/null
|
|
grep -c '^DRAW' "$OUT"/xenia_ship_capture_*.log 2>/dev/null
|
|
echo "CLOSE CAPTURE SESSION DONE"
|