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
10

SYNOPSIS

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

DESCRIPTION

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

OPTIONS

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

INTERPRETER NUMBER

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

CONFIGURATION

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

UNICODE

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

NON ASCII CHARACTERS

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

ENVIRONMENT

403       Unlike it's curses-using or SDL-using siblings, dfrotz does not  search
404       any path for game files.
405
406
407

FURTHER INFORMATION

409       The Frotz homepage is at https://661.org/proj/if/frotz/.
410
411       A  git(1)  repository  of  all  versions  of Unix Frotz back to 2.32 is
412       available for public perusal here:
413       https://gitlab.com/DavidGriffith/frotz/.
414
415       The bleeding edge of Frotz development may be followed there.
416
417       Source tarballs are available at the IF Archive or any of its many mir‐
418       rors:
419       http://www.ifarchive.org/
420
421       Most  distributions  of  Linux  and  BSD include Frotz in their package
422       repositories.
423
424
425

CAVEATS

427       The Z Machine itself has trouble with the concept of resizing a  termi‐
428       nal.  It assumes that once the text height and width are set, they will
429       never change; even across saves.  This made sense when 24x80  terminals
430       were  the  norm and graphical user interfaces were mostly unknown.  I'm
431       fairly sure there's a way around  this  problem,  but  for  now,  don't
432       resize  an  xterm  in  which frotz is running.  Also, you should try to
433       make sure the terminal on which you restore a saved game has  the  same
434       dimensions as the one on which you saved the game.
435
436
437       This manpage is not intended to tell users HOW to play interactive fic‐
438       tion.  Refer to the file HOW_TO_PLAY included in the Unix  Frotz  docu‐
439       mentation or visit one of the following sites:
440       http://www.microheaven.com/ifguide/
441       http://www.brasslantern.org/beginners/
442       http://www.musicwords.net/if/how_to_play.htm
443       http://ifarchive.org/
444
445
446

BUGS

448       This  program has no bugs.  no bugs.  no bugs.  no *WHAP* thank you. If
449       you find one, please report it to the Gitlab site referenced  above  in
450       FURTHER INFORMATION.
451
452
453

AUTHORS

455       Frotz was written by Stefan Jokisch for MSDOS in 1995-7.
456       The Unix port was done by Galen Hazelwood.
457       The Unix port is currently maintained by David Griffith <dave@661.org>.
458
459
460

SEE ALSO

462       frotz(6) sfrotz(6) nitfol(6) rezrov(6) jzip(6) xzip(6) inform(1)
463
464
465
466                                     2.51                            DFROTZ(6)
Impressum