---
name: "fizmo"
section: "6"
platform: "linux"
package: "fizmo"
version: "0.6.8-1"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/fizmo"
---

# fizmo(6)

Z-Machine Interpreter - “Fimzo interprets Z-machine opcodes”

## NAME

fizmo - Z-Machine Interpreter - “**F**imzo **i**nterprets **Z**-**m**achine **o**pcodes”

## SYNOPSIS

**fizmo** \[ options \] \[ *storyfile \[ blorbfile \]* \| *storytitle* \| *quetzal-save-file* \]

## DESCRIPTION

**Fizmo** is a Z-Machine interpreter, which means that it runs most of the interactive fiction games aka text adventures written by Infocom or other games which are based on the Z-Machine. Currently all versions except version 6 are supported. It supports sound via the SDL media library (see subsection “Sound Support”) and implements basic Blorb support.

### Starting a new game by providing a filename

This is the most direct way to get a game running. Just give the filename of the story file at the end of the command line.

### Starting a new game by providing it's title

If the game you want to play is stored in the list of known games, you can simply start it by providing the title instead of the full filename. Example: "fizmo sorcerer" will run the game “Sorcerer”, no matter if it is stored in the current directory or somewhere else.

### Starting a game from the list of story files

Without any filename given, fizmo will display the list of the currently known story files it has indexed so far. Everytime fizmo is started and no story-name is provided, fizmo will update the list of stories by indexing the directories listed in `ZCODE_PATH` or `INFOCOM_PATH`.

### Restoring a game from the command line

If you give the name of a quetzal save-game file at the end of the command line, fizmo will use it's story file list to locate the story file the saved game originates from to directly restore the game.

### Sound Support

Fizmo supports sound via the SDL multimedia library which is available for most unix flavors and Windows. Sound files are either read from a blorb file, or, old-infocom-style-wise, from separate \*.snd files which have to be stored in the same directory as the game file. At the moment, only AIFF sounds can be read from a blorb file. When the game requests a sound, fizmo uses the sound from the current blorb file. If no blorb file is given or the sound cannot be found in it, fizmo tries to locate a file with the format “GAMFIL00.SND” where GAMEFIL symbolizes the game filename shortened to a maximum of six characters, the sound number—eventually padded by a leading zero so it has always a length of two characters—and a “.SND” suffix. Both upper- and lowercase filenames are attempted. That means you can directly use the sounds from the IF-archive at `“/if-archive/infocom/media/sound”`.

### Story-Metadata / IF Bibliography

Fizmo is able to read metadata-files as defined in the “Treaty of Babel”. It will try to read the metadata from all files ending with `.iFiction` which are found in the `$HOME/.config/fizmo` directory. Fizmo will re-build the story list once the metadata files have been changed. For this purpose, the timestamps for the metadata-files are stored in the file `$HOME/.config/fizmo/babel-timestamps`. For more information about the treaty, see `http://babel.ifarchive.org/`.

## OPTIONS

- **-h, --help**

  Show help message and exit.

- **-b, --background-color *\<color-name\>***

  Set background color. Valid color names are *black*, *red*, *green*, *yellow*, *blue*, *magenta*, *cyan* and *white*.

- **-bb, --blink-for-bright-background**

  Use blink for bright background colors.

- **-bf, --bold-for-bright-foreground**

  Use bold for bright foreground colors.

- **-ds, --disable-sound**

  Disable sound alltogether. May be useful when playing on remote machines.

- **-ec, --enable-colors**

  Force using colors.

- **-f, --foreground-color *\<color-name\>***

  Set foreground color. Valid color names are *black*, *red*, *green*, *yellow*, *blue*, *magenta*, *cyan* and *white*.

- **-if, --input-file**

  When the story starts, read input directly from a file.

- **-l, --set-locale *\<locale-code\>***

  Set locale name for interpreter messages. Currently valid locale codes are *en\_US* and *de\_DE*.

- **-lm, --left-margin *\<width\>***

  Set left margin width, requires a numeric argument.

- **-nc, --dont-use-colors**

  Don't use colors.

- **-p, --predictable**

  Start with random generator in predictable mode.

- **-fp, --force-predictable**

  Start with random generator in predictable mode. The random generator will ignore all seed commands and always deliver predictable number (which might make games unsolvable).

- **-rc, --record-commands**

  Activate recording of commands as soon as the game starts.

