Copyright: Copyright J.B. Scattergood, 1996


Introduction

This program is an interpreter which will let you play Infocom-format adventure games under Microsoft Windows.

Obtaining the games
Getting started
Command line editing
Saving and restoring
Fonts and windows
Technical background
Acknowledgements
Registration


Obtaining the games

Original games

The Infocom-format was devised by Infocom in the days of early microcomputers (TRS80, AppleII and so on) in order to fit reasonably sized adventure games into the machines then available.  The games are platform-independent and can be played on any machine with a suitable interpreter (such as this one.)

The format evolved through 6 slightly different versions from the early Zork games through to the graphical Arthur, Shogun, Journey and Zork Zero released at the end of Infocom's life in the late 1980's. The remains of the company were purchased by Activision who retain the rights to the original 40+ Infocom games and are currently producing modern graphical adventures set in the Zork universe.

So, if you want one of the original games, produced by Infocom, you need to buy it from Activision.  These have been available since the early 1990's, if a little hard to find.  The first packs were individual budget versions of the best-selling games (Zork1, Planetfall and some others) released in the UK on the Virgin/Mastertronic label.  These were replaced by the two volumes of the 'Lost Treasures of Infocom' which have officially been discontinued but are still available from some retailers.  The latest packages are groups of around five games, broken down by theme; I've seen these available in the US, and I've had unconfirmed reports that they are also available in the UK.

