bocfel


Z-machine interpreter

MOVED

Bocfel is now located at https://bocfel.codeplex.com/.

Current Version: 0.6.3.2

Overview

Bocfel is an interpreter for the Z-machine. It fully supports versions 1-5, 7, and 8, and contains partial support for version 6. For detailed information on Bocfel's operation, please consult the man page.

The Z-machine

The Z-machine was designed to run text adventure games, also known as interactive fiction. Originally the only Z-machine games were created by Infocom, the company that created the Z-machine. These include such games as Zork, The Hitchhiker's Guide to the Galaxy, and Planetfall. Fans of the genre figured out the format of the Z-machine, allowing non-Infocom interpreters, such as this one, to be built.

After that, a compiler for the Z-machine, called Inform, was released. Initially a language meant for programmers, the latest iteration of Inform is intended to allow non-programmers to easily write interactive fiction. Thanks to Inform, hundreds of Z-machine story files have been written by enthusiasts, a number of which are of extremely high quality.

Although interactive fiction is today a rather niche genre, it has a loyal following of both players and authors, and can be explored through the following resources, among others:

Screenshots

Beyond Zork under glktermw.

The Mad Bomber Z-machine abuse under garglk.

TerpEtude running under the "dumb" interface which, despite its name, understands a bit about Unix terminals.

Mingsheng running under garglk, showing off Unicode support.

Plundered Hearts running under QGlk.

Spider and Web Russian translation under garglk, also showing off Unicode.

Zork running under Windows Glk.

The Dreamhold running under NanoGlk.

Some of Bocfel's Features

  • Almost no platform-specific functions are used—and those that are used are optional—so almost any system with a recent C compiler should be able to build and run Bocfel.
  • Makes use of Glk for input/ouput, with complete support for Gargoyle; a non-Glk “dumb” interface is also available.
  • Support (assuming a font with Unicode box-drawing characters) for the character graphics font used by Beyond Zork.
  • Unicode support: see, for example, Chinese characters used by Mingsheng or the Russian translation of Spider and Web.
  • Multiple undo in almost all games, including those which do not natively support it.
  • Full control over command recording, transcripting, and command-record playback.
  • Rudimentary “cheating” support, designed to disable hunger and thirst daemons.

Only the source code to Bocfel is provided here. If you are interested in a runnable binary, Ben Cressey has integrated Bocfel into the latest version of Gargoyle as the default Z-machine interpreter.

Project Information

The project was created on Feb 15, 2011.

Labels:
game InteractiveFiction