| DFROTZ(6) | Games Manual | DFROTZ(6) |
dfrotz - interpreter for Infocom and other Z-Machine games (dumb interface)
dfrotz [options] file [blorb_file]
At least one file must be specified on the command line. This can be either a plain Z-code file or a Blorb file. A Z-code file is a compiled executable for the Z-Machine. A Blorb file contains audio, graphics, and other things in addition to the game wrapped up into a single file. It can also optionally contain the Z-Machine executable. If a plain Z-code file is supplied, then Frotz will check for a Blorb file with the same base name but an extension of .blb, .blorb, or .zblorb and load it if found.
If the file supplied on the command line is a Blorb file, then Frotz will check to see if a Z-code file is contained within. If not found, then Frotz will complain and exit.
An alternatively-named Blorb file can be supplied as the optional second parameter to the command line invocation.
If you want to play any of the games from Infocom that use sound or graphics, you will need to get a corresponding Blorb file from the Interactive Fiction Archive. See FURTHER INFORMATION below.
Frotz is a Z-Machine interpreter. The Z-machine is a virtual machine designed by Infocom to run all of their text adventures. It went through multiple revisions during the lifetime of the company, and two further revisions (V7 and V8) were created by Graham Nelson after the company's demise. The specification is now quite well documented; this version of Frotz supports version 1.1. See Z-MACHINE STANDARDS below.
This version of Frotz fully supports all these versions of the Z-Machine except for version 6. Version 6 is semi-supported by displaying the outlines of V6 graphics with the picture number in the bottom-right corner.
This manpage is for Frotz with the dumb interface. Dumb Frotz does not support sound-effects, graphics, colors, or even screen-handling (for instance, curses(3)). Its purpose is to provide a Z-machine interpreter with the absolute minimum system requirements or for applications where those features are not needed
The interpreter number is a setting in the Z-machine header which is used to tell the game on what sort of machine the interpreter is running. Frotz will automatically choose the most appropriate number for a given Infocom-produced game. Should you want to override the number, the -I option is available.
An interpreter should choose the interpreter number most suitable for the machine it will run on. In Versions up to 5, the main consideration is that the behaviour of 'Beyond Zork' depends on the interpreter number (in terms of its usage of the character graphics font). In Version 6, the decision is more serious, as existing Infocom story files depend on interpreter number in many ways: moreover, some story files expect to be run only on the interpreters for a particular machine. There are, for instance, specifically Amiga versions. The DECSystem-20 was Infocom's own in-house mainframe.
For Infocom's four V6 games, the interpreter number will be automatically chosen based on the title and release number. Of course, this can be overridden at the command line.
Infocom used the following interpreter numbers:
Unlike it's curses-using or SDL-using siblings, dfrotz does not use configuration files. All configuration is done on the command line or while dfrotz is running.
Dumb Frotz supports Unicode glyphs by way of UTF-8 if the terminal used supports UTF-8. If you prefer using xterm, start it as uxterm. This is a wrapper script that sets up xterm with UTF-8 locale. You can also manually tell an xterm to switch into UTF-8 mode by holding CTRL and the right mouse button to bring up the VT FONTS menu. Depending on how xterm was installed, you may see an option for "UTF-8 Fonts" which will allow Unicode to be properly displayed.
Getting normal xterm to behave like this all the time can vary from system to system. Other terminal emulators have their own ways of being set to use UTF-8 character encoding.
If you are using some sort of wrapper around dfrotz, and want to make use of Unicode, it is the responsibility of the wrapper to make sense of characters passed back and forth.
Non-ASCII glyphs can be displayed without the use of UTF-8 by way of the ISO-8859-1 or ISO-8859-15 (Latin-1 or Latin-9) character sets. ISO-8859-15 is more or less identical to ISO-8859-1 except that the OE/oe dipthongs are supported, replacing the seldom-used 1/2 and 1/4 glyphs. See also luit(1) charsets(7) iso_8859-1(7) and iso_8859-15(7) for more information.
An important means of ensuring the system knows to use UTF-8 is to make sure the locale is set appropriately. This is valid only when Dumb Frotz runs under Unix-ish systems.
Using the command locale will tell you what is currently in use. Using locale -a will show you what's available. Then set your LANG evironmental variable to something appropriate by using one of these commands:
This can be put in your shell configuration file, be it .profile, .bash_profile, .login, .bashrc, or whatever. It can also be set system-wide in the equivalent files in /etc.
Frotz complies with the Z-Machine Standard 1.1 of May 2006,
revised February 2014. The authoritative version is found here:
http://inform-fiction.org/zmachine/standards/z1point1/index.html
As of 1.1, an additional optional parameter prompt is allowed on Version 5 extended save/restore. This parameter allows a game to read or write an auxiliary (aux) file without prompting the player. See section 15 of the Standard for details. Frotz restricts such files to having an ".aux" filename extension. When the -R (restricted read/write) option is active, reads and writes through this mechanism are restricted to the provided path the same as all other file accesses.
Unlike it's curses-using or SDL-using siblings, dfrotz does not search any path for game files.
The Frotz homepage is at https://661.org/proj/if/frotz/.
A git(1) repository of all versions of Unix Frotz from 2.32
to the bleeding edge is available for public perusal at
https://gitlab.com/DavidGriffith/frotz/.
The Interactive Fiction Archive, at https://www.ifarchive.org/, is a good place to find games to play with Frotz. To play Infocom's games that use graphics or sound, you'll need to get corresponding Blorb files from there. Various ports and builds for Frotz may also be found at the IF Archive.
Most distributions of Linux and BSD include Frotz in their package repositories.
It is distributed under the GNU General Public License version 2
or (at your option) any later version.
https://www.gnu.org/licenses/gpl-2.0.en.html
This software is offered as-is with no warranty or liability. If you find a bug or would like Frotz to do something it doesn't currently do, please visit the above Gitlab website and report your concerns.
The Z Machine itself has trouble with the concept of resizing a terminal. It assumes that once the text height and width are set, they will never change; even across saves. This made sense when 24x80 terminals were the norm and graphical user interfaces were mostly unknown. I'm fairly sure there's a way around this problem, but for now, don't resize an xterm in which Frotz is running. Also, you should try to make sure the terminal on which you restore a saved game has the same dimensions as the one on which you saved the game.
This manpage is not intended to tell users HOW to play interactive fiction. Refer to the file HOW_TO_PLAY included in the Unix Frotz documentation or visit one of the following sites:
This program has no bugs. no bugs. no bugs. no *WHAP* thank you. If you find one, please report it to the Gitlab site referenced above in FURTHER INFORMATION.
Frotz was written by Stefan Jokisch for MSDOS in 1995-7.
The Unix port was done by Galen Hazelwood.
The Unix port is currently maintained by David Griffith
<dave@661.org>.
frotz(6) sfrotz(6) nitfol(6) rezrov(6) jzip(6) xzip(6) inform(1)
| 2025-02-01 | Dumb Frotz v2.55 |