- **-rm, --right-margin *\<width\>***

  Set right margin width, requires a numeric argument.

- **-rs, --recursively-search *\<directory-name\>***

  Search a directory recursively, meaning including subdirectories, for Z-Machine files.

- **-s, --search *\<directory-name\>***

  Search a single directory for Z-Machine files.

- **-s8, --force-8bit-sound**

  Never use 16-bit resolution, always convert to 8bit (some systems may not be capable of 16-bit sound output).

- **-st, --start-transcript**

  Start game with scripting already enabled.

- **-t, --set-tandy-flag**

  Sets the tandy flag, which emulates a game sold by the Tandy Corporation and slightly alters the game behaviour. See `http://www.ifarchive.org/if-archive/infocom/info/tandy_bits.html` for detailed information on what the tandy flag does.

- **-um, --umem**

  Use UMem instead of CMem for saving.

- **-sy, --sync-transcript**

  When a transcript is active, write data directly into the file as soon as possible.

- **-x, -enable-xterm-graphics**

  Enable XTerm graphics. This will make fizmo try to display graphics into an X11-XTerminal using Gtk 2.0 and Gdk-Pixbuf. Since this represents a rather ugly hack—and may not work at all for some installations—it is not enabled by default.

- **-xt, --enable-xterm-title**

  Use the XTerminal title bar to display the game name.

## IN-GAME COMMANDS

- **/help**

  Displays the list of available in-game commands.

- **/info**

  Displays general version about the interpreter and it's status, such as the version number, story release and serial number, stack, memory and random generator status.

- **/predictable**

  Switches the random generator from “random” in “predictable” state and vice-versa.

- **/recstart**

  Records all user input in a command-file.

- **/recstop**

  Stop recording user input.

- **/fileinput**

  Start reading commands from a file.

## ENVIRONMENT

- ` ZCODE_PATH`

  `Default list of path names—separated by colons—to search for Z-Machine` `games.`

- ` INFOCOM_PATH`

  `Alternate list of pathnames which is used when ZCODE_PATH is not set.`

- ` ZCODE_ROOT_PATH`

  `List of colon-separated path names which are recursively searched for` `Z-Machine games.`

## FILES

### List of files

- `$HOME/.config/fizmo/config`

  `May contain user configuration parameters. In case $XDG_CONFIG_HOME is` `defined and contains an absolute path, $XDG_CONFIG_HOME/fizmo/config is` `used, in case of a relative path $HOME/$XDG_CONFIG_HOME/fizmo/confg is` `read.`

- `($XDG_CONFIG_DIRS)/fizmo/config`

  `$XDG_CONFIG_DIRS may contain a colon separated list of config directories to` `search. In case $XDG_CONFIG_DIRS is not set or empty /etc/xdg is` `used instead. Every directory is searched for a subdirectory named fizmo` `containing a file config, which will be searched for configuration` `parameters.`

- `/etc/fizmo.conf`

  `Global configuration parameters.`

- `$HOME/.config/fizmo/story-list.txt`

  `Contains the current list of story files known. In case $XDG_CONFIG_HOME is` `set the path is altered as described above.`

- `$HOME/.config/fizmo/*.iFiction`

  `Fizmo treats all files with a suffix of .iFiction in the` `$HOME/.config/fizmo directory as sources for story metadata. For more` `info, see section “Story-Metadata / IF Bibliography” above. In case` `$XDG_CONFIG_HOME is defined, see above.`

- `$HOME/.config/fizmo/babel-timestamps`

  `A list of .iFiction-files and their respective timestamps as they were found` `when the story list was last built (knowing if the babel info has changed` `speeds up the update process). $XDG_CONFIG_HOME will alter the directory` `as described before.`

### Option names for config files

`The following section lists the config-file's equivalents for the command` `lines options. For a detailed description of these options, see the` `“Options” section. Options have to start at the beginning of the` `line without any leading whitespace. Comments start with a '#' at the` `beginning of the line.`

` background-color = <color-name>` ` foreground-color = <color-name>` ` transscript-filename = <filename>` ` command-filename = <filename>` ` langauage = <language-code>` ` bold-for-bright-foreground = <any value means yes, empty no>` ` blink-for-bright-background = <any value means yes, empty no>` ` dont-use-colors = <any value means yes, empty no>` ` savegame-path = <directory-name>` ` enable-xterm-graphics = <any value means yes, empty no>` ` enable-xterm-title = <any value means yes, empty no>` ` left-margin = <number-of-columns>` ` right-margin = <number-of-columns>` ` dont-udpate-story-list = <any value means yes, empty no>`

