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
10
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
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
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
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
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
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
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
403 Unlike it's curses-using or SDL-using siblings, dfrotz does not search
404 any path for game files.
405
406
407
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
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
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
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
462 frotz(6) sfrotz(6) nitfol(6) rezrov(6) jzip(6) xzip(6) inform(1)
463
464
465
466 2.51 DFROTZ(6)