=========================================================================== --------------------------------------------------------------------------- | READ THIS FILE ALL THE WAY THROUGH BEFORE ATTEMPTING TO INSTALL FROTZ | --------------------------------------------------------------------------- =========================================================================== Frotz was originally written specifically for MS/PC DOS. When it was ported to Unix, it was done mainly with Linux in mind. Since then, Frotz has been written with an aim to compile and run smoothly on as many platforms as possible. The source is rather generic C code and runs well on pretty much all current Unixen. These are the only three things needed to compile and run Frotz: * Some variant of Unix with an ANSI C compiler (gcc works fine) * A POSIX-compliant version of make (GNU make will do) * A reasonably good SYSV derived curses library (ncurses is best) Frotz can be compiled without curses, leaving you with a dumb-mode interface. This option is provided for hysterical raisins and for those who find it useful for web-based front-ends. Read the DUMB file for more information. Linux uses ncurses, so you're safe there. The version of curses that comes with NetBSD 1.6.x and later is good too. Earlier versions lacked certain features needed by Frotz. I don't know about the other *BSD curses. You can download ncurses from ftp://ftp.gnu/org/gnu/ncurses/. If you insist on using the vendor-supplied curses library, see the platform-specific info below. It's always a good idea to have the GNU version of make(1) around. If you want sound support, you'll need the OSS drivers (found on Linux machines and some *BSD machines). Support for other drivers is in the works. ==================== Precompiled Frotz || ==================== NetBSD: It's in the pkgsrc tree! FreeBSD: It's in the ports tree! MacOS X: It's at http://www.ifarchive.org/indexes/if-archiveXinfocomXinterpretersXfrotz.html Debian: Debian isn't so good at keeping an up-to-date version of Frotz around, so check http://packages.debian.org/testing/games/frotz.html to make sure before you use apt-get or whatever. See http://www.cs.csubak.edu/~dgriffi/proj/frotz/prepackaged.html for up-to-date information on precompiled Frotz packages ======================= Editing the Makefile || ======================= You should take a look at the Makefile, which is found in the src/ subdirectory. Read the comments. It's pretty self-explanatory. This is where you define your compiler, where Frotz will be installed, where your curses (or ncurses) library is, if you want sound support, and so on. If this is too much for you, try installing by NetBSD's pkgsrc, FreeBSD's ports, RPM, DEB, or whatever packaging scheme suits you. ================================= Compiling and installing Frotz || ================================= Make sure you're in the directory that was created when you untarred the Frotz tarball. Type "make" to compile Frotz. If you get any showstopping complaints, it's most likely because you didn't tell make where your curses library is, where the curses header is, if you're using plain old curses or ncurses, or you're trying to use sound on an unsupported platform. If you get any showstopping complaints, it's most likely because the curses library on your computer doesn't supply some critical functionality and you don't have ncurses to fall back on. Once the compile is complete, make sure you have the correct permissions to write where you want Frotz installed, then type "make install". To uninstall Frotz, type "make uninstall". If you don't have permission to install Frotz, you can just put the resulting executable somewhere like $HOME/bin and add that directory to your $PATH. For compiling, installing, and uninstalling dumb frotz, use "make dumb", "make install_dumb", and "make uninstall_dumb". ======================================== Installing and playing games on Frotz || ======================================== If you've unfamiliar with Infocom-style text adventures, you should probably stop here and read the file HOW_TO_PLAY. Then come back and continue. Now that you have Frotz installed, you'll probably want to play some of those ultra-nifty text adventures on it. These games come in files which are compiled programs that run on the Z-machine, which interpreters like Frotz emulate. The best-stocked archive of freeware games for use on Z-machine interpreters is the Interactive Fiction Archive at http://www.ifarchive.org. There are several mirrors of the archive all over the world listed there. Here are direct URLs to the zcode directories: http://www.ifarchive.org/indexes/if-archiveXgamesXzcode.html ftp://ftp.ifarchive.org/if-archive/games/zcode Here is the scheme I use for organizing my Zcode games: /usr/local/share/zcode This contains games written after the demise of Infocom. Most are freeware. /home/dave/.zcode I sometimes put games here too. /usr/local/share/zcode/infocom This is where I keep my collection of genuine Infocom games. /usr/local/share/zcode/infocom/sound Soundfiles from "Lurking Horror" and "Sherlock" go here. /usr/local/share/zcode/infocom/graphics Graphics files from Zork 0, Arthur, Shogun, and Journey go here. I add this command to my .profile file: export ZCODE_PATH="/usr/local/share/zcode: \ /usr/local/share/zcode/infocom:$HOME/.zcode Now, when I want to play Zork I, I will type "frotz zork1.dat" at the command prompt. Then I will then be told I am standing in an open field west of a white house which has a boarded front door. You can also just give a path to the game file. When you save your game, all save files are put in the current directory unless you specify a full path. Please name your saves intelligently. You MUST put sound and graphics in directories named "sound" and "graphics" in the same directory as the gamefile. Yes, this is a bit confusing. That's why Blorb will be so wonderful when Unix Frotz supports it. You'll probably want to make use of Frotz's new config file functionality. The options in the config file mirror the command line options and free you from having to remember to add something like "-Z0" to get rid of complaints about buggy zcode or if you want to always play with white text on black at a Linux console (instead of white on blue). Sample config files are included here as "frotz.conf-big" (which lists all possible options) and "frotz.conf-small" (a shortened one listing the more commonly-used options). The Makefile defines where Frotz will look for the frotz.conf file. By default, this is /usr/local/etc and can be changed at compile time if you like. This file will be read if Frotz notices you don't have a config file of your own in "$HOME/.frotzrc". =========================== Platform-specific issues || =========================== Linux: No apparent problems. This is the only platform on which sound is known to work properly. [Net|Open|Free]BSD: If you have NetBSD 1.6.x or later, you can use the supplied BSD curses. Otherwise you must have ncurses. Digital UNIX: No apparent problems. Tru64 Unix: Rebadged Digital Unix. Irix: The vendor-supplied curses library is broken as well as all versions of ncurses supplied on SGI's freeware CDs and in SGI's freeware archive. You MUST compile and install at least ncurses 5.0 from source. Versions of ncurses older than 5.0 are also broken on Irix. MacOS X: You must use "cc" instead of "gcc" even though it's really GCC. This is a quirk of the Mac OS X Developer Tools. MAN_PREFIX in the Makefile should be set to "/usr/local/share". Installing ncurses on MacOS X used to be troublesome because of some nonstandard places for things, but it seems that thse problems have been solved with ncurses 5.2. A precompiled version of ncurses for MacOS X is available at http://gnu-darwin.sourceforge.net/. Solaris: Some versions of curses on Solaris have trouble with color support. At least the one in Solaris 2.6 works okay. If compiled with the -02 option on an UltraSPARC using gcc 2.8.1, you may get lots of weird segfaults. The problem seems UltraSPARC related and it's not clear if this problem crosses flavor boundaries (ie, if UltraLinux or NetBSD on UltraSparc have this problem too). Because version 2.8.x of gcc had lots of strange problems, gcc might be to blame. I don't have sufficient access to test this theory, so if you're able to enlighten me on this, please do so. SunOS: Uncomment the "MEMMOVE_DEF..." line in the Makefile before compiling. Since I don't have access to a SunOS machine or an install CD (hint hint), Frotz on SunOS is untested. Other flavors of Unix: Getting Unix Frotz to compile and run seems to focus mostly on making sure make(1) can find the proper curses library. It's probably a good idea to install ncurses anyway. Now go on and have fun!