Expand runtime event graph service

This commit is contained in:
Jan Petykiewicz 2026-04-14 19:37:53 -07:00
commit 6ebe5fffeb
14 changed files with 1803 additions and 254 deletions

View file

@ -8,8 +8,10 @@ enough to choose good rewrite targets. As we go, we document evidence, keep a cu
and stand up Rust tooling that can validate artifacts and later host replacement code.
The long-term direction is still a DLL we can inject into the original executable, patching in
individual functions as we build them out. The current implementation milestone is smaller: a
minimal PE32 Rust hook that can load into RT3 under Wine without changing behavior.
individual functions as we build them out. The active implementation milestone is now a headless
runtime rehost layer that can execute deterministic world work, compare normalized state, and grow
subsystem breadth without depending on the shell or presentation path. The PE32 hook remains useful
as capture and integration tooling, but it is no longer the main execution milestone.
## Project Docs
@ -29,10 +31,17 @@ The first committed exports for the canonical 1.06 executable live in `artifacts
The Rust workspace is split into focused crates:
- `rrt-model`: shared types for addresses, function-map rows, and control-loop concepts
- `rrt-cli`: validation and repo-health checks for the reverse-engineering baseline
- `rrt-hook`: minimal Windows DLL scaffold that currently builds a `dinput8.dll` proxy for
low-risk in-process loading experiments under Wine
- `rrt-runtime`: headless runtime state, stepping, normalized event service, and persistence-facing
runtime types
- `rrt-fixtures`: fixture schemas, loading, normalization, and diff helpers for rehost validation
- `rrt-cli`: validation, runtime fixture execution, state-diff tools, and repo-health checks
- `rrt-hook`: minimal Windows DLL scaffold for low-risk in-process loading, capture, and later
integration experiments under Wine
For the current runtime smoke test, run `tools/run_hook_smoke_test.sh`. It builds the PE32 proxy,
For the current headless runtime smoke path, use `cargo run -p rrt-cli -- runtime summarize-fixture
fixtures/runtime/minimal-world-step-smoke.json` or one of the broader runtime fixtures under
`fixtures/runtime/`.
For the current hook smoke test, run `tools/run_hook_smoke_test.sh`. It builds the PE32 proxy,
copies it into the local RT3 install, launches the game briefly under Wine with
`WINEDLLOVERRIDES=dinput8=n,b`, and expects `rrt_hook_attach.log` to appear.