No description
  • Rust 97.8%
  • Python 1.8%
  • Java 0.3%
Find a file
2026-04-13 14:12:18 -07:00
.cargo Build RE baseline and initial Rust workspace 2026-04-02 23:11:15 -07:00
artifacts Extend atlas seam annotations across subsystems 2026-04-13 14:12:18 -07:00
crates Commit runtime loader and atlas updates 2026-04-11 18:12:25 -07:00
docs Extend atlas seam annotations across subsystems 2026-04-13 14:12:18 -07:00
fixtures/runtime Add headless runtime tooling and Campaign.win analysis 2026-04-10 01:22:47 -07:00
tools Add headless runtime tooling and Campaign.win analysis 2026-04-10 01:22:47 -07:00
.gitignore Build RE baseline and initial Rust workspace 2026-04-02 23:11:15 -07:00
Cargo.lock Add headless runtime tooling and Campaign.win analysis 2026-04-10 01:22:47 -07:00
Cargo.toml Add headless runtime tooling and Campaign.win analysis 2026-04-10 01:22:47 -07:00
README.md Split control-loop atlas into section files 2026-04-11 17:55:16 -07:00
RT2.LOG Commit runtime loader and atlas updates 2026-04-11 18:12:25 -07:00
rt3_auto_load_winedbg.log Commit runtime loader and atlas updates 2026-04-11 18:12:25 -07:00
rt3_manual_load_winedbg.log Commit runtime loader and atlas updates 2026-04-11 18:12:25 -07:00

Analysis and reimplementation of Railroad Tycoon 3

The old executable is at ./rt3_wineprefix/drive_c/rt3/RT3.exe

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.

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: compatibility index for the split atlas
  • docs/control-loop-atlas/: canonical atlas section files
  • 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.