Lane SV recovered the script-object subsystem statically and predicted that
SVSOSwarmQueen::RegisterHives takes one RNG_NextInt per new hive inside
StrategyServer::BeginProcessTurn -- which runs inside lane Z's autosave bracket
and outside every one of its subtotals, so a draw there had never been
attributed by anything.
Five nested trace hooks, each declaring the strategic generator as a region and
each carrying a model evaluated at entry so the record can disagree with it:
StrategyServer::BeginProcessTurn the unhooked interval, plus a region
over Frame so the increment is a fact
SVSOSwarmQueen::OnTurnBegin evt 0x13, vtable slot +0x60
SVSOSwarmQueen::RegisterHives predict_new_hives from the original's
own two predicates; reads the LO/HI
config pointers live
SVSOSwarmQueen::TickHives the NextQ slip and its three gates
SVSOSlaversRefuel::UpdateDifficultyTier tail phase 20; a 4-byte region over
CDiff so a store and its ABSENCE are
distinguishable (method rule 20)
Also watch.mode=snlv: one arming line moves slot 1 from the NVO map's _Mysize to
the target system's SnLv, and the arming sweep now prints SnLv with its decoded
per-player 2-bit levels for every system, which costs no debug register.
Measured on VM140: hive creation costs 2 words in BeginProcessTurn and the
residual outside the two turn drivers is 2, not 0; the next turn it is 0 again.
LO=20 HI=30. Spica's SnLv reads 0x200 with AFlags 0. The oracle reproduced
byte for byte with every one of these detours live.
Predictions and outcomes: docs/L1-predictions.md.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ARBgSooAfokKUy6wKUKEyZ
29 lines
1.2 KiB
Text
29 lines
1.2 KiB
Text
# Lane L1: lane W3's watchpoint arming with ONE LINE CHANGED -- slot 1 moves from the NVO map's
|
|
# _Mysize to the target system's SnLv (ServerSystem+0x24). `nvo-tshn-visible-owner.md` §6 says that
|
|
# is exactly what settles "the sensor branch is what refreshes Spica", which is a hypothesis today
|
|
# because SnLv is not serialised and has never been measured.
|
|
#
|
|
# The arming sweep also now prints SnLv and its decoded per-player 2-bit levels for EVERY system,
|
|
# which costs no debug register, so one run answers the Spica question and the Bismol question
|
|
# together.
|
|
#
|
|
# Identical to shim.cfg.l1control except for the single key `watch=`, so the pair is a real rule-19
|
|
# control.
|
|
hooks=trace
|
|
hook.Shim::SelfTest::Fill=off
|
|
hook.Mars::GlobalConsts::LoadFile=off
|
|
hook.Game::WeaponDictionary::Init=off
|
|
hook.Game::SectionDictionary::SectionDictionary=off
|
|
hook.Game::StrategyServer::ProcessFleetMovement=off
|
|
hook.Game::TechTree::ProcessResearch=trace
|
|
hook.Game::ServerPlayer::ComputeBudget=trace
|
|
hook.Game::ServerPlayer::OnTechResearched=trace
|
|
hook.Game::ServerSystem::ProcessTurn=trace
|
|
hook.Game::StrategyServer::MoveFleet=trace
|
|
trace.path=C:\SOTS\shim.trace.jsonl
|
|
trace.inline_max=256
|
|
trace.flush=always
|
|
watch=off
|
|
watch.players=2
|
|
watch.mode=snlv
|
|
watch.out=C:\SOTS\shim.watch.txt
|