Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FROTZ(6)			 Games Manual			      FROTZ(6)

NAME
       frotz - interpreter for Infocom and other Z-Machine games

SYNOPSIS
       frotz [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  com-
       piled  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  sec-
       ond parameter to	the command line invocation.

DESCRIPTION
       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.0.

       This  version  of  Frotz	fully supports all these versions of the Z-Ma-
       chine 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
       -a     Watch  attribute setting.	 Setting and clearing of attributes on
	      objects will be noted in debugging messages.

       -A     Watch attribute testing.	Every time the Z-machine tests an  at-
	      tribute value, the test and the result will be reported.

       -b <colorname>
	      Sets  the	 default background color.  <colorname>	corresponds to
	      one of the Z-machine colors, which are as	follows:
	      black red	green yellow blue magenta cyan white
	      If color support is disabled or not available on your  terminal,
	      this option does nothing.

       -c N   Sets  the	 number	 of  context  lines used.  By default, after a
	      ``[MORE]'' prompt, and assuming there is enough output  pending,
	      Frotz  will  allow all the currently visible lines to scroll off
	      the screen before	prompting again.  This	switch	specifies  how
	      many  lines  of text Frotz will hold over	and display at the top
	      of the next screen.

       -d     Disable color.

       -e     Enable sound.  If	you've disabled	sound in  a  config  file  and
	      want to hear sound effects, use this.

       -f <colorname>
	      Sets  the	 default foreground color.  <colorname>	corresponds to
	      one of the Z-machine colors, which are as	follows
	      black red	green yellow blue magenta cyan white
	      If color support is disabled or is not available on your	termi-
	      nal, this	option does nothing.

       -F     Force color mode.	 If you've disabled color in a config file and
	      want to Frotz to display colors, use this.

       -h N   Manually sets the	text height.  Though most curses libraries are
	      intelligent  enough to determine the current width from the ter-
	      minal, it	may sometimes be necessary to use this option to over-
	      ride the default.

       -i     Ignore fatal errors.  If a Z-Machine  interpreter	 encounters  a
	      zcode  error  such  as division-by-zero or addressing an illegal
	      object, the proper response is to	abort execution.  This is done
	      because the zcode	program	doesn't	have a clear idea of  what  is
	      going  on.   There are some games	out there that cause fatal er-
	      rors because the authors were careless and used  an  interpreter
	      that  didn't properly check for errors.  This option is intended
	      to get around such bugs, but be warned that Strange  Things  may
	      happen if	fatal errors are not caught.

       -I N   Set the interpreter number.  Infocom designed the	Z-machine such
	      that  a  game could tell on what kind of machine the interpreter
	      was running.  See	INTERPRETER NUMBER below.

       -l N   Sets the left margin, for	those who might	have specific  format-
	      ting needs.

       -L <filename>
	      When the game starts, load this saved game file.

       -o     Watch  object  movement.	This option enables debugging messages
	      from the interpreter which describe the moving of	objects	in the
	      object tree.

       -O     Watch object location.  These debugging messages detail the  lo-
	      cations of objects in the	object tree.

       -p     Plain  ASCII  output only.  This inhibits	the output of accented
	      letters and other	characters from	the Latin-1 character set, re-
	      placing them with	reasonable alternatives.  This may  be	neces-
	      sary on devices lacking these characters.

       -P     Alter  the  piracy  opcode.  The piracy opcode was never used by
	      Infocom.	This switch is really only useful for those  who  like
	      to toy around with Z-code.

       -q     Quiet.  Turns off	sound effects.	Useful when running Frotz on a
	      remote  machine  and you don't want to bother whoever's near the
	      console with weird noises.

       -r N   Sets the right margin.

       -R <path>
	      Restricted read/write.  Reading and writing files	 will  be  re-
	      stricted	only to	the provided path. Ordinarily Frotz will write
	      or read its saves, transcripts, and move recordings in  whatever
	      path  or	directory  the user provides when the SAVE, SCRIPT, or
	      RECORDING	commands are given.  This can be undesirable if	 Frotz
	      is  run  in  a  restricted  environment, by a front end, or by a
	      chatbot.	This option will cause Frotz to	write or read only  to
	      the  provided  path  and	nowhere	 else.	 Then  the controlling
	      process can then watch that directory for	changes	and  need  not
	      worry about someone scribbling or	snooping who-knows-where.

       -s N   Set  the random number seed value.  The given seed value is used
	      as the initial seed value	on every restart. This is helpful  for
	      testing games like Curses	which make random decisions before the
	      first input (such	that the hot key Alt-S does not	really help).

       -S N   Set  the transcript width.  By default your transcript files are
	      formatted	to a width of 80 columns per line, regardless  of  the
	      current  text width.  This switch	allows you to change this set-
	      ting. In particular, use	-S  0  to  deactivate  automatic  line
	      splitting	in transcript files.

       -t     Sets the Z-machine's Tandy bit, which may	affect the behavior of
	      certain Infocom games.  For example, Zork	I pretends not to have
	      sequels, and Witness has its language toned down.

       -u N   Sets  the	 number	 of  slots available for Frotz's multiple undo
	      hotkey (see below).  This	defaults to twenty,  which  should  be
	      sufficient  for  most  purposes.	Setting	too high a number here
	      may be dangerous on machines with	limited	memory.

       -w N   Manually sets the	text width.

       -x     Expand the abbreviations "g", "x", and "z"  to  "again",	"exam-
	      ine", and	"wait".	 This switch is	for use	with old Infocom games
	      that  lack  these	 common	abbreviations which were introduced in
	      later games.  Use	it with	caution: A few games  might  use  "g",
	      "x" or "z" for different purposes.

       -Z N   Error checking mode.
	      0	= don't	report errors.
	      1	= report first instance	of an error.
	      2	= report all errors.
	      3	= exit after any error.
	      Default is 1 (report first instance of an	error).

HOT KEYS
       These  hot keys are enabled only	when the Z-machine is waiting for line
       input (for Z-machine experts: the @read opcode).

       Alt-D  Set debugging options.

       Alt-H  Help (print the list of hot keys).

       Alt-N  New game (restart).

       Alt-P  Playback on.

       Alt-R  Recording	on/off.

       Alt-S  Set random number	seed.

       Alt-U  Undo one turn.

       Alt-X  Exit game	(after confirmation).

INTERPRETER NUMBER
       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 run-
       ning. 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  considera-
       tion  is	that the behaviour of 'Beyond Zork' depends on the interpreter
       number (in terms	of its usage of	the character graphics font). In  Ver-
       sion  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 FILES
       On 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:
       black | red | green | blue | magenta | cyan | white

       ascii   on | off
       Use plain ASCII only.  Default is "off".

       background   <colorname>
       Set background color.  Default is terminal's default background color.

       color   yes | no
       Use color text.	Default	is "yes" if supported.

       errormode   never | once	| always | fatal
       Set error reporting mode.
       never Don't report any errors except for	fatal ones.
       once Report only	the first instance of an error.
       always Report every instance of an error.
       fatal Abort on any error, even non-fatal	ones.
       Default is "once".

       expand_abb   on | off
       Expand abbreviations.  Default is off.  Expand the  abbreviations  "g",
       "x", and	"z" to "again",	"examine", and "wait".	This switch is for use
       with  old Infocom games that lack these common abbreviations which were
       introduced in later games.  Use it with caution.	 A few games might use
       the "g",	"x", or	"z" for	different purposes.

       foreground   <colorname>
       Set foreground color.  Default is terminal's default forground color.

       ignore_fatal   on | off
       Ignore fatal errors.  If	a Z-Machine interpreter	encounters a zcode er-
       ror such	as division-by-zero  or	 addressing  an	 illegal  object,  the
       proper  response	is to abort execution.	This is	done because the zcode
       program doesn't have a clear idea of what is going on.  There are  some
       games  out there	that cause fatal errors	because	the authors were care-
       less and	used an	interpreter that didn't	 properly  check  for  errors.
       This  option  is	 intended  to get around such bugs, but	be warned that
       Strange Things may happen if fatal errors are not caught.
       Default is "off"

       piracy	on | off
       Alter the piracy	opcode.	 Default is off.  The piracy opcode was	 never
       used  by	 Infocom. This option is only useful for those who like	to toy
       around with Z-code.

       randseed	  <integer>
       Set random number seed.	Default	comes from the Unix epoch.

       sound   on | off
       Turn sound effects on or	off.  Default is "on".

       tandy   on | off
       Set the machine's Tandy bit.  This may affect the behavior  of  certain
       Infocom	games.	 For example, Zork I pretends not to have sequels, and
       Witness has its language	toned down.  Default is	"off".

       undo_slots   <integer>
       Set number of undo slots.  Default is 500.

       zcode_path   /path/to/zcode/files:/another/path
       Set path	to search for zcode game files.	 This is just like  the	 $PATH
       environmental  variable	except	that you can't put environmental vari-
       ables  in  the	path   or   use	  other	  shortcuts.	For   example,
       "$HOME/games/zcode"  is	illegal	because	the shell can't	interpret that
       $HOME variable.

       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>
       Set  the	 number	of context lines used.	By default, after a ``[MORE]''
       prompt, and assuming there is enough output pending, frotz  will	 allow
       all the currently visible lines to scroll off the screen	before prompt-
       ing  again.   This  switch  specifies how many lines of text frotz will
       hold over and display at	the top	of the next screen.  Default is	"0".

       left_margin   <integer>
       Set the left margin.  This is for those who might have special  format-
       ting needs.

       right_margin   <integer>
       Set the right margin.  This is for those	who might have special format-
       ting needs.

       text_height   <integer>
       Manually	set text height.  Most curses libraries	are intelligent	enough
       to  determine  the  current width of the	terminal.  You may need	to use
       this option to override the default.

       text_width   <integer>
       Manually	set text width.	 Again,	this should not	be necessary except in
       special circumstances.

       script_width   <integer>
       Set the transcript width.  Default is 80	columns	per  line,  regardless
       of  the current text width.  This switch	allows you to change this set-
       ting.  You may set this to "0" to deactivate  automatic	line-splitting
       in transcript files.

       The following options are mainly	useful for debugging or	cheating.

       attrib_set   on | off
       Watch attribute setting.	 Setting and clearing of attributes on objects
       will be noted in	debugging messages.  Default is	"off"

       attrib_test   on	| off
       Watch  attribute	 testing.  Every time the Z-machine tests an attribute
       value, the test and the result will be reported.	 Default is "off".

       obj_loc	 on | off
       Watch object location.  These debugging messages	detail	the  locations
       of objects in the object	tree.  Default is "off".

       obj_move	  on | off
       Watch object movement.  This option enables debugging messages from the
       interpreter  which describe the movement	of objects in the object tree.
       Default is "off".

COLOR
       Whether or not Frotz will display color depends upon the	curses library
       and the terminal.  In general, an xterm or other	X11-based terminal em-
       ulator 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 sup-
       port 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/Xre-
       sources/x11-common or /etc/X11/app-defaults/XTerm.  The names and loca-
       tions of	the system-wide	files can vary from OS to OS.

UNICODE
       Frotz supports Unicode glyphs by	way of UTF-8 if	the terminal used sup-
       ports 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 man-
       ually 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 be-
       ing set to use UTF-8 character encoding.

   LOCALE
       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 vari-
       able 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 ALSO
       ash(1) bash(1) csh(1) ksh(1) sh(1) zsh(1)

ENVIRONMENT
       If  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
       XTerm*eightBitInput: false

FURTHER	INFORMATION
       The 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:
       https://gitlab.com/DavidGriffith/frotz/.

       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:
       http://www.ifarchive.org/

       Most distributions of Linux and BSD  include  Frotz  in	their  package
       repositories.

CAVEATS
       The  Z Machine itself has trouble with the concept of resizing a	termi-
       nal.  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  re-
       size  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	dimen-
       sions 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 can-
       not use environmental variables in the "zcodepath"  option  within  the
       config files.

       This manpage is not intended to tell users HOW to play interactive fic-
       tion.   Refer  to the file HOW_TO_PLAY included in the Unix Frotz docu-
       mentation or visit one of the following sites:
       http://www.microheaven.com/ifguide/
       http://www.brasslantern.org/beginners/
       http://www.musicwords.net/if/how_to_play.htm
       http://ifarchive.org/

BUGS
       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.

AUTHORS
       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>.

CONTRIBUTORS
       In  2019, a Kickstarter campaign	was run	to raise funds to pay Mark Mc-
       Curry 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 ALSO
       sfrotz(6) dfrotz(6) nitfol(6) rezrov(6) jzip(6) xzip(6) inform(1)

				     2.51			      FROTZ(6)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=frotz&sektion=6&manpath=FreeBSD+Ports+15.0.quarterly>

home | help