Research workspace for recreating Grim Fandango's scripting runtime in Rust. We keep copies of the original game assets locally so we can study the retail boot flow and prototype modern tooling around it.
- Use
grctl retail copyto copy your Grim Fandango Remastered install into the localdev-install/directory (or copy it manually if you prefer). The development shell exportsGRIM_INSTALL_PATH=dev-installfor tools that still read that variable. - Enter the development shell with
nix-shell(Rust toolchain, Lua, ripgrep, etc. are provisioned there). - Populate extracted assets with
tools/sync_assets.sh [dest] [-- lab_extract flags...]. The default destination isextracted/, which downstream crates read from automatically. - Treat
dev-install/andextracted/as read-only reference data; do not edit or commit changes to those directories.
grim_analysis/– retail telemetry shim (grim_analysis); seegrim_analysis/README.rust_shim.md.grim_engine/– prototype runtime host; seegrim_engine/README.md.grim_formats/– asset format helpers and CLIs; seegrim_formats/README.md.docs/– reference notes for current tooling (seedocs/parity_workflow.mdfor parity debugging workflow).tools/– repo-level utilities such astools/sync_assets.shfor asset preparation and commit helpers.
- Run workspace checks from inside
nix-shell:cargo fmtandcargo test(or crate-specific commands) keep the tree tidy. - Run
tools/install_git_hooks.shonce to install the sharedcommit-msghook; it callstools/lint_commit.pyso commits without Why/What bullets are rejected instead of slipping into history. - When using
tools/format_commit.py, rungit commit -F .git/COMMIT_EDITMSG(or setGIT_EDITOR=true) so Git skips launching an interactive editor inside the CLI harness. - If the commit subject/Why/What spacing trips you up, run
git config commit.template tools/commit_template.txtonce—the template pre-populates the blank line and bullet blocks so you only fill in the text. - Component-specific workflows and deep dives live in each crate's README; start there when modifying a particular subsystem.
- Distributed under the terms of the GNU General Public License, version 2.0 or
(at your option) any later version. See
COPYINGfor the full text and retain upstream notices when importing reference implementations.