findings/subsystems/players-residual.md is the deliverable: every one of the 54
leaves on the reference pair and the 24 on pair 2 attributed to a named
mechanism, with the rung split. 53 of 54 are pass-through -- the block is
unmodelled, not mismodelled, and only player 32's Sav is a number we compute and
get wrong.
Three corrections to the record:
- T31's self-check compared its post-turn result against the pre-turn stored
value, so its 6-of-8 covered only the players whose limit never moves.
- the AI difficulty column IS recoverable from the save, by recomputing BnkEl
under both columns against the value the save carries; 1 AI + 1 non-AI on all
eleven corpus saves.
- BANKRUPTCY_PROTECTION_LIMIT_FACTOR is read fmul dword ptr, so it is a float32
in the image; the decimal disagrees at every max income divisible by ten and
the corpus' seven records land where the two agree (rule 23). formula-gaps Q1
addendum + ghidra/addresses.d/lane-pl.json (3 data entries, fragment validated
to a scratch path, no duplicate names).
verify/results/standalone/{status.json,report.txt} refreshed from a build of main
aabd8a3: the committed copy was stale at 131/55, the real number is 128/54.
T34 RecordObservedDesigns is now readable off the corpus and is NOT an intel
pass: a design's creator registers the design in its own odes, its weapons in
owep, and re-stamps otnL on its techs in otch -- odes on build, otch on creation.
Both are hypotheses until a save exists where a player observes someone else's
design.
Status stays open and is flagged as NOT identifiable: eighteen fields of the
player record split the roster the same way and only two saves carry a non-zero
value. The probe is an entry hook on W2's writer.
198 lines
9.5 KiB
Text
198 lines
9.5 KiB
Text
# standalone vs the oracle
|
||
|
||
generated 2026-09-08T20:04:11Z binary /home/alex/sots-engine-pl/build-host/src/app/sots_turn
|
||
|
||
phases: 16/44 of the two turn drivers modelled, 12 committed (implemented 4, partial 8, blocked 4, stub 28)
|
||
5/37 of the post-combat tail modelled
|
||
|
||
## turn1-state.sav -> turn2-state.sav (real End Turn)
|
||
baseline (do nothing) 209 leaves diverge
|
||
after one standalone turn 128 leaves diverge
|
||
closed 81, regressed 0, byte match: no
|
||
coverage proved on all three saves: {'input': True, 'oracle': True, 'ours': True}
|
||
closed:
|
||
+ /Sim/Frame
|
||
+ /Sim/players/Player[16 "re"]/Sav
|
||
+ /Sim/players/Player[496 "Singularity"]/dipstats/.
|
||
+ /Sim/players/Player[496 "Singularity"]/dipstats/.[0]
|
||
+ /Sim/players/Player[496 "Singularity"]/dipstats/.[1]
|
||
+ /Sim/players/Player[512 "Singularity"]/dipstats/.
|
||
+ /Sim/players/Player[512 "Singularity"]/dipstats/.[0]
|
||
+ /Sim/players/Player[512 "Singularity"]/dipstats/.[1]
|
||
+ /Sim/players/Player[528 "Alien Menace"]/dipstats/.
|
||
+ /Sim/players/Player[528 "Alien Menace"]/dipstats/.[0]
|
||
+ /Sim/players/Player[528 "Alien Menace"]/dipstats/.[1]
|
||
+ /Sim/players/Player[528 "Alien Menace"]/dipstats/.[2]
|
||
+ /Sim/players/Player[528 "Alien Menace"]/dipstats/.[3]
|
||
+ /Sim/players/Player[544 "Peacekeeper Enforcer"]/dipstats/.
|
||
+ /Sim/players/Player[544 "Peacekeeper Enforcer"]/dipstats/.[0]
|
||
+ /Sim/players/Player[544 "Peacekeeper Enforcer"]/dipstats/.[1]
|
||
+ /Sim/players/Player[544 "Peacekeeper Enforcer"]/dipstats/.[2]
|
||
+ /Sim/players/Player[544 "Peacekeeper Enforcer"]/dipstats/.[3]
|
||
+ /Sim/players/Player[560 "Von Neumann"]/dipstats/.
|
||
+ /Sim/players/Player[560 "Von Neumann"]/dipstats/.[0]
|
||
+ /Sim/players/Player[560 "Von Neumann"]/dipstats/.[1]
|
||
+ /Sim/players/Player[560 "Von Neumann"]/dipstats/.[2]
|
||
+ /Sim/players/Player[560 "Von Neumann"]/dipstats/.[3]
|
||
+ /Sim/players/Player[576 "Independent Colony"]/Sav
|
||
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.
|
||
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.[0]
|
||
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.[1]
|
||
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.[2]
|
||
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.[3]
|
||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/EPid
|
||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ETS
|
||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/Eid
|
||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/NVE
|
||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/Pop2/PopG/PopC
|
||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ltis
|
||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ntdev
|
||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/EPid
|
||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ETS
|
||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/Eid
|
||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/NVE
|
||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/Pop2/PopG/PopC
|
||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ltis
|
||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ntdev
|
||
+ /Sim/systems/Sys[304 "Koa’Vo"]/EFlags
|
||
+ /Sim/systems/Sys[304 "Koa’Vo"]/EPid
|
||
+ /Sim/systems/Sys[304 "Koa’Vo"]/ETS
|
||
+ /Sim/systems/Sys[304 "Koa’Vo"]/Eid
|
||
+ /Sim/systems/Sys[304 "Koa’Vo"]/NVE
|
||
+ /Sim/systems/Sys[304 "Koa’Vo"]/ltis
|
||
+ /Sim/systems/Sys[304 "Koa’Vo"]/ntdev
|
||
+ /Sim/systems/Sys[336 "Kaa’Vaalu"]/EFlags
|
||
+ /Sim/systems/Sys[336 "Kaa’Vaalu"]/EPid
|
||
+ /Sim/systems/Sys[336 "Kaa’Vaalu"]/ETS
|
||
+ /Sim/systems/Sys[336 "Kaa’Vaalu"]/Eid
|
||
+ /Sim/systems/Sys[336 "Kaa’Vaalu"]/NVE
|
||
+ /Sim/systems/Sys[336 "Kaa’Vaalu"]/ltis
|
||
+ /Sim/systems/Sys[400 "Markab"]/EFlags
|
||
+ /Sim/systems/Sys[400 "Markab"]/EPid
|
||
+ /Sim/systems/Sys[400 "Markab"]/ETS
|
||
+ /Sim/systems/Sys[400 "Markab"]/Eid
|
||
+ /Sim/systems/Sys[400 "Markab"]/NVE
|
||
+ /Sim/systems/Sys[400 "Markab"]/ltis
|
||
+ /Sim/systems/Sys[448 "Kea’Pono"]/EFlags
|
||
+ /Sim/systems/Sys[448 "Kea’Pono"]/EPid
|
||
+ /Sim/systems/Sys[448 "Kea’Pono"]/ETS
|
||
+ /Sim/systems/Sys[448 "Kea’Pono"]/Eid
|
||
+ /Sim/systems/Sys[448 "Kea’Pono"]/NVE
|
||
+ /Sim/systems/Sys[448 "Kea’Pono"]/ltis
|
||
+ /Sim/systems/Sys[480 "Ko'Rorkor"]/EFlags
|
||
+ /Sim/systems/Sys[480 "Ko'Rorkor"]/EPid
|
||
+ /Sim/systems/Sys[480 "Ko'Rorkor"]/ETS
|
||
+ /Sim/systems/Sys[480 "Ko'Rorkor"]/Eid
|
||
+ /Sim/systems/Sys[480 "Ko'Rorkor"]/NVE
|
||
+ /Sim/systems/Sys[480 "Ko'Rorkor"]/ltis
|
||
+ /Sim/systems/Sys[64 "Hyperion"]/EFlags
|
||
+ /Sim/systems/Sys[64 "Hyperion"]/EPid
|
||
+ /Sim/systems/Sys[64 "Hyperion"]/ETS
|
||
+ /Sim/systems/Sys[64 "Hyperion"]/Eid
|
||
+ /Sim/systems/Sys[64 "Hyperion"]/NVE
|
||
+ /Sim/systems/Sys[64 "Hyperion"]/ltis
|
||
+ /Summary/Turn
|
||
|
||
## turn2-state.sav -> turn3-state.sav (real End Turn)
|
||
baseline (do nothing) 108 leaves diverge
|
||
after one standalone turn 69 leaves diverge
|
||
closed 39, regressed 0, byte match: no
|
||
coverage proved on all three saves: {'input': True, 'oracle': True, 'ours': True}
|
||
closed:
|
||
+ /Sim/Frame
|
||
+ /Sim/players/Player[16 "re"]/Sav
|
||
+ /Sim/players/Player[496 "Singularity"]/dipstats/.[1]/lastally
|
||
+ /Sim/players/Player[512 "Singularity"]/dipstats/.[1]/lastally
|
||
+ /Sim/players/Player[528 "Alien Menace"]/dipstats/.[1]/lastnap
|
||
+ /Sim/players/Player[528 "Alien Menace"]/dipstats/.[2]/lastnap
|
||
+ /Sim/players/Player[528 "Alien Menace"]/dipstats/.[3]/lastnap
|
||
+ /Sim/players/Player[544 "Peacekeeper Enforcer"]/dipstats/.[1]/lastnap
|
||
+ /Sim/players/Player[544 "Peacekeeper Enforcer"]/dipstats/.[2]/lastnap
|
||
+ /Sim/players/Player[544 "Peacekeeper Enforcer"]/dipstats/.[3]/lastnap
|
||
+ /Sim/players/Player[560 "Von Neumann"]/dipstats/.[1]/lastnap
|
||
+ /Sim/players/Player[560 "Von Neumann"]/dipstats/.[2]/lastnap
|
||
+ /Sim/players/Player[560 "Von Neumann"]/dipstats/.[3]/lastnap
|
||
+ /Sim/players/Player[576 "Independent Colony"]/Sav
|
||
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.[1]/lastnap
|
||
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.[2]/lastnap
|
||
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.[3]/lastnap
|
||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ETS
|
||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/Pop2/PopG/PopC
|
||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ltis
|
||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ntdev
|
||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ETS
|
||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/Pop2/PopG/PopC
|
||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ltis
|
||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ntdev
|
||
+ /Sim/systems/Sys[304 "Koa’Vo"]/ETS
|
||
+ /Sim/systems/Sys[304 "Koa’Vo"]/ltis
|
||
+ /Sim/systems/Sys[304 "Koa’Vo"]/ntdev
|
||
+ /Sim/systems/Sys[336 "Kaa’Vaalu"]/ETS
|
||
+ /Sim/systems/Sys[336 "Kaa’Vaalu"]/ltis
|
||
+ /Sim/systems/Sys[400 "Markab"]/ETS
|
||
+ /Sim/systems/Sys[400 "Markab"]/ltis
|
||
+ /Sim/systems/Sys[448 "Kea’Pono"]/ETS
|
||
+ /Sim/systems/Sys[448 "Kea’Pono"]/ltis
|
||
+ /Sim/systems/Sys[480 "Ko'Rorkor"]/ETS
|
||
+ /Sim/systems/Sys[480 "Ko'Rorkor"]/ltis
|
||
+ /Sim/systems/Sys[64 "Hyperion"]/ETS
|
||
+ /Sim/systems/Sys[64 "Hyperion"]/ltis
|
||
+ /Summary/Turn
|
||
|
||
## what still differs on the reference pair, by subsystem
|
||
54 /Sim/players
|
||
32 /Sim/systems
|
||
24 /Sim/turnstats
|
||
8 /Sim/SvSctOb
|
||
1 /Sim/DesignIDs[]
|
||
1 /Sim/FleetIDs[]
|
||
1 /Sim/ModCount
|
||
1 /Sim/NMnx
|
||
1 /Sim/NumFlts
|
||
1 /Sim/RNG
|
||
1 /Sim/ShipIDs[]
|
||
1 /Sim/cmbtid
|
||
1 /Sim/fleets
|
||
1 /Summary/Checksum
|
||
|
||
## first 40 remaining, named
|
||
/Sim/DesignIDs[]: removed [], added [18, 1712] (41 -> 43 entries)
|
||
/Sim/FleetIDs[]: removed [], added [1744] (6 -> 7 entries)
|
||
/Sim/ModCount: 2 -> 12
|
||
/Sim/NMnx: 106 -> 109
|
||
/Sim/NumFlts: 6 -> 7
|
||
/Sim/RNG/.: '<raw 2503 B 9e6887688129a8f6>' -> '<raw 2503 B ef4d678696ed4c53>'
|
||
/Sim/ShipIDs[]: removed [], added [1728] (15 -> 16 entries)
|
||
/Sim/SvSctOb/EncObj[3]/CDiff: -1 -> 0
|
||
/Sim/SvSctOb/EncObj[5]/Hives/.: only-in-A
|
||
/Sim/SvSctOb/EncObj[5]/Hives/.[0]: only-in-B
|
||
/Sim/SvSctOb/EncObj[5]/Hives/.[1]: only-in-B
|
||
/Sim/SvSctOb/EncObj[5]/Hives/.[2]: only-in-B
|
||
/Sim/SvSctOb/EncObj[6]/did: only-in-B
|
||
/Sim/SvSctOb/EncObj[6]/didc: 0 -> 1
|
||
/Sim/SvSctOb/EncObj[6]/ini: False -> True
|
||
/Sim/cmbtid: 1 -> 2
|
||
/Sim/fleets/Flt[1744 "Alpha Fleet"]: only-in-B
|
||
/Sim/players/Player[16 "re"]/BnkEl: -1590613 -> -1594593
|
||
/Sim/players/Player[16 "re"]/BnkPr: -787353 -> -789323
|
||
/Sim/players/Player[16 "re"]/Events/EvNxID: 0 -> 2
|
||
/Sim/players/Player[16 "re"]/Events/Events/.: only-in-A
|
||
/Sim/players/Player[16 "re"]/Events/Events/.[0]: only-in-B
|
||
/Sim/players/Player[16 "re"]/Events/Events/.[EvTurn=2]: only-in-B
|
||
/Sim/players/Player[16 "re"]/Status: 0 -> 4
|
||
/Sim/players/Player[32 "Fane Lao"]/BnkEl: -1811273 -> -1815833
|
||
/Sim/players/Player[32 "Fane Lao"]/BnkPr: -896580 -> -898837
|
||
/Sim/players/Player[32 "Fane Lao"]/Events/EvNxID: 0 -> 2
|
||
/Sim/players/Player[32 "Fane Lao"]/Events/Events/.: only-in-A
|
||
/Sim/players/Player[32 "Fane Lao"]/Events/Events/.[0]: only-in-B
|
||
/Sim/players/Player[32 "Fane Lao"]/Events/Events/.[EvTurn=2]: only-in-B
|
||
/Sim/players/Player[32 "Fane Lao"]/FNG/FNGNum: 0 -> 1
|
||
/Sim/players/Player[32 "Fane Lao"]/Maint: 0 -> 500
|
||
/Sim/players/Player[32 "Fane Lao"]/NumDes: 5 -> 6
|
||
/Sim/players/Player[32 "Fane Lao"]/PvSav: 50000 -> 38100
|
||
/Sim/players/Player[32 "Fane Lao"]/ResRate: 0.25 -> 0.800000011920929 [1.34218e+07 ulp]
|
||
/Sim/players/Player[32 "Fane Lao"]/ResTNm: '' -> 'IND_Waldo'
|
||
/Sim/players/Player[32 "Fane Lao"]/Sav: 298113 -> 92651
|
||
/Sim/players/Player[32 "Fane Lao"]/ShipRecs/srb[0]: 0 -> 1
|
||
/Sim/players/Player[32 "Fane Lao"]/ShipRecs/srb[3]: only-in-B
|
||
/Sim/players/Player[32 "Fane Lao"]/ShipRecs/srbd: 0 -> 1
|