{"name":"@deckyard/zmachine","description":"A Z-machine interpreter: plays Infocom and Inform games (versions 3, 4, 5, 7 and 8)","versions":{"0.1.0":{"version":"0.1.0","kind":"git","url":"https://github.com/deckyard/deck-zmachine.git","ref":"0.1.0","commit":"4b8aa1a7e089e78cbca66256e0d3d715597ae92d","checksum":"","yanked":false,"license":"LGPL-3.0-only","requires":{},"engines":{"jennifer":"\u003e=0.25.0","jennifer-tiny":"\u003e=0.25.0"},"capabilities":[],"keywords":["z-machine","infocom","inform","interactive-fiction","text-adventure"],"description":"A Z-machine interpreter: plays Infocom and Inform games (versions 3, 4, 5, 7 and 8)","publishedAt":"1793650406","repoId":1443404319,"repoOwnerId":346943577,"repoOwner":"deckyard"}},"readme":"# @deckyard/zmachine\n\n[![test](https://github.com/deckyard/deck-zmachine/actions/workflows/test.yml/badge.svg)](https://github.com/deckyard/deck-zmachine/actions/workflows/test.yml)\n[![Documentation](https://img.shields.io/badge/docs-github%20pages-blue)](https://deckyard.github.io/deck-zmachine/)\n[![release](https://img.shields.io/github/v/release/deckyard/deck-zmachine)](https://github.com/deckyard/deck-zmachine/releases/latest)\n\nA Z-machine interpreter: plays Infocom and Inform games, story files of\nversions 3, 4, 5, 7 and 8, with Quetzal saves and undo. The machine has no\nterminal of its own; the host sends it lines and shows what it prints, so a\ngame runs as well in a chat bot or a web page as in a console. Pure Jennifer\nwith no capabilities, so it runs on `jennifer-tiny`; only `open` reads a file.\n\nManual: **\u003chttps://deckyard.github.io/deck-zmachine/\u003e**\n\n## Install\n\nRequires Jennifer 0.25.0 or newer.\n\n```sh\njvc add @deckyard/zmachine\n```\n\njvc vendors the deck to `vendor/deckyard/zmachine/`. Without jvc, copy `src/`\nfrom a checkout or a `deckyard-zmachine-\u003cversion\u003e.tar.gz` release archive\nthere, minus the test overlays:\n\n```sh\nmkdir -p vendor/deckyard/zmachine\ncp -R path/to/deck-zmachine/src/. vendor/deckyard/zmachine/\nfind vendor/deckyard/zmachine -name '*_test.j' -delete\n```\n\n## Example\n\n```jennifer\nuse io;\nimport \"@deckyard/zmachine/\" as zmachine;\n\ndef m as zmachine.Machine init zmachine.run(zmachine.open(\"zork1.z3\"));\n$m = zmachine.send($m, \"open mailbox\");\nio.printf(\"%s\", zmachine.output($m));\n# Opening the small mailbox reveals a leaflet.\n#\n# \u003e\nio.printf(\"%s\\n\", zmachine.upperWindow($m)[0]);\n#  West of House                                               Score: 0  Moves: 1\n```\n\n`examples/play.j` plays a story in the console:\n\n```sh\njennifer run examples/play.j zork1.z3\n```\n\nNo game ships with the deck. Zork I-III are\n[published by Microsoft under the MIT licence](https://github.com/historicalsource/zork1),\nthe [IF Archive](https://ifarchive.org/indexes/if-archive/games/zcode/) holds\nhundreds of free Inform games, and `testdata/lantern.z5` is a two-room test\ngame.\n\n## Conformance\n\nThe test suite plays the Czech conformance suite in versions 3, 4, 5, 7 and 8\nand Praxix in version 5, and every test in both passes. The manual's *What is\nsupported* page lists what is left out.\n\n## Licence\n\nLGPL-3.0-only, see [LICENSE](LICENSE). Copyright (C) 2026 mplx \u0026lt;mplx@jennifer-lang.dev\u0026gt;.\nThe test stories in `testdata/` carry their own licences; see its README.\n"}