Copyright (c) NetHack PC Development Team 1990 - 1993. NetHack may be freely redistributed. See license for details. ====================================================== Instructions for compiling and installing NetHack 3.1 on a Windows NT system ====================================================== (or, How to make NT NetHack 3.1.3) Last revision: Jun 30, 1993 Credit for the PC versions of NetHack goes to the PC Development team consisting of Norm Meluch, Kevin Smolkowski, Paul Winner and Steve VanDevender who built on the work of Pierre Martineau, Stephen Spackman, Steve Creps, Mike Threepoint and Don Kneller. Credit for the porting of NetHack to Windows NT goes to the NT Porting Team started by Michael Allison. The NT porting team also wishes to thank the following people for their help, testing effort, and suggestions which contributed to the completion of the first Windows NT port of NetHack: Doug Thompson, Phil Mills, Scott Murray. This current version of NetHack for Windows NT is a tty port utilizing the NT WIN32 Console I/O subsystem. I. Dispelling the Myths: Compiling NetHack is not as easy as it sounds, nor as hard as it looks, however it will behoove you to read this entire file through before beginning the task. We have provided the proper makefiles for building NetHack using the following compilers: Microsoft Windows NT March 1993 SDK C Compiler. All the makefiles were created for use with MS NMAKE which is provided with the Windows NT SDK (Software Development Kit). You may find it useful to obtain copies of lex (flex) and yacc (bison). While not strictly necessary to compile nethack, they are required should you desire to make any changes to the level and dungeon compilers. Flex and Yacc for NT are available in the "Porting from UNIX to NT" library on the MSWIN32 Forum on compuserve and other places. To use the distributed NetHack icon, a version of uudecode is required, but this is not a necessary step for compiling NT NetHack. II. To compile your copy of NetHack on a Windows NT machine: (or "just follow these few 'simple' steps outlined below.") Setting Up 1. It almost goes without saying that you should make sure that your tools are set up and running correctly. 2. Make sure all the NetHack files are in the appropriate directory structure. You should have a main directory with subdirectories dat, doc, include, src, sys\share, sys\winnt, util and win\tty. Other subdirectories may also be included in your distribution, but they are not necessary for use with NT. You can delete them to save space. Required Directories for NT: top | -------------------------------------------- | | | | | | | util dat doc include src sys win | | ------ ---- | | | share winnt tty Check the file "Files" in your top level directory for an exact listing of what file is in which directory. In order for the Makefiles to work, all the source files must be in the proper locations. If you downloaded or ftp'd the sources from a UNIX system, the lines will probably end in UNIX-style newlines, instead of the carriage return and line feed pairs used by DOS. Some programs have trouble with them, so you may need to convert them (with a utility like Rahul Dhesi's "flip"). Also, every file should end with an empty line, because Microsoft C has a habit of ignoring the last line of each file. 3. Go to the sys\winnt directory and run the setup.bat batch file. The necessary Makefile movements will be accomplished for you. It will also verify that your directories are set up properly. 4. Now go to the include subdirectory to check a couple of the header files there. Things *should* work as they are, but since you have probably set up your system in some sort of custom configuration it doesn't hurt to check out the following: First check config.h according to the comments to match your system and desired set of features. Mostly you need to check the WIZARD option, make sure the HACKDIR is set properly. Also check COMPRESS. You may include all or as few of the special game features as you wish. Also check ntconf.h, which should not need much editing. It is there that you may choose to enable color text character support by leaving TERMCOLOR uncommented, or disable color support by commenting out TERMCOLOR. 5. If you want to change the high score list behavior, examine the top of topten.c, in the src directory. You may want to change the definitions of PERSMAX, POINTSMIN, and ENTRYMAX. I set POINTSMIN to 51 and ENTRYMAX to 50 to keep the size of the score list down. 6. Go to the src directory and edit the top of your Makefile. Change the setting of (GAMEDIR) to reflect the directory where you want NetHack to be installed. ie. GAMEDIR = \games\nethack The directory you specify *MUST* exist for all remaining steps to be successful. Be sure the directory you want the game installed actually exists. If it doesn't, create it now. If you elected not to use the high-quality BSD random number routines by commenting out RANDOM in ntconf.h, comment out (or set equal to nothing) the RANDOM macro in your Makefile. If you want, you can choose to have a default NetHack ICON embedded into your executable. You must have first uudecoded the file sys\winnt\nhico.uu into sys\winnt\nethack.ico. Change the Makefile macro RESFILE to point to the second choice (make the macro specify the .rbj file, rather than being set equal to nothing). If you are recompiling after patching your sources, or if you got your files from somewhere other than the official distribution, "touch makedefs.c" to ensure that certain files (onames.h and pm.h) are remade, lest potentially troublesome timestamps fool "nmake". Compiling 7. Now that everything is set up, go to the util directory and run nmake. If you get any errors along the way then something has not been set up correctly. 8. Next, go to the dat directory and run nmake (just as you did for util). Once again, if you get any errors then something has not been set up correctly. 9. Finally, go to the src directory and "nmake install". The time it takes to compile depends on your particular machine of course, but you should be able to go for lunch and return to find everything finished. The less memory, and slower your machine, the longer the lunch you may take. In any case, it is likely that the command prompt window where you are doing the compiling will be occupied for a quite a while. If all goes well, you will get an NetHack executable. Running NetHack 10. Make sure the support files -- data, rumors, cmdhelp, opthelp, help, hh, history, options and license -- were copied to the game directory. If not, move them there from the dat directory yourself. Assuming you are still in the src,dat, or util directory, "rumors." can be created manually by entering "..\util\makedefs -r" "data." can be created by entering "..\util\makedefs -d". Make sure the file NetHack.cnf made it to your game directory. If not, go to sys\winnt and copy winnt.cnf to NetHack.cnf in your game directory. Edit NetHack.cnf to reflect your particular setup and personal preferences, by following the comments. Running from Command Prompt 11. If you are running it from the command prompt, you must first set the HACKDIR environment variable to the location where the nethack executable resides: set HACKDIR=c:\games\nethack) (or whatever drive and directory you want to use) You should also add the directory containing the NetHack executable to your PATH, so that you can just type "nethack" or "nethack -umike" to start it up. Alternatively, you can explicitly invoke it with "c:\games\nethack\nethack" (specifying whatever drive and directory your executable resides in) each time. Running from Windows NT Program Manager 12. If you will be running it by launching it from the Program Manager, be sure to specify the location of your NetHack executable in the "Working Directory:" dialogue box field when creating your Program Manager Icon: ie. Description : NetHack 3.1.3 Command Line : C:\GAMES\NETHACK\NETHACK.EXE Working Directory: C:\GAMES\NETHACK Shortcut key : 13. If you did not elect to embed an ICON into the NetHack executable when you built it, then you may point the program manager to the ICON of your choice using the program manager (f)ile, (p)roperties, change icon option. A NetHack icon has been provided in the file SYS\WINNT\NHICO.UU. This is a uuencoded copy of the icon file, and you must use uudecode to turn it into a Windows NT icon file, in order to use the icon. 14. Play NetHack. If it works, you're done! Notes: 1) To install an update of NetHack after changing something, enter "nmake" from the src directory. If you add, delete, or reorder monsters or objects, or you change the format of saved level files, delete any save and bones files. (Trying to use such files sometimes produces amusing confusions on the game's part, but usually crashes.) If you made changes to any of the level compiler software, you may have to delete dgn_flex.c, dgn_yacc.c, lev_flex.c, and lev_yacc.c from the util directory to ensure that they are remade. 2) The executable produced by this port is a 32-bit, flat-address space, non-overlayed .exe file, which should run on any Windows NT system. It is also a rather large file: More than 1,900,000 bytes, nethack.exe when debugging information is included in the .exe, and more than 1,200,000 bytes without. 3) Beginning with NetHack 3.1.3, the keyboard command sequences match those in the MSDOS port of NetHack more exactly. The keypad may be used for movement without having the NUMLOCK on. This also gives you the advantage of being able to RUN by pressing the SHIFT key at the same time as one of the directional movement keys on the keypad (1,2,3,4,6,7,8,9). 4) A true Windows (WIN32s) version of NetHack is currently under development by the PC Windows Porting team. 5) If you have comments or suggestions, feel free to drop any one of us a line c/o nethack-bugs@linc.cis.upenn.edu. From compuserve, try >INTERNET:nethack-bugs@linc.cis.upenn.edu.