No description
  • Rust 97.8%
  • Python 1.8%
  • Java 0.3%
Find a file
2026-04-04 00:19:24 -07:00
.cargo Build RE baseline and initial Rust workspace 2026-04-02 23:11:15 -07:00
artifacts/exports/rt3-1.06 Ground multiplayer preview dataset ownership 2026-04-04 00:19:24 -07:00
crates Build RE baseline and initial Rust workspace 2026-04-02 23:11:15 -07:00
docs Ground multiplayer preview dataset ownership 2026-04-04 00:19:24 -07:00
tools Build RE baseline and initial Rust workspace 2026-04-02 23:11:15 -07:00
.gitignore Build RE baseline and initial Rust workspace 2026-04-02 23:11:15 -07:00
Cargo.lock Build RE baseline and initial Rust workspace 2026-04-02 23:11:15 -07:00
Cargo.toml Build RE baseline and initial Rust workspace 2026-04-02 23:11:15 -07:00
README.md Build RE baseline and initial Rust workspace 2026-04-02 23:11:15 -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: 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.