Build RE baseline and initial Rust workspace
This commit is contained in:
parent
8d1f280e2e
commit
ffaf155ef0
39 changed files with 5974 additions and 8 deletions
34
README.md
34
README.md
|
|
@ -3,9 +3,35 @@ Analysis and reimplementation of Railroad Tycoon 3
|
|||
|
||||
The old executable is at ./rt3_wineprefix/drive_c/rt3/RT3.exe
|
||||
|
||||
Our task is to understand the executable's structure and build a function-by-function rewrite in Rust.
|
||||
As we go, we will document the file formats and functions and write unit and integration tests.
|
||||
Our first task is to understand the executable's high-level control loops and subsystem boundaries well
|
||||
enough to choose good rewrite targets. As we go, we document evidence, keep a curated function map,
|
||||
and stand up Rust tooling that can validate artifacts and later host replacement code.
|
||||
|
||||
We will build a dll which we can inject into the original exe, patching in individual functions as
|
||||
we build them out.
|
||||
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.
|
||||
|
||||
## Project Docs
|
||||
|
||||
Bootstrap design and workflow documents live in `docs/`.
|
||||
|
||||
- `docs/README.md`: handbook index and target hashes
|
||||
- `docs/control-loop-atlas.md`: high-level loop and subsystem atlas
|
||||
- `docs/setup-workstation.md`: toolchain baseline and local setup
|
||||
- `docs/re-workflow.md`: repeatable reverse-engineering workflow
|
||||
- `docs/function-map.md`: canonical function-map schema and conventions
|
||||
|
||||
The first committed exports for the canonical 1.06 executable live in `artifacts/exports/rt3-1.06/`.
|
||||
|
||||
## Rust Workspace
|
||||
|
||||
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
|
||||
|
||||
For the current runtime 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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue