Wolfgang Fellger | Software


A z-machine interpreter in Python

I love adventure games, and so I finally stumbled upon the old-school genre of text-adventures. Bereft of any disturbing graphics, this is as close to reading a book as you can get in a computer game :-)

Remarkably, these games aren't hard-coded, computer-specific assembly, but run in an actual VM called z-machine. This design is probably due to the widespread home computer landscape in the early 80s, but it's nice that the original games still work flawlessly 25 years after their original release - even on hardware they were never meant for.

Of couse, interpreters are already available for virtually every platform, but nonetheless I took it as subject for a holiday programming exercise: Implementing a z-machine interpreter in Python.

Currently it supports versions 4, 5, and 8 of the z-machine standard, and thus runs e.g. "A Mind Forever Voyaging", "Hitchhiker's Guide to the Galaxy (Gold)" and all later Inform-compiled games.

For Linux systems, support for nicer terminal presentation (status line, font styles etc.) is available through the curses library. Everyone else will have to use the plain-text mode.


CaptionRelease dateLanguageRelease notes
PYZZY 0.2.62008-03-30enShowDownload
PYZZY 0.2.52008-03-24enShowDownload