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.
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
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
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
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
388 Unlike it's curses-using sibling, dfrotz does not search any path for
389 game files.
390
391
392
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
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
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
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
447 frotz(6) sfrotz(6) nitfol(6) rezrov(6) jzip(6) xzip(6) inform(1)
448
449
450
451 2.51 DFROTZ(6)