## MISCELLANEOUS

### Scrolling back

`You can use the PageUp and PageDown keys (some terminals require` `to hold down shift) anytime to review text which was scrolled above the` `current window border.`

### Refreshing the screen

`CTRL-L will redraw the current display.`

### Resizing the screen

`In general, resizing the screen works best for game versions 3 and before,` `which is unfortunate since this encompasses only a part of the old Infocom` `games and none of the modern ones. For all others—including` `Seastalker—the upper window (which means mostly the status bar) cannot` `be resized and will remain fixed.`

### Undocumented Infocom commands

`Here is a list of commands that some of Infocom's games seem to support,` `although I never saw them menitioned in a manual or reference card.`

- `$verify, $ve, $ver`

  `Verifies if the game file is correct (essentially executes the` `“verify” opcode). “$ve” works in almost all original Infocom` `games, “$ver” works in AMFV, Beyond Zork, Bureaucracy, Nord` `and Bert, Sherlock, Trinity and Zork Zero.`

- `$refre`

  `Refreshes the screen. Works in AMFV, Arthur, Bureaucracy, Nord and Bert,` `Sherlock, Shogun, Trinity and Zork Zero.`

- `$id`

  `The “$id” command gives information about the interpreter. Works in` `Border Zone, Bureaucracy and Trinity.`

- `$credi`

  `Shows a credit screen in Trinity and Beyond Zork.`

- `#comm, #command`

  `This will read your input from a file. Works in AMFV, Ballyhoo,` `Bureaucracy, Enchanter, Hollywood Hjinx, Leather Goddesses, Lurking Horror,` `Plundered Hearts, Shogun, Sorcerer, Spellbreaker, Stationfall, Trinity` `and Zork Zero.`

- `#rand <int>`

  `Seeds the random generator with the given value. May be used in AMFV,` `Ballyhoo, Border Zone, Bureaucracy, Enchanter, Hollywood Hijinx,` `Leather Goddesses, Lurking Horror, Plundered Hearts, Shogun, Sorcerer,` `Spellbreaker, Stationfall and Zork Zero.`

- `#reco, #record`

  `This will record your commands into a file. Works in AMFV, Ballyhoo,` `Bureaucracy, Enchanter, Hollywood Hjinx, Leather Goddesses, Lurking Horror,` `Plundered Hearts, Shogun, Sorcerer, Spellbreaker, Stationfall and Zork Zero.`

- `#unre, #unrecord`

  `Stops recording commands into a file. Used in AMFV, Ballyhoo, Bureaucracy,` `Enchanter, Hollywood Hijinx, Leather Goddesses, Lurking Horror, Plundered` `Hearts, Shogun, Sorcerer, Spellbreaker, Stationfall and Zork Zero.`

## CREDITS

### ITF — The InfoTaskForce

`All the people who drew up the Z-Machine Specification. In alphabetical order` `(as far as I could find):` `Chris Tham,` `David Beazley,` `George Janczuk,` `Graham Nelson,` `Mark Howell,` `Matthias Pfaller,` `Mike Threepoint,` `Paul David Doherty,` `Peter Lisle,` `Russell Hoare` `and` `Stefan Jokisch.` `See http://en.wikipedia.org/wiki/InfoTaskForce for more information.`

### The Frotz authors

`When I really got stuck I secretly peeked into the frotz source. Thanks to` `Stefan Jokisch,` `Galen Hazelwood` `and` `David Griffith.`

### The w3m-img authors

`Akinori Ito,` `Hironori Sakamoto` `and` `Fumitoshi Ukai` `for the w3m-img code which I used to get graphics output into an XTerm.`

## SEE ALSO

**[frotz(6)](/frotz/6.md),** **[xzip(6)](/xzip/6.md),** **[jzip(6)](/jzip/6.md),** **[inform(1)](/inform/1.md)**

## AUTHOR

`Fizmo was written in 2005–2010 by Christoph Ender.`

## BUGS

`Fizmo is still in beta stage and I couldn't test all the games out there, so` `there will be some for sure. If you find them, please send an e-mail to` `fizmo@spellbreaker.org.`
