NHDT->ANH, nethack->anethack, nhdat->anhdat
[aNetHack.git] / doc / recover.txt
blobdb4e3dff28bd6ebe3df6dc87dda6385c056a9da7
4 RECOVER(6)                    1993                     RECOVER(6)
8 NAME
9      recover - recover a aNetHack game interrupted by disaster
11 SYNOPSIS
12      recover [ -d directory ] base1 base2 ...
14 DESCRIPTION
15      Occasionally, a aNetHack game will be interrupted by disaster
16      when the game or the system crashes.  Prior to aNetHack v3.1,
17      these games were lost because various information  like  the
18      player's  inventory  was kept only in memory.  Now, all per-
19      tinent information can be written out to disk, so such games
20      can be recovered at the point of the last level change.
22      The base options tell recover which files to process.   Each
23      base option specifies recovery of a separate game.
25      The -d option, which  must  be  the  first  argument  if  it
26      appears,  supplies  a  directory  which is the aNetHack play-
27      ground.  It overrides the value from ANETHACKDIR, HACKDIR, or
28      the  directory  specified  by  the game administrator during
29      compilation (usually /usr/games/lib/anethackdir).
31      For recovery to be possible, anethack must have been compiled
32      with  the  INSURANCE  option, and the run-time option check-
33      point must also have been on.  aNetHack normally  writes  out
34      files  for levels as the player leaves them, so they will be
35      ready for return visits.  When checkpointing,  aNetHack  also
36      writes  out  the level entered and the current game state on
37      every level change.  This naturally slows level changes down
38      somewhat.
40      The level file names are of the form base.nn, where nn is an
41      internal  bookkeeping number for the level.  The file base.0
42      is used for game identity, locking, and, when checkpointing,
43      for  the  game state.  Various OSes use different strategies
44      for constructing the  base  name.   Microcomputers  use  the
45      character  name,  possibly  truncated  and  modified to be a
46      legal filename on that system.  Multi-user systems  use  the
47      (modified) character name prefixed by a user number to avoid
48      conflicts, or "xlock" if the number of concurrent players is
49      being  limited.   It  may  be necessary to look in the play-
50      ground to find the correct  base  name  of  the  interrupted
51      game.   recover will transform these level files into a save
52      file of the same name as anethack would have used.
54      Since recover must be able to read and delete files from the
55      playground  and  create  files in the save directory, it has
56      interesting interactions with game security.   Giving  ordi-
57      nary  players  access to recover through setuid or setgid is
58      tantamount to leaving the  playground  world-writable,  with
59      respect  to both cheating and messing up other players.  For
63 January                  Last change: 9                         1
70 RECOVER(6)                    1993                     RECOVER(6)
74      a single-user system, this of course does  not  change  any-
75      thing, so some of the microcomputer ports install recover by
76      default.
78      For a multi-user system, the game administrator may want  to
79      arrange  for  all  .0  files  in the playground to be fed to
80      recover when the host machine boots, and handle game crashes
81      individually.    If  the  user  population  is  sufficiently
82      trustworthy, recover can be installed with the same  permis-
83      sions  the  anethack executable has.  In either case, recover
84      is easily compiled from the distribution utility directory.
86 NOTES
87      Like anethack itself, recover will overwrite  existing  save-
88      files  of  the  same name.  Savefiles created by recover are
89      uncompressed; they may be compressed afterwards if  desired,
90      but  even  a compression-using anethack will find them in the
91      uncompressed form.
93 SEE ALSO
94      anethack(6)
96 BUGS
97      recover makes no attempt to find out if a base  name  speci-
98      fies a game in progress.  If multiple machines share a play-
99      ground, this would be impossible to determine.
101      recover should be taught to use the anethack playground lock-
102      ing mechanism to avoid conflicts.
129 January                  Last change: 9                         2