A Portable Z-Machine Interpreter
Frotz is an interpreter for Infocom games and other Z-machine games. It
complies with
standard 1.0
of Graham Nelson's specification. It was written by Stefan Jokisch in
1995-1997. It was ported to Unix by Galen Hazelwood. Currently the Unix
port is being developed and maintained by David Griffith. The Unix port
is also the canonical core version upon which all other ports are based.
- Compiles and runs without changes on most common flavors of Unix,
both open source and not. This includes macOS.
- Portable to many other operating systems and hardware.
- Curses, Dumb, and SDL user interfaces.
- Plays all Z-code games including V6.
- Sound support through libao.
- Graphics support through SDL.
- Config files.
- User-configurable error-checking.
- Distributed under the GNU General Public License, version 2 or any later version.
-
Interactive Fiction Archive
-
Various flavors of Frotz can be found at the
Interactive Fiction Archive or any of
its mirrors.
-
Gitlab
-
Gitlab hosts a Git repository of the Unix port of
Frotz, which also includes the DOS port. The Unix port
includes a curses
interface, an SDL interface, and a
dumb interface that requires absolutely no other libraries besides the
standard C library.
- Your operating system's package repository
-
This link shows the Frotz packages for the most commonly-encountered distributions of
Linux. Frotz is also available in Gentoo's
Portage and
Packages systems.
For the BSD world, there are
NetBSD's pkgsrc tree,
FreeBSD's ports tree, and
OpenBSD's ports tree.
- Install with Fink
-
Fink is a packaging system for macOS. To install Frotz through Fink,
see https://pdb.finkproject.org/pdb/package.php/frotz
- Install with Brew
-
Brew is primarily for macOS users, but it works for many other flavors
of Unix as well. Brew allows you to download and install any of a wide
variety of programs and libraries with a single command. See
https://formulae.brew.sh/formula/frotz
- Install with Docker
-
Frotz can also be installed as a container with Docker. See
https://github.com/newtmitch/frotz-docker
and
https://hub.docker.com/r/newtmitch/frotz
This program started as a remake of Mark Howell's Zip, but has grown into
a completely new interpreter with ports for lots of platforms.
Thanks goes to Stefan Jokisch for writing Frotz and Galen Hazelwood for
doing the initial work of porting it to Unix. Thanks also to Jim Dunleavy
for his optimization to the core Frotz code. Other people to thank
include those who uploaded patches to Unix Frotz to the IF-Archive and
getting me interested in the inner-workings of interpreters like Frotz,
people who posted to Usenet feedback on what I was doing, testers, those
who donated the use of machines for porting, sent me patches, etc. These
include, but are not limited to:
Torbjorn Anderson, Timo Korvola, Martin Frost, Mihail Milushev, David
Picton, Chris Sullivan, Leonard Richardson, Stephen Kitt, Paul E Coad,
Paul Janzen, Brad Town, Jason C Penney, Denis Hirschfeldt, Jacob Nevins,
Matteo De Luigi, Steven Frank, Thomas Troeger, and others that I've
forgotten.
Michael Edmonson (author of Rezrov) and Evin Robertson (author of Nitfol)
deserve recognition for the ideas that I've borrowed from their
programs. Al Petrofsky (creator of dumbfrotz) donated much code to allow
Unix Frotz to semi-support V6 games.
This page was last updated on November 30, 2020