DeMille/encrusted
A z-machine (interpreter) for text adventure games like Zork
{ "createdAt": "2018-06-07T00:12:06Z", "defaultBranch": "master", "description": "A z-machine (interpreter) for text adventure games like Zork", "fullName": "DeMille/encrusted", "homepage": "https://sterlingdemille.com/encrusted", "language": "Rust", "name": "encrusted", "pushedAt": "2022-06-20T00:14:32Z", "stargazersCount": 140, "topics": [], "updatedAt": "2025-11-25T05:56:59Z", "url": "https://github.com/DeMille/encrusted"}A z-machine (interpreter) for Infocom-era text adventure games like Zork
Section titled “A z-machine (interpreter) for Infocom-era text adventure games like Zork”Runs in a web interface or directly in a terminal.
Built with Rust and WebAssembly (wasm32-unknown-unknown).
🎮 [Launch the web player][web]
Features
- Live mapping to keep track of where you are
- Undo / Redo support
- Narration / Dictation using the [web speech APIs][APIs]
- Object tree inspector
[web] !: https://sterlingdemille.com/encrusted [APIs] !: https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API
Install
Section titled “Install”Terminal version:
cargo install encrusted --bin encrustedRun a file with encrusted <FILE>.
Use $undo and $redo to step through your move history.
Use save and restore to save your progress.
WebAssembly/React web version (requires node & rust nightly):
# If you haven't added nightly or the wasm32 target:rustup toolchain install nightlyrustup target add wasm32-unknown-unknown --toolchain nightly
# Runs webpack dev server on port 8000npm run dev
# Build .wasm module with rust nightly, debug modenpm run build:debug
# Or build all in release mode & bundle JS into the ./build directorynpm run releaseRun z-machine tests (czech & praxix) through regtest:
npm run test- Currently only supports v3 zcode files
- Saves games in the Quetzal format
License
Section titled “License”MIT