Many stores seem reluctant to actually stock the games (possibly because they aren't the latest, high-volume, CD-based multimedia product), but they should be able to order them.  Insist that they look in their catalogue under Activision.

Informed games

As a result of the efforts of a number of people (typically found in the rec.arts.int-fiction group on Usenet) the Infocom-format has been extensively reverse-engineered and documented; initially this was to assist in the creation of interpreters for platforms not supported directly by the original Infocom games.  However, one enthusiast (Graham Nelson) decided that it would be useful to use the format as the target for a compiler he was working on; the small size and excellent portability of the Infocom-format is as useful today as when it was first designed.  With the widespread availability of Graham's compiler, called Inform, a number of new Infocom-format games have been created.  Like Graham's compiler, these are largely freeware, although some work on a shareware basis; a selection are available from the interactive-fiction archive .

As the games produced with Inform started to reach the limits of the original format, two extensions were designed; these are commonly referred to as Z7 and Z8 games.  This interpreter supports both of these versions, but not Z6 .


Getting started

Installing the interpreter

The easiest way to install the interpreter is using the setup program supplied.  This copies the interpreter onto your system, creates items in Program Manager (or the Windows95 Start menu) and associates the interpreter with SAV , DAT , Zn and IDF files.

You can simply copy the INFOCOM.EXE and INFOCOM.HLP files to your system by hand, but you will then need to create the items and associations by hand.

Starting a game

You may start a game in several ways:

Running the interpreter from Program Manager (or the Windows95 Start menu) will produce the standard Windows file selector from which an Infocom-format story file may be selected.

Double-clicking on a story file in File Manager (or the Windows95 Explorer) will start the interpreter with that story automatically.

Selecting a saved position from the initial file selector will attempt to locate the corresponding story file, load it and then restore the saved position.

Double-clicking on a saved position similarly attempts to perform a similar load and restore operation.

When searching for the story corresponding to a saved position, the interpreter looks for files with Z8, Z5, Z4, Z3, Z2, Z1, IDF and DAT extensions (in that order) in the same directory as the saved position.  This means that it is a bad idea to rely only on the extensions to distinguish between two distinct editions of the same story.


Command line editing
Command editing

The interpreter stores a history of previous commands.  These can be recalled using the up and down cursor keys, as with the DOSKEY utility.

The current command can be edited using the left and right arrows key.  The backspace key deletes the character to the left of the caret.  The delete key deletes the key to the right of the caret. Normal characters are inserted at the caret.  The Home and End keys move to the beginning and end of the command.

All of these editing functions are also available using the standard Emacs keystrokes shown below.

^A 	Home      	Beginning of line
^E 	End       	End of line
^B 	Left      	Cursor left
^F 	Right     	Cursor right
^P 	Up        	Previous command
^N 	Down      	Next command
^D 	Delete    	Delete right
^H 	Backspace 	Delete left

In addition, two editing commands are available only through control sequences.

^K 	      	Delete to end of line
^U 	      	Erase entire line


Saving and restoring

The commands on the File menu allow you to save your position in a game and restore it later.  Note that the Save item is disabled until the interpreter has a filename for the saved position, from a Save As or Restore operation.

If you ask to finish the game, either using the Exit item on the File menu or using the close icon on the window, and you have not saved your current position, you will be asked if you wish to do so before the game terminates.

Why it might not work

The standard method for saving and restoring positions in an Infocom-format game is to use the save and restore commands provided by the game itself.  These prompt for a filename and then ask the interpreter to perform the appropriate action.

As a result, the game is in control of save and restore operations.  It is necessary to translate the menu items into commands to the game.  This is what the interpreter does when the Save, Save As, and Restore commands are selected from the menu.

The interpreter will attempt to push the game into a state where save and restore commands can be accepted, paging through More... messages and other screens, but this is may not always be successful.


Fonts and windows

The fonts used by the interpreter, along with other display options, are controlled from the Options menu.

When the Justify menu-item is checked, text is displayed right-justified, otherwise it is displayed with a ragged right margin.

When the Border menu-item is checked, a gap is left between the text and the frame of the window to improve legibility.  You may wish to remove this if you are using a small display.

The interpreter uses two fonts.  The normal font is used for the main display and the fixed font is used when a fixed-width font is required for the status bar or hint system.

The final two items on the Options menu control the fonts used for the display.  Changing the font usually requires reformatting the window contents.  The status bar may be incorrectly displayed until the game repaints it.  Both the preferred fonts and window size are stored between sessions.


Technical background

This interpreter is based on the core of the InfoTaskForce (ITF) interpreter.  Historically, that interpreter was one of the first to support games beyond Z3 of the Infocom-format; although Mark Howell's Zip now supports all versions, this was not the case when I first picked up the sources.

Although the ITF core is basically sound on Z3 and earlier, there are problems with later games.  The recent work on standardisation of the Infocom-format has highlighted many of these problems, some of the worst of which have been fixed in this interpreter.

The most significant remaining weakness is the lack of 'real-time' support as used by some Z5 games, notably BorderZone and FreeFall.  This requires running a fragment of Z-code periodically while interacting with the user and is extremely difficult to implement portably; in fact, the rudimentary ITF code for this was removed early in the porting effort and has yet to be replaced.

The combination of ITF heritage and proportional font support mean that the output model used by this interpreter deviates significantly from the standard; in principle output can be duplicated across an arbitrary mix of output streams, but in practice the ITF sources stop all other output streams when data is directed to an in-memory buffer.

Nevertheless, for the practical purpose of playing games the interpreter is perfectly adequate.  While it is certainly true that a 'ground-up' implementation of interpreter could be better, the work involved in such a task is prohibitive.


Acknowledgements

It is impossible to carry out any work in the area of Infocom games without making use of the work of earlier entrants to the field.

The construction of Infocom interpreters has a long history, from early interpreters like pinfocom, through the ground-breaking InfoTaskForce efforts and the continuing work on Mark Howell's ZIP interpreter to the new generation of interpreters.  All of these interpreters have helped to clarify the details of the Infocom format.

The work of Graham Nelson has changed the rules for interpreter writers in many ways. Inform has made it possible for many new Infocom games to come into existence; previously it was enough to test for compatibility with the original Infocom games.  Graham's work on the specification of the Z-machine has also given interpreter writers a new standard to aim for.

This interpreter began as a quick port of the ITF interpreter to the Acorn Archimedes so that I could play Planetfall without using DOS emulation. Many of the added features and supported platforms are the result (sometimes indirectly) of pressure from the user base. Particular thanks must go to those users who have acted as beta-testers, often on more than one platform; Robin Watts, Colin Turnbull, Roger Burton-West, Graham Brand and Michael Leigh.

Tools used in the production of this release include DesktopC (V4) with Desklib on the Acorn ; TopSpeed C with the Psion C SDK for the Psion ; GCC under FreeBSD 2.1.0 for Unix; Turbo C++ 4.5 and Watcom C++ 10.0 for Windows 3.1/95. The Windows help file was produced using Phil Allen's QDHelp compiler and the setup program built using Kurt Herzog's Install/Setup.


Registration

As the interpreter will remind you from time to time, it is a shareware application.  This means if you use it significantly, you are obliged to register it.

Why should you bother?

Well, registration means you get a 'magic key' which will enable you to get rid of those nasty reminders.  Registered users get sent major releases whenever they occur (roughly every year), usually about six months before the same version goes on general release.  Similarly, registered users who report bugs receive the next minor release which fixes the bugs.

I also use registrations as an indication of which version of the interpreter is most used.  For example, the Psion version has received significant attention because of the number of registrations while the total disinterest from Acorn users means that the Acorn version tracks the code base but has low priority when it comes to new features.  The Windows version exists because Psion users asked for it.

When should you register?

I have two simple criteria for this.  If you finish a game using this interpreter, then you should register.  If you discover that the interpreter makes you so interested in Infocom games that you actually pay money for the games, then you should register.

How do you register?

To register you need to send a cheque for 10 pounds (UK) or 15 dollars (US), made payable to Bryan Scattergood, to

Bryan Scattergood
c/o Formal Systems
3 Alfred Street
Oxford
OX1 4EH

You need to include your name and address.  If you include an email address as well, then updated versions will be sent out by email, otherwise they will be sent on 720K 3.5" MS-DOS floppy disks.

If you need to contact me then I can be reached at any of

104312.2206@compuserve.com
bryan@fsel.com
jbs@comlab.ox.ac.uk

Please use one of these addresses at a time and wait at least a week before you decide it has failed.  Messages sent simultaneously to all three (which has happened) are pointless; I get multiple copies which increases my email bill and I then get confused about whether I've already replied.


The various versions of the format are commonly referred to by Z-number.  Very early games such as the AppleII version of Zork are Z1 or Z2 games.  The majority of Infocom games are actually Z3.  Later, larger games are Z4 or Z5 and the graphical games are Z6.

Z7 and Z8 are new formats produced by Inform being extensions of Z6 and Z5 respectively.

This interpreter supports all of these formats except Z6.


Inform is a freely available compiler for producing Infocom-format games; versions are available for most computers including Mac, IBM and Acorn.  Inform was written by Graham Nelson and can be found at the interactive-fiction archive .


The if-archive is maintained by Volker Blasius and can be reached by anonymous FTP at ftp.gmd.de in the if-archive subdirectory.


Acorn Computers are a UK-based computer manufacturer.  They dominated the UK education market with the BBC Micro in the 1980s and have sold RISC-based personal computers since 1987.


Psion are a UK-based manufacturer of mobile computer systems.  Their current product range includes the best-selling Series3 and Series3a personal organisers as well as related systems for vertical-market applications.


Saved positions are given a SAV extension.


Infocom games traditionally have a DAT extension.  (The corresponding EXE file is an MSDOS based interpreter which loads the corresponding DAT file.)


Games from the interactive-fiction archive usually use a Zn extension where the digit indicates the version of the Infocom-format which the game uses.


The Psion version of this interpreter use the IDF extension for story files. (The Psion database claims the DAT directory and a single extension is required so the Zn extensions are unsuitable.)