Torch's fetched copy satisfies libultraship today, so the install steps
are redundant -- but that rests on torch declaring tinyxml2 with an
unconditional OVERRIDE_FIND_PACKAGE, which is an implementation detail,
and one we've asked upstream to reconsider in Torch#233. If the fetch
gets gated, find_package needs a system copy again and CI would break
because we removed the steps providing it.
Also notes that the generate-soh-otr slim-down was written before the
prebuilt archive, which makes that job build nothing for now.
Vanilla then MQ extracted in one process, both loaded and played. Closes
PLAN.md risk #6 in the game rather than only against the harness driver,
and confirms config.yml-driven archive naming end to end.
Adds torch-migration/PHASE0.md with the full gate detail: what each gate's
variable is, the driver source, exact commands, cost, and exit criteria.
Two gates the plan was missing:
- Gate C (Release build) - the harness 14/14 is a Debug measurement; CI
and releases build -O3.
- Gate A2 (two extractions in one process) - free once the driver exists,
retires the re-entrancy risk offline instead of by hand in the game.
Also: gates run full-tree + check.sh rather than test_assets.py (which
hardcodes the torch path and copies a filtered yml subset), 19 ROM dumps
not 17, and libgfxd being USE_STANDALONE-only is called out as the real
hazard in Gate A.
- Name the actual repo (briaguya0/soh-asset-yml); it holds yml only, and is
edited directly rather than regenerated. zapd_to_torch.py is a one-shot
conversion, not an ongoing workflow, since nobody edits the ZAPD XMLs once
ZAPD is gone.
- Phase 5 is pure deletion. Generator inputs are already preserved by the
harness's shipwright@95d8f7e submodule pin and by git history, so nothing
needs snapshotting or moving out of Shipwright.
- Clarify soh/CMakeLists.txt:107-109 as a configure-soh-directly fallback with
nothing left to fall back to.
- Downgrade the extraction wall-clock risk; perf work landed in Torch#219.
Co-Authored-By: Claude <noreply@anthropic.com>