|
NAMEfrotz - interpreter for Infocom and other Z-Machine gamesSYNOPSISfrotz [options] file [blorbfile]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. DESCRIPTIONFrotz 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.0.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. OPTIONS
HOT KEYSThese hot keys are enabled only when the Z-machine is waiting for line input (for Z-machine experts: the @read opcode).
INTERPRETER NUMBERThe 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. Infocom used the following interpreter numbers: 1 DECSystem 20 2 Apple IIe 3 Macintosh 4 Amiga 5 Atari ST 6 IBM PC 7 Commodore128 8 Commodore64 9 Apple IIc 10 Apple IIgs 11 Tandy Color CONFIGURATION FILESOn startup, frotz will first check the system's frotz.conf then $HOME/.frotzrc for configuration information. The configuration file uses a simple syntax of<variable> <whitespace> <value> Color names may be any of the following:
ascii on | off
background <colorname>
color yes | no
errormode
never | once | always | fatal
expand_abb on | off
foreground <colorname>
ignore_fatal on | off
piracy on | off
randseed <integer>
sound on | off
tandy on | off
undo_slots <integer>
zcode_path
/path/to/zcode/files:/another/path
The following options are really only useful for weird terminals, weird curses libraries or if you want to force a certain look (like play in 40-column mode). context_lines <integer>
left_margin <integer>
right_margin <integer>
text_height <integer>
text_width <integer>
script_width <integer>
The following options are mainly useful for debugging or cheating. attrib_set on | off
attrib_test on | off
obj_loc on | off
obj_move on | off
COLORWhether or not Frotz will display color depends upon the curses library and the terminal. In general, an xterm or other X11-based terminal emulator will support color. Sometimes the value of $TERM will need to be set to something like "xterm-color" or "rxvt-256color". For a Linux console, $TERM is almost always set to "linux". This will support color. For a NetBSD or OpenBSD console on an x86 or amd64, the default value of $TERM is "vt100". To get color supported there, you need to set $TERM to "pc3". A FreeBSD console's $TERM is "xterm" and will support color. Color on text consoles on machines other than x86 or amd64 is untested.On some operating systems, Xterm will not change the cursor color to match that of the text. To fix this, add the following line to your .Xresources file and type xrdb -merge $HOME/.Xresources xterm*cursorColor: *XtDefaultForeground This can also be added to a systemwide file such as /etc/X11/Xresources/x11-common or /etc/X11/app-defaults/XTerm. The names and locations of the system-wide files can vary from OS to OS. UNICODEFrotz 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. LOCALEAn 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: export LANG=C.UTF-8 export LANG=en_US.utf8 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. SEE ALSOash(1) bash(1) csh(1) ksh(1) sh(1) zsh(1)ENVIRONMENTIf the ZCODE_PATH environmental variable is defined, frotz will search that path for game files. If that doesn't exist, INFOCOM_PATH will be searched.For the Alt key to be read correctly in an Xterm, the following lines should be in your .Xresources file: XTerm*metaSendsEscape: true
FURTHER INFORMATIONThe Frotz homepage is at https://661.org/proj/if/frotz/.A git(1) repository of all versions of Unix Frotz back to
2.32 is available for public perusal here:
The bleeding edge of Frotz development may be followed there. The Interactive Fiction Archive is a good place to find games to
play with Frotz. Various ports and builds for Frotz may also be found here.
Here is its URL:
Most distributions of Linux and BSD include Frotz in their package repositories. CAVEATSThe 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.Audio latency might be unreasonably long depending on the settings of your operating system. Linux generally has things right. The BSDs may need some sysctl(8) settings adjusted. See the sound(4) or audio(4) manpages for more information. You can use a path like "/usr/local/games/zcode:$HOME/zcode" with $ZCODE_PATH or $INFOCOM_PATH because the shell will digest that $HOME variable for you before setting $ZCODE_PATH. While processing frotz.conf and $HOME/.frotzrc, a shell is not used. Therefore you cannot use environmental variables in the "zcodepath" option within the config files. 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:
BUGSThis 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.AUTHORSFrotz 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>. CONTRIBUTORSIn 2019, a Kickstarter campaign was run to raise funds to pay Mark McCurry to overhaul the audio subsystem for the curses port of Frotz. The following people contributed $100 towards that effort:Simon Martin Dan Sanderson Justin de Vesine Daniel Sharpe SEE ALSOsfrotz(6) dfrotz(6) nitfol(6) rezrov(6) jzip(6) xzip(6) inform(1)
Visit the GSP FreeBSD Man Page Interface. |