OSDN Git Service

upgrade to 3.6.1
[jnethack/source.git] / doc / Guidebook.mn
index 1e56a79..9b21196 100644 (file)
@@ -1,11 +1,28 @@
-.\" $NHDT-Branch: master $:$NHDT-Revision: 1.188 $ $NHDT-Date: 1449420465 2015/12/06 16:47:45 $
+.\" $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.264 $ $NHDT-Date: 1524690677 2018/04/25 21:11:17 $
+.\"
+.\" This is an excerpt from the 'roff' man page from the 'groff' package.
+.\" NetHack's Guidebook.mn currently does *not* adhere to these guidelines.
+.\"|||
+.\"| o Never include empty or blank lines in a roff document.  Instead,  use
+.\"|   the empty request (a line consisting of a dot only) or a line comment
+.\"|   .\" if a structuring element is needed.
+.\"| o Never start a line with whitespace because this can lead to unexpect-
+.\"|   ed  behavior.  Indented paragraphs can be constructed in a controlled
+.\"|   way by roff requests.
+.\"| o Start each sentence on a line of its own, for the spacing after a dot
+.\"|   is handled differently depending on whether it terminates an abbrevi-
+.\"|   ation or a sentence.  To distinguish both cases, do a line break  af-
+.\"|   ter each sentence.
+.\"|||
+.\"
 .ds h0 "NetHack Guidebook
 .ds h1
 .ds h2 %
 .ds vr "NetHack 3.6
 .ds f0 "\*(vr
 .ds f1
-.ds f2 "December 7, 2015
+.ds f2 "April 27, 2018
+.
 .\" labeled paragraph start (should be part of tmac.n, but I don't want to
 .\" make changes to that file)
 .\" .PS word
@@ -26,7 +43,7 @@
 .br
 \\h'|-\\n(PYu'\\$1\\h'|-\\n(PXu'\ -\ \\c \" back up, output the label, then
 .                                      \" skip to width-of(" - ") before the
-.                                      \" normal indentation, output the " - " 
+.                                      \" normal indentation, output the " - "
 .                                      \" then attach the next line (the
 .                                      \" text) without stopping (\c: nroff
 .                                      \" section 4.2)
 .\"  the full width of the column, print " - " and the definition
 \\h'|\\n(CYu'\\fB\\$1\\fP\\h'|\\n(CZu'\ -\ \\$2
 ..
+.\" '.UX' is verbatim copy of tmac.n's '.ux' with the exception that
+.\" the trademark owner for "UNIX" has been updated.  (tmac.n contains
+.\" a comment asking that modified versions not be distributed, so we
+.\" are using this substitute instead of modifying that file.)
+.de UX                                 \" print "UNIX"
+.ie \\n(ux \\&\\$2\\s-1UNIX\\s0\\$1
+.el \{\
+.      nr ux +1                        \" mark footnote as dropped
+\\&\\$2\\s-1UNIX\\s0\\*(rg\\$1
+.      fn                              \" put out the footnote
+\\&\\*(rgUNIX is a registered trademark of The Open Group.
+.      ef                              \" short and sweet ...
+.\}
+..
+.
+.\" A note on some special characters:
+.\"                                    \(dq = double quote character
+.\"  - = hyphen                        \-   = minus sign
+.\"                                    \(em = M-sized dash
+.\"  ^ = small circumflex punctuation  \(ha = larger circumflex character
+.\"  ~ = small tilde punctuation       \(ti = larger tilde character
+.
+.
+.\" finally, start the actual Guidebook...
+.
 .mt
 A Guide to the Mazes of Menace
 (Guidebook for NetHack)
 .au
 Original version - Eric S. Raymond
 (Edited and expanded for 3.6 by Mike Stephenson and others)
-.hu
-Preface - Version 3.6
-.pg
-This version of the game is special in a particular way.  Near the end of
-the development of 3.6, one of the significant inspirations for many of the 
-humorous and fun features found in the game, author \fITerry Pratchett\fP,
-passed away.  We have dedicated this version of the game in his memory.
 .hn 1
 Introduction
 .pg
-Recently, you have begun to find yourself unfulfilled and distant 
-in your daily occupation.  Strange dreams of prospecting, stealing, 
-crusading, and combat have haunted you in your sleep for many months, 
-but you aren't sure of the reason.  You wonder whether you have in 
-fact been having those dreams all your life, and somehow managed to 
+Recently, you have begun to find yourself unfulfilled and distant
+in your daily occupation.  Strange dreams of prospecting, stealing,
+crusading, and combat have haunted you in your sleep for many months,
+but you aren't sure of the reason.  You wonder whether you have in
+fact been having those dreams all your life, and somehow managed to
 forget about them until now.  Some nights you awaken suddenly
-and cry out, terrified at the vivid recollection of the strange and 
-powerful creatures that seem to be lurking behind every corner of the 
-dungeon in your dream.  Could these details haunting your dreams be real?  
-As each night passes, you feel the desire to enter the mysterious caverns 
-near the ruins grow stronger.  Each morning, however, you quickly put 
-the idea out of your head as you recall the tales of those who entered 
-the caverns before you and did not return.  Eventually you can resist 
-the yearning to seek out the fantastic place in your dreams no longer.  
-After all, when other adventurers came back this way after spending time 
-in the caverns, they usually seemed better off than when they passed 
-through the first time.  And who was to say that all of those who did 
+and cry out, terrified at the vivid recollection of the strange and
+powerful creatures that seem to be lurking behind every corner of the
+dungeon in your dream.  Could these details haunting your dreams be real?
+As each night passes, you feel the desire to enter the mysterious caverns
+near the ruins grow stronger.  Each morning, however, you quickly put
+the idea out of your head as you recall the tales of those who entered
+the caverns before you and did not return.  Eventually you can resist
+the yearning to seek out the fantastic place in your dreams no longer.
+After all, when other adventurers came back this way after spending time
+in the caverns, they usually seemed better off than when they passed
+through the first time.  And who was to say that all of those who did
 not return had not just kept going?
-
+.
 .pg
 Asking around, you hear about a bauble, called the Amulet of Yendor by some,
 which, if you can find it, will bring you great wealth.  One legend you were
 told even mentioned that the one who finds the amulet will be granted
 immortality by the gods.  The amulet is rumored to be somewhere beyond the
 Valley of Gehennom, deep within the Mazes of Menace.  Upon hearing the
-legends, you immediately realize that there is some profound and 
-undiscovered reason that you are to descend into the caverns and seek 
-out that amulet of which they spoke.  Even if the rumors of the amulet's 
-powers are untrue, you decide that you should at least be able to sell the 
-tales of your adventures to the local minstrels for a tidy sum, especially 
-if you encounter any of the terrifying and magical creatures of 
-your dreams along the way.  You spend one last night fortifying yourself 
-at the local inn, becoming more and more depressed as you watch the odds 
-of your success being posted on the inn's walls getting lower and lower.  
-
-.pg
-  In the morning you awake, collect your belongings, and 
-set off for the dungeon.  After several days of uneventful 
-travel, you see the ancient ruins that mark the entrance to the 
-Mazes of Menace.  It is late at night, so you make camp at the entrance 
-and spend the night sleeping under the open skies.  In the morning, you 
-gather your gear, eat what may be your last meal outside, and enter the 
+legends, you immediately realize that there is some profound and
+undiscovered reason that you are to descend into the caverns and seek
+out that amulet of which they spoke.  Even if the rumors of the amulet's
+powers are untrue, you decide that you should at least be able to sell the
+tales of your adventures to the local minstrels for a tidy sum, especially
+if you encounter any of the terrifying and magical creatures of
+your dreams along the way.  You spend one last night fortifying yourself
+at the local inn, becoming more and more depressed as you watch the odds
+of your success being posted on the inn's walls getting lower and lower.
+.
+.pg
+In the morning you awake, collect your belongings, and
+set off for the dungeon.  After several days of uneventful
+travel, you see the ancient ruins that mark the entrance to the
+Mazes of Menace.  It is late at night, so you make camp at the entrance
+and spend the night sleeping under the open skies.  In the morning, you
+gather your gear, eat what may be your last meal outside, and enter the
 dungeon...
-
+.
 .hn 1
 What is going on here?
 .pg
@@ -244,7 +279,8 @@ understand what NetHack is doing with the screen.  The NetHack screen
 replaces the ``You see ...'' descriptions of text adventure games.
 Figure 1 is a sample of what a NetHack screen might look like.
 The way the screen looks for you depends on your platform.
-
+.
+.ft CR \" set font to constant-width Roman
 .TS S
 center tab(~);
 a.
@@ -265,9 +301,10 @@ Dlvl:1 $:0  HP:9(12) Pw:3(3) AC:10 Exp:1/19 T:257 Weak
 
 _
 .TE
+.ft \" revert to previous font
 .ce 1
 Figure 1
-
+.
 .hn 2
 The status lines (bottom)
 .pg
@@ -295,6 +332,9 @@ do other tasks requiring agility or manipulation of objects.
 .lp Constitution
 Constitution affects your ability to recover from injuries and other
 strains on your stamina.
+When strength is low or modest, constitution also affects how much you
+can carry.  With sufficiently high strength, the contribution to
+carrying capacity from your constitution no longer matters.
 .lp Intelligence
 Intelligence affects your ability to cast spells and read spellbooks.
 .lp Wisdom
@@ -310,7 +350,7 @@ coincide.  Your alignment influences how other
 monsters react toward you.  Monsters of a like alignment are more likely
 to be non-aggressive, while those of an opposing alignment are more likely
 to be seriously offended at your presence.
-.lp "Dungeon Level
+.lp "Dungeon Level"
 How deep you are in the dungeon.  You start at level one and the number
 increases as you go deeper into the dungeon.  Some levels are special,
 and are identified by a name and not a number.  The Amulet of Yendor is
@@ -318,7 +358,7 @@ reputed to be somewhere beneath the twentieth level.
 .lp "Gold  "
 The number of gold pieces you are openly carrying.  Gold which you have
 concealed in containers is not counted.
-.lp "Hit Points
+.lp "Hit Points"
 Your current and maximum hit points.  Hit points indicate how much
 damage you can take before you die.  The more you get hit in a fight,
 the lower they get.  You can regain hit points by resting, or by using
@@ -328,10 +368,10 @@ number your hit points can reach.
 Spell points.  This tells you how much mystic energy (\fImana\fP)
 you have available for spell casting.  Again, resting will regenerate the
 amount available.
-.lp "Armor Class
+.lp "Armor Class"
 A measure of how effectively your armor stops blows from unfriendly
 creatures.  The lower this number is, the more effective the armor; it
-is quite possible to have negative armor class. 
+is quite possible to have negative armor class.
 .lp Experience
 Your current experience level and experience points.  As you
 adventure, you gain experience points.  At certain experience point
@@ -342,20 +382,43 @@ show only your experience level here.
 The number of turns elapsed so far, displayed if you have the
 .op time
 option set.
-.lp "Hunger status
-Your current hunger status, ranging from \fBSatiated\fP down to
-\fBFainting\fP.  If your hunger status is normal, it is not displayed.
-.pg
-Additional status flags may appear after the hunger status:  \fBConf\fP
-when you're confused, \fBFoodPois\fP or \fBIll\fP
-when sick, \fBBlind\fP when you can't
-see, \fBStun\fP when stunned, and \fBHallu\fP when hallucinating.
+.lp "Status  "
+Hunger:
+your current hunger status.
+Values are \fBSatiated\fP, \fBNot Hungry\fP (or \fBNormal\fP),
+\fBHungry\fP, \fBWeak\fP, and \fBFainting\fP.
+.\" not mentioned: Fainted
+Not shown when \fBNormal\fP.
+.lp ""
+Encumbrance:
+an indication of how what you are carrying affects your ability to move.
+Values are \fBUnencumbered\fP, \fBEncumbered\fP, \fBStressed\fP,
+\fBStrained\fP, \fBOvertaxed\fP, and \fBOverloaded\fP.
+Not shown when \fBUnencumbered\fP.
+.lp ""
+Fatal conditions:
+\fBStone\fP (aka \fBPetrifying\fP, turning to stone),
+\fBSlime\fP (turning into green slime),
+\fBStrngl\fP (being strangled),
+\fBFoodPois\fP (suffering from acute food poisoning),
+\fBTermIll\fP (suffering from a terminal illness).
+.lp ""
+Non-fatal conditions:
+\fBBlind\fP (can't see), \fBDeaf\fP (can't hear),
+\fBStun\fP (stunned), \fBConf\fP (confused), \fBHallu\fP (hallucinating).
+.lp ""
+Movement modifiers:
+\fBLev\fP (levitating), \fBFly\fP (flying), \fBRide\fP (riding).
+.lp ""
+Other conditions and modifiers exist, but there isn't enough room to
+display them with the other status fields.  The `^X' command shows
+all relevant status conditions.
 .hn 2
 The message line (top)
 .pg
 The top line of the screen is reserved for messages that describe
 things that are impossible to represent visually.  If you see a
-``\fB--More--\fP'' on the top line, this means that NetHack has
+``\fB\-\-More\-\-\fP'' on the top line, this means that NetHack has
 another message to display on the screen, but it wants to make certain
 that you've read the one that is there first.  To read the next message,
 just press the space bar.
@@ -372,7 +435,7 @@ so far.  Each symbol on the screen represents something.  You can set
 various graphics options to change some of the symbols the game uses;
 otherwise, the game will use default symbols.  Here is a list of what the
 default symbols mean:
-.lp "- and |
+.lp "\\- and | "
 The walls of a room, or an open door.  Or a grave (|).
 .lp .
 The floor of a room, ice, or a doorless doorway.
@@ -389,7 +452,7 @@ A closed door, or a spellbook containing a spell you may be able to learn.
 Your character or a human.
 .lp $
 A pile of gold.
-.lp ^
+.lp \(ha \" ^
 A trap (once you have detected it).
 .lp )
 A weapon.
@@ -407,7 +470,7 @@ A ring.
 A potion.
 .lp (
 A useful item (pick-axe, key, lamp...).
-.lp """
+.lp \(dq \" \(dq == double quote
 An amulet or a spider web.
 .lp *
 A gem or rock (possibly valuable, possibly worthless).
@@ -421,25 +484,27 @@ An altar, or an iron chain.
 A fountain.
 .lp }
 A pool of water or moat or a pool of lava.
-.lp "\e
+.lp \\\\
 An opulent throne.
-.lp "a-zA-Z and other symbols
+.lp "a-zA-Z and other symbols"
 Letters and certain other symbols represent the various inhabitants
 of the Mazes of Menace.  Watch out, they can be nasty and vicious.
 Sometimes, however, they can be helpful.
 .lp I
 This marks the last known location of an invisible or otherwise unseen
-monster.  Note that the monster could have moved.  The 'F' and 'm' commands
-may be useful here.
+monster.  Note that the monster could have moved.
+The `F' and `m' commands may be useful here.
 .pg
 You need not memorize all these symbols; you can ask the game what any
 symbol represents with the `/' command (see the next section for
 more info).
-
+.
 .hn 1
 Commands
 .pg
-Commands are initiated by typing one or two characters.  Some commands,
+Commands can be initiated by typing one or two characters to which
+the command is bound to, or typing the command name in the extended
+commands entry.  Some commands,
 like ``search'', do not require that any more information be collected by
 NetHack.  Other commands might require additional information, for
 example a direction, or an object to be used.  For those commands that
@@ -450,8 +515,8 @@ you are presented with will depend chiefly on how you have set the
 option.
 .pg
 For example, a common question, in the form ``What do you want to
-use?\ [a-zA-Z\ ?*]'', asks you to choose an object you are carrying.
-Here, ``a-zA-Z'' are the inventory letters of your possible choices.
+use?\ [a\-zA\-Z\ ?*]'', asks you to choose an object you are carrying.
+Here, ``a\-zA\-Z'' are the inventory letters of your possible choices.
 Typing `?' gives you an inventory list of these items, so you can see
 what each letter refers to.  In this example, there is also a `*'
 indicating that you may choose an object not on the list, if you
@@ -472,11 +537,12 @@ ESC key.
 .pg
 The list of commands is rather long, but it can be read at any time
 during the game through the `?' command, which accesses a menu of
-helpful texts.  Here are the commands for your reference:
+helpful texts.  Here are the default key bindings for your reference:
 .lp ?
 Help menu:  display one of several help texts available.
 .lp /
-Tell what a symbol represents.  You may choose to specify a location
+The ``whatis'' command, to
+tell what a symbol represents.  You may choose to specify a location
 or type a symbol (or even a whole word) to explain.
 Specifying a location is done by moving the cursor to a particular spot
 on the map and then pressing one of `.', `,', `;',
@@ -485,14 +551,31 @@ conditionally check for ``More info?'' depending upon whether the
 .op help
 option is on, and then you will be asked to pick another location;
 `,' will explain the symbol but skip any additional
-information; `;' will skip additional info and also not bother asking
+information, then let you pick another location;
+`;' will skip additional info and also not bother asking
 you to choose another location to examine; `:' will show additional
 info, if any, without asking for confirmation.  When picking a location,
 pressing the ESC key will terminate this command, or pressing `?'
 will give a brief reminder about how it works.
-.pg
+.lp ""
+If the
+.op autodescribe
+option is on, a short description of what you see at each location is
+shown as you move the cursor.  Typing `#' while picking a location will
+toggle that option on or off.
+The
+.op whatis_coord
+option controls whether the short description includes map coordinates.
+.lp ""
 Specifying a name rather than a location
 always gives any additional information available about that name.
+.lp ""
+You may also request a description of nearby monsters,
+all monsters currently displayed, nearby objects, or all objects.
+The
+.op whatis_coord
+option controls which format of map coordinate is included with their
+descriptions.
 .lp &
 Tell what a command does.
 .lp <
@@ -506,6 +589,9 @@ a monster there, you will fight the monster instead.  Only these
 one-step movement commands cause you to fight monsters; the others
 (below) are ``safe.''
 .sd
+.\" note: the two number pad layouts are separated by a tab on each line;
+.\"       converting those tabs to spaces will screw up the formatting;
+.\"       the '(if ... set)' line starts with <backslash><space><tab>
 .TS S
 center;
 c c.
@@ -514,24 +600,39 @@ y  k  u   7  8  9
 h- . -l        4- . -6
 / | \e / | \e
 b  j  n        1  2  3
-       (if \fBnumber_pad\fP is set)
+\      (if \fBnumber_pad\fP is set)
 .TE
 .ed
 .ce 1
 Figure 2
-
+.
 .lp [YUHJKLBN]
 Go in that direction until you hit a wall or run into something.
 .lp m[yuhjklbn]
 Prefix:  move without picking up objects or fighting (even if you remember
-a monster there)
+a monster there).
+.lp ""
+A few non-movement commands use the `m' prefix to request operating
+via menu (to temporarily override the
+.op menustyle:Traditional
+option).
+Primarily useful for `,' (pickup) when there is only one class of
+objects present (where there won't be any ``what kinds of objects?'' prompt,
+so no opportunity to answer `m' at that prompt).
+.lp ""
+A few other commands (eat food, offer sacrifice, apply tinning-kit) use
+the `m' prefix to skip checking for applicable objects on the floor
+and go straight to checking inventory,
+or (for ``#loot'' to remove a saddle),
+skip containers and go straight to adjacent monsters. The prefix will
+make ``#travel'' command show a menu of interesting targets in sight.
 .lp F[yuhjklbn]
-Prefix:  fight a monster (even if you only guess one is there)
+Prefix:  fight a monster (even if you only guess one is there).
 .lp M[yuhjklbn]
 Prefix:  move far, no pickup.
-.lp "g[yuhjklbn]
+.lp "g[yuhjklbn]"
 Prefix:  move until something interesting is found.
-.lp "G[yuhjklbn] or <CONTROL->[yuhjklbn]
+.lp "G[yuhjklbn] or <CONTROL->[yuhjklbn]"
 Prefix:  same as `g', but forking of corridors is not considered interesting.
 .lp _
 Travel to a map location via a shortest-path algorithm.
@@ -541,17 +642,20 @@ is computed over map locations the hero knows about (e.g. seen or
 previously traversed).  If there is no known path, a guess is made instead.
 Stops on most of
 the same conditions as the `G' command, but without picking up
-objects, similar to the `M' command.  For ports with mouse 
-support, the command is also invoked when a mouse-click takes place on a 
+objects, similar to the `M' command.  For ports with mouse
+support, the command is also invoked when a mouse-click takes place on a
 location other than the current position.
 .lp .
-Rest, do nothing for one turn.
+Wait or rest, do nothing for one turn.
 .lp a
 Apply (use) a tool (pick-axe, key, lamp...).
+.lp ""
+If used on a wand, that wand will be broken, releasing its magic in the
+process.  Confirmation is required.
 .lp A
 Remove one or more worn items, such as armor.
 .lp ""
-Use `T' (take off) to take off only one piece of armor 
+Use `T' (take off) to take off only one piece of armor
 or `R' (remove) to take off only one accessory.
 .lp ^A
 Redo the previous command.
@@ -574,40 +678,66 @@ In answer to the question
 .lp ""
 ``What kinds of things do you want to drop? [!%= BUCXaium]''
 .lp ""
-you should type zero or more object symbols possibly followed by 
+you should type zero or more object symbols possibly followed by
 `a' and/or `i' and/or `u' and/or `m'.  In addition, one or more of
 the blessed/uncursed/cursed groups may be typed.
-.sd
-.si
-DB  - drop all objects known to be blessed.
-DU  - drop all objects known to be uncursed.
-DC  - drop all objects known to be cursed.
-DX  - drop all objects of unknown B/U/C status.
-Da  - drop all objects, without asking for confirmation.
-Di  - examine your inventory before dropping anything.
-Du  - drop only unpaid objects (when in a shop).
-Dm  - use a menu to pick which object(s) to drop.
-D%u - drop only unpaid food.
-.ei
-.ed
+.PS D%u
+.PL DB
+drop all objects known to be blessed.
+.PL DU
+drop all objects known to be uncursed.
+.PL DC
+drop all objects known to be cursed.
+.PL DX
+drop all objects of unknown B/U/C status.
+.PL Da
+drop all objects, without asking for confirmation.
+.PL Di
+examine your inventory before dropping anything.
+.PL Du
+drop only unpaid objects (when in a shop).
+.PL Dm
+use a menu to pick which object(s) to drop.
+.PL D%u
+drop only unpaid food.
+.PE
+The last example shows a combination.
+There are three categories of object filtering: class (`!' for
+potions, `?' for scrolls, and so on), shop status (`u' for unpaid, in
+other words, owned by the shop), and bless/curse state (`B', `U',
+`C', and `X' as shown above).
+If you specify more than one value in a category (such as `!?' for
+potions and scrolls or `BU' for blessed and uncursed), an inventory
+object will meet the criteria if it matches any of the specified
+values (so `!?' means `!' or '?').
+If you specify more than one category, an inventory object must meet
+each of the category criteria (so `%u' means class `%' and unpaid `u').
+Lastly, you may specify multiple values within multiple categories:
+`!?BU' will select all potions and scrolls which are known to be
+blessed or uncursed.
+(In versions prior to 3.6, filter combinations behaved differently.)
 .lp ^D
 Kick something (usually a door).
 .lp e
 Eat food.
+.lp ""
+Normally checks for edible item(s) on the floor, then if none are found
+or none are chosen, checks for edible item(s) in inventory.
+Precede `e' with the `m' prefix to bypass attempting to eat
+anything off the floor.
 .\" Make sure Elbereth is not hyphenated below, the exact spelling matters
 .hw Elbereth
 .lp E
 Engrave a message on the floor.
 .sd
 .si
-E- - write in the dust with your fingers.  
+E- - write in the dust with your fingers.
 .ei
 .ed
 .lp ""
 Engraving the word ``Elbereth'' will cause most monsters to not attack
 you hand-to-hand (but if you attack, you will rub it out); this is
-often useful to give yourself a breather.  (This feature may be compiled out
-of the game, so your version might not have it.)
+often useful to give yourself a breather.
 .lp f
 Fire one of the objects placed in your quiver (or quiver sack, or that you
 have at the ready).  You may select
@@ -620,18 +750,24 @@ List your inventory (everything you're carrying).
 .lp I
 List selected parts of your inventory, usually be specifying the character
 for a particular set of objects, like `[' for armor or `!' for potions.
-.sd
-.si
-I* - list all gems in inventory;
-Iu - list all unpaid items;
-Ix - list all used up items that are on your shopping bill;
-IB - list all items known to be blessed;
-IU - list all items known to be uncursed;
-IC - list all items known to be cursed;
-IX - list all items whose bless/curse status is known;
-I$ - count your money.
-.ei
-.ed
+.PS IX
+.PL I*
+list all gems in inventory;
+.PL Iu
+list all unpaid items;
+.PL Ix
+list all used up items that are on your shopping bill;
+.PL IB
+list all items known to be blessed;
+.PL IU
+list all items known to be uncursed;
+.PL IC
+list all items known to be cursed;
+.PL IX
+list all items whose bless/curse status is known;
+.PL I$
+count your money.
+.PE
 .lp o
 Open a door.
 .lp O
@@ -645,6 +781,14 @@ a further menu or prompt will appear once you've closed this menu.
 The available options
 are listed later in this Guidebook.  Options are usually set before the
 game rather than with the `O' command; see the section on options below.
+.lp ^O
+Show overview or show dungeon layout
+.lp ""
+In normal play and in explore mode, a shortcut for the ``#overview''
+extended command to list interesting dungeon levels visited.
+.lp ""
+In debug mode, an extra command which lists the placement of all special
+levels.
 .lp p
 Pay your shopping bill.
 .lp P
@@ -750,7 +894,7 @@ via the ``#twoweapon'' extended command.
 .lp ""
 (In versions prior to 3.6 this was the command to switch from normal
 play to "explore mode", also known as "discovery mode", which has now
-been moved to ``#explore''.)
+been moved to ``#exploremode''.)
 .lp ^X
 Display basic information about your character.
 .lp ""
@@ -776,7 +920,9 @@ Z. - to cast at yourself, use `.' for the direction.
 .ed
 .lp ^Z
 Suspend the game
-.ux " versions with job control only)." (
+.\" .UX: print "UNIX" now and a trademark footnote at bottom of current page;
+.\"  2nd arg (literal '(') _precedes_ it, 1st arg (quoted string) follows it
+.UX " versions with job control only)." (
 .lp :
 Look at what is here.
 .lp ;
@@ -789,15 +935,15 @@ May be preceded by `m' to force a selection menu.
 Toggle the
 .op autopickup
 option on and off.
-.lp ^
-Ask for the type of a trap you found earlier.
+.lp \(ha \" ^
+Ask for the type of an adjacent trap you found earlier.
 .lp )
 Tell what weapon you are wielding.
 .lp [
 Tell what armor you are wearing.
 .lp =
 Tell what rings you are wearing.
-.lp """
+.lp \(dq \" \(dq == double quote
 Tell what amulet you are wearing.
 .lp (
 Tell what tools you are using.
@@ -816,12 +962,14 @@ the order in which your spells are listed, either by sorting the entire
 list or by picking one spell from the menu then picking another to swap
 places with it.  Swapping pairs of spells changes their casting letters,
 so the change lasts after the current `+' command finishes.  Sorting
-the whole list is temporary.  To make the most recent sort order persist
+the whole list is temporary.
+To make the most recent sort order persist
 beyond the current `+' command, choose the sort option again and then
-pick "reassign casting letters".  (Any spells learned after that will
+pick ``reassign casting letters''.
+(Any spells learned after that will
 be added to the end of the list rather than be inserted into the sorted
 ordering.)
-.lp "\e
+.lp \\\\
 Show what types of objects have been discovered.
 .lp `
 Show discovered types for one class of objects.
@@ -830,6 +978,7 @@ Escape to a shell.
 .lp #
 Perform an extended command.
 .lp ""
+.pg
 As you can see, the authors of NetHack
 used up all the letters, so this is a way to introduce the less frequently
 used commands.
@@ -838,55 +987,171 @@ compiled with.
 .lp #adjust
 Adjust inventory letters (most useful when the
 .op fixinv
-option is ``on'').
+option is ``on''). Autocompletes. Default key is 'M-a'.
 .lp ""
 This command allows you to move an item from one particular inventory
 slot to another so that it has a letter which is more meaningful for you
 or that it will appear in a particular location when inventory listings
 are displayed.
+You can move to a currently empty slot, or if the destination is
+occupied \(em and won't merge \(em the item there will swap slots with the one
+being moved.
 ``#adjust'' can also be used to split a stack of objects; when
 choosing the item to adjust, enter a count prior to its letter.
+.lp ""
+Adjusting without a count used to collect all compatible stacks when
+moving to the destination.  That behavior has been changed; to gather
+compatible stacks, ``#adjust'' a stack into its own inventory slot.
+If it has a name assigned, other stacks with the same name or with
+no name will merge provided that all their other attributes match.
+If it does not have a name, only other stacks with no name are eligible.
+In either case, otherwise compatible stacks with a different name
+will not be merged.  This contrasts with using ``#adjust'' to move
+from one slot to a different slot.  In that situation, moving (no
+count given) a compatible stack will merge if either stack has a
+name when the other doesn't and give that name to the result, while
+splitting (count given) will ignore the source stack's name when
+deciding whether to merge with the destination stack.
 .lp #annotate
 Allows you to specify one line of text to associate with the current
-dungeon level.  All levels with annotations are displayed by the
+dungeon level.
+All levels with annotations are displayed by the
 ``#overview'' command.
+Autocompletes.
+Default key is 'M-A', and '^N' if
+.op number_pad
+is on.
+.lp #apply
+Apply (use) a tool such as a pick-axe, a key, or a lamp. Default key is 'a'.
+.lp ""
+If the tool used acts on items on the floor, using the `m' prefix skips
+those items.
+.lp ""
+If used on a wand, that wand will be broken, releasing its magic in the
+process.  Confirmation is required.
+.lp #attributes
+Show your attributes. Default key is '^X'.
+.lp #autopickup
+Toggle the autopickup -option on/off. Default key is '@'.
+.lp #call
+Call (name) a monster, or an object in inventory, on the floor,
+or in the discoveries list, or add an annotation for the
+current level (same as ``#annotate'').  Default key is 'C'.
+.lp #cast
+Cast a spell. Default key is 'Z'.
 .lp #chat
-Talk to someone.
+Talk to someone. Default key is 'M-c'.
+.lp #close
+Close a door. Default key is 'c'.
 .lp #conduct
 List voluntary challenges you have maintained.
+Autocompletes.
+Default key is 'M-C'.
 .lp ""
 See the section below entitled ``Conduct'' for details.
 .lp "#dip "
-Dip an object into something.
+Dip an object into something. Autocompletes. Default key is 'M-d'.
+.lp #down
+Go down a staircase. Default key is '>'.
+.lp #drop
+Drop an item. Default key is 'd'.
+.lp #droptype
+Drop specific item types. Default key is 'D'.
+.lp "#eat "
+Eat something. Default key is 'e'.
+The `m' prefix skips eating items on the floor.
+.lp #engrave
+Engrave writing on the floor. Default key is 'E'.
 .lp #enhance
-Advance or check weapon and spell skills.
+Advance or check weapon and spell skills. Autocompletes. Default key is 'M-e'.
+.lp #exploremode
+Enter the explore mode.
+.lp #fire
+Fire ammunition from quiver. Default key is 'f'.
 .lp #force
-Force a lock.
+Force a lock. Autocompletes. Default key is 'M-f'.
+.lp #glance
+Show what type of thing a map symbol corresponds to. Default key is ';'.
+.lp #help
+Show the help menu. Default key is '?', and 'h' if
+.op number_pad
+is on.
+.lp #herecmdmenu
+Show a menu of possible actions in your current location.
+.lp #history
+Show long version and game history. Default key is 'V'.
+.lp #inventory
+Show your inventory. Default key is 'i'.
+.lp #inventtype
+Inventory specific item types. Default key is 'I'.
 .lp #invoke
-Invoke an object's special powers.
+Invoke an object's special powers. Autocompletes. Default key is 'M-i'.
 .lp #jump
 Jump to another location.
+Autocompletes.
+Default key is 'M-j', and 'j' if
+.op number_pad
+is on.
+.lp #kick
+Kick something.
+Default key is '^D', and 'k' if
+.op number_pad
+is on.
+.lp #known
+Show what object types have been discovered. Default key is '\\'.
+.lp #knownclass
+Show discovered types for one class of objects. Default key is '`'.
+.lp #levelchange
+Change your experience level. Autocompletes. Wizard-mode only.
+.lp #lightsources
+Show mobile light sources. Autocompletes. Wizard-mode only.
+.lp #look
+Look at what is here, under you. Default key is ':'.
 .lp #loot
-Loot a box or bag on the floor beneath you, or the saddle 
-from a steed standing next to you.
+Loot a box or bag on the floor beneath you, or the saddle
+from a steed standing next to you. Autocompletes.
+Precede with the `m' prefix to skip containers at your location
+and go directly to removing a saddle.
+Default key is 'M-l', and 'l' if
+.op number_pad
+is on.
+.lp #monpolycontrol
+Control monster polymorphs. Autocompletes. Wizard-mode only.
 .lp #monster
 Use a monster's special ability (when polymorphed into monster form).
+Autocompletes. Default key is 'M-m'.
 .lp #name
-Name a monster, an individual object, or a type of object.  Same as `C'.
+Name a monster, an individual object, or a type of object.  Same as #call.
+Autocompletes. Default keys are 'N', 'M-n', and 'M-N'.
 .lp #offer
-Offer a sacrifice to the gods.
+Offer a sacrifice to the gods. Autocompletes. Default key is 'M-o'.
+The `m' prefix skips offering items on the altar.
 .lp ""
 You'll need to find an altar to have any chance at success.
 Corpses of recently killed monsters are the fodder of choice.
+.lp #open
+Open a door. Default key is 'o'.
+.lp #options
+Show and change option settings. Default key is 'O'.
 .lp #overview
 Display information you've discovered about the dungeon.  Any visited
 level (unless forgotten due to amnesia) with an annotation is included,
 and many things (altars, thrones, fountains, and so on; extra stairs
 leading to another dungeon branch) trigger an automatic annotation.
 If dungeon overview is chosen during end-of-game disclosure, every visited
-level will be included regardless of annotations.
+level will be included regardless of annotations. Autocompletes.
+Default keys are '^O', and 'M-O'.
+.lp #panic
+Test the panic routine. Autocompletes. Wizard-mode only.
+.lp "#pay "
+Pay your shopping bill. Default key is 'p'.
+.lp #pickup
+Pick up things at the current location. Default key is ','.
+The `m' prefix forces use of a menu.
+.lp #polyself
+Polymorph self. Autocompletes. Wizard-mode only.
 .lp #pray
-Pray to the gods for help.
+Pray to the gods for help. Autocompletes. Default key is 'M-p'.
 .lp ""
 Praying too soon after receiving prior help is a bad idea.
 (Hint: entering the dungeon alive is treated as having received help.
@@ -896,42 +1161,172 @@ option to make you confirm your intent before praying.  It is enabled
 by default, and you can reset the
 .op paranoid_confirmation
 option to disable it.
+.lp #prevmsg
+Show previously displayed game messages. Default key is '^P'.
+.lp #puton
+Put on an accessory (ring, amulet, etc). Default key is 'P'.
+.lp #quaff
+Quaff (drink) something. Default key is 'q'.
 .lp #quit
-Quit the program without saving your game.
+Quit the program without saving your game. Autocompletes. Default key is 'M-q'.
 .lp ""
 Since using this command by accident would throw away the current game,
 you are asked to confirm your intent before quitting.  By default a
 response of 'y' acknowledges that intent.  You can set the
 .op paranoid_confirmation
-option to require a response of "yes" instead.
+option to require a response of ``yes'' instead.
+.lp #quiver
+Select ammunition for quiver. Default key is 'Q'.
+.lp #read
+Read a scroll, a spellbook, or something else. Default key is 'r'.
+.lp #redraw
+Redraw the screen.
+Default key is '^R', and '^L' if
+.op number_pad
+is on.
+.lp #remove
+Remove an accessory (ring, amulet, etc). Default key is 'R'.
 .lp #ride
-Ride (or stop riding) a saddled creature.
+Ride (or stop riding) a saddled creature. Autocompletes. Default key is 'M-R'.
 .lp "#rub "
-Rub a lamp or a stone.
+Rub a lamp or a stone. Autocompletes. Default key is 'M-r'.
+.lp #save
+Save the game. Default key is 'S'.
+.lp #search
+Search for traps and secret doors around you. Default key is 's'.
+.lp #seeall
+Show all equipment in use. Default key is '*'.
+.lp #seeamulet
+Show the amulet currently worn. Default key is '\(dq'. \" double quote
+.lp #seearmor
+Show the armor currently worn. Default key is '['.
+.lp #seegold
+Count your gold. Default key is '$'.
+.lp #seenv
+Show seen vectors. Autocompletes. Wizard-mode only.
+.lp #seerings
+Show the ring(s) currently worn. Default key is '='.
+.lp #seespells
+List and reorder known spells. Default key is '+'.
+.lp #seetools
+Show the tools currently in use. Default key is '('.
+.lp #seetrap
+Show the type of an adjacent trap.
+Default key is '\(ha'.
+.lp #seeweapon
+Show the weapon currently wielded. Default key is ')'.
+.lp #shell
+Do a shell escape. Default key is '!'.
 .lp "#sit "
-Sit down.
+Sit down. Autocompletes. Default key is 'M-s'.
+.lp #stats
+Show memory statistics. Autocompletes. Wizard-mode only.
+.lp #suspend
+Suspend the game. Default key is '^Z'.
+.lp #swap
+Swap wielded and secondary weapons. Default key is 'x'.
+.lp #takeoff
+Take off one piece of armor. Default key is 'T'.
+.lp #takeoffall
+Remove all armor. Default key is 'A'.
+.lp #teleport
+Teleport around the level. Default key is '^T'.
 .lp #terrain
 Show bare map without displaying monsters, objects, or traps.
+Autocompletes.
+.lp #therecmdmenu
+Show a menu of possible actions in a location next to you.
+.lp #throw
+Throw something. Default key is 't'.
+.lp #timeout
+Look at the timeout queue. Autocompletes. Wizard-mode only.
 .lp "#tip "
 Tip over a container (bag or box) to pour out its contents.
+Autocompletes. Default key is 'M-T'.
+The `m' prefix makes the command use a menu.
+.lp #travel
+Travel to a specific location on the map. Default key is '_'.
+Using the ``request menu'' prefix shows a menu of interesting targets in sight
+without asking to move the cursor. When picking a target with cursor and
+the
+.op autodescribe
+option is on, the top line will show ``(no travel path)'' if
+your character does not know of a path to that location.
 .lp #turn
-Turn undead.
+Turn undead away. Autocompletes. Default key is 'M-t'.
 .lp #twoweapon
-Toggle two-weapon combat on or off.
+Toggle two-weapon combat on or off. Autocompletes. Default keys
+are 'X', and 'M-2'.
 .lp ""
 Note that you must
 use suitable weapons for this type of combat, or it will
 be automatically turned off.
 .lp #untrap
 Untrap something (trap, door, or chest).
+Default key is 'M-u', and 'u' if
+.op number_pad
+is on.
 .lp ""
 In some circumstances it can also be used to rescue trapped monsters.
+.lp "#up  "
+Go up a staircase. Default key is '<'.
+.lp #vanquished
+List vanquished monsters. Autocompletes. Wizard-mode only.
 .lp #version
 Print compile time options for this version of NetHack.
+Autocompletes. Default key is 'M-v'.
+.lp #versionshort
+Show version string. Default key is 'v'.
+.lp #vision
+Show vision array. Autocompletes. Wizard-mode only.
+.lp #wait
+Rest one move while doing nothing. Default key is '.', and ' ' if
+rest_on_space is on.
+.lp #wear
+Wear a piece of armor. Default key is 'W'.
+.lp #whatdoes
+Tell what a key does. Default key is '&'.
+.lp #whatis
+Show what type of thing a symbol corresponds to. Default key is '/'.
+.lp #wield
+Wield a weapon. Default key is 'w'.
 .lp #wipe
-Wipe off your face.
+Wipe off your face. Autocompletes. Default key is 'M-w'.
+.lp #wizdebug_bury
+Bury objects under and around you. Autocompletes. Wizard-mode only.
+.lp #wizdebug_traveldisplay
+Toggle travel display. Autocompletes. Wizard-mode only.
+.lp #wizdetect
+Search a room. Autocompletes. Wizard-mode only. Default key is '^E'.
+.lp #wizgenesis
+Create a monster. Autocompletes. Wizard-mode only. Default key is '^G'.
+.lp #wizidentify
+Identify all items in inventory. Autocompletes. Wizard-mode only.
+Default key is '^I'.
+.lp #wizintrinsic
+Set intrinsic. Autocompletes. Wizard-mode only.
+.lp #wizlevelport
+Teleport to another level.
+Autocompletes.
+Wizard-mode only.
+Default key is '^V'.
+.lp #wizmap
+Map the level. Autocompletes. Wizard-mode only. Default key is '^F'.
+.lp #wizrumorcheck
+Verify rumor boundaries. Autocompletes. Wizard-mode only.
+.lp #wizsmell
+Smell monster. Autocompletes. Wizard-mode only.
+.lp #wizwhere
+Show locations of special levels. Autocompletes. Wizard-mode only.
+.lp #wizwish
+Wish for something. Autocompletes. Wizard-mode only. Default key is '^W'.
+.lp #wmode
+Show wall modes. Autocompletes. Wizard-mode only.
+.lp "#zap "
+Zap a wand. Default key is 'z'.
 .lp "#?   "
 Help menu:  get the list of available extended commands.
+.lp ""
 .pg
 If your keyboard has a meta key (which, when pressed in combination
 with another key, modifies it by setting the `meta' [8th, or `high']
@@ -946,11 +1341,13 @@ On other systems, if typing `Alt' plus another key transmits a
 two character sequence consisting of an \fBEscape\fP
 followed by the other key, you may set the
 .op altmeta
-option to have nethack combine them into meta+key.
+option to have NetHack combine them into meta+key.
 .lp M-?
 #? (not supported by all platforms)
 .lp M-2
-#twoweapon (unless the number_pad option is enabled)
+#twoweapon (unless the
+.op number_pad
+option is enabled)
 .lp M-a
 #adjust
 .lp M-A
@@ -999,31 +1396,29 @@ option to have nethack combine them into meta+key.
 #version
 .lp M-w
 #wipe
+.lp ""
 .pg
 If the
 .op number_pad
 option is on, some additional letter commands are available:
 .lp h
-Help menu:  display one of several help texts available, like ``?''.
+#help
 .lp j
-Jump to another location.  Same as ``#jump'' or ``M-j''.
+#jump
 .lp k
-Kick something (usually a door).  Same as `^D'.
+#kick
 .lp l
-Loot a box or bag on the floor beneath you, or the saddle 
-from a steed standing next to you.  Same as ``#loot'' or ``M-l''.
+#loot
 .lp N
-Name a monster, an individual object, or a type of object.  Same
-as ``#name'' (or ``M-n'') which is the same as the `C'
-command.
+#name
 .lp u
-Untrap a trap, door, or chest.  Same as ``#untrap'' or ``M-u''.
-
+#untrap
+.
 .hn 1
 Rooms and corridors
 .pg
 Rooms and corridors in the dungeon are either lit or dark.
-Any lit areas within your line of sight will be displayed;  
+Any lit areas within your line of sight will be displayed;
 dark areas are only displayed if they are within one space of you.
 Walls and corridors remain on the map as you explore them.
 .pg
@@ -1052,7 +1447,7 @@ doors).
 Secret doors are hidden.  You can find them with the `s' (search)
 command.  Once found they are in all ways equivalent to normal doors.
 .hn 2
-Traps (`^')
+Traps (`\(ha')
 .pg
 There are traps throughout the dungeon to snare the unwary delver.
 For example, you may suddenly fall into a pit and be stuck for a few
@@ -1068,7 +1463,7 @@ complete all of the levels according to the traditional rules of
 Sokoban.  Some allowances are permitted in case the player gets stuck;
 however, they will lower your luck.
 .hn 2
-Stairs (`<', `>')
+Stairs and ladders (`<', `>')
 .pg
 In general, each level in the dungeon will have a staircase going up
 (`<') to the previous level and another going down (`>') to the next
@@ -1096,8 +1491,6 @@ and some other monsters will follow along if they're close enough when
 you travel up or down stairs, and occasionally one of these creatures
 will displace you during the climb.  When that occurs, the pet or other
 monster will arrive on the staircase and you will end up nearby.
-.hn 2
-Ladders (`<', `>')
 .pg
 Ladders serve the same purpose as staircases, and the two types of
 inter-level connections are nearly indistinguishable during game play.
@@ -1149,10 +1542,10 @@ outside the shop.
 While the shopkeeper watches you like a hawk, he will generally ignore
 any other customers.
 .lp * 2
-If a shop is "closed for inventory", it will not open of its own accord.
+If a shop is ``closed for inventory'', it will not open of its own accord.
 .lp * 2
 Shops do not get restocked with new items, regardless of inventory depletion.
-
+.
 .hn 1
 Monsters
 .pg
@@ -1162,8 +1555,8 @@ help you locate them before they locate you (which some monsters can do
 very well).
 .pg
 The commands `/' and `;' may be used to obtain information about those
-monsters who are displayed on the screen.  The command ``#name'', or
-its synonym `C', allows you
+monsters who are displayed on the screen.  The command ``#name''
+(by default bound to `C'), allows you
 to assign a name to a monster, which may be useful to help distinguish
 one from another when multiple monsters are present.  Assigning a name
 which is just a space will remove any prior name.
@@ -1181,11 +1574,11 @@ you attack them.  Some of them are very dangerous when angered.
 Remember:  discretion is the better part of valor.
 .pg
 In most circumstances, if you attempt to attack a peaceful monster by
-moving into its location, you'll be asked to confirm your intent.  By 
+moving into its location, you'll be asked to confirm your intent.  By
 default an answer of 'y' acknowledges that intent,
 which can be error prone if you're using 'y' to move.  You can set the
 .op paranoid_confirmation
-option to require a response of "yes" instead.
+option to require a response of ``yes'' instead.
 .pg
 If you can't see a monster (if it is invisible, or if you are blinded),
 the symbol `I' will be shown when you learn of its presence.
@@ -1222,16 +1615,24 @@ Steeds
 .pg
 Some types of creatures in the dungeon can actually be ridden if you
 have the right equipment and skill.  Convincing a wild beast to let
-you saddle it up is difficult to say the least.  Many a dungeoneer 
+you saddle it up is difficult to say the least.  Many a dungeoneer
 has had to resort to magic and wizardry in order to forge the alliance.
-Once you do have the beast under your control however, you can 
-easily climb in and out of the saddle with the `#ride' command.  Lead
-the beast around the dungeon when riding, in the same manner as 
+Once you do have the beast under your control however, you can
+easily climb in and out of the saddle with the ``#ride'' command.  Lead
+the beast around the dungeon when riding, in the same manner as
 you would move yourself.  It is the beast that you will see displayed
 on the map.
 .pg
-Riding skill is managed by the `#enhance' command.  See the section
+Riding skill is managed by the ``#enhance'' command.  See the section
 on Weapon proficiency for more information about that.
+.pg
+Use the `a' (apply) command and pick a saddle in your inventory to
+attempt to put that saddle on an adjacent creature.  If successful,
+it will be transferred to that creature's inventory.
+.pg
+Use the ``#loot'' command while adjacent to a saddled creature to
+try to remove the saddle from that creature.  If successful, it will
+be transferred to your inventory.
 .hn 2
 Bones levels
 .pg
@@ -1242,9 +1643,27 @@ damage.  You can plunder the deceased adventurer's possessions;
 however, they are likely to be cursed.  Beware of whatever killed the
 former player; it is probably still lurking around, gloating over its
 last victory.
-
+.
+.hn 2
+Persistence of Monsters
+.pg
+Monsters (a generic reference which also includes humans and pets) are only
+shown while they can be seen or otherwise sensed.
+Moving to a location where you can't see or sense a monster any more
+will result in it disappearing from your map, similarly if it is the
+one who moved rather than you.
+.pg
+However, if you encounter a monster which you can't see or sense \(em
+perhaps it is invisible and has just tapped you on the noggin \(em
+a special ``remembered, unseen monster'' marker will be displayed at
+the location where you think it is.
+That will persist until you have
+proven that there is no monster there, even if the unseen monster
+moves to another location or you move to a spot where the marker's
+location ordinarily wouldn't be seen any more.
+.
 .hn 1
-Objects 
+Objects
 .pg
 When you find something in the dungeon, it is common to want to pick
 it up.  In NetHack, this is accomplished automatically by walking over
@@ -1253,7 +1672,7 @@ the object (unless you turn off the
 option (see below), or move with the `m' prefix (see above)), or
 manually by using the `,' command.
 .pg
-If you're carrying too many items, NetHack will tell you so and you won't 
+If you're carrying too many items, NetHack will tell you so and you won't
 be able to pick
 up anything more.  Otherwise, it will add the object(s) to your pack and tell
 you what you just picked up.
@@ -1261,7 +1680,8 @@ you what you just picked up.
 As you add items to your inventory, you also add the weight of that object
 to your load.  The amount that you can carry depends on your strength and
 your constitution.  The
-stronger you are, the less the additional load will affect you.  There comes
+stronger and sturdier
+you are, the less the additional load will affect you.  There comes
 a point, though, when the weight of all of that stuff you are carrying around
 with you through the dungeon will encumber you.  Your reactions
 will get slower and you'll burn calories faster, requiring food more frequently
@@ -1287,7 +1707,7 @@ When you use one of these objects, if its effect is obvious, NetHack
 will remember what it is for you.  If its effect isn't extremely
 obvious, you will be asked what you want to call this type of object
 so you will recognize it later.  You can also use the ``#name''
-command, or its synonym `C', for the same purpose at any time, to name
+command, for the same purpose at any time, to name
 all objects of a particular type or just an individual object.
 When you use ``#name'' on an object which has already been named,
 specifying a space as the value will remove the prior name instead
@@ -1356,8 +1776,8 @@ The chance that an attack will successfully hit a monster, and the amount
 of damage such a hit will do, depends upon many factors.  Among them are:
 type of weapon, quality of weapon (enchantment and/or erosion), experience
 level, strength, dexterity, encumbrance, and proficiency (see below).  The
-monster's armor class - a general defense rating, not necessarily due to
-wearing of armor - is a factor too; also, some monsters are particularly
+monster's armor class \(em a general defense rating, not necessarily due to
+wearing of armor \(em is a factor too; also, some monsters are particularly
 vulnerable to certain types of weapons.
 .pg
 Many weapons can be wielded in one hand; some require both hands.
@@ -1412,7 +1832,7 @@ for `Q' runs out.
 .pg
 Some characters have the ability to fire a volley of multiple items in a
 single turn.  Knowing how to load several rounds of ammunition at
-once -- or hold several missiles in your hand -- and still hit a
+once \(em or hold several missiles in your hand \(em and still hit a
 target is not an easy task.  Rangers are among those who are adept
 at this task, as are those with a high level of proficiency in the
 relevant weapon skill (in bow skill if you're wielding one to
@@ -1478,8 +1898,8 @@ To wield two weapons, you need to use the ``#twoweapon'' command.
 But first you need to have a weapon in each hand.
 (Note that your two weapons are not fully equal; the one in the
 hand you normally wield with is considered primary and the other
-one is considered secondary.  The most noticeable difference is   
-after you stop--or before you begin, for that matter--wielding
+one is considered secondary.  The most noticeable difference is
+after you stop \(em or before you begin, for that matter \(em wielding
 two weapons at once.  The primary is your wielded weapon and the
 secondary is just an item in your inventory that's been designated
 as alternate weapon.)
@@ -1517,7 +1937,7 @@ the equivalent of no armor, and lower numbers meaning better armor.
 Each suit of armor which exists in AD&D gives the same protection in
 NetHack.  Here is an (incomplete) list of the armor classes provided by
 various suits of armor:
-
+.
 .TS S
 center;
 a n.
@@ -1532,6 +1952,7 @@ elven mithril-coat        5
 chain mail     5
 orcish chain mail      6
 scale mail     6
+dragon scales  7
 studded leather armor  7
 ring mail      7
 orcish ring mail       8
@@ -1627,10 +2048,12 @@ The command to drink a potion is `q' (quaff).
 .hn 2
 Wands (`/')
 .pg
-Magic wands usually have multiple magical charges.  Some wands are
-directional\(emyou must give a direction in which to zap them.  You can also
+Wands usually have multiple magical charges.
+Some types of wands require a direction in which to zap them.
+You can also
 zap them at yourself (just give a `.' or `s' for the direction). Be warned,
-however, for this is often unwise.  Other wands are nondirectional\(emthey
+however, for this is often unwise.
+Other types of wands
 don't require a direction.  The number of charges in a wand is random and
 decreases by one whenever you use it.
 .pg
@@ -1666,7 +2089,7 @@ Putting on a ring activates its magic.  You can wear only two
 rings, one on each ring finger.
 .pg
 Most rings also cause you to grow hungry more rapidly, the rate
-varying with the type of ring.  
+varying with the type of ring.
 .pg
 The commands to use rings are `P' (put on) and `R' (remove).
 .hn 2
@@ -1686,16 +2109,18 @@ energy and the time required in casting.
 .pg
 Casting a spell calls forth magical energies and focuses them with
 your naked mind.  Some of the magical energy released comes from within
-you, and casting several spells in a row may tire you.
+you.
+Casting temporarily drains your magical power, which will slowly be
+recovered, and causes you to need additional food.
 Casting of spells also requires practice.  With practice, your
 skill in each category of spell casting will improve.  Over time, however,
 your memory of each spell will dim, and you will need to relearn it.
 .pg
-Some spells are
-directional\(emyou must give a direction in which to cast them.  You can also
-cast them at yourself (just give a `.' or `s' for the direction). Be warned,
-however, for this is often unwise.  Other spells are nondirectional\(emthey
-don't require a direction.
+Some spells require a direction in which to cast them, similar to wands.
+To cast one at yourself, just give a `.' or `s' for the direction.
+A few spells require you to pick a target location rather than just specify
+a particular direction.
+Other spells don't require any direction or target.
 .pg
 Just as weapons are divided into groups in which a character can become
 proficient (to varying degrees), spells are similarly grouped.
@@ -1771,6 +2196,9 @@ heavy.  It is rumored that some statues are not what they seem.
 .pg
 Very large humanoids (giants and their ilk) have been known to use boulders
 as weapons.
+.pg
+For some configurations of the program, statues are no longer shown as `\`'
+but by the letter representing the monster they depict instead.
 .hn 2
 Gold (`$')
 .pg
@@ -1778,7 +2206,31 @@ Gold adds to your score, and you can buy things in shops with it.
 There are a number
 of monsters in the dungeon that may be influenced by the amount of gold
 you are carrying (shopkeepers aside).
-
+.
+.hn 2
+Persistence of Objects
+.pg
+Normally, if you have seen an object at a particular map location and
+move to another location which can't directly see that object any
+more, if will continue to be displayed on your map.
+That remains the case even if it is not actually there any more \(em
+perhaps a monster has picked it up or it has rotted away \(em
+until you can see or feel that location again.
+One notable exception is that if the object gets covered by the
+``remembered, unseen monster'' marker and that marker is later removed
+after you've verified that no monster is there, you will forget that
+there was any object there regardless of whether the unseen monster
+actually took the object.
+If the object is still there, then once you see or feel that location
+again you will re-discover the object and resume remembering it.
+.pg
+The situation is the same for a pile of objects, except that only the
+top item of the pile is displayed.
+The
+.op hilite_pile
+option can be enabled in order to show an item differently when is
+the top one of a pile.
+.
 .hn 1
 Conduct
 .pg
@@ -1887,7 +2339,7 @@ wish for any items is a challenge, as is a game without wishing for
 an artifact (even if the artifact immediately disappears).  When the
 game offers you an opportunity to make a wish for an item, you may
 choose ``nothing'' if you want to decline.
-
+.
 .hn 1
 Options
 .pg
@@ -1899,18 +2351,167 @@ Setting the options
 .pg
 Options may be set in a number of ways.  Within the game, the `O'
 command allows you to view all options and change most of them.
-You can also set options automatically by placing them in the
-NETHACKOPTIONS environment variable or in a configuration file.
+You can also set options automatically by placing them in a configuration
+file, or in the NETHACKOPTIONS environment variable.
 Some versions of NetHack also have front-end programs that allow
 you to set options before starting the game or a global configuration
 for system administrators.
 .hn 2
+Using a configuration file
+.pg
+.\" hw: don't hyphenate file names
+.hw .nethackrc defaults.nh nethack.exe nethackW.exe
+The default name of the configuration file varies on different
+operating systems.
+On DOS and Windows, it is ``defaults.nh''
+in the same folder as nethack.exe or nethackW.exe.
+On
+.UX ,
+Linux,
+and Mac OS X it is ``.nethackrc'' in the user's home directory.
+The file may not exist, but it is a normal ASCII text file and
+can be created with any text editor.
+.pg
+Any line in the configuration file starting with `#' is treated as a comment.
+Empty lines are ignored.
+.pg
+Any line beginning with `[' and ending in `]' is considered a section
+marker. The text between the square brackets is the section name.
+Lines after a section marker belong to that section, and are
+ignored unless a CHOOSE -statement was used to select that section.
+Section names are case insensitive.
+.pg
+You can use different configuration statements in the file, some
+of which can be used multiple times. In general, the statements are
+written in capital letters, followed by an equals sign, followed by
+settings particular to that statement. Here is a list of allowed statements:
+.lp OPTIONS
+There are two types of options, boolean and compound options.
+Boolean options toggle a setting on or off, while compound options
+take more diverse values.
+Prefix a boolean option with `no' or `!' to turn it off.
+For compound options, the option name and value are separated by a colon.
+Some options are persistent, and apply only to new games.
+You can specify multiple OPTIONS statements, and multiple options
+in a single OPTIONS statement.
+.pg
+Example:
+.sd
+\fBOPTIONS=dogname:Fido\fP
+.\" '\(dq' == double quote; including a literal double quote here works
+.\"           for formatting but confuses Emacs' nroff-mode into thinking
+.\"           that the \fP is part of a string rather than a font toggle
+\fBOPTIONS=!legacy,autopickup,pickup_types:$\(dq=/!?+\fP
+.ed
+.lp HACKDIR
+Default location of files NetHack needs. On Windows HACKDIR
+defaults to the location of the NetHack.exe or NetHackw.exe file
+so setting HACKDIR to override that is not usually necessary or recommended.
+.lp LEVELDIR
+The location that in-progress level files are stored. Defaults to HACKDIR,
+must be writeable.
+.lp SAVEDIR
+The location where saved games are kept. Defaults to HACKDIR, must be
+writeable.
+.lp BONESDIR
+The location that bones files are kept. Defaults to HACKDIR, must be
+writeable.
+.lp LOCKDIR
+The location that file synchronization locks are stored. Defaults to
+HACKDIR, must be writeable.
+.lp TROUBLEDIR
+The location that a record of game aborts and self-diagnosed game problems
+is kept. Defaults to HACKDIR, must be writeable.
+.lp AUTOCOMPLETE
+Enable or disable an extended command autocompletion.
+Autocompletion has no effect for the X11 windowport.
+You can specify multiple autocompletions. To enable
+autocompletion, list the extended command. Prefix the
+command with ``!'' to disable the autocompletion
+for that command.
+.pg
+Example:
+.sd
+\fBAUTOCOMPLETE=zap,!annotate\fP
+.ed
+.lp AUTOPICKUP_EXCEPTION
+Set exceptions to the
+.op pickup_types
+option. See the ``Configuring Autopickup Exceptions'' section.
+.lp BINDINGS
+Change the key bindings of some special keys, menu accelerators, or
+extended commands. You can specify multiple bindings. Format is key
+followed by the command, separated by a colon.
+See the ``Changing Key Bindings`` section for more information.
+.pg
+Example:
+.sd
+\fBBIND=^X:getpos.autodescribe\fP
+.ed
+.lp CHOOSE
+Chooses at random one of the comma-separated parameters as an active
+section name. Lines in other sections are ignored.
+.pg
+Example:
+.sd
+\fBOPTIONS=color\fP
+\fBCHOOSE=char A,char B\fP
+\fB[char A]\fP
+\fBOPTIONS=role:arc,race:dwa,align:law,gender:fem\fP
+\fB[char B]\fP
+\fBOPTIONS=role:wiz,race:elf,align:cha,gender:mal\fP
+.ed
+.lp MSGTYPE
+Change the way messages are shown in the top status line.
+See the ``Configuring Message Types`` section.
+.lp MENUCOLOR
+Highlight menu lines with different colors.
+See the ``Configuring Menu Colors`` section.
+.lp SYMBOLS
+Override one or more symbols in the symbols files.
+See the ``Modifying NetHack Symbols'' section.
+.pg
+Example:
+.sd
+\fBSYMBOLS=S_boulder:0\fP
+.ed
+.lp WIZKIT
+Wizard-mode extra items, in a text file containing item names,
+one per line, up to a maximum of 128 lines. Each line is processed
+by the function that handles wishing.
+.pg
+Example:
+.sd
+\fBWIZKIT=\(ti/wizkit.txt\fP \" \(ti == '~'
+.ed
+.lp SOUNDDIR
+Define the directory that contains the sound files.
+See the ``Configuring User Sounds'' section.
+.lp SOUND
+Define a sound mapping. See the ``Configuring User Sounds'' section.
+.pg
+Here is a short example of config file contents:
+.sd
+\fB# Set your character's role, race, gender, and alignment.\fP
+\fBOPTIONS=role:Valkyrie, race:Human, gender:female, align:lawful\fP
+\fB#\fP
+\fB# Turn on autopickup, and set automatically picked up object types\fP
+\fBOPTIONS=autopickup,pickup_types:$"=/!?+\fP
+\fB# Show colored text if possible\fP
+\fBOPTIONS=color\fP
+\fB# Show lit corridors differently\fP
+\fBOPTIONS=lit_corridor\fP
+\fB#\fP
+\fB# No startup splash screen. Windows GUI only.\fP
+\fBOPTIONS=!splash_screen\fP
+.ed
+.hn 2
 Using the NETHACKOPTIONS environment variable
 .pg
 The NETHACKOPTIONS variable is a comma-separated list of initial
 values for the various options.  Some can only be turned on or off.
 You turn one of these on by adding the name of the option to the list,
-and turn it off by typing a `!' or ``no'' before the name.  Others take a 
+and turn it off by typing a `!' or ``no'' before the name.  Others take a
 character string as a value.  You can set string options by typing
 the option name, a colon or equals sign, and then the value of the string.
 The value is terminated by the next comma or the end of string.
@@ -1927,28 +2528,9 @@ $ \fBNETHACKOPTIONS="autoquiver,!autopickup,name:Blue Meanie,fruit:papaya"\fP
 $ \fBexport NETHACKOPTIONS\fP
 .ed
 in \fIsh\fP or \fIksh\fP.
-.hn 2
-Using a configuration file
-.pg
-Any line in the configuration file starting with `#' is treated as a comment.
-Any line in the configuration file starting with ``OPTIONS='' may be
-filled out with options in the same syntax as in NETHACKOPTIONS.
-Any line starting with ``SYMBOLS=''
-is taken as defining the corresponding symbol
-in a different syntax, a sequence of decimal numbers giving 
-the character position in the current font to be used in displaying 
-each entry. Such a sequence can be continued to multiple lines by putting a `\e'
-at the end of each line to be continued.
-.pg
-Any line starting with ``AUTOPICKUP_EXCEPTION='' is taken
-as defining an exception to the 
-.op pickup_types
-option. 
-There is a section of this Guidebook that discusses that.
 .pg
-The default name of the configuration file varies on different
-operating systems, but NETHACKOPTIONS can also be set to
-the full name of a file you want to use (possibly preceded by an `@').
+NETHACKOPTIONS can also be set to the full name of a configuration file you
+want to use (possibly preceded by an `@').
 .hn 2
 Customization options
 .pg
@@ -1967,9 +2549,14 @@ Persistent.
 Your starting alignment (align:lawful, align:neutral,
 or align:chaotic).  You may specify just the first letter.
 The default is to randomly pick an appropriate alignment.
-If you prefix a `!' or ``no'' to the value, you can 
+If you prefix the value with `!' or ``no'', you will
 exclude that alignment from being picked randomly.
 Cannot be set with the `O' command.  Persistent.
+.lp autodescribe
+Automatically describe the terrain under cursor when asked to get a location
+on the map.  The
+.op whatis_coord
+option controls whether the description includes map coordinates.
 .lp autodig
 Automatically dig if you are wielding a digging tool and moving into a place
 that can be dug (default false). Persistent.
@@ -1990,34 +2577,39 @@ into account the blessed/cursed status, enchantment, damage, or
 quality of the weapon; you are free to manually fill your quiver or quiver sack
 or make ready
 with the `Q' command instead.  If no weapon is found or the option is
-false, the `t' (throw) command is executed instead.  Persistent. (default false)
+false, the `t' (throw) command is executed instead.
+Persistent. (default false)
 .lp blind
 Start the character permanently blind.  Persistent. (default false)
 .lp bones
 Allow saving and loading bones files.  Persistent. (default true)
 .lp boulder
-Set the character used to display boulders (default is rock class symbol).
+Set the character used to display boulders (default is the ``large rock''
+class symbol, `\`').
 .lp catname
 Name your starting cat (ex. ``catname:Morris'').
 Cannot be set with the `O' command.
 .lp character
-Pick your type of character (ex. ``character:Monk'');
-synonym for ``role''.  See ``name'' for an alternate method
-of specifying your role.  Normally only the first letter of
-the value is examined; the string ``random'' is an exception.
+Synonym for ``role'' to pick the type of your character
+(ex. ``character:Monk'').
+See
+.op role
+for more details.
 .lp checkpoint
 Save game state after each level change, for possible recovery after
 program crash (default on).  Persistent.
 .lp checkspace
 Check free disk space before writing files to disk (default on).
 You may have to turn this off if you have more than 2 GB free space
-on the partition used for your save and level files.
+on the partition used for your save and level files
+(because too much space might overflow the calculation and end up
+looking like insufficient space).
 Only applies when MFLOPPY was defined during compilation.
 .lp clicklook
 Allows looking at things on the screen by navigating the mouse
 over them and clicking the right mouse button (default off).
 .lp cmdassist
-Have the game provide some additional command assistance for 
+Have the game provide some additional command assistance for
 new players if it detects some anticipated mistakes (default on).
 .lp "confirm "
 Have user confirm attacks on pets, shopkeepers, and other
@@ -2051,6 +2643,20 @@ lets you refine how it behaves.  Here are the valid prefixes:
 .CC - "do not disclose it and do not prompt."
 .ei
 .ed
+The listing of vanquished monsters can be sorted,
+so there are two additional choices for `v':
+.sd
+.si
+.CC ? "prompt you and default to ask on the prompt;"
+.CC # "disclose it without prompting, ask for sort order."
+.ei
+.ed
+Asking refers to picking one of the orderings from a menu.
+The `+' disclose without prompting choice,
+or being prompted and answering `y' rather than `a',
+will default to showing monsters in the traditional order,
+from high level to low level.
+.lp ""
 Omitted categories are implicitly added with `n' prefix.
 Specified categories with omitted prefix implicitly use `+' prefix.
 Order of the disclosure categories does not matter, program display for
@@ -2075,7 +2681,7 @@ Cannot be set with the `O' command.
 .lp extmenu
 Changes the extended commands interface to pop-up a menu of available commands.
 It is keystroke compatible with the traditional interface except that it does
-not require that you hit Enter. It is implemented only by the tty port 
+not require that you hit Enter. It is implemented only by the tty port
 (default off), when the game has been compiled to support tty graphics.
 .lp female
 An obsolete synonym for ``gender:female''.
@@ -2084,6 +2690,9 @@ Cannot be set with the `O' command.
 An object's inventory letter sticks to it when it's dropped (default on).
 If this is off, dropping an object shifts all the remaining inventory letters.
 Persistent.
+.lp force_invmenu
+Commands asking for an inventory item show a menu instead of
+a text query with possible menu letters. Default is off.
 .lp "fruit   "
 Name a fruit after something you enjoy eating (ex. ``fruit:mango'')
 (default ``slime mold'').  Basically a nostalgic whimsy that NetHack uses
@@ -2096,15 +2705,27 @@ You may specify just the first letter.  Although you can
 still denote your gender using the ``male'' and ``female''
 options, the ``gender'' option will take precedence.
 The default is to randomly pick an appropriate gender.
-If you prefix a `!' or ``no'' to the value, you can 
+If you prefix the value with `!' or ``no'', you will
 exclude that gender from being picked randomly.
 Cannot be set with the `O' command.  Persistent.
+.lp "goldX   "
+When filtering objects based on bless/curse state (BUCX), whether to
+treat gold pieces as X (unknown bless/curse state, when `on')
+or U (known to be uncursed, when `off', the default).
+Gold is never blessed or cursed, but it is not described as ``uncursed''
+even when the
+.op implicit_uncursed
+option is `off'.
 .lp "help    "
 If more information is available for an object looked at
 with the `/' command, ask if you want to see it (default on). Turning help
 off makes just looking at things faster, since you aren't interrupted with the
 ``More info?'' prompt, but it also means that you might miss some
 interesting and/or important information.  Persistent.
+.lp herecmd_menu
+When using a windowport that supports mouse and clicking on yourself or
+next to you, show a menu of possible actions for the location.
+Same as herecmdmenu and therecmdmenu commands.
 .lp hilite_pet
 Visually distinguish pets from similar animals (default off).
 The behavior of this option depends on the type of windowing you use.
@@ -2116,6 +2737,9 @@ The behavior of this option depends on the type of windowing you use.
 In text windowing, text highlighting or inverse video is often used;
 with tiles, generally displays a small plus-symbol beside the object
 on the top of the pile.
+.lp hitpointbar
+Show a hit point bar graph behind your name and title.
+Only available for TTY and Windows GUI, and only when statushilites is on.
 .lp horsename
 Name your starting horse (ex. ``horsename:Trigger'').
 Cannot be set with the `O' command.
@@ -2168,11 +2792,11 @@ Default '-'.
 .lp menu_deselect_page
 Menu character accelerator to deselect all items on this page of a menu.
 Implemented by the Amiga, Gem and tty ports.
-Default '\e'.
+Default '\\'.
 .lp menu_first_page
 Menu character accelerator to jump to the first page in a menu.
 Implemented by the Amiga, Gem and tty ports.
-Default '^'.
+Default '\(ha'.
 .lp menu_headings
 Controls how the headings in a menu are highlighted.
 Values are 'none', 'bold', 'dim', 'underline', 'blink', or 'inverse'.
@@ -2184,7 +2808,7 @@ Default '@'.
 .lp menu_invert_page
 Menu character accelerator to invert all items on this page of a menu.
 Implemented by the Amiga, Gem and tty ports.
-Default '~'.
+Default '\(ti'. \" ~
 .lp menu_last_page
 Menu character accelerator to jump to the last page in a menu.
 Implemented by the Amiga, Gem and tty ports.
@@ -2196,7 +2820,11 @@ Default '>'.
 .lp menu_objsyms
 Show object symbols in menu headings in menus where
 the object symbols act as menu accelerators (default off).
-.lp menu_previous_page 
+.lp menu_overlay
+Do not clear the screen before drawing menus, and align
+menus to the right edge of the screen. Only for the tty port.
+(default on)
+.lp menu_previous_page
 Menu character accelerator to goto the previous menu page.
 Implemented by the Amiga, Gem and tty ports.
 Default '<'.
@@ -2233,9 +2861,9 @@ defaults to `full'), or it can be negated (which defaults to `single').
 Set your character's name (defaults to your user name).  You can also
 set your character's role by appending a dash and one or more letters of
 the role (that is, by suffixing one of
-.op "-A -B -C -H -K -M -P -Ra -Ro -S -T -V -W" ).
+.op "\-A \-B \-C \-H \-K \-M \-P \-Ra \-Ro \-S \-T \-V \-W" ).
 If
-.op "-@"
+.op "\-@"
 is used for the role, then a random one will be automatically chosen.
 Cannot be set with the `O' command.
 .lp "news    "
@@ -2270,42 +2898,48 @@ is the same as specifying 0.
 (Settings 2 and 4 are for compatibility with MSDOS or old PC Hack;
 in addition to the different behavior for `5', `Alt-5' acts as `G'
 and `Alt-0' acts as `I'.
-Setting -1 is to accommodate some German keyboards which have the
+Setting -1 is to accommodate some QWERTZ keyboards which have the
 location of the `y' and `z' keys swapped.)
 When moving by numbers, to enter a count prefix for those commands
 which accept one (such as ``12s'' to search twelve times), precede it
 with the letter `n' (``n12s'').
 .lp packorder
-Specify the order to list object types in (default ``")[%?+!=/(*`0_'').
+.\" \(dq == double quote; literal '"' formats ok but confuses Emacs' nroff-mode
+Specify the order to list object types in (default ``\(dq)[%?+!=/(*`0_'').
 The value of this option should be a string containing the
 symbols for the various object types.  Any omitted types are filled in
 at the end from the previous order.
 .lp paranoid_confirmation
 A space separated list of specific situations where alternate
 prompting is desired.  The default is paranoid_confirmation:pray.
-.PS Confirm
+.PS Were-change
 .PL Confirm
-for any prompts which are set to require "yes" rather than 'y', also
-require "no" to reject instead of accepting any non-yes response as no
+for any prompts which are set to require ``yes'' rather than 'y', also
+require ``no'' to reject instead of accepting any non-yes response as no
 .PL quit
-require "yes" rather than 'y' to confirm quitting
+require ``yes'' rather than 'y' to confirm quitting
 the game or switching into non-scoring explore mode;
 .PL die
-require "yes" rather than 'y' to confirm dying (not
+require ``yes'' rather than 'y' to confirm dying (not
 useful in normal play; applies to explore mode);
 .PL bones
-require "yes" rather than 'y' to confirm saving
+require ``yes'' rather than 'y' to confirm saving
 bones data when dying in debug mode;
 .PL attack
-require "yes" rather than 'y' to confirm attacking a peaceful monster;
+require ``yes'' rather than 'y' to confirm attacking a peaceful monster;
+.PL wand-break
+require ``yes'' rather than 'y' to confirm breaking a wand;
+.PL Were-change
+require ``yes'' rather than 'y' to confirm changing form due to lycanthropy
+when hero has polymorph control;
 .PL pray
 require 'y' to confirm an attempt to pray rather
 than immediately praying; on by default;
-.PL wand
-require "yes" rather than 'y' to confirm breaking a wand;
 .PL Remove
 require selection from inventory for 'R' and 'T'
 commands even when wearing just one applicable item.
+.PL all
+turn on all of the above.
 .PE
 By default, the pray choice is enabled, the others disabled.
 To disable it without setting
@@ -2339,18 +2973,20 @@ or match an autopickup exception.  Default is on.  Persistent.
 .lp pickup_types
 Specify the object types to be picked up when
 .op autopickup
-is on.  Default is all types.  You can use 
+is on.  Default is all types.  You can use
 .op autopickup_exception
 configuration file lines to further refine
 .op autopickup
 behavior.  Persistent.
 .lp pile_limit
 When walking across a pile of objects on the floor, threshold at which
-the message "there are few/several/many objects here" is given instead
-of showing a popup list of those objects.  A value of 0 means "no limit"
-(always list the objects); a value of 1 effectively means "never show
-the objects" since the pile size will always be at least that big;
-default value is 5.  Persistent.
+the message ``there are few/several/many objects here'' is given instead
+of showing a popup list of those objects.
+A value of 0 means ``no limit''
+(always list the objects); a value of 1 effectively means ``never show
+the objects'' since the pile size will always be at least that big;
+default value is 5.
+Persistent.
 .lp playmode
 Values are `normal', `explore', or `debug'.
 Allows selection of explore mode (also known as discovery mode) or debug
@@ -2367,24 +3003,26 @@ Likewise for the `a' (apply) command if it causes the applied item to
 become wielded.  Persistent.
 .lp "race    "
 Selects your race (for example, ``race:human'').  Default is random.
-If you prefix a `!' or ``no'' to the value, you can 
+If you prefix the value with `!' or ``no'', you will
 exclude that race from being picked randomly.
 Cannot be set with the `O' command.  Persistent.
 .lp rest_on_space
-Make the space bar a synonym for the `.' (rest) command (default off).
+Make the space bar a synonym for the `.' (#wait) command (default off).
 Persistent.
 .lp "role    "
 Pick your type of character (ex. ``role:Samurai'');
 synonym for ``character''.  See ``name'' for an alternate method
 of specifying your role.  Normally only the first letter of the
 value is examined; `r' is an exception with ``Rogue'', ``Ranger'',
-and ``random'' values. If you prefix a `!' or ``no'' to the value, you can 
-exclude that role from being picked randomly.  Persistent.
+and ``random'' values.
+If you prefix the value with `!' or ``no'', you will
+exclude that role from being picked randomly.
+Cannot be set with the `O' command.  Persistent.
 .lp roguesymset
 This option may be used to select one of the named symbol sets found within
 ``symbols'' to alter the symbols displayed on the screen on the rogue level.
 .lp rlecomp
-When writing out a save file, perform run length compression of the map. 
+When writing out a save file, perform run length compression of the map.
 Not all ports support run length compression. It has no
 effect on reading an existing save file.
 .lp runmode
@@ -2403,7 +3041,7 @@ update the map after each step;
 like walk, but pause briefly after each step.
 .PE
 This option only affects the game's screen display, not the actual
-results of moving.  The default is `run'; versions prior to 3.4.1 
+results of moving.  The default is `run'; versions prior to 3.4.1
 used `teleport' only.  Whether or not the effect is noticeable will
 depend upon the window port used or on the type of terminal.  Persistent.
 .lp safe_pet
@@ -2446,17 +3084,21 @@ Persistent.
 Display a sparkly effect when a monster (including yourself) is hit by an
 attack to which it is resistant (default on).  Persistent.
 .lp standout
-Boldface monsters and ``\fB--More--\fP'' (default off).  Persistent.
+Boldface monsters and ``\fB\-\-More\-\-\fP'' (default off).  Persistent.
 .lp statushilites
-Enable coloring of status fields (default off).
-See ``Configuring Status Hilites'' for futher information.
+Controls how many turns status hilite behaviors highlight
+the field. If negated or set to zero, disables status hiliting.
+See ``Configuring Status Hilites'' for further information.
+.lp status_updates
+Allow updates to the status lines at the bottom of the screen (default true).
 .lp suppress_alert
 This option may be set to a NetHack version level to suppress
-alert notification messages about feature changes for that 
+alert notification messages about feature changes for that
 and prior versions (ex. ``suppress_alert:3.3.1'').
 .lp symset
 This option may be used to select one of the named symbol sets found within
 ``symbols'' to alter the symbols displayed on the screen.
+Use ``symset:default'' to explicitly select the default symbols.
 .lp "time    "
 Show the elapsed game time in turns on bottom line (default off).  Persistent.
 .lp timed_delay
@@ -2478,13 +3120,62 @@ prevent the game from attempting unintended moves if you make inadvertent
 mouse clicks on the map window.  Persistent.
 .lp verbose
 Provide more commentary during the game (default on).  Persistent.
+.lp whatis_coord
+When using the `/' or `;' commands to look around on the map with
+.op autodescribe
+on, display coordinates after the description.
+Also works in other situations where you are asked to pick a location.
+.lp ""
+The possible settings are:
+.sd
+.si
+.CC c "compass ('east' or '3s' or '2n,4w');"
+.CC f "full compass ('east' or '3south' or '2north,4west');"
+.CC m "map <x,y> (map column x=0 is not used);"
+.CC s "screen [row,column] (row is offset to match tty usage);"
+.CC n "none (no coordinates shown) [default]."
+.ei
+.ed
+.lp ""
+The
+.op whatis_coord
+option is also used with
+the `/m', `/M', `/o', and `/O' sub-commands of `/',
+where the `none' setting is overridden with `map'.
+.lp whatis_filter
+When getting a location on the map, and using the keys to cycle through
+next and previous targets, allows filtering the possible targets.
+.lp ""
+.sd
+.si
+.CC n "no filtering [default]"
+.CC v "in view only"
+.CC a "in same area only"
+.ei
+.ed
+.lp ""
+The area-filter tries to be slightly predictive \(em if you're standing
+on a doorway,
+it will consider the area on the side of the door you were last moving towards.
+.lp ""
+Filtering can also be changed when getting a location with the
+``getpos.filter'' key.
+.lp whatis_menu
+When getting a location on the map, and using a key to cycle through
+next and previous targets, use a menu instead to pick a target.
+(default off)
+.lp whatis_moveskip
+When getting a location on the map, and using shifted movement keys or
+meta-digit keys to fast-move, instead of moving 8 units at a time,
+move by skipping the same glyphs.
+(default off)
 .lp windowtype
 Select which windowing system to use, such as ``tty'' or ``X11''
 (default depends on version).
 Cannot be set with the `O' command.
 .lp zerocomp
-When writing out a save file, perform zero-comp compression of the 
-contents. Not all ports support zero-comp compression. It has no effect 
+When writing out a save file, perform zero-comp compression of the
+contents. Not all ports support zero-comp compression. It has no effect
 on reading an existing save file.
 .hn 2
 Window Port Customization options
@@ -2507,67 +3198,73 @@ Where to align or place the message window (top, bottom, left, or right)
 .lp align_status
 Where to align or place the status window (top, bottom, left, or right).
 .lp ascii_map
-NetHack should display an ascii character map if it can.
-.lp color              
-NetHack should display color if it can for different monsters, 
-objects, and dungeon features
-.lp eight_bit_tty      
-NetHack should pass eight-bit character values (for example, specified with the
+If NetHack can, it should display an ascii character map if it can.
+.lp color
+If NetHack can, it should display color if it can for different monsters,
+objects, and dungeon features.
+.lp eight_bit_tty
+If NetHack can, it should pass eight-bit character values (for example,
+specified with the
 .op traps
 option) straight through to your terminal (default off).
-.lp font_map   
-NetHack should use a font by the chosen name for the map window.
-.lp font_menu  
-NetHack should use a font by the chosen name for menu windows.
-.lp font_message       
-NetHack should use a font by the chosen name for the message window.
-.lp font_status        
-NetHack should use a font by the chosen name for the status window.
-.lp font_text  
-NetHack should use a font by the chosen name for text windows.
-.lp font_size_map      
-NetHack should use this size font for the map window.
-.lp font_size_menu     
-NetHack should use this size font for menu windows.
-.lp font_size_message 
-NetHack should use this size font for the message window.
+.lp font_map
+if NetHack can, it should use a font by the chosen name for the map window.
+.lp font_menu
+If NetHack can, it should use a font by the chosen name for menu windows.
+.lp font_message
+If NetHack can, it should use a font by the chosen name for the message window.
+.lp font_status
+If NetHack can, it should use a font by the chosen name for the status window.
+.lp font_text
+If NetHack can, it should use a font by the chosen name for text windows.
+.lp font_size_map
+If NetHack can, it should use this size font for the map window.
+.lp font_size_menu
+If NetHack can, it should use this size font for menu windows.
+.lp font_size_message
+If NetHack can, it should use this size font for the message window.
 .lp font_size_status
-NetHack should use this size font for the status window.
-.lp font_size_text     
-NetHack should use this size font for text windows.
+If NetHack can, it should use this size font for the status window.
+.lp font_size_text
+If NetHack can, it should use this size font for text windows.
 .lp fullscreen
-NetHack should try and display on the entire screen rather than in a window.
-.lp large_font 
-NetHack should use a large font.
-.lp map_mode   
-NetHack should display the map in the manner specified.
+If NetHack can, it should try and display on the entire screen rather than
+in a window.
+.lp large_font
+If NetHack can, it should use a large font.
+.lp map_mode
+If NetHack can, it should display the map in the manner specified.
 .lp mouse_support
 Allow use of the mouse for input and travel.
 .lp player_selection
-NetHack should pop up dialog boxes, or use prompts for character selection.
-.lp popup_dialog       
-NetHack should pop up dialog boxes for input.
+If NetHack can, it should pop up dialog boxes, or use prompts for character
+selection.
+.lp popup_dialog
+If NetHack can, it should pop up dialog boxes for input.
 .lp preload_tiles
-NetHack should preload tiles into memory.
+If NetHack can, it should preload tiles into memory.
 For example, in the protected mode MSDOS version, control whether tiles
 get pre-loaded into RAM at the start of the game.  Doing so
 enhances performance of the tile graphics, but uses more memory. (default on).
 Cannot be set with the `O' command.
 .lp scroll_amount
-NetHack should scroll the display by this number of cells
+If NetHack can, it should scroll the display by this number of cells
 when the hero reaches the scroll_margin.
 .lp scroll_margin
-NetHack should scroll the display when the hero or cursor
+If NetHack can, it should scroll the display when the hero or cursor
 is this number of cells away from the edge of the window.
 .lp selectsaved
-NetHack should display a menu of existing saved games for the player to
-choose from at game startup, if it can. Not all ports support this option.
+If NetHack can, it should display a menu of existing saved games for the
+player to choose from at game startup, if it can.
+Not all ports support this option.
 .lp softkeyboard
-Display an onscreen keyboard.  Handhelds are most likely to support this option.
+Display an onscreen keyboard.
+Handhelds are most likely to support this option.
 .lp splash_screen
-NetHack should display an opening splash screen when it starts up (default yes).
-.lp tiled_map  
-NetHack should display a tiled map if it can.
+If NetHack can, it should display an opening splash screen when it starts
+up (default yes).
+.lp tiled_map
+If NetHack can, it should display a tiled map if it can.
 .lp tile_file
 Specify the name of an alternative tile file to override the default.
 .lp tile_height
@@ -2577,42 +3274,43 @@ Specify the preferred width of each tile in a tile capable port
 .lp use_darkgray
 Use bold black instead of blue for black glyphs (TTY only).
 .lp use_inverse
-NetHack should display inverse when the game specifies it.
+If NetHack can, it should display inverse when the game specifies it.
 .lp vary_msgcount
-NetHack should display this number of messages at a time in
+If NetHack can, it should display this number of messages at a time in
 the message window.
 .lp windowcolors
-NetHack should display windows with the specified foreground/background
-colors if it can.
+If NetHack can, it should display windows with the specified
+foreground/background colors if it can.
 .lp wraptext
-NetHack port should wrap long lines of text if they don't fit in 
+If NetHack can, it should wrap long lines of text if they don't fit in
 the visible area of the window.
 .hn 2
 Platform-specific Customization options
 .pg
-Here are explanations of options that are used by specific platforms or ports 
+Here are explanations of options that are used by specific platforms or ports
 to customize and change the port behavior.
 .lp altkeyhandler
 Select an alternate keystroke handler dll to load (Win32 tty NetHack only).
-The name of the handler is specified without the .dll extension and without any
-path information.
+The name of the handler is specified without the .dll extension and without
+any path information.
 Cannot be set with the `O' command.
 .lp altmeta
 On Amiga, this option controls whether typing `Alt' plus another key
 functions as a meta-shift for that key (default on).
 .lp altmeta
 On other (non-Amiga) systems where this option is available, it can be
-set to tell nethack to convert a two character sequence beginning with
+set to tell NetHack to convert a two character sequence beginning with
 ESC into a meta-shifted version of the second character (default off).
 .lp ""
 This conversion is only done for commands, not for other input prompts.
 Note that typing one or more digits as a count prefix prior to a
-command--preceded by \fBn\fP if the
+command \(em preceded by \fBn\fP if the
 .op number_pad
-option is set--is also subject to this conversion, so attempting to
-abort the count by typing ESC will leave nethack waiting for another
-character to complete the two character sequence.  Type a second ESC to
-finish cancelling such a count.  At other prompts a single ESC suffices.
+option is set \(em is also subject to this conversion, so attempting to
+abort the count by typing ESC will leave NetHack waiting for another
+character to complete the two character sequence.
+Type a second ESC to finish cancelling such a count.
+At other prompts a single ESC suffices.
 .lp "BIOS    "
 Use BIOS calls to update the screen
 display quickly and to read the keyboard (allowing the use of arrow
@@ -2645,7 +3343,7 @@ Cannot be set with the `O' command.
 Set the video mode used (PC NetHack only).
 Values are `autodetect', `default', or `vga'.
 Setting `vga' (or `autodetect' with vga hardware present) will cause
-the game to display tiles. 
+the game to display tiles.
 Cannot be set with the `O' command.
 .lp videocolors
 Set the color palette for PC systems using NO_TERMS
@@ -2667,23 +3365,24 @@ Regular expressions are normally POSIX extended regular expressions. It is
 possible to compile NetHack without regular expression support on a platform
 where there is no regular expression library. While this is not true of any
 modern platform, if your NetHack was built this way, patterns are instead glob
-patterns.
+patterns. This applies to Autopickup exceptions, Message types, Menu colors,
+and User sounds.
 .hn 2
 Configuring Autopickup Exceptions
 .pg
 You can further refine the behavior of the
 .op autopickup
-option beyond what is available through the 
+option beyond what is available through the
 .op pickup_types
-option. 
+option.
 .pg
-By placing 
+By placing
 .op autopickup_exception
 lines in your configuration
 file, you can define patterns to be checked when the game is about to
 autopickup something.
 .lp autopickup_exception
-Sets an exception to the 
+Sets an exception to the
 .op pickup_types
 option.
 The
@@ -2692,7 +3391,7 @@ option should be followed by a regular expression to be used as a pattern to
 match against the singular form of the description of an object at your
 location.
 .lp ""
-In addition, some characters are treated specially if they occur as the first 
+In addition, some characters are treated specially if they occur as the first
 character in the pattern, specifically:
 .sd
 .si
@@ -2722,6 +3421,169 @@ The second example results in the exclusion of any corpse from autopickup.
 The last example results in the exclusion of items known to be cursed from
 autopickup.
 .hn 2
+Changing Key Bindings
+.pg
+It is possible to change the default key bindings of some special commands,
+menu accelerator keys, and extended commands, by using BIND stanzas in the
+configuration file.
+Format is key, followed by the command to bind to, separated by a colon.
+The key can be a single character (``x''), a control key (``^X'',
+``C-x''), a meta key (``M-x''), or a three-digit decimal ASCII code.
+.pg
+For example:
+.sd
+.si
+BIND=^X:getpos.autodescribe
+BIND={:menu_first_page
+BIND=v:loot
+.ei
+.ed
+.pg
+.lp "Extended command keys"
+You can bind multiple keys to the same extended command. Unbind a key by
+using ``nothing'' as the extended command to bind to. You can also bind
+the ``<esc>'', ``<enter>'', and ``<space>'' keys.
+.lp "Menu accelerator keys"
+The menu control or accelerator keys can also be rebound via OPTIONS-lines
+in the config file. You cannot bind object symbols into menu accelerators.
+.lp "Special command keys"
+Below are the special commands you can rebind. Some of them can be bound to
+same keys with no problems, others are in the same "context", and if bound
+to same keys, only one of those commands will be available. Special command
+can only be bound to a single key.
+.pg
+.lp count
+Prefix key to start a count, to repeat a command this many times.
+With
+.op number_pad
+only.
+Default is 'n'.
+.lp doinv
+Show inventory.
+With
+.op number_pad
+only.
+Default is '0'.
+.lp fight
+Prefix key to force fight a direction. Default is 'F'.
+.lp fight.numpad
+Prefix key to force fight a direction.
+With
+.op number_pad
+only.
+Default is '-'.
+.lp getdir.help
+When asked for a direction, the key to show the help. Default is '?'.
+.lp getdir.self
+When asked for a direction, the key to target yourself. Default is '.'.
+.lp getdir.self2
+When asked for a direction, the key to target yourself. Default is 's'.
+.lp getpos.autodescribe
+When asked for a location, the key to toggle autodescribe. Default is '#'.
+.lp getpos.all.next
+When asked for a location, the key to go to next closest interesting thing.
+Default is 'a'.
+.lp getpos.all.prev
+When asked for a location, the key to go to previous closest interesting
+thing.
+Default is 'A'.
+.lp getpos.door.next
+When asked for a location, the key to go to next closest door or doorway.
+Default is 'd'.
+.lp getpos.door.prev
+When asked for a location, the key to go to previous closest door or doorway.
+Default is 'D'.
+.lp getpos.help
+When asked for a location, the key to show help. Default is '?'.
+.lp getpos.mon.next
+When asked for a location, the key to go to next closest monster.
+Default is 'm'.
+.lp getpos.mon.prev
+When asked for a location, the key to go to previous closest monster.
+Default is 'M'.
+.lp getpos.obj.next
+When asked for a location, the key to go to next closest object.
+Default is 'o'.
+.lp getpos.obj.prev
+When asked for a location, the key to go to previous closest object.
+Default is 'O'.
+.lp getpos.menu
+When asked for a location, and using one of the next or previous keys to
+cycle through targets, toggle showing a menu instead.
+Default is '!'.
+.lp getpos.moveskip
+When asked for a location, and using the shifted movement keys or meta-digit
+keys to fast-move around, move by skipping the same glyphs instead of
+by 8 units.
+Default is '*'.
+.lp getpos.filter
+When asked for a location, change the filtering mode when using one of
+the next or previous keys to cycle through targets. Toggles between no
+filtering, in view only, and in the same area only.
+Default is '\(dq'. \" double quote
+.lp getpos.pick
+When asked for a location, the key to choose the location, and possibly
+ask for more info.
+Default is '.'.
+.lp getpos.pick.once
+When asked for a location, the key to choose the location, and skip asking
+for more info.
+Default is ','.
+.lp getpos.pick.quick
+When asked for a location, the key to choose the location, skip asking for
+more info, and exit the location asking loop.
+Default is ';'.
+.lp getpos.pick.verbose
+When asked for a location, the key to choose the location, and show more
+info without asking.
+Default is ':'.
+.lp getpos.self
+When asked for a location, the key to go to your location.
+Default is '@'.
+.lp getpos.unexplored.next
+When asked for a location, the key to go to next closest unexplored location.
+Default is 'x'.
+.lp getpos.unexplored.prev
+When asked for a location, the key to go to previous closest unexplored
+location.
+Default is 'X'.
+.lp getpos.valid
+When asked for a location, the key to go to show valid target locations.
+Default is '$'.
+.lp getpos.valid.next
+When asked for a location, the key to go to next closest valid location.
+Default is 'z'.
+.lp getpos.valid.prev
+When asked for a location, the key to go to previous closest valid location.
+Default is 'Z'.
+.lp nopickup
+Prefix key to move without picking up items. Default is 'm'.
+.lp redraw
+Key to redraw the screen. Default is '^R'.
+.lp redraw.numpad
+Key to redraw the screen.
+With
+.op number_pad
+only.
+Default is '^L'.
+.lp repeat
+Key to repeat previous command. Default is '^A'.
+.lp reqmenu
+Prefix key to request menu from some commands. Default is 'm'.
+.lp run
+Prefix key to run towards a direction. Default is 'G'.
+.lp run.nopickup
+Prefix key to run towards a direction without picking up items on the way.
+Default is 'M'.
+.lp run.numpad
+Prefix key to run towards a direction.
+With
+.op number_pad
+only.
+Default is '5'.
+.lp rush
+Prefix key to rush towards a direction. Default is 'g'.
+.hn 2
 Configuring Message Types
 .pg
 You can change the way the messages are shown in the message area, when
@@ -2732,7 +3594,7 @@ look like this:
 .si
 MSGTYPE=type "pattern"
 .ei
-.PS "message type"
+.PS "pattern"
 .PL type
 how the message should be shown;
 .PL pattern
@@ -2742,14 +3604,16 @@ the pattern to match.
 The pattern should be a regular expression.
 .lp ""
 Allowed types are:
-.sd
-.si
-show  - show message normally.
-hide  - never show the message.
-stop  - wait for user with more-prompt.
-norep - show the message once, but not again if no other message is shown in between.
-.ei
-.ed
+.PS "norep"
+.PL show
+show message normally;
+.PL hide
+never show the message;
+.PL stop
+wait for user with more-prompt;
+.PL norep
+show the message once, but not again if no other message is shown in between.
+.PE
 .lp ""
 Here's an example of message types using NetHack's internal
 pattern matching facility:
@@ -2759,9 +3623,11 @@ MSGTYPE=stop "You feel hungry."
 MSGTYPE=hide "You displaced *."
 .ei
 .ed
-specifies that whenever a message "You feel hungry" is shown,
+specifies that whenever a message ``You feel hungry'' is shown,
 the user is prompted with more-prompt, and a message matching
-"You displaced <something>." is not shown at all.
+``You displaced <something>.'' is not shown at all.
+.\" historical trivia:  "You displaced Fido." was the sort of message you
+.\" got when swapping places with your pet, but that was changed long ago...
 .lp ""
 The order of the defined MSGTYPE-lines is important; the last matching
 rule is used. Put the general case first, exceptions below them.
@@ -2806,23 +3672,23 @@ MENUCOLOR="* cursed *"=red
 MENUCOLOR="* cursed *(being worn)"=red&underline
 .ei
 .ed
-specifies that any menu line with " blessed " contained
-in it will be shown in green color, lines with " cursed " will be
-shown in red, and lines with " cursed " followed by "(being worn)"
+specifies that any menu line with `` blessed '' contained
+in it will be shown in green color, lines with `` cursed '' will be
+shown in red, and lines with `` cursed '' followed by ``(being worn)''
 on the same line will be shown in red color and underlined.
 You can have multiple MENUCOLOR entries in your config file,
 and the last MENUCOLOR-line in your config file that matches
 a menu line will be used for the line.
 .pg
 Note that if you intend to have one or more color specifications match
-" uncursed ", you will probably want to turn the
+`` uncursed '', you will probably want to turn the
 .op implicit_uncursed
 option off so that all items known to be uncursed are actually
 displayed with the ``uncursed'' description.
 .hn 2
 Configuring User Sounds
 .pg
-Some platforms allow you to define sound files to be played when a message 
+Some platforms allow you to define sound files to be played when a message
 that matches a user-defined pattern is delivered to the message window.
 At this time the Qt port and the win32tty and win32gui ports support the
 use of user sounds.
@@ -2851,20 +3717,25 @@ The pattern should be a POSIX extended regular expression.
 Configuring Status Hilites
 .pg
 Your copy of NetHack may have been compiled with support for ``Status Hilites''.
-If so, you can customize your game display by setting thresholds to 
+If so, you can customize your game display by setting thresholds to
 change the color or appearance of fields in the status display.
 .pg
+The format for defining status colors is:
+.si
+.lp "OPTION=hilite_status: field-name/behavior/color&attributes"
+.ei
+.pg
 For example, the following line in your config file will cause
 the hitpoints field to display in the color red if your hitpoints
 drop to or below a threshold of 30%:
 .si
-.lp "OPTION=hilite_status: hitpoints/30%/red/normal"
+.lp "OPTION=hilite_status: hitpoints/<30%/red/normal"
 .ei
 .pg
 For another example, the following line in your config file will cause
 wisdom to be displayed red if it drops and green if it rises.
 .si
-.lp "OPTION=hilite_status: wisdom/updown/red/green"
+.lp "OPTION=hilite_status: wisdom/down/red/up/green"
 .ei
 .pg
 You can adjust the display of the following status fields:
@@ -2883,21 +3754,76 @@ experience      condition
 .\"TABLE_END  Do not delete this line.
 .TE
 .lp ""
+The pseudo-field `characteristics' can be used to set all six
+of Str, Dex, Con, Int, Wis, and Cha at once.  `HD' is `hit dice',
+an approximation of experience level displayed when polymorphed.
+`experience', `time', and `score' are conditionally displayed
+depending upon your other option settings.
+.lp ""
+Instead of a behavior, `condition' takes the following condition flags:
+stone, slime, strngl, foodpois, termill, blind, deaf, stun, conf, hallu,
+lev, fly, and ride.  You can use `major_troubles' as an alias
+for stone through termill, `minor_troubles' for blind through hallu,
+`movement' for lev, fly, and ride, and `all' for every condition.
+.lp ""
+Allowed behaviors are "always", "up", "down", "changed", a
+percentage or absolute number threshold, or a text to match against.
+.si
+.lp "*"
+"always" will set the default attributes for that field.
+.lp "*"
+"up" and "down" set the field attributes for when the field
+value changes upwards or downwards. This attribute times out after
+statushilites turns.
+.lp "*"
+"changed" sets the field attribute for when the field value
+changes. This attribute times out after statushilites turns.
+.lp "*"
+percentage sets the field attribute when the field value
+matches the percentage. If the percentage is prefixed with '<'
+or '>', it also matches when value is below or above the percentage.
+Only valid for `power' and `hitpoints' fields.
+.lp "*"
+absolute value sets the attribute when the field value
+matches that number. If the number is prefixed with '<'
+or '>', it also matches when value is below or above.
+.lp "*"
+text match sets the attribute when the field value
+matches the text. Text matches can only be used for `alignment',
+`carrying-capacity', and `dungeon-level'.
+.ei
+.lp ""
 Allowed colors are black, red, green, brown, blue, magenta, cyan, gray,
 orange, lightgreen, yellow, lightblue, lightmagenta, lightcyan, and white.
 .lp ""
-Allowed attributes are bold, inverse, normal.
+Allowed attributes are bold, inverse, underline, blink, dim, and normal.
 Note that the platform used may interpret the attributes any way it
 wants.
 .lp ""
-Behaviours can occur based on percentage thresholds, updown, or absolute values.
 The in-game options menu can help you determine the correct syntax for a
 config file.
 .lp ""
-The whole feature can be disabled by setting option statushilites off.
+The whole feature  can  be  disabled  by  setting  option
+statushilites to 0.
+.lp ""
+Example hilites:
+.sd
+.si
+OPTION=hilite_status: gold/up/yellow/down/brown
+OPTION=hilite_status: characteristics/up/green/down/red
+OPTION=hilite_status: hitpoints/100%/gray&normal
+OPTION=hilite_status: hitpoints/<100%/green&normal
+OPTION=hilite_status: hitpoints/<66%/yellow&normal
+OPTION=hilite_status: hitpoints/<50%/orange&normal
+OPTION=hilite_status: hitpoints/<33%/red&bold
+OPTION=hilite_status: hitpoints/<15%/red&inverse
+OPTION=hilite_status: condition/major/orange&inverse
+OPTION=hilite_status: condition/lev+fly/red&inverse
+.ei
+.ed
 .pg
 .hn 2
-Modifying NetHack Symbols 
+Modifying NetHack Symbols
 .pg
 NetHack can load entire symbol sets from the symbol file.
 .pg
@@ -2910,51 +3836,55 @@ Set the name of the symbol set that you want to load for display
 on the rogue level.
 .pg
 You can also override one or more symbols using the SYMBOLS config
-file option. Symbols are specified as name:value pairs. Note that
+file option. Symbols are specified as name:value pairs.
+Note that
 NetHack escape-processes the value string in conventional C fashion.
-This means that \e is a prefix to take the following character literally. Thus
-\e needs to be represented as \e\e.
-The special escape form
-\em switches on the meta bit in the symbol value, and the \e^ prefix causes the
-following character to be treated as a control
-character.
+This means that \\ is a prefix to take the following character literally.
+Thus \\ needs to be represented as \\\\.
+The special prefix form \\m switches on the meta bit in the symbol value,
+and the \(ha prefix causes the following character to be treated as a
+control character.
 .pg
 .TS S
 center;
 c s s
 c1 l1 l.
 .\"TABLE_START
-NetHack Symbols
+.\" because description is wide, centered title seems off, so pad it a bit
+.\" note that each backslash precedes one space of padding (including the
+.\" last one; in other words, there's a trailing space here)
+NetHack Symbols\ \ \ \ \ \ \ 
 Default        Symbol Name     Description
 \_     \_      \_
-       S_air   (air)
+\      S_air   (air)
 \&_    S_altar (altar)
-"      S_amulet        (amulet)
+\(dq   S_amulet        (amulet)
 A      S_angel (angelic being)
 a      S_ant   (ant or other insect)
-^      S_anti_magic_trap       (anti-magic field)
+\(ha   S_anti_magic_trap       (anti-magic field)
 [      S_armor (suit or piece of armor)
 [      S_armour        (suit or piece of armor)
-^      S_arrow_trap    (arrow trap)
+\(ha   S_arrow_trap    (arrow trap)
 0      S_ball  (iron ball)
 #      S_bars  (iron bars)
 B      S_bat   (bat or bird)
-^      S_bear_trap     (bear trap)
-     S_blcorn        (bottom left corner)
+\(ha   S_bear_trap     (bear trap)
+\-     S_blcorn        (bottom left corner)
 b      S_blob  (blob)
 +      S_book  (spellbook)
 )      S_boomleft      (boomerang open left)
 (      S_boomright     (boomerang open right)
-     S_boulder       (boulder)
-     S_brcorn        (bottom right corner)
+\`     S_boulder       (boulder)
+\-     S_brcorn        (bottom right corner)
 C      S_centaur       (centaur)
 \&_    S_chain (iron chain)
 #      S_cloud (cloud)
 c      S_cockatrice    (cockatrice)
 $      S_coin  (pile of coins)
 #      S_corr  (corridor)
--      S_crwall        (wall)
-^      S_dart_trap     (dart trap)
+\-     S_crwall        (wall)
+#      S_darkroom      (dark room)
+\(ha   S_dart_trap     (dart trap)
 &      S_demon (major demon)
 *      S_digbeam       (dig beam)
 >      S_dnladder      (ladder down)
@@ -2964,134 +3894,136 @@ D     S_dragon        (dragon)
 ;      S_eel   (sea monster)
 E      S_elemental     (elemental)
 /      S_explode1      (explosion top left)
-     S_explode2      (explosion top center)
-`\e'   S_explode3      (explosion top right)
+\-     S_explode2      (explosion top center)
+\\     S_explode3      (explosion top right)
 |      S_explode4      (explosion middle left)
-       S_explode5      (explosion middle center)
+\      S_explode5      (explosion middle center)
 |      S_explode6      (explosion middle right)
-`\e'   S_explode7      (explosion bottom left)
-     S_explode8      (explosion bottom center)
+\\     S_explode7      (explosion bottom left)
+\-     S_explode8      (explosion bottom center)
 /      S_explode9      (explosion bottom right)
 e      S_eye   (eye or sphere)
-^      S_falling_rock_trap     (falling rock trap)
+\(ha   S_falling_rock_trap     (falling rock trap)
 f      S_feline        (cat or other feline)
-^      S_fire_trap     (fire trap)
+\(ha   S_fire_trap     (fire trap)
 !      S_flashbeam     (flash beam)
 %      S_food  (piece of food)
 {      S_fountain      (fountain)
 F      S_fungus        (fungus or mold)
 *      S_gem   (gem or rock)
-       S_ghost (ghost)
+\      S_ghost (ghost)
 H      S_giant (giant humanoid)
 G      S_gnome (gnome)
 '      S_golem (golem)
 |      S_grave (grave)
 g      S_gremlin       (gremlin)
--      S_hbeam (wall)
+\-     S_hbeam (horizontal beam [zap animation])
 #      S_hcdbridge     (horizontal raised drawbridge)
-+      S_hcdoor        (closed door)
-     S_hodbridge     (horizontal lowered drawbridge)
-|      S_hodoor        (open door)
-^      S_hole  (hole)
++      S_hcdoor        (closed door in horizontal wall)
+\.     S_hodbridge     (horizontal lowered drawbridge)
+|      S_hodoor        (open door in horizontal wall)
+\(ha   S_hole  (hole)
 @      S_human (human or elf)
 h      S_humanoid      (humanoid)
-     S_hwall (horizontal wall)
-     S_ice   (ice)
+\-     S_hwall (horizontal wall)
+\.     S_ice   (ice)
 i      S_imp   (imp or minor demon)
+I      S_invisible     (invisible monster)
 J      S_jabberwock    (jabberwock)
 j      S_jelly (jelly)
 k      S_kobold        (kobold)
 K      S_kop   (Keystone Kop)
-^      S_land_mine     (land mine)
+\(ha   S_land_mine     (land mine)
 }      S_lava  (molten lava)
 l      S_leprechaun    (leprechaun)
-^      S_level_teleporter      (level teleporter)
+\(ha   S_level_teleporter      (level teleporter)
 L      S_lich  (lich)
 y      S_light (light)
 #      S_litcorr       (lit corridor)
 :      S_lizard        (lizard)
-`\e'   S_lslant        (wall)
-^      S_magic_portal  (magic portal)
-^      S_magic_trap    (magic trap)
+\\     S_lslant        (diagonal beam [zap animation])
+\(ha   S_magic_portal  (magic portal)
+\(ha   S_magic_trap    (magic trap)
 m      S_mimic (mimic)
 ]      S_mimic_def     (mimic)
 M      S_mummy (mummy)
 N      S_naga  (naga)
-.      S_ndoor (doorway)
+\.     S_ndoor (doorway witout door)
 n      S_nymph (nymph)
 O      S_ogre  (ogre)
 o      S_orc   (orc)
 p      S_piercer       (piercer)
-^      S_pit   (pit)
+\(ha   S_pit   (pit)
 #      S_poisoncloud   (poison cloud)
-^      S_polymorph_trap        (polymorph trap)
+\(ha   S_polymorph_trap        (polymorph trap)
 }      S_pool  (water)
 !      S_potion        (potion)
 P      S_pudding       (pudding or ooze)
 q      S_quadruped     (quadruped)
 Q      S_quantmech     (quantum mechanic)
 \&=    S_ring  (ring)
-     S_rock  (boulder or statue)
+\`     S_rock  (boulder or statue)
 r      S_rodent        (rodent)
-^      S_rolling_boulder_trap  (rolling boulder trap)
-     S_room  (floor of a room)
-/      S_rslant        (wall)
-^      S_rust_trap     (rust trap)
+\(ha   S_rolling_boulder_trap  (rolling boulder trap)
+\.     S_room  (floor of a room)
+/      S_rslant        (diagonal beam [zap animation])
+\(ha   S_rust_trap     (rust trap)
 R      S_rustmonst     (rust monster or disenchanter)
 ?      S_scroll        (scroll)
 #      S_sink  (sink)
-^      S_sleeping_gas_trap     (sleeping gas trap)
+\(ha   S_sleeping_gas_trap     (sleeping gas trap)
 S      S_snake (snake)
 s      S_spider        (arachnid or centipede)
-^      S_spiked_pit    (spiked pit)
-^      S_squeaky_board (squeaky board)
+\(ha   S_spiked_pit    (spiked pit)
+\(ha   S_squeaky_board (squeaky board)
 0      S_ss1   (magic shield 1 of 4)
 #      S_ss2   (magic shield 2 of 4)
 @      S_ss3   (magic shield 3 of 4)
 *      S_ss4   (magic shield 4 of 4)
-^      S_statue_trap   (statue trap)
-       S_stone (dark part of a room)
--      S_sw_bc (swallow bottom center)
-`\e'   S_sw_bl (swallow bottom left)
+\(ha   S_statue_trap   (statue trap)
+\      S_stone (dark part of a room)
+]      S_strange_obj   (strange object)
+\-     S_sw_bc (swallow bottom center)
+\\     S_sw_bl (swallow bottom left)
 /      S_sw_br (swallow bottom right)
 |      S_sw_ml (swallow middle left)
 |      S_sw_mr (swallow middle right)
-     S_sw_tc (swallow top center)
+\-     S_sw_tc (swallow top center)
 /      S_sw_tl (swallow top left)
-`\e'   S_sw_tr (swallow top right)
-     S_tdwall        (wall)
-^      S_teleportation_trap    (teleportation trap)
-\      S_throne        (opulent throne)
-     S_tlcorn        (top left corner)
+\\     S_sw_tr (swallow top right)
+\-     S_tdwall        (wall)
+\(ha   S_teleportation_trap    (teleportation trap)
+\\     S_throne        (opulent throne)
+\-     S_tlcorn        (top left corner)
 |      S_tlwall        (wall)
 (      S_tool  (useful item (pick-axe\, key\, lamp...))
-^      S_trap_door     (trap door)
+\(ha   S_trap_door     (trap door)
 t      S_trapper       (trapper or lurker above)
-     S_trcorn        (top right corner)
+\-     S_trcorn        (top right corner)
 #      S_tree  (tree)
 T      S_troll (troll)
 |      S_trwall        (wall)
-     S_tuwall        (wall)
+\-     S_tuwall        (wall)
 U      S_umber (umber hulk)
 u      S_unicorn       (unicorn or horse)
 <      S_upladder      (ladder up)
 <      S_upstair       (staircase up)
 V      S_vampire       (vampire)
-|      S_vbeam (wall)
+|      S_vbeam (vertical beam [zap animation])
 #      S_vcdbridge     (vertical raised drawbridge)
-+      S_vcdoor        (closed door)
-     S_venom (splash of venom)
-^      S_vibrating_square      (vibrating square)
-     S_vodbridge     (vertical lowered drawbridge)
--      S_vodoor        (open door)
++      S_vcdoor        (closed door in vertical wall)
+\.     S_venom (splash of venom)
+\(ha   S_vibrating_square      (vibrating square)
+\.     S_vodbridge     (vertical lowered drawbridge)
+\-     S_vodoor        (open door in vertical wall)
 v      S_vortex        (vortex)
 |      S_vwall (vertical wall)
 /      S_wand  (wand)
 }      S_water (water)
 )      S_weapon        (weapon)
-"      S_web   (web)
+\(dq   S_web   (web)
 w      S_worm  (worm)
-~      S_worm_tail     (long worm tail)
+\(ti   S_worm_tail     (long worm tail)
 W      S_wraith        (wraith)
 x      S_xan   (xan or other mythical/fantastic insect)
 X      S_xorn  (xorn)
@@ -3101,6 +4033,13 @@ z        S_zruty (zruty)
 .\"TABLE_END  Do not delete this line.
 .TE
 .pg
+There is one additional class of object, described as ``strange object'',
+which will occasionally be the shape taken on by mimics and shown as `]'
+for maps displayed as text characters.
+Although the displayed character is the same as the default value for
+`S_mimic_def', it is a different symbol and there is no corresponding
+`S_strange_object' symbol nor any way to assign an alternate value for it.
+.pg
 .hn 2
 Configuring NetHack for Play by the Blind
 .pg
@@ -3120,27 +4059,58 @@ gives you the row and column of your review cursor and the PC cursor.
 These co-ordinates are often useful in giving players a better sense of the
 overall location of items on the screen.
 .pg
+NetHack can also be compiled with support for sending the game messages
+to an external program, such as a text-to-speech synthesizer. If the #version
+extended command shows ``external program as a message handler'', your NetHack
+has been compiled with the capability. When compiling NetHack from source
+on Linux and other POSIX systems, define MSGHANDLER to enable it. To use
+the capability, set the environment variable NETHACK_MSGHANDLER to an
+executable, which will be executed with the game message as the program's
+only parameter.
+.pg
 While it is not difficult for experienced users to edit the \fBdefaults.nh\fP
 file to accomplish this, novices may find this task somewhat daunting.
-Included within the ``symbols'' file of all official distributions of NetHack 
+Included within the ``symbols'' file of all official distributions of NetHack
 is a symset called \fBNHAccess\fP.  Selecting that symset in your
-configuration file will cause the game to run in a manner accessible 
-to the blind. After you have gained some experience with the game 
-and with editing files, you may want to alter settings via \fBSYMBOLS=\fP 
-in your configuration file to better suit your preferences. 
+configuration file will cause the game to run in a manner accessible
+to the blind. After you have gained some experience with the game
+and with editing files, you may want to alter settings via \fBSYMBOLS=\fP
+in your configuration file to better suit your preferences.
 The most crucial settings to make the game accessible are:
 .pg
 .lp symset:NHAccess
 Load a symbol set appropriate for use by blind players.
 .lp roguesymset:NHAccess
-Load a symbol set for the rogue level that is appropriate for 
+Load a symbol set for the rogue level that is appropriate for
 use by blind players.
 .lp menustyle:traditional
 This will assist in the interface to speech synthesizers.
+.lp nomenu_overlay
+Show menus on a cleared screen and aligned to the left edge.
 .lp number_pad
 A lot of speech access programs use the number-pad to review the screen.
-If this is the case, disable the number_pad option and use the traditional
+If this is the case, disable the
+.op number_pad
+option and use the traditional
 Rogue-like commands.
+.lp autodescribe
+Automatically describe the terrain under the cursor when targeting.
+.lp mention_walls
+Give feedback messages when walking towards a wall or when travel command
+was interrupted.
+.lp whatis_coord:compass
+When targeting with cursor, describe the cursor position with coordinates
+relative to your character.
+.lp whatis_filter:area
+When targeting with cursor, filter possible locations so only those in
+the same area (eg. same room, or same corridor) are considered.
+.lp whatis_moveskip
+When targeting with cursor and using fast-move, skip the same glyphs instead
+of moving 8 units at a time.
+.lp nostatus_updates
+Prevent updates to the status lines at the bottom of the screen, if
+your screen-reader reads those lines. The same information can be
+seen via the #attributes command.
 .hn 2
 Global Configuration for System Administrators
 .pg
@@ -3153,55 +4123,81 @@ The options recognized in this file are listed below.  Any option not
 set uses a compiled-in default (which may not be appropriate for your
 system).
 .pg
+.\"  '\ =\ Word'  follow each option name with space+equals+space+first
+.\"               word of sentence in a way that won't have spaces inserted
+.\"               there if that line is padded from left to right;
+.\"               essentially, "OPTION = Word" becomes one token as far
+.\"               as filling and justifying are concerned
 .lp
-WIZARDS
-A space-separated list of user names who are allowed to play in wizard
+WIZARDS\ =\ A space-separated list of user names who are allowed to
+play in wizard
 mode (the debugging mode, not the magic-using role).  A value of a single
 asterisk (*) allows anyone to start a game in wizard mode.
 .lp
-SHELLERS
-A list of users who are allowed to use the shell escape command (!).  The
-syntax is the same as WIZARDS.
+SHELLERS\ =\ A list of users who are allowed to use the shell
+escape command (!).  The syntax is the same as WIZARDS.
 .lp
-EXPLORERS
-A list of users who are allowed to use the explore mode.  The
+EXPLORERS\ =\ A list of users who are allowed to use the explore mode.  The
 syntax is the same as WIZARDS.
 .lp
-MAXPLAYERS
-Limit the maximum number of games that can be running at the same time.
+MAXPLAYERS\ =\ Limit the maximum number of games that can be running
+at the same time.
 .lp
-SUPPORT
-A string explaining how to get local support (no default value).
+SUPPORT\ =\ A string explaining how to get local support (no default value).
 .lp
-RECOVER
-A string explaining how to recover a game on this system (no default value).
+RECOVER\ =\ A string explaining how to recover a game on this system
+(no default value).
 .lp
-SEDUCE
-0 or 1 to disable or enable, respectively, the SEDUCE option (see the source
-for details on this function).
+SEDUCE\ =\ 0 or 1 to disable or enable, respectively, the SEDUCE option.
+When disabled, incubi and succubi behave like nymphs.
 .lp
-CHECK_SAVE_UID
-0 or 1 to disable or enable, respectively, the UID checking for savefiles.
+CHECK_PLNAME\ =\ Setting this to 1 will make the EXPLORERS, WIZARDS, and
+SHELLERS check for the player name instead of the user's login name.
+.lp
+CHECK_SAVE_UID\ =\ 0 or 1 to disable or enable, respectively, the UID
+(used identification number) checking for save files (to verify that the
+user who is restoring is the same one who saved).
 .pg
 The following options affect the score file:
 .pg
 .lp
-PERSMAX
-Maximum number of entries for one person.
+PERSMAX\ =\ Maximum number of entries for one person.
+.lp
+ENTRYMAX\ =\ Maximum number of entries in the score file.
 .lp
-ENTRYMAX
-Maximum number of entries in the score file.
+POINTSMIN\ =\ Minimum number of points to get an entry in the score file.
 .lp
-POINTSMIN
-Minimum number of points to get an entry in the score file.
+PERS_IS_UID\ =\ 0 or 1 to use user names or numeric userids, respectively,
+to identify unique people for the score file.
 .lp
-PERS_IS_UID
-0 or 1 to use user names or numeric userids, respectively, to identify
-unique people for the score file.
+MAX_STATUENAME_RANK\ =\ Maximum number of score file entries to use for
+random statue names (default is 10).
 .lp
-MAX_STATUENAME_RANK
-Maximum number of score file entries to use for random statue names
-(default is 10).
+DUMPLOGFILE\ =\ A filename where the end-of-game dumplog is saved.
+Not defining this will prevent dumplog from being created. Only available
+if your game is compiled with DUMPLOG. Allows the following placeholders:
+.\" note: %M is not an entry in the table, but 'M' is the widest letter
+.PS %M
+.PL %%
+literal '%'
+.PL %v
+version (eg. "3.6.1-0")
+.PL %u
+game UID
+.PL %t
+game start time, UNIX timestamp format
+.PL %T
+current time, UNIX timestamp format
+.PL %d
+game start time, YYYYMMDDhhmmss format
+.PL %D
+current time, YYYYMMDDhhmmss format
+.PL %n
+player name
+.PL %N
+first character of player name
+.PE
+.
 .hn 1
 Scoring
 .pg
@@ -3224,8 +4220,8 @@ live, or quit and stop with whatever you have.  If you quit, you keep
 all your gold, but if you swing and live, you might find more.
 .pg
 If you just want to see what the current top players/games list is, you
-can type \fBnethack -s all\fP on most versions.
-
+can type \fBnethack \-s all\fP on most versions.
+.
 .hn 1
 Explore mode
 .pg
@@ -3237,7 +4233,7 @@ paltry cost of not getting on the high score list.
 .pg
 There are two ways of enabling explore mode.  One is to start the game
 with the
-.op -X
+.op \-X
 command-line switch or with the
 .op playmode:explore
 option.  The other is to issue the ``#exploremode'' extended command while
@@ -3254,7 +4250,7 @@ brief description.  It is intended for tracking down problems within the
 program rather than to provide god-like powers to your character, and
 players who attempt debugging are expected to figure out how to use it
 themselves.  It is initiated by starting the game with the
-.op -D
+.op \-D
 command-line switch or with the
 .op playmode:debug
 option.
@@ -3266,12 +4262,12 @@ there's no connection between ``wizard mode'' and the Wizard role).
 And on any system, the program might have been configured to omit debug
 mode entirely.  Attempting to start a game in debug mode when not allowed
 or not available will result in falling back to explore mode instead.
-
+.
 .hn
 Credits
 .pg
-The original \fIhack\fP game was modeled on the Berkeley 
-.ux
+The original \fIhack\fP game was modeled on the Berkeley
+.UX
 \fIrogue\fP game.  Large portions of this paper were shamelessly
 cribbed from \fIA Guide to the Dungeons of Doom\fP, by Michael C. Toy
 and Kenneth C. R. C. Arnold.  Small portions were adapted from
@@ -3279,7 +4275,7 @@ and Kenneth C. R. C. Arnold.  Small portions were adapted from
 .pg
 NetHack is the product of literally dozens of people's work.
 Main events in the course of the game development are described below:
-
+.
 .pg
 \fBJay Fenlason\fP wrote the original Hack, with help from
 \fBKenny Woodland\fP, \fBMike Thome\fP and \fBJon Payne\fP.
@@ -3287,7 +4283,7 @@ Main events in the course of the game development are described below:
 \fBAndries Brouwer\fP did a major re-write, transforming Hack into a
 very different game, and published (at least) three versions (1.0.1,
 1.0.2, and 1.0.3) for
-.ux
+.UX
 machines to the Usenet.
 .pg
 \fBDon G. Kneller\fP ported Hack 1.0.3 to Microsoft C and MS-DOS, producing PC
@@ -3392,29 +4388,31 @@ DevTeam and incorporated the best of these ideas in NetHack 3.3.
 The final update to 3.2 was the bug fix release 3.2.3, which was released
 simultaneously with 3.3.0 in December 1999 just in time for the Year 2000.
 .pg
-The 3.3 development team, consisting of \fBMichael Allison\fP, \fBKen Arromdee\fP, 
-\fBDavid Cohrs\fP, \fBJessie Collet\fP, \fBSteve Creps\fP, \fBKevin Darcy\fP, 
-\fBTimo Hakulinen\fP, \fBKevin Hugo\fP, \fBSteve Linhart\fP, \fBKen Lorber\fP, 
-\fBDean Luick\fP, \fBPat Rankin\fP, \fBEric Smith\fP, \fBMike Stephenson\fP, 
-\fBJanet Walz\fP, and \fBPaul Winner\fP, released 3.3.0 in 
+The 3.3 development team, consisting of
+\fBMichael Allison\fP, \fBKen Arromdee\fP,
+\fBDavid Cohrs\fP, \fBJessie Collet\fP, \fBSteve Creps\fP, \fBKevin Darcy\fP,
+\fBTimo Hakulinen\fP, \fBKevin Hugo\fP, \fBSteve Linhart\fP, \fBKen Lorber\fP,
+\fBDean Luick\fP, \fBPat Rankin\fP, \fBEric Smith\fP, \fBMike Stephenson\fP,
+\fBJanet Walz\fP, and \fBPaul Winner\fP, released 3.3.0 in
 December 1999 and 3.3.1 in August of 2000.
 .pg
-Version 3.3 offered many firsts. It was the first version to separate race 
-and profession. The Elf class was removed in preference to an elf race, 
-and the races of dwarves, gnomes, and orcs made their first appearance in 
-the game alongside the familiar human race.  Monk and Ranger roles joined 
-Archeologists, Barbarians, Cavemen, Healers, Knights, Priests, Rogues, Samurai, 
+Version 3.3 offered many firsts. It was the first version to separate race
+and profession. The Elf class was removed in preference to an elf race,
+and the races of dwarves, gnomes, and orcs made their first appearance in
+the game alongside the familiar human race.  Monk and Ranger roles joined
+Archeologists, Barbarians, Cavemen, Healers, Knights, Priests, Rogues,
+Samurai,
 Tourists, Valkyries and of course, Wizards.  It was also the first version
-to allow you to ride a steed, and was the first version to have a publicly 
-available web-site listing all the bugs that had been discovered.  Despite 
+to allow you to ride a steed, and was the first version to have a publicly
+available web-site listing all the bugs that had been discovered.  Despite
 that constantly growing bug list, 3.3 proved stable enough to last for
 more than a year and a half.
 .pg
 The 3.4 development team initially consisted of
 \fBMichael Allison\fP, \fBKen Arromdee\fP,
 \fBDavid Cohrs\fP, \fBJessie Collet\fP, \fBKevin Hugo\fP, \fBKen Lorber\fP,
-\fBDean Luick\fP, \fBPat Rankin\fP, \fBMike Stephenson\fP, 
-\fBJanet Walz\fP, and \fBPaul Winner\fP, with \fB Warwick Allison\fP joining 
+\fBDean Luick\fP, \fBPat Rankin\fP, \fBMike Stephenson\fP,
+\fBJanet Walz\fP, and \fBPaul Winner\fP, with \fB Warwick Allison\fP joining
 just before the release of NetHack 3.4.0 in March 2002.
 .pg
 As with version 3.3, various people contributed to the game as a whole as
@@ -3428,46 +4426,38 @@ and \fBYitzhak Sapir\fP provided encouragement.
 \fBDean Luick\fP, \fBMark Modrall\fP, and \fBKevin Hugo\fP maintained and enhanced the
 Macintosh port of 3.4.
 .pg
-\fBMichael Allison\fP, \fBDavid Cohrs\fP, \fBAlex Kompel\fP, \fBDion Nicolaas\fP, and 
-\fBYitzhak Sapir\fP maintained and enhanced 3.4 for the Microsoft Windows platform.
-\fBAlex Kompel\fP contributed a new graphical interface for the Windows port. 
+\fBMichael Allison\fP, \fBDavid Cohrs\fP, \fBAlex Kompel\fP,
+\fBDion Nicolaas\fP, and
+\fBYitzhak Sapir\fP maintained and enhanced 3.4 for the Microsoft Windows
+platform.
+\fBAlex Kompel\fP contributed a new graphical interface for the Windows port.
 \fBAlex Kompel\fP also contributed a Windows CE port for 3.4.1.
 .pg
 \fBRon Van Iwaarden\fP was the sole maintainer of NetHack for OS/2 the past
 several releases. Unfortunately Ron's last OS/2 machine stopped working in
-early 2006. A great many thanks to Ron for keeping NetHack alive on OS/2 
+early 2006. A great many thanks to Ron for keeping NetHack alive on OS/2
 all these years.
 .pg
-\fBJanne Salmijarvi\fP and \fBTeemu Suikki\fP maintained and 
-enhanced the Amiga port of 3.4 after \fBJanne Salmijarvi\fP resurrected 
+\fBJanne Salmijarvi\fP and \fBTeemu Suikki\fP maintained and
+enhanced the Amiga port of 3.4 after \fBJanne Salmijarvi\fP resurrected
 it for 3.3.1.
 .pg
-\fBChristian ``Marvin'' Bressler\fP maintained 3.4 for the Atari after he 
+\fBChristian ``Marvin'' Bressler\fP maintained 3.4 for the Atari after he
 resurrected it for 3.3.1.
 .pg
-The release of NetHack 3.4.3 in December 2003 marked the beginning of a 
+The release of NetHack 3.4.3 in December 2003 marked the beginning of a
 long release hiatus. 3.4.3 proved to be a remarkably stable version that
-provided continued enjoyment by the community for more than a decade. The 
-devteam slowly and quietly continued to work on the game behind the scenes 
-during the tenure of 3.4.3. It was during that same period that several new 
-variants emerged within the NetHack community. Notably sporkhack by 
-\fBDerek S. Ray\fP, unnethack by \fBPatric Mueller\fP, nitrohack and its 
-successors originally by \fBDaniel Thaler\fP and then by \fBAlex Smith\fP, 
-and Dynahack by \fBTung Nguyen\fP. Some of those variants continue to be 
+provided continued enjoyment by the community for more than a decade. The
+devteam slowly and quietly continued to work on the game behind the scenes
+during the tenure of 3.4.3. It was during that same period that several new
+variants emerged within the NetHack community. Notably sporkhack by
+\fBDerek S. Ray\fP, unnethack by \fBPatric Mueller\fP, nitrohack and its
+successors originally by \fBDaniel Thaler\fP and then by \fBAlex Smith\fP,
+and Dynahack by \fBTung Nguyen\fP. Some of those variants continue to be
 developed, maintained, and enjoyed by the community to this day.
 .pg
-At the beginning of development for what would eventually get released
-as 3.6.0, the development team consisted of \fBWarwick Allison\fP, 
-\fBMichael Allison\fP, \fBKen Arromdee\fP,
-\fBDavid Cohrs\fP, \fBJessie Collet\fP, 
-\fBKen Lorber\fP, \fBDean Luick\fP, \fBPat Rankin\fP, 
-\fBMike Stephenson\fP, \fBJanet Walz\fP, and \fBPaul Winner\fP.
-Leading up to the release of 3.6.0 in early 2015, new members
-\fBSean Hunt\fP, \fBPasi Kallinen\fP, and \fBDerek S. Ray\fP
-joined the NetHack development team.
-.pg
-In September 2014, an interim snapshot of the code under development was 
-released publicly by other parties. Since that code was a work-in-progress 
+In September 2014, an interim snapshot of the code under development was
+released publicly by other parties. Since that code was a work-in-progress
 and had not gone through the process of debugging it as a suitable release,
 it was decided that the version numbers present on that code snapshot would
 be retired and never used in an official NetHack release. An announcement
@@ -3475,89 +4465,123 @@ was posted on the devteam's official nethack.org website to that effect,
 stating that there would never be a 3.4.4, 3.5, or 3.5.0 official release
 version.
 .pg
-In November 2014, preparation began for the release of NetHack 3.6. The 3.6
-version merges work done by the development team since the previous release
-with some of the beloved community patches. Many bugs were fixed and a
-large amount of code was restructured.
+In January 2015, preparation began for the release of NetHack 3.6.
+.pg
+At the beginning of development for what would eventually get released
+as 3.6.0, the development team consisted of \fBWarwick Allison\fP,
+\fBMichael Allison\fP, \fBKen Arromdee\fP,
+\fBDavid Cohrs\fP, \fBJessie Collet\fP,
+\fBKen Lorber\fP, \fBDean Luick\fP, \fBPat Rankin\fP,
+\fBMike Stephenson\fP, \fBJanet Walz\fP, and \fBPaul Winner\fP.
+In early 2015, ahead of the release of 3.6.0, new members
+\fBSean Hunt\fP, \fBPasi Kallinen\fP, and \fBDerek S. Ray\fP
+joined the NetHack development team.
+.pg
+Near the end of the development of 3.6.0, one of the significant inspirations for many of
+the humorous and fun features found in the game, author Terry Pratchett,
+passed away. NetHack 3.6.0 introduced a tribute to him.
+.pg
+3.6.0 was released in December 2015, and merged work done by the development
+team since the release of 3.4.3 with some of the beloved community
+patches. Many bugs were fixed and some code was restructured.
+.pg
+In late April 2018, several hundred bug fixes for 3.6.0 and 
+some new features were assembled and released as NetHack 3.6.1. 
+The development team at the time of release of 3.6.1 consisted of
+\fBWarwick Allison\fP, \fBMichael Allison\fP, \fBKen Arromdee\fP,
+\fBDavid Cohrs\fP, \fBJessie Collet\fP, \fBPasi Kallinen\fP,
+\fBKen Lorber\fP, \fBDean Luick\fP, \fBPatric Mueller\fP,
+\fBPat Rankin\fP, \fBDerek S. Ray\fP, \fBAlex Smith\fP,
+\fBMike Stephenson\fP, \fBJanet Walz\fP, and \fBPaul Winner\fP.
+.pg
+The development team, as well as \fBSteve VanDevender\fP and
+\fBKevin Smolkowski\fP, ensured that NetHack 3.6 continued to operate on
+various
+.UX
+flavors and maintained the X11 interface.
+.pg
+\fBKen Lorber\fP, \fBHaoyang Wang\fP, \fBPat Rankin\fP, and \fBDean Luick\fP
+maintained the port of NetHack 3.6 for Mac OSX.
 .pg
-\fBThe development team, as well as \fBSteve VanDevender\fP and 
-\fBKevin Smolkowski\fP ensured that NetHack 3.6.0 continued to operate on 
-various Unix flavors and maintained the X11 interface. 
+\fBMichael Allison\fP, \fBDavid Cohrs\fP, \fBBarton House\fP,
+\fBPasi Kallinen\fP, \fBAlex Kompel\fP, \fBDion Nicolaas\fP,
+\fBDerek S. Ray\fP and \fBYitzhak Sapir\fP maintained the port of
+NetHack 3.6 for Microsoft Windows.
 .pg
-\fBKen Lorber\fP, \fBHaoyang Wang\fP, \fBPat Rankin\fP, and \fBDean Luick\fP 
-maintained the port of NetHack 3.6.0 for Mac.
+\fBPat Rankin\fP attempted to keep the VMS port running for NetHack 3.6.1,
+hindered by limited access. \fBKevin Smolkowski\fP has updated and tested it
+for the most recent version of OpenVMS (V8.4 as of this writing) on Alpha
+and Integrity (aka Itanium aka IA64) but not VAX.
 .pg
-\fBMichael Allison\fP, \fBDerek S. Ray\fP, \fBYitzhak Sapir\fP, 
-\fBAlex Kompel\fP, and \fBDion Nicolaas\fP maintained the port of 
-NetHack 3.6.0 for Microsoft Windows.
+\fBRay Chason\fP resurrected the msdos port for 3.6.1 and contributed the
+necessary updates to the community at large.
 .pg
 The official NetHack web site is maintained by \fBKen Lorber\fP at http://www.nethack.org/.
 .pg
-SHOUT-OUTS
+.hn 2
+SPECIAL THANKS
 .pg
-The devteam would like to give a special "shout-out" to thank the generous 
-people primarily responsible for the public NetHack servers available for 
-playing the game at nethack.alt.org and devnull.net. In addition to providing 
-a way for the public to play a game of NetHack from almost anywhere, they 
-have hosted annual NetHack tournaments for many, many years. 
-.pg 
-On behalf of the NetHack community, thank you very much to 
-\fBM. Drew Streib\fP, \fBPasi Kallinen\fP and \fBRobin Bandy\fP.
+On behalf of the NetHack community, thank you very much once
+again to \fBM. Drew Streib\fP, \fBPasi Kallinen\fP and \fBRobin Bandy\fP
+for providing public NetHack servers at nethack.alt.org and devnull.net
+and/or for hosting annual NetHack tournaments.
 .pg
-                          - - - - - - - - - -
+.ce
+- - - - - - - - - -\ \ \ \ \" when centered, the dashes look a little too far
+.                          \" to the right, so pad them with a few spaces
 .pg
 From time to time, some depraved individual out there in netland sends a
 particularly intriguing modification to help out with the game.  The Gods of
 the Dungeon sometimes make note of the names of the worst of these miscreants
 in this, the list of Dungeoneers:
-
+.
 .TS S
 center;
 c c c.
 .\"TABLE_START
-Adam Aronow    Janet Walz      Nathan Eady
-Alex Kompel    Janne Salmijarvi        Norm Meluch
+Adam Aronow    J. Ali Harlow   Mikko Juola
+Alex Kompel    Janet Walz      Nathan Eady
+Alex Smith     Janne Salmijarvi        Norm Meluch
 Andreas Dorn   Jean-Christophe Collet  Olaf Seibert
 Andy Church    Jeff Bailey     Pasi Kallinen
 Andy Swanson   Jochen Erwied   Pat Rankin
-Ari Huttunen   John Kallen     Paul Winner
-Barton House   John Rupley     Pierre Martineau
-Benson I. Margulies    John S. Bien    Ralf Brown
-Bill Dyer      Johnny Lee      Ray Chason
-Boudewijn Waijers      Jon W{tte       Richard Addison
-Bruce Cox      Jonathan Handler        Richard Beigel
-Bruce Holloway Joshua Delahunty        Richard P. Hughey
-Bruce Mewborne Keizo Yamamoto  Rob Menke
-Carl Schelin   Ken Arnold      Robin Bandy
-Chris Russo    Ken Arromdee    Robin Johnson
-David Cohrs    Ken Lorber      Roderick Schertler
-David Damerell Ken Washikita   Roland McGrath
-David Gentzel  Kevin Darcy     Ron Van Iwaarden
-David Hairston Kevin Hugo      Ronnen Miller
-Dean Luick     Kevin Sitze     Ross Brown
-Del Lamb       Kevin Smolkowski        Sascha Wostmann
-Derek S. Ray   Kevin Sweet     Scott Bigham
-Deron Meranda  Lars Huttar     Scott R. Turner
-Dion Nicolaas  Leon Arnott     Sean Hunt
-Dylan O'Donnell        M. Drew Streib  Stephen Spackman
-Eric Backus    Malcolm Ryan    Stefan Thielscher
-Eric Hendrickson       Mark Gooderum   Stephen White
-Eric R. Smith  Mark Modrall    Steve Creps
-Eric S. Raymond        Marvin Bressler Steve Linhart
-Erik Andersen  Matthew Day     Steve VanDevender
-Frederick Roeber       Merlyn LeRoy    Teemu Suikki
-Gil Neiger     Michael Allison Tim Lennan
-Greg Laskin    Michael Feir    Timo Hakulinen
-Greg Olson     Michael Hamel   Tom Almy
-Gregg Wonderly Michael Sokolov Tom West
-Hao-yang Wang  Mike Engber     Warren Cheung
-Helge Hafting  Mike Gallop     Warwick Allison
-Irina Rempt-Drijfhout  Mike Passaretti Yitzhak Sapir
-Izchak Miller  Mike Stephenson
-J. Ali Harlow  Mikko Juola
+Ari Huttunen   John Kallen     Patric Mueller
+Barton House   John Rupley     Paul Winner
+Benson I. Margulies    John S. Bien    Pierre Martineau
+Bill Dyer      Johnny Lee      Ralf Brown
+Boudewijn Waijers      Jon W{tte       Ray Chason
+Bruce Cox      Jonathan Handler        Richard Addison
+Bruce Holloway Joshua Delahunty        Richard Beigel
+Bruce Mewborne Keizo Yamamoto  Richard P. Hughey
+Carl Schelin   Ken Arnold      Rob Menke
+Chris Russo    Ken Arromdee    Robin Bandy
+David Cohrs    Ken Lorber      Robin Johnson
+David Damerell Ken Washikita   Roderick Schertler
+David Gentzel  Kevin Darcy     Roland McGrath
+David Hairston Kevin Hugo      Ron Van Iwaarden
+Dean Luick     Kevin Sitze     Ronnen Miller
+Del Lamb       Kevin Smolkowski        Ross Brown
+Derek S. Ray   Kevin Sweet     Sascha Wostmann
+Deron Meranda  Lars Huttar     Scott Bigham
+Dion Nicolaas  Leon Arnott     Scott R. Turner
+Dylan O'Donnell        M. Drew Streib  Sean Hunt
+Eric Backus    Malcolm Ryan    Stephen Spackman
+Eric Hendrickson       Mark Gooderum   Stefan Thielscher
+Eric R. Smith  Mark Modrall    Stephen White
+Eric S. Raymond        Marvin Bressler Steve Creps
+Erik Andersen  Matthew Day     Steve Linhart
+Frederick Roeber       Merlyn LeRoy    Steve VanDevender
+Gil Neiger     Michael Allison Teemu Suikki
+Greg Laskin    Michael Feir    Tim Lennan
+Greg Olson     Michael Hamel   Timo Hakulinen
+Gregg Wonderly Michael Sokolov Tom Almy
+Hao-yang Wang  Mike Engber     Tom West
+Helge Hafting  Mike Gallop     Warren Cheung
+Irina Rempt-Drijfhout  Mike Passaretti Warwick Allison
+Izchak Miller  Mike Stephenson Yitzhak Sapir
 .\"TABLE_END  Do not delete this line.
 .TE
-
+.pg
 .\"Microsoft and MS-DOS are registered trademarks of Microsoft Corporation.
 .\"Lattice is a trademark of Lattice, Inc.
 .\"Atari and 1040ST are trademarks of Atari, Inc.