plan the behavioral slice: B1 ComputeBudget, B2 OnTechResearched, B3 ProcessResearch (RNG); gate on RNG signatures
This commit is contained in:
parent
8116f9e0c8
commit
87a39b6731
3 changed files with 25 additions and 11 deletions
|
|
@ -1,19 +1,19 @@
|
|||
# SotS RE campaign — coverage dashboard
|
||||
|
||||
Generated 2026-09-08 02:18 UTC · `sots-re` @ 9e74691,2026-09-07 · `sots-engine` @ 8b231c0,2026-09-07 (39 commits) · regenerate with `tools/dashboard.py`
|
||||
Generated 2026-09-08 02:24 UTC · `sots-re` @ 8116f9e,2026-09-07 · `sots-engine` @ 8b231c0,2026-09-07 (39 commits) · regenerate with `tools/dashboard.py`
|
||||
|
||||
> **North star:** A functional reimplementation of the engine — behavior-equivalent, NOT byte-for-byte
|
||||
|
||||
## 1. Map coverage (campaign/board.md)
|
||||
|
||||
48 targets · mapped-or-better **40/48** `[████████░░] 83%` · verified **23/48** `[█████░░░░░] 48%`
|
||||
52 targets · mapped-or-better **40/52** `[████████░░] 77%` · verified **23/52** `[████░░░░░░] 44%`
|
||||
|
||||
| Status | Count | % |
|
||||
|---|---:|---:|
|
||||
| verified | 23 | 48% |
|
||||
| mapped | 17 | 35% |
|
||||
| verified | 23 | 44% |
|
||||
| mapped | 17 | 33% |
|
||||
| in-progress | 2 | 4% |
|
||||
| backlog | 5 | 10% |
|
||||
| backlog | 9 | 17% |
|
||||
| blocked | 1 | 2% |
|
||||
|
||||
| Type | verified | mapped | in-progress | backlog | blocked | total |
|
||||
|
|
@ -23,8 +23,8 @@ Generated 2026-09-08 02:18 UTC · `sots-re` @ 9e74691,2026-09-07 · `sots-engine
|
|||
| subsystems | 2 | 6 | 1 | 3 | 1 | 13 |
|
||||
| engine | 8 | 1 | 0 | 0 | 0 | 9 |
|
||||
| verify | 4 | 2 | 0 | 0 | 0 | 6 |
|
||||
| phase2 | 2 | 0 | 1 | 2 | 0 | 5 |
|
||||
| meta | 2 | 4 | 0 | 0 | 0 | 6 |
|
||||
| phase2 | 2 | 0 | 1 | 5 | 0 | 8 |
|
||||
| meta | 2 | 4 | 0 | 1 | 0 | 7 |
|
||||
|
||||
## 2. Binary understanding
|
||||
|
||||
|
|
@ -81,7 +81,7 @@ Board `engine:` rows: verified **8**, mapped 1, in flight 0 (of 9) — verified
|
|||
|
||||
## 7. Open questions
|
||||
|
||||
Open **24** · resolved/parked 9 · backlog items: Now 4, Next 3, Later 2, Breadth queue 7, Parked 1, From the RE how-to 4
|
||||
Open **24** · resolved/parked 9 · backlog items: Now 4, Next 3, Later 2, Breadth queue 7, Parked 1, From the RE how-to 4, Behavioral slice 4
|
||||
|
||||
Most recent open:
|
||||
|
||||
|
|
@ -93,10 +93,10 @@ Most recent open:
|
|||
|
||||
## 8. Delta since previous dashboard
|
||||
|
||||
- verified targets: 22 → 23 (+1) · mapped-or-better: 39 → 40 (+1)
|
||||
- engine LOC: 14,726 → 15,809 (+1,083) · test files: 81 → 84 (+3) · checks: 2,173 → 2,262 (+89)
|
||||
- verified targets: 23 → 23 (+0) · mapped-or-better: 40 → 40 (+0)
|
||||
- engine LOC: 15,809 → 15,809 (+0) · test files: 84 → 84 (+0) · checks: 2,262 → 2,262 (+0)
|
||||
- addresses verified: 123 → 123 (+0) · recovered layouts: 21 → 21 (+0) · open questions: 24 → 24 (+0)
|
||||
|
||||
---
|
||||
warnings: mars-rng.md: no oracle total row parsed; mars-stream.md: no oracle total row parsed; mars-vfs.md: no oracle total row parsed
|
||||
<!-- dashboard-metrics {"verified": 23, "mapped_plus": 40, "targets": 48, "loc": 15809, "tests": 84, "checks": 2262, "addr_verified": 123, "addr_total": 137, "layouts": 21, "open_q": 24} -->
|
||||
<!-- dashboard-metrics {"verified": 23, "mapped_plus": 40, "targets": 52, "loc": 15809, "tests": 84, "checks": 2262, "addr_verified": 123, "addr_total": 137, "layouts": 21, "open_q": 24} -->
|
||||
|
|
|
|||
|
|
@ -39,3 +39,13 @@ most other work. Groomed by **re-quartermaster**.
|
|||
- **Automated class recovery**: run Ghidra `RecoverClassesFromRTTIScript` (with Decompiler Parameter ID) and/or CMU OOAnalyzer on the 1,924 RTTI classes to build class structs + method-to-class assignment; import VS2010 FID databases for CRT/STL triage. (Ghidra lane, after tech-effects)
|
||||
- **apitrace whole-run D3D9 capture** of the original as the golden trace for the eventual `Mars::DrawDevice` reimpl (RenderDoc can't capture D3D9); **WinDbg TTD** (x86 supported) for data-flow questions like 'who writes ServerPlayer+0x164'. (VM lane)
|
||||
- **Pin game/sim low-confidence formulas** from `findings/subsystems/formula-gaps.md` (bankruptcy limits/stamping, linear hazard curve, money tail, pbon, slider request, [6] net, no speed clamp, decay incl. current) and wire the code-defined tech effects (`findings/subsystems/tech-effects.md`) into game/sim + game/data. (engine lane, next slot)
|
||||
|
||||
## Behavioral slice (the pivot from data to logic — user directive 2026-09-08)
|
||||
Data loaders are done/underway; `game/sim` has never been compared against the original. Verify behavior
|
||||
function-by-function on the End-Turn workload (`ref-turn2.sav`, deterministic, 8 players x 28 systems):
|
||||
1. **B1 ComputeBudget** (pure, no RNG) — the cleanest first brick.
|
||||
2. **B2 OnTechResearched** (tech effects) — needs sim-pin's effects layer.
|
||||
3. **B3 ProcessResearch** (RNG) — snapshot MT19937 pre-call, run ours from a copy; validates RNG+odds+Zuul at once.
|
||||
4. Then, once signatures are verified: ServerSystem::ProcessTurn (colony growth), MoveFleet, and finally
|
||||
StrategyServer::ProcessTurn as a whole-turn compare.
|
||||
Gate: RNG_* and StrategyServer::ProcessTurn signatures are `unverified` — Ghidra pass first.
|
||||
|
|
|
|||
|
|
@ -53,3 +53,7 @@ Status flow: `backlog → in-progress → mapped → verified` (or `blocked`).
|
|||
| tech effects (code-defined) | subsystem | mapped | high | 90% | 2026-09-07 | findings/subsystems/tech-effects.md: g_TechIdNames 196 @0x009ff9e4 (TechId=10000+i), effects in ServerPlayer::OnTechResearched 0x00891790; SpeciesDef table 0x00b10a00; 36 strategic / ~45 gates / ~115 none. Feeds game/sim + game/data |
|
||||
| strategic formula gaps | subsystem | verified | high | 100% | 2026-09-07 | findings/subsystems/formula-gaps.md: all 8 answered with code (bankruptcy 3.3 on BnkPr, linear hazard, money tail, pbon, slider, [6] net, no speed clamp, decay hits current) |
|
||||
| engine: game/design | engine | verified | high | 100% | 2026-09-07 | merged; see ShipDesignDef row |
|
||||
| P2-B1 ComputeBudget (behavioral) | phase2 | backlog | — | 0% | 2026-09-08 | FIRST BEHAVIORAL BRICK: hook ServerPlayer::ComputeBudget 0x00863030 (verified thiscall, pure, 8 calls/turn) vs game/sim/economy.cpp; workload = ref-turn2.sav + End Turn |
|
||||
| P2-B2 OnTechResearched (behavioral) | phase2 | backlog | — | 0% | 2026-09-08 | hook ServerPlayer::OnTechResearched 0x00891790 (verified) vs the tech-effects layer from sim-pin |
|
||||
| P2-B3 ProcessResearch (behavioral, RNG) | phase2 | backlog | — | 0% | 2026-09-08 | hook TechTree::ProcessResearch 0x005876c0 (verified); snapshot MT19937 state pre-call and drive ours from a copy -> validates RNG + odds + Zuul double roll together |
|
||||
| RNG signatures (Ghidra) | meta | backlog | — | 0% | 2026-09-08 | RNG_Seed/Twist/NextFloat/NextInt still 'unverified' in the contract; verify before hooking (M0 lesson). Also StrategyServer::ProcessTurn/BeginProcessTurn signatures for the later whole-turn compare |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue