1DFROTZ(6) Games Manual DFROTZ(6)
2
3
4
6 dfrotz - interpreter for Infocom and other Z-Machine games (dumb inter‐
7 face)
8
9
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
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
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
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
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
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
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
409 Unlike it's curses-using or SDL-using siblings, dfrotz does not search
410 any path for game files.
411
412
413
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
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
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
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
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)