Tags give the ability to mark specific points in history as being important
  • 2.44   Version 2.44 Unix Frotz and Dumb Frotz are tested and known to work well. DOS Frotz has been tested really on just DOSbox. I posted to a few places asking for people to test DOS Frotz on real hardware. So far, only one person replied. The test machine was a 486DX4 running at 75 Mhz with 24M of RAM and no sound card. It crashes horrible after three but less than ten moves. Test game is LostPig.z8. The computer's display was photographed and sent to me. I'll release this now and just accept that the DOS port is bad for now. >go west Grunk no allowed in field. That probably OK, because Grunk no think pig tall enought to climb over wall. >look around Grunk not see that there. >find the goddam pig Grunk no know where that at. >lol Grunk not know what that mean. >go east Forest look dark. Pig probably some place in there, but Grunk not know which way to go. Not want end up lost in forest with no pig. >go west dos mem corrupt, first_mcb=0277 prev 0899:0000|4D 9A 08 80 64 E9 91 03 46 52 4F 54 5A 00 00 M?.?d??.FROTZ... notM26D1A:0000|58 60 1D EA 23 25 FC A5 7B 54 1E 70 23 f2 6B X`..?#%??{T.p#?k PANIC: before 4a: MCB chain corrupted System halted

    FROTZ V2.44 - An interpreter for all Infocom games and other Z-machine games.

    Complies with standard 1.0 of Graham Nelson's specification.
    Frotz 2.44 was released on Sunday May 17, 2015.


    • Blorb support implemented. No support for audio in Blorb files yet.

    • Added an -m option for Dumb Frotz to suppress the [MORE] prompt.

    • Makefile and code for compiling for 16-bit DOS.


    • Fixed a problem with saving and restoring in certain games.

    • Added some fflush() calls to make Dumb Frotz more suitable for bot use.

    • Removed old-style save support. It was getting hard to manage. Only the Quetzal save file format is supported now.

    • Fixed assorted minor 64-bitness problems.

  • dumb-2.32r1
    c7f345ee · Adding .metadata ·
  • xfrotz-2.32.1
    748e6418 · Adding .metadata ·
  • 2.43
    97e6bb64 · Adding .metadata ·

    FROTZ V2.43 - An interpreter for all Infocom games and other Z-machine games.

    Complies with standard 1.0 of Graham Nelson's specification.
    Unix Frotz 2.43 was released on Monday October 28, 2002.


    • Dumb interface has been added as a compile target. See the DUMB file for commentary.

    • Experimental voice input and output. This code is not yet available to the public. See the SPEECH file for more info.

    • Added David Kinder's Unicode Test 1.0 to the Z-machine Test Suite

    • Added Inform Randomization Test 1.0 to the Z-machine Test Suite.


    • Confirmed to work with NetBSD 1.6.x curses library. Unlike with ncurses, color mode will work when $TERM is "xterm". See the BUGS file for commentary.

    • Consolidated and organized most global variables into a few global structs.

    • Added patches from David Kinder to facilitate loading a new game without exiting Frotz entirely. Files affected: buffer.c, process.c, and sound.c.

    • Rewrote most documentation. Fixed typos in the rest.

    • Reorganized source tree to make portability to different platforms easier. The bugtest/ directory is now src/test/ and is called the "Z-machine Test Suite".

    • Finally changed all references in documentation and source of ftp.gmd.de to ftp.ifarchive.org.

    • Fixed a problem with command-recording which caused "[999]" to be appended to every line in the file.

    • Set some defaults to z_sound_effect for those games that for some wacky reason assume them (sound.c).

    • Frotz now correctly sets 0x20 (CONFIG_SOUND) in the header to tell V6 games that the interpreter supports sound (frotz.h ux_init.c).

    • Correctly fixed the Ctrl-Space bug. The previous fix broke NetBSD's newly-updated curses library. See the BUGS file for more detail.

    • OSS sound is fixed, thanks to Torbjorn Anderson! Also applied some error-checking from someone whom I forget.

  • 2.42
    6afb2427 · Fix .metadata glitch ·

    FROTZ V2.42 - An interpreter for all Infocom games and other Z-machine games.

    Complies with standard 1.0 of Graham Nelson's specification.
    Unix Frotz 2.42 was released on Monday March 11, 2002.


    • Makefile updated to play nicer with Mac OS X.


    • Al Petrofsky sent a fix to prevent Frotz from aborting when Ctrl-Space is entered (in ux_input.c). Actually it was sent to Debian's bug list several months ago, but not to me. He also submitted a patch which prevents picture dimensions from being rounded down to zero (ux_pic.c). Sidebars in Arthur are now visible.

    • Steven Frank was mistakenly identified as the submitter of the fix to allow Unix Frotz to display properly on screens narrower than 80 columns. The true submitter was Justin Wesley. The machine used was an Agenda PDA running Linux.

  • 2.41
    d63582d0 · Adding .metadata ·

    FROTZ V2.41 - An interpreter for all Infocom games and other Z-machine games.

    Complies with standard 1.0 of Graham Nelson's specification.
    Unix Frotz 2.41 was released on Monday May 21, 2001.


    • Now includes several test zcode programs in the bugtest/ subdirectory. These are crashme, TerpEtude, gntests, and strictz.

    • Unix Frotz confirmed to compile and run on Mac OS X. See INSTALL for details.
      (Confirmation by Steven Frank)

    • Status line padding in screen.c changed to allow for screens narrower than 80 columns.
      (Patch by Steven Frank)


    • In BUGS, an idiosyncracy of "Journey" by Infocom was mistakenly identified as a bug in Frotz.
      (Reported by someone whom I forget)

    • In text.c, static zchar zscii_to_latin1[] was being improperly initialized. The bug caused Latin1-style quotes <<like this>> to look >>like this<<.
      (Reported and fixed by Matteo De Luigi)

    • In the 2.40 release, I disabled the -i option thinking it wasn't needed. This was probably a mistake. Even if the -Z option is set to '0' (don't report errors), fatal errors will still be reported. Some careless programmers have released buggy games which include fatal errors. Proper interpreters should abort upon encountering them, but some don't. The -i option is intended as a kludge to deal with such games and for debugging by ignoring the requirement to abort. This option should not be used as an excuse to write bad code. Code in object_address() in object.c was modified to complain about attempts to address illegal objects. This was motivated by an illegal object access in the game "Enemies" by Andy Phillips.
      (Reported by Thomas Troeger and David Picton)

  • 2.40
    6ac17055 · Adding .metadata ·

    FROTZ V2.40 - An interpreter for all Infocom games and other Z-machine games.

    Complies with standard 1.0 of Graham Nelson's specification.
    Unix Frotz 2.40 was released on Saturday November 11, 2000.


    Tab-completion now works in the middle of a sentence.

    • Assorted fixes to make gcc stop complaining when using -Wall and -ansi flags. These fixes included adding curly braces to avoid ambiguous-looking if-then-elses, adding parens to avoid abiguous-looking ands and ors, initializing variables even though there was no need to.

    • Several functions in ux_text.c used functions that wanted *char. Instead they were being passed *zchar. Irix's cc complained. Casts were added to fix this.

    • The terminal erase character, as set with stty, now functions as backspace. On many terminals, this character is DEL.

    • Background colors should now work properly.

    • timeout() from curses is now used for times input instead of a busy loop.

    • ^L and ^R now redraw the screen instead of being passed as input to the Z-machine.

    • ISO-Latin-1 characters are now valid input unless in plain ASCII mode. This makes the meta bit unusable for hotkeys. On terminals with 8-bit character sets, alt usually sends ESC anyway.

    • With zstrict error-checking tuning, the -i (for ignore errors) is superfluous and therefore has been removed.

    • A supplementary memmove() function has been added for machines that lack it. As I don't have access to a machine like this, the code is untested.


    • Merged changed from Frotz 2.40 for DOS.

    • Beginning with 2.40, the reference version of Frotz (the DOS version) is distributed under the GNU Public License rather than the old "no commercial profit" license.

    • Unix Frotz 2.40, like the reference version, is now distributed under the GNU Public License.

    • V6 games supported by drawing the outlines of pictures. True display of the graphics are on hold until the X11 with GTK version is complete.

    • Classical Infocom sound effects supported through the OSS drivers. I'm only aware of "Lurking Horror" and "Sherlock: The Riddle of the Crown Jewels" as having such sound effects. See the INSTALL file for information on where the sound files should go.

    • System-wide and per-user config files.

    • Quetzal save format is now the default. Old Zip 2.0 format is still supported by command line option or config file setting.

    • $ZCODE_PATH and $INFOCOM_PATH environmental variables searched for game files.

    • Faster undo functionality (borrowed from Nitfol).

    • History searchs has been added. Type the beginning of a past command and hit the up or down arrow key.

  • 2.32r2
    3b34715a · Adding .metadata ·

    FROTZ V2.32 - an interpreter for all Infocom games.

    Complies with standard 1.0 of Graham Nelson's specification. Written by Stefan Jokisch in 1995-7

    This program once started as a re-make of Mark Howell's Zip, but has grown into an utterly new interpreter.

    Frotz is freeware: It may be used and distributed freely provided no commercial profit is involved. (c) 1995-1997 Stefan Jokisch.

    Please report bugs to s.jokisch@avu.de
    Please report unix bugs to galenh@micron.net

    This is the unix port of Stefan Jokisch's nifty-neato-cool Z-machine interpreter. There are only two things you need to compile Frotz:

    • Some variant of Unix with an ANSI C compiler (gcc works fine)
    • A reasonably good SYSV derived curses library

    Note that the second requirement is very important. I had several people send me complaints about Frotz not working, and found out they were unaware that their curses library was obsolete. If your system curses won't work, pick up and compile the ncurses library from ftp://prep.ai.mit.edu/pub/gnu or any GNU mirror site.

    Changes since Release 1:

    • Fixed problems with backspace
    • Now supports "delete" key for editing
    • Wired in tab completion support (which I stupidly missed)
    • Added emacs editing key support (-DEMACS_EDITING)
  • 2.32

    Source Distribution of Frotz 2.32

    This is the source distribution of DOS Frotz 2.32. Sorry, documentation is not complete yet, and this small readme file is all you get at the moment...

    The latest changes in the 2.32 interface are:

    • Text and keys (except for file names) are now presented using the new "zchar" type. This is a 1-byte value that contains an ISO Latin-1 character or a special Infocom character like code $09 (paragraph indentation). See FROTZ.H for possible character codes. Some Infocom code have changed, too, since they collided with ISO Latin-1 codes. I strongly recommend using the constants defined in FROTZ.H.

      If you want to support different character sets, look at

      • zchar definition (FROTZ.H),
      • z_print_unicode (TEXT.C),
      • z_check_unicode (TEXT.C),
      • translate_from_zscii (TEXT.C),
      • translate_to_zscii (TEXT.C),
      • conversion to lower case in z_read (INPUT.C),
      • script_char (FILES.C).

      If you can't read accented characters from the keyboard, make sure z_check_unicode stores 1 for codes from $0a to $ff. If you can't write accented characters, prints some suitable ASCII representation instead.

    • There are some differences between Amiga and DOS picture files, and an interpreter must take some extra care to combine Amiga story files with DOS picture files. So far the Amiga and DOS front-ends contained the necessary code to make this work. Since Frotz 2.32 this problem is dealt with in SCREEN.C, and interfaces no longer have to worry about this.

    • os_cursor_on and os_cursor_off are no more. Instead, an additional argument tells os_read_key to make the cursor visible or not.

      (I believe a game would not want to turn off the cursor for reading a string.)

    • os_wait_sample is no longer needed!

      SOUND.C uses the end_of_sound call to solve all problems with 'The Lurking Horror' more effectively than before.

    • os_start_sample should now ignore the play-once-or-loop-forever information in the sound files and rely on its arguments instead. The necessary information for 'The Lurking Horror' has been wired into SOUND.C. This should make it easier to use a more common sound format in the future.

    • 'Journey' asked for font #4 (fixed font) on most systems since it simply expected the interpreter to be unable to print a proportional font. This unpleasant behaviour is now overwritten by Frotz.

    • Many extern declarations in FROTZ.H have been removed. In particular, this includes:

      • end_of_sound,
      • restart_header,
      • resize_screen,
      • completion,
      • is_terminator,
      • read_yes_or_no,
      • read_string.

      It's fine to call these functions from your front-end, though. Just add their prototypes to your code.

    • For different reasons, several front-ends felt the need to interfere with the process of restarting a game.

      There is now an interface function os_restart_game that gives the front-end a chance to do its business while the game restarts. The function is called several times during the process, its sole argument indicating the current "stage" of the restart:

      • RESTART_BEGIN -- restart has just begun
      • RESTART_WPROP_SET -- window properties have been set
      • RESTART_END -- restart completed

      os_restart_game is also useful to display the 'Beyond Zork' title picture that is now available in MG1 format.