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.
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       -r \xxx
118              Set runtime options.  This option may be used repeatedly.
119
120
121       -R <path>
122              Restricted  read/write.   Reading  and  writing  files  will  be
123              restricted  only  to  the  provided  path. Ordinarily Frotz will
124              write or read its saves, transcripts,  and  move  recordings  in
125              whatever  path  or  directory  the  user provides when the SAVE,
126              SCRIPT, or RECORDING commands are given.  This can  be  undesir‐
127              able  if  Frotz  is  run in a restricted environment, by a front
128              end, or by a chatbot.  This option will cause Frotz to write  or
129              read  only to the provided path and nowhere else.  Then the con‐
130              trolling process can then watch that directory for  changes  and
131              need  not  worry about someone scribbling or snooping who-knows-
132              where.
133
134
135       -s N   Set the random number seed value.  The given seed value is  used
136              as  the initial seed value on every restart. This is helpful for
137              testing games like Curses which make random decisions before the
138              first input (such that the hot key Alt-S does not really help).
139
140
141       -S N   Set  the transcript width.  By default your transcript files are
142              formatted to a width of 80 columns per line, regardless  of  the
143              current  text width.  This switch allows you to change this set‐
144              ting. In particular, use  -S  0  to  deactivate  automatic  line
145              splitting in transcript files.
146
147
148       -t     Sets the Z-machine's Tandy bit, which may affect the behavior of
149              certain Infocom games.  For example, Zork I pretends not to have
150              sequels, and Witness has its language toned down.
151
152
153       -u N   Sets  the  number  of  slots available for Frotz's multiple undo
154              hotkey (see below).  This defaults to twenty,  which  should  be
155              sufficient  for  most  purposes.  Setting too high a number here
156              may be dangerous on machines with limited memory.
157
158
159       -w N   Manually sets the text width.   This  should  not  be  necessary
160              except in special circumstances.
161
162
163       -x     Expand  the  abbreviations  "g", "x", and "z" to "again", "exam‐
164              ine", and "wait".  This switch is for use with old Infocom games
165              that  lack  these  common abbreviations which were introduced in
166              later games.  Use it with caution: A few games  might  use  "g",
167              "x" or "z" for different purposes.
168
169
170       -Z N   Error checking mode.
171              0 = don't report errors.
172              1 = report first instance of an error.
173              2 = report all errors.
174              3 = exit after any error.
175              Default is 1 (report first instance of an error).
176
177
178

INTERPRETER NUMBER

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

CONFIGURATION

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

UNICODE

344       Dumb Frotz supports Unicode glyphs by way of UTF-8 if the terminal used
345       supports  UTF-8.   If you prefer using xterm, start it as uxterm.  This
346       is a wrapper script that sets up xterm with UTF-8 locale.  You can also
347       manually  tell  an  xterm to switch into UTF-8 mode by holding CTRL and
348       the right mouse button to bring up the VT FONTS menu.  Depending on how
349       xterm was installed, you may see an option for "UTF-8 Fonts" which will
350       allow Unicode to be properly displayed.
351
352       Getting normal xterm to behave like this all the  time  can  vary  from
353       system  to  system.   Other  terminal  emulators have their own ways of
354       being set to use UTF-8 character encoding.
355
356       If you are using some sort of wrapper around dfrotz, and want  to  make
357       use  of  Unicode, it is the responsibility of the wrapper to make sense
358       of characters passed back and forth.
359
360
361
362   LOCALE
363       An important means of ensuring the system knows to use UTF-8 is to make
364       sure  the  locale  is  set appropriately.  This is valid only when Dumb
365       Frotz runs under Unix-ish systems.
366
367       Using the command locale will tell you what is currently in use.  Using
368       locale -a
369
370       will  show you what's available.  Then set your LANG evironmental vari‐
371       able to something appropriate by using one of these commands:
372
373           export LANG=C.UTF-8
374           export LANG=en_US.utf8
375
376       This can be put in your  shell  configuration  file,  be  it  .profile,
377       .bash_profile, .login, .bashrc, or whatever.
378
379       It can also be set system-wide in the equivalent files in /etc.
380
381
382   SEE ALSO
383       ash(1) bash(1) csh(1) ksh(1) sh(1) zsh(1)
384
385
386

ENVIRONMENT

388       Unlike  it's  curses-using sibling, dfrotz does not search any path for
389       game files.
390
391
392

FURTHER INFORMATION

394       The Frotz homepage is at https://661.org/proj/if/frotz/.
395
396       A git(1) repository of all versions of  Unix  Frotz  back  to  2.32  is
397       available for public perusal here:
398       https://gitlab.com/DavidGriffith/frotz/.
399
400       The bleeding edge of Frotz development may be followed there.
401
402       Source tarballs are available at the IF Archive or any of its many mir‐
403       rors:
404       http://www.ifarchive.org/
405
406       Most distributions of Linux and BSD  include  Frotz  in  their  package
407       repositories.
408
409
410

CAVEATS

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

BUGS

433       This program has no bugs.  no bugs.  no bugs.  no *WHAP* thank you.  If
434       you  find  one, please report it to the Gitlab site referenced above in
435       FURTHER INFORMATION.
436
437
438

AUTHORS

440       Frotz was written by Stefan Jokisch for MSDOS in 1995-7.
441       The Unix port was done by Galen Hazelwood.
442       The Unix port is currently maintained by David Griffith <dave@661.org>.
443
444
445

SEE ALSO

447       frotz(6) sfrotz(6) nitfol(6) rezrov(6) jzip(6) xzip(6) inform(1)
448
449
450
451                                     2.51                            DFROTZ(6)
Impressum