Infuse

From IFWiki
Jump to: navigation, search

Infuse is an interpreter for Z-code games, both historic Infocom and modern Inform titles. It can run games of version 3, 4, 5, 6, 7, and 8. V6 support is not complete.

Development started in 1997, based on the "Specification of the Z-machine, Standard Version 0.2" document of Nov. 15, 1995. In 2017, work started to update Infuse to conform to draft standard 1.2.

The interpreter consists of a large core module containing the Z-machine emulator, and a suite of small machine-dependent modules for various operating systems and user interfaces.

The machine-dependent modules only have to provide about 10 functions and some integer configuration variables to the core module. The Infuse core has been written to support both text-mode screens with only one font and a single style, as well as bit-mapped color screens with proportionally spaced fonts and many styles.

As of version 0.65, there are three such modules, all for the Linux operating system:

  • a simple stdio module
  • ncurses console
  • X11 using the Athena Widget set, very buggy (but it has a Beyond Zork font).


Features

Infuse has the following features:

  • Standard 1.2 (a work in progress)
  • Z-machine V3-8 (V6 is WIP)
  • the runic font from Beyond Zork (X11 module only)
  • Color support (true color is a work in progress)
  • All text styles (X11 module only)
  • Timed input in the X11 and curses modules
  • Undo
  • Blorb story files as well as bare ones
  • Quetzal save file format
  • A vanity extended opcode to enable stories to print the interpreter version string
  • The suite of profiling and debugging opcodes from Zoom


Custom extended Op-Codes implemented

Infuse implements a few custom opcodes: the suite of profiling and debugging opcodes from Zoom, and one op-code which enables games to print an interpreter's version string.

Links