1DFROTZ(6)                        Games Manual                        DFROTZ(6)
2
3
4

NAME

6       dfrotz - interpreter for Infocom and other Z-Machine games (dumb inter‐
7       face)
8
9

SYNOPSIS

11       dfrotz [options] file [blorb_file]
12
13       At least one file must be specified on the command line.  This  can  be
14       either  a  plain  Z-code file or a Blorb file.  A Z-code file is a com‐
15       piled executable for the  Z-Machine.   A  Blorb  file  contains  audio,
16       graphics,  and  other  things in addition to the game wrapped up into a
17       single file.  It can also optionally contain the Z-Machine  executable.
18       If  a  plain Z-code file is supplied, then Frotz will check for a Blorb
19       file with the same base name but  an  extension  of  .blb,  .blorb,  or
20       .zblorb and load it if found.
21
22       If  the  file  supplied on the command line is a Blorb file, then Frotz
23       will check to see if a Z-code file is contained within.  If not  found,
24       then Frotz will complain and exit.
25
26       An  alternatively-named Blorb file can be supplied as the optional sec‐
27       ond parameter to the command line invocation.
28
29
30

DESCRIPTION

32       Frotz is a Z-Machine interpreter.  The Z-machine is a  virtual  machine
33       designed  by  Infocom  to  run  all  of their text adventures.  It went
34       through multiple revisions during the lifetime of the company, and  two
35       further  revisions  (V7 and V8) were created by Graham Nelson after the
36       company's demise.  The specification is now quite well documented; this
37       version of Frotz supports version 1.0.
38
39       This  version  of  Frotz fully supports all these versions of the Z-Ma‐
40       chine except for version 6.  Version 6 is semi-supported by  displaying
41       the outlines of V6 graphics with the picture number in the bottom-right
42       corner.
43
44
45       This manpage is for Frotz with the dumb interface.  Dumb Frotz does not
46       support sound-effects, graphics, or colors.
47
48
49

OPTIONS

51       -a     Watch  attribute setting.  Setting and clearing of attributes on
52              objects will be noted in debugging messages.
53
54
55       -A     Watch attribute testing.  Every time the Z-machine tests an  at‐
56              tribute value, the test and the result will be reported.
57
58
59       -f [irc | ansi | normal]
60              Select  type of format codes.  Dumb Frotz can optionally mark up
61              its output with codes for color, bold,  underline,  and  so  on.
62              Currently,  formatting  codes for irc clients and ansi terminals
63              are supported.  Specifying normal or not using this flag at  all
64              will  result  in  Dumb  Frotz's normal behavior of not using any
65              sort of markup.
66
67
68       -h N   Text height.  Every N lines, a MORE prompt will be printed.  Use
69              of the -m option renders this option moot.
70
71
72       -i     Ignore  fatal  errors.   If a Z-Machine interpreter encounters a
73              zcode error such as division-by-zero or  addressing  an  illegal
74              object, the proper response is to abort execution.  This is done
75              because the zcode program doesn't have a clear idea of  what  is
76              going  on.   There are some games out there that cause fatal er‐
77              rors because the authors were careless and used  an  interpreter
78              that  didn't properly check for errors.  This option is intended
79              to get around such bugs, but be warned that Strange  Things  may
80              happen if fatal errors are not caught.
81
82
83       -I N   Set the interpreter number.  Infocom designed the Z-machine such
84              that a game could tell on what kind of machine  the  interpreter
85              was running.  See INTERPRETER NUMBER below.
86
87
88       -L <filename>
89              When the game starts, load this saved game file.
90
91
92       -m     Turn  off  MORE  prompts.   This  can  be desirable when using a
93              printing terminal.
94
95
96       -o     Watch object movement.  This option enables  debugging  messages
97              from the interpreter which describe the moving of objects in the
98              object tree.
99
100
101       -O     Watch object location.  These debugging messages detail the  lo‐
102              cations of objects in the object tree.
103
104
105       -p     Plain  ASCII  output only.  This inhibits the output of accented
106              letters and other characters from the Latin-1 character set, re‐
107              placing  them  with reasonable alternatives.  This may be neces‐
108              sary on devices lacking these characters.  The  OE/oe  dipthongs
109              are missing from the Latin-1 set.  These are handled as well.
110
111
112       -P     Alter  the  piracy  opcode.  The piracy opcode was never used by
113              Infocom.  This switch is really only useful for those  who  like
114              to toy around with Z-code.
115
116
117       -q     Quiet   mode.    Suppress  startup  messages  such  as  "Loading
118              zork1.z3".
119
120
121       -r xxx Set runtime options.  This option may be used  repeatedly.   See
122              CONFIGURATION below.  There is no need to prepend a backslash.
123
124
125       -R <path>
126              Restricted  read/write.   Reading  and writing files will be re‐
127              stricted only to the provided path. Ordinarily Frotz will  write
128              or  read its saves, transcripts, and move recordings in whatever
129              path or directory the user provides when the  SAVE,  SCRIPT,  or
130              RECORDING  commands are given.  This can be undesirable if Frotz
131              is run in a restricted environment, by a  front  end,  or  by  a
132              chatbot.   This option will cause Frotz to write or read only to
133              the provided  path  and  nowhere  else.   Then  the  controlling
134              process  can  then watch that directory for changes and need not
135              worry about someone scribbling or snooping who-knows-where.
136
137
138       -s N   Set the random number seed value.  The given seed value is  used
139              as  the initial seed value on every restart. This is helpful for
140              testing games like Curses which make random decisions before the
141              first input (such that the hot key Alt-S does not really help).
142
143
144       -S N   Set  the transcript width.  By default your transcript files are
145              formatted to a width of 80 columns per line, regardless  of  the
146              current  text width.  This switch allows you to change this set‐
147              ting. In particular, use  -S  0  to  deactivate  automatic  line
148              splitting in transcript files.
149
150
151       -t     Sets the Z-machine's Tandy bit, which may affect the behavior of
152              certain Infocom games.  For example, Zork I pretends not to have
153              sequels, and Witness has its language toned down.
154
155
156       -u N   Sets  the  number  of  slots available for Frotz's multiple undo
157              hotkey (see below).  This defaults to twenty,  which  should  be
158              sufficient  for  most  purposes.  Setting too high a number here
159              may be dangerous on machines with limited memory.
160
161
162       -w N   Manually sets the text width.  This should not be necessary  ex‐
163              cept in special circumstances.
164
165
166       -x     Expand  the  abbreviations  "g", "x", and "z" to "again", "exam‐
167              ine", and "wait".  This switch is for use with old Infocom games
168              that  lack  these  common abbreviations which were introduced in
169              later games.  Use it with caution: A few games  might  use  "g",
170              "x" or "z" for different purposes.
171
172
173       -v     Show  version  information and exit.  This will display the ver‐
174              sion of Frotz, some information about what's enabled and  what's
175              not,  the  commit  date of the source code, and a git(1) hash of
176              that commit.
177
178
179       -Z N   Error checking mode.
180              0 = don't report errors.
181              1 = report first instance of an error.
182              2 = report all errors.
183              3 = exit after any error.
184              Default is 1 (report first instance of an error).
185
186
187

INTERPRETER NUMBER

189       The interpreter number is a setting in the Z-machine  header  which  is
190       used  to  tell the game on what sort of machine the interpreter is run‐
191       ning. Frotz will automatically choose the most appropriate number for a
192       given  Infocom-produced  game.  Should you want to override the number,
193       the -I option is available.
194
195       An interpreter should choose the interpreter number most  suitable  for
196       the  machine  it will run on.  In Versions up to 5, the main considera‐
197       tion is that the behaviour of 'Beyond Zork' depends on the  interpreter
198       number  (in terms of its usage of the character graphics font). In Ver‐
199       sion 6, the decision is more serious, as existing Infocom  story  files
200       depend  on  interpreter number in many ways: moreover, some story files
201       expect to be run only on the interpreters  for  a  particular  machine.
202       There are, for instance, specifically Amiga versions.  The DECSystem-20
203       was Infocom's own in-house mainframe.
204
205       For Infocom's four V6 games, the interpreter number will  be  automati‐
206       cally  chosen  based  on the title and release number.  Of course, this
207       can be overridden at the command line.
208
209       Infocom used the following interpreter numbers:
210
211
212       1   DECSystem 20
213
214
215       2   Apple IIe
216
217
218       3   Macintosh
219
220
221       4   Amiga
222
223
224       5   Atari ST
225
226
227       6   IBM PC
228
229
230       7   Commodore128
231
232
233       8   Commodore64
234
235
236       9   Apple IIc
237
238
239       10   Apple IIgs
240
241
242       11   Tandy Color
243
244
245

CONFIGURATION

247       Unlike it's curses-using or SDL-using siblings,  dfrotz  does  not  use
248       configuration  files.  All configuration is done on the command line or
249       while dfrotz is running.
250
251   General Commands
252       \help  Show help message.
253
254       \set   Show the current values of runtime settings.
255
256       \s     Show the current contents of the whole screen.
257
258       \d     Discard the part of the input before the cursor.
259
260       \wN    Advance clock N/10 seconds, possibly  causing  the  current  and
261              subsequent inputs to timeout.
262
263       \w     Advance  clock  by  the  amount  of  real  time since this input
264              started (times the current speed factor).
265
266       \t     Advance clock just enough to timeout the current input
267
268
269   Reverse-Video Display Method Settings
270       \rn    none
271
272       \rc    CAPS
273
274       \rd    doublestrike
275
276       \ru    underline
277
278
279   Output Compression Settings
280       \cn    none: show whole screen before every input.
281
282       \cm    max: show only lines that have new nonblank characters.
283
284       \cs    spans: like max, but emit a blank  line  between  each  span  of
285              screen lines shown.
286
287       \chN   Hide top N lines (orthogonal to above modes).
288
289
290   Misc Settings
291       \sfX   Set speed factor to X.  (0 = never timeout automatically).
292
293       \mp    Toggle use of MORE prompts
294
295       \ln    Toggle display of line numbers.
296
297       \lt    Toggle display of the line type identification chars.
298
299       \vb    Toggle visual bell.
300
301       \pb    Toggle display of picture outline boxes.
302
303       (Toggle commands can be followed by a 1 or 0 to set value ON or OFF.)
304
305
306   Character Escapes
307       \\     backslash
308
309       \#     backspace
310
311       \[     escape
312
313       \_     return
314
315       \<     cursor-left
316
317       \>     cursor-right
318
319       \^     cursor-up
320
321       \.     cursor-down
322
323       \1..\0 f1..f10
324
325       \D..\X Standard Frotz hotkeys.
326
327       use \H (help) to see the list of hotkeys.
328
329
330   Line Type Identification Characters
331   Input lines (untimed)
332       >      A regular line-oriented input
333
334       )      A single-character input
335
336       }      A  line input with some input before the cursor.  Use \d to dis‐
337              card it.
338
339   Input lines (timed)
340       T      A regular line-oriented input
341
342       t      A single-character input
343
344       D      A line input with some input before the cursor.  Use \d to  dis‐
345              card it.
346
347   Output lines
348       ]      Output line that contains the cursor.
349
350       .      A blank line emitted as part of span compression.
351
352              (blank) Any other output line.
353
354
355

UNICODE

357       Dumb Frotz supports Unicode glyphs by way of UTF-8 if the terminal used
358       supports UTF-8.  If you prefer using xterm, start it as  uxterm.   This
359       is a wrapper script that sets up xterm with UTF-8 locale.  You can also
360       manually tell an xterm to switch into UTF-8 mode by  holding  CTRL  and
361       the right mouse button to bring up the VT FONTS menu.  Depending on how
362       xterm was installed, you may see an option for "UTF-8 Fonts" which will
363       allow Unicode to be properly displayed.
364
365       Getting  normal  xterm  to  behave like this all the time can vary from
366       system to system.  Other terminal emulators have their own ways of  be‐
367       ing set to use UTF-8 character encoding.
368
369       If  you  are using some sort of wrapper around dfrotz, and want to make
370       use of Unicode, it is the responsibility of the wrapper to  make  sense
371       of characters passed back and forth.
372
373

NON ASCII CHARACTERS

375       Non-ASCII  glyphs  can  be displayed without the use of UTF-8 by way of
376       the ISO-8859-1 or ISO-8859-15  (Latin-1  or  Latin-9)  character  sets.
377       ISO-8859-15  is  more  or  less identical to ISO-8859-1 except that the
378       OE/oe dipthongs are supported, replacing the seldom-used  1/2  and  1/4
379       glyphs.   See also luit(1) charsets(7) iso_8859-1(7) and iso_8859-15(7)
380       for more information.
381
382
383   LOCALE
384       An important means of ensuring the system knows to use UTF-8 is to make
385       sure  the  locale  is  set appropriately.  This is valid only when Dumb
386       Frotz runs under Unix-ish systems.
387
388       Using the command locale will tell you what is currently in use.  Using
389       locale -a
390
391       will  show you what's available.  Then set your LANG evironmental vari‐
392       able to something appropriate by using one of these commands:
393
394           export LANG=C.UTF-8
395           export LANG=en_US.utf8
396
397       This can be put in your  shell  configuration  file,  be  it  .profile,
398       .bash_profile, .login, .bashrc, or whatever.
399
400       It can also be set system-wide in the equivalent files in /etc.
401
402
403   SEE ALSO
404       ash(1) bash(1) csh(1) ksh(1) sh(1) zsh(1)
405
406
407

ENVIRONMENT

409       Unlike  it's curses-using or SDL-using siblings, dfrotz does not search
410       any path for game files.
411
412
413

FURTHER INFORMATION

415       The Frotz homepage is at https://661.org/proj/if/frotz/.
416
417       A git(1) repository of all versions of  Unix  Frotz  back  to  2.32  is
418       available for public perusal here:
419       https://gitlab.com/DavidGriffith/frotz/.
420
421       The bleeding edge of Frotz development may be followed there.
422
423       Source tarballs are available at the IF Archive or any of its many mir‐
424       rors:
425       http://www.ifarchive.org/
426
427       Most distributions of Linux and BSD  include  Frotz  in  their  package
428       repositories.
429
430       It is distributed under the GNU General Public License version 2 or (at
431       your option) any later version.
432       https://www.gnu.org/licenses/gpl-2.0.en.html
433
434       This software is offered as-is with no warranty or liability.   If  you
435       find a bug or would like Frotz to do something it doesn't currently do,
436       please visit the above Gitlab website and report your concerns.
437
438
439

CAVEATS

441       The Z Machine itself has trouble with the concept of resizing a  termi‐
442       nal.  It assumes that once the text height and width are set, they will
443       never change; even across saves.  This made sense when 24x80  terminals
444       were  the  norm and graphical user interfaces were mostly unknown.  I'm
445       fairly sure there's a way around this problem, but for now,  don't  re‐
446       size  an xterm in which frotz is running.  Also, you should try to make
447       sure the terminal on which you restore a saved game has the same dimen‐
448       sions as the one on which you saved the game.
449
450
451       This manpage is not intended to tell users HOW to play interactive fic‐
452       tion.  Refer to the file HOW_TO_PLAY included in the Unix  Frotz  docu‐
453       mentation or visit one of the following sites:
454       http://www.microheaven.com/ifguide/
455       http://www.brasslantern.org/beginners/
456       http://www.musicwords.net/if/how_to_play.htm
457       http://ifarchive.org/
458
459
460

BUGS

462       This  program has no bugs.  no bugs.  no bugs.  no *WHAP* thank you. If
463       you find one, please report it to the Gitlab site referenced  above  in
464       FURTHER INFORMATION.
465
466
467

AUTHORS

469       Frotz was written by Stefan Jokisch for MSDOS in 1995-7.
470       The Unix port was done by Galen Hazelwood.
471       The Unix port is currently maintained by David Griffith <dave@661.org>.
472
473
474

SEE ALSO

476       frotz(6) sfrotz(6) nitfol(6) rezrov(6) jzip(6) xzip(6) inform(1)
477
478
479
480Dumb Frotz v2.54                  2021-06-21                         DFROTZ(6)
Impressum