strategy: phase 2 decisions (two repos, c++ shim, accrual order)
This commit is contained in:
parent
2d298b1e98
commit
d76f0fd491
1 changed files with 14 additions and 0 deletions
|
|
@ -81,3 +81,17 @@ battle-load path · allocator. Breadth first — these anchor the wider map.
|
|||
- Reimplementation is a long arc; the value gate is the *understanding* (goal 1), which stands on its own.
|
||||
|
||||
_Strategy set 2026-09-07. Direction: broad understanding → functional reimplementation (not byte-matching)._
|
||||
|
||||
## Phase 2 — decided 2026-09-07
|
||||
- **Two repos.** This repo = evidence + planning (private, binary-derived). **`alex/sots-engine`** =
|
||||
the from-scratch engine source, **public-capable from day one**: clean-room (own code only; no game
|
||||
data, decompiles, saves), MIT, C++17/CMake, assets external via `$SOTS_DATA_DIR`. Tracking for both
|
||||
stays here. Binary facts cross over only via `ghidra/addresses.json` → `tools/gen_addresses.py` →
|
||||
`sots-engine/include/generated/sots_addresses.h`.
|
||||
- **Straight to the C++ shim** (no Python prototype): a proxy `binkw32.dll` (MinGW i686 on CT111,
|
||||
MinHook) with per-hook `off|trace|compare|replace` modes; compare runs original + ours on a
|
||||
snapshot and diffs; deterministic saves are the strongest equivalence oracle. The shim is the
|
||||
engine's first frontend (`src/shim/`); a standalone `src/app/` comes when enough engine exists.
|
||||
- **Slow accrual:** scaffold only what each milestone needs. Order: M0 bootstrap → M1 flat-KV config
|
||||
loader → M2 id manifests → M3 Mars brace-block parser → M4 gobio VFS → serializers/RNG → turn pipeline.
|
||||
- **Battle-load bug is parked** (not on the critical path); resume recipe in the backlog.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue