alex
0dff4941bd
events: recover the player event-posting API (lane E)
...
Closes B3's oracle gap and B2's known gap. Both milestones write into the
owner's event list; nothing modelled it, so their clean compares bounded the
economy fields only.
Container: EventStorage embedded at ServerPlayer+0x29c (0x1c bytes), verified by
ServerPlayer::GetEventStorage 0x0080db00 whose whole body is 'lea eax,[ecx+0x29c];
ret'. EvNxID at +0x14 == player+0x2b0, exactly the byte run the harness guard
reports. The list is a vector<TurnEvents{int EvTurn; vector<PlayerEvent>}> --
bucketed by turn, not flat, which the save-editor struct note had wrong.
Entry point: int __thiscall EventStorage::PostEvent(this, std::string BY VALUE,
std::string BY VALUE, void* obj, Vector3* pos, int turn, const char* img,
int act), 0x008862b0, RET 0x4c. 161 call sites in 110 functions: this is the
whole simulation's event API, not a research helper. Dedup is per turn bucket on
message/image/location/position/action but NOT summary; act 0 with no subject and
no position is stored as 2; EvNxID starts at 0 and is promoted to 1 on first post;
PruneOldTurns drops buckets older than turn-50 with an off-by-one that always
leaves one stale bucket behind.
Record: 0x74 bytes, EvEID(+4) EvDsc(+8) EvMsg(+0x24) EvLoc(+0x40) EvPos(+0x44)
EvImg(+0x50) EvAct(+0x6c) EvCID(+0x70) -- confirmed field by field against
turn3-state.sav, which contains the EVENT_RESEARCH_OVERBUDGET record itself.
B3's defect is fully explained: 0x00587b97, reached only from the
completion-roll-FAILED branch, under !wasDone && nowDone && owner.
Three note corrections: EvPos defaults to FLT_MAX, not infinity (writing +inf
changes the save bytes); the save array is turn-bucketed, not flat;
EVENT_TECHS_UNLOCKED has no 'parent researched' clause.
56 entries added to ghidra/addresses.json (header regenerated); 11 prototypes,
13 labels, 12 comments and 2 structs written back to the Ghidra project.
2026-09-08 02:47:11 -04:00
alex
3b5eca29a2
reva_call.py: HTTP fallback for Ghidra when the MCP link drops; claim VM140 for recapture lane
2026-09-08 02:12:16 -04:00
alex
ff67ec0d9a
b4 live artifacts; two-base StrategyServer hazard in the contract
2026-09-08 02:07:28 -04:00
alex
b878c4c48f
harness audit merged; qualify B1/B4 claims with the blind spots it found
2026-09-08 01:30:33 -04:00
alex
84a0b7ceae
B2 verified live; record the RollResearchEvent draw as behaviourally unproven
2026-09-08 01:19:47 -04:00
alex
2d1a097b07
board: B4 code-complete with 22 corrections; harness audit lane opened
2026-09-08 00:58:59 -04:00
alex
4d535028ed
b4 static findings: 22 formula corrections, 3 verified signatures, contract -> 324 entries
2026-09-08 00:57:55 -04:00
alex
535d1c3b58
B3 live partial pass; record the undeclared-side-effect-list harness gap
2026-09-08 00:30:32 -04:00
alex
83107f91f0
board: B2 code-complete with 10 corrections; B4 colony/movement lane opened
2026-09-08 00:02:10 -04:00
alex
ead46e2608
M2 verified live (weapons); section compare crash recorded as a gap
2026-09-07 23:52:51 -04:00
alex
906858f60b
B1 verified on the live game; record budget-tail coverage gap and the difficulty-mods shortcut
2026-09-07 23:26:54 -04:00
alex
1e7428d5aa
board: B2 offline lane; VM queue M2/B3/B2
2026-09-07 23:15:46 -04:00
alex
6600382e12
b3 static findings: rng draw mapping, NextInt inclusive, float32 odds; address contract +17
2026-09-07 23:14:51 -04:00
alex
73f5f1e2ad
board: B3 offline lane, VM queue M2 then B3
2026-09-07 22:44:02 -04:00
alex
f146a7616a
m2 code merged (VM window pending); record the 3-word vector struct hazard
2026-09-07 22:43:05 -04:00
alex
01c3217b5c
lab rule: VM140 shim deploys are exclusive; record the holder
2026-09-07 22:36:11 -04:00
alex
23b8eda585
board+dashboard: sim formulas pinned, game/effects merged, B1 in progress
2026-09-07 22:34:17 -04:00
alex
cea76e2771
rng: verify Seed/Twist/NextFloat signatures; lazy twist confirmed; flag x87 float-parity risk
2026-09-07 22:28:56 -04:00
alex
87a39b6731
plan the behavioral slice: B1 ComputeBudget, B2 OnTechResearched, B3 ProcessResearch (RNG); gate on RNG signatures
2026-09-07 22:24:44 -04:00
alex
8116f9e0c8
P2-M1 verified on the live game: golden trace, 0-divergence compare, replace passes the End-Turn oracle
2026-09-07 22:18:22 -04:00
alex
e76e39ac03
board+dashboard: game/design merged
2026-09-07 22:11:29 -04:00
alex
de7a2bef04
tech effects (196-entry TechId table, OnTechResearched), 8 formula gaps answered, std::string settled
2026-09-07 22:05:49 -04:00
alex
8cdf3cd81d
board+dashboard: engine parity merged
2026-09-07 22:01:26 -04:00
alex
436a51fa04
save-reader: real tag names (byte-confirmed), 36 tests, strict 3/3
2026-09-07 17:56:59 -04:00
alex
c61a35f1e8
board: game/data verified; allows default resolved
2026-09-07 17:56:07 -04:00
alex
66511bf03b
board+dashboard: shim/trace merged; M1 in progress
2026-09-07 17:53:18 -04:00
alex
e4adf2fb31
board: parity + tag-fix lanes
2026-09-07 17:49:31 -04:00
alex
1eb967756b
verified: End-Turn oracle byte-identical cross-process; stream tag corrections
2026-09-07 17:46:20 -04:00
alex
078dbbbcc7
loader prototypes M1-M4 + app spine signatures; address contract 80 entries; first-wins parity bug logged
2026-09-07 17:45:24 -04:00
alex
1ee49da917
board+dashboard: mars/vfs merged
2026-09-07 17:41:29 -04:00
alex
d0cfcadce8
board: shim trace lane
2026-09-07 17:29:49 -04:00
alex
4547f6c8fe
verify: compare harness (trace format, tracecmp, replay, oracle bridge); board catch-up; sim formula gaps
2026-09-07 17:28:37 -04:00
alex
2d298b1e98
phase 2: address contract + generator, turn-internals filed, M0-M4 rows; sibling repo sots-engine
2026-09-07 17:08:40 -04:00
alex
daea98feba
verify: ship-design rules + validator, 127/127 stock designs pass; species index order decoded
2026-09-07 16:45:25 -04:00
alex
f644b83581
battle-load: profile filed, bug parked; sampler + resume recipe kept
2026-09-07 16:43:14 -04:00
alex
426df0232a
verified: save_reader strict-clean on 3 real saves; all core layouts confirmed; SAVE_FORMAT confirmed
2026-09-07 16:39:41 -04:00
alex
5cea675b45
board: ship-design rules in progress
2026-09-07 16:27:15 -04:00
alex
570bb38659
board: round five breadth; battle-load to be filed and dropped
2026-09-07 16:26:24 -04:00
alex
a1852bbf5b
objects: save-schema gaps resolved from serializers; StrategyServer complete
2026-09-07 16:24:54 -04:00
alex
afbfdf5ce8
verified: real saves parse; ServerPlayer/StarFleet/StarShip confirmed, ServerSystem conditional gaps listed; game-run recipe
2026-09-07 16:09:28 -04:00
alex
15ecd22aa6
verify: Streamable save reader + writer stub + tests + SAVE_FORMAT
2026-09-07 15:55:27 -04:00
alex
bb01d8e655
control-flow: full app/turn spine with addresses; types written into Ghidra; threads cleared for battle-load
2026-09-07 15:55:02 -04:00
alex
47463c7905
board: round three in-progress
2026-09-07 15:25:38 -04:00
alex
fc1d703ce7
objects: ServerPlayer/ServerSystem/StarFleet/StarShip member layouts via save-name xrefs; stream API
2026-09-07 15:24:18 -04:00
alex
7139dee219
verify: mars data parsers proven 100% on 1595 files; catalogs; tech-tree graph
2026-09-07 15:22:55 -04:00
alex
9378cec2fa
ui/flow: 36-screen catalog, turn state machine; screens are C++ not data
2026-09-07 15:18:14 -04:00
alex
399fd0861a
board: round two in-progress
2026-09-07 15:07:38 -04:00
alex
3bdc83fe29
recon: RTTI hierarchy + vftables, affinity pin has no topology branch, save-struct reference
2026-09-07 15:01:50 -04:00
alex
994b182f7a
strings/config: battle-load smoking gun (affinity), lockstep sim, net map, Mods override
2026-09-07 14:58:36 -04:00
alex
ff8ca6668c
board: mark fan-out targets in-progress
2026-09-07 14:53:58 -04:00