/viola

Viola is a Z-Machine Interpreter written in Python.

Primary LanguagePython

VIOLA 0.8.1

Written by David Fillmore.

Viola is a Z-Machine Interpreter. That is, it interprets programs written for the virtual
machine known as the Z-Machine. There's a brief history of the Z-Machine at the bottom of
this file, for some reason.

The latest code for Viola is available at https://github.com/DFillmore/viola.

FEATURES

* Z-Machine Versions 1-8 support
* Z-Machine Standards Document 1.1 compliance
* Blorb Resource Format 2.0 compliance
* Quetzal Saved Game Format 1.4 compliance
* Support (via Blorb) for sounds and, in Version 6, images.


INSTALLATION

Some brief notes on getting the program up and running.

You will need Python 3 (I use version 3.3.5), which you can get at http://www.python.org, and
pygame (I use version 1.9.2), which you can get at http://www.pygame.org/. I genuinely don't
know if the setup.py file does anything useful.

BRIEF HISTORY OF THE Z-MACHINE FOR SOME REASON

The Z-Machine was created in the early Eighties by Infocom in order to run 
text adventures.

Infocom evolved the design of the Z-Machine gradually, and created six distinct versions,
each with more capabilites than the previous. Versions 1, 2 and 3 are almost identical,
with slight changes to certain parts of the design that make them incompatible. Most of
Infocom's games were released for version 3. Version 3 was a fairly simple design, but a
seperate upper window was introduced for one game, and support for sound effects (which
was really part of the Version 5 design, but a scaled down version was stuck into Version
3).
Version 4 introduced text styles, better upper window support and a few other features, 
as well as allowing games to be larger. Version 5 allowed even larger games, with several
new features including better sound support. Version 6 allowed for graphics,  up to eight
windows which could be moved and resized, bigger games, and other less obvious features. 

Then Infocom went out of business, more or less.

Several years later, Graham Nelson created Inform, which allowed anyone to create 
Z-Machine games. Two new Versions were created, numbered 7 and 8. These have none of the 
extra features of z6, but instead are identical to the z5 model, except that they both 
allow larger games. z7 was never really used.

Most games created for the Z-Machine since Infocom stopped business are z5 games.