[Show IF] A modern JSON-based PAWS engine & interpreter for classic 8-bit adventures with improved intent guessing and enhanced graphics
Hi everyone,
I’ve been working on a project that sits at the intersection of retro reverse-engineering and modern software architecture. Like many of you, I grew up obsessed with 8-bit text adventures created with the Professional Adventure Writing System (PAWS).
While I love the nostalgia of these games, we all know the classic frustration: the rigid Verb + Noun parser and the dreaded "guess-the-verb" bottlenecks. To bridge this gap, I’ve built a modern interpreter and a transformation pipeline to bring these classics into the 2020s.
The Reverse Engineering Challenge
Since original source databases for these games are rarely preserved—only Z80 emulator snapshots remain—I went down a heavy reverse-engineering rabbit hole. I’ve implemented a tool in Ruby that extends the concepts of legacy extractors like unPAWS to achieve 100% data recovery.
My pipeline now dumps the entire game logic into a clean, highly readable JSON file. This includes:
- Full vocabulary, messages, and logical instruction blocks ("condacts").
- User-defined charsets.
- Original vector-based graphic primitive commands (points, lines, fills, and patterns).
To streamline this, I built a Model Context Protocol (MCP) tool to interface directly with the ZEsarUX emulator. This allowed me to automate memory dumps, compare state changes, and handle disassembly through a high-level orchestration layer.
What the Engine Does Right Now:
- Web & Terminal UI: Play classic games natively in a browser with modern typography and full fidelity.
- Semantic Intent Layer: I’ve added a middleware layer that acts as a translator. If a player types a natural language sentence, the engine performs a semantic mapping to rewrite it into the precise syntactic command the original logic expects (e.g., translating a complex phrase into exactly SAY TO EDDIE "DANGER").
- Dynamic Visual Reinterpretation: The interpreter reads original Spectrum vector commands and uses modern neural rendering models to reinterpret them in real-time. You can switch visual styles (pixel art, digital painting, etc.) while maintaining the original composition.
- Developer Tooling: Includes a feature-rich visual debugger to trace flags, full playthrough transcription, and autoplay for integration testing.
Next Steps: A Modern Authoring Tool
Because the core engine decouples the game logic from old hardware and runs entirely on readable JSON, it has evolved into a full framework. You can already write a brand new adventure entirely in JSON from scratch.
My next big milestone is a Graphical Adventure Editor to facilitate the creation of new narrative games using this reimagined interpreter.
I’m posting technical updates and devlogs here: 👉https://shorturl.at/MsziX
I'd love to hear your thoughts on the architecture, the challenges of preserving vector-based graphics, and what features you’d like to see in a modern JSON-backed adventure editor!