1
0
Fork 0
mirror of https://codeberg.org/noisytoot/notnotdnethack.git synced 2024-11-24 10:15:12 +00:00
notnotdnethack/doc/recover.txt
Chris-plus-alphanumericgibberish 5901b7c7ca Uploading current NAO sources
Thanks, kerio!
2013-10-15 16:49:44 -04:00

132 lines
4.1 KiB
Text

RECOVER(6) 1993 RECOVER(6)
NAME
recover - recover a NetHack game interrupted by disaster
SYNOPSIS
recover [ -d directory ] base1 base2 ...
DESCRIPTION
Occasionally, a NetHack game will be interrupted by disaster
when the game or the system crashes. Prior to NetHack v3.1,
these games were lost because various information like the
player's inventory was kept only in memory. Now, all per-
tinent information can be written out to disk, so such games
can be recovered at the point of the last level change.
The base options tell recover which files to process. Each
base option specifies recovery of a separate game.
The -d option, which must be the first argument if it
appears, supplies a directory which is the NetHack play-
ground. It overrides the value from NETHACKDIR, HACKDIR, or
the directory specified by the game administrator during
compilation (usually /usr/games/lib/nethackdir).
For recovery to be possible, nethack must have been compiled
with the INSURANCE option, and the run-time option check-
point must also have been on. NetHack normally writes out
files for levels as the player leaves them, so they will be
ready for return visits. When checkpointing, NetHack also
writes out the level entered and the current game state on
every level change. This naturally slows level changes down
somewhat.
The level file names are of the form base.nn, where nn is an
internal bookkeeping number for the level. The file base.0
is used for game identity, locking, and, when checkpointing,
for the game state. Various OSes use different strategies
for constructing the base name. Microcomputers use the
character name, possibly truncated and modified to be a
legal filename on that system. Multi-user systems use the
(modified) character name prefixed by a user number to avoid
conflicts, or "xlock" if the number of concurrent players is
being limited. It may be necessary to look in the play-
ground to find the correct base name of the interrupted
game. recover will transform these level files into a save
file of the same name as nethack would have used.
Since recover must be able to read and delete files from the
playground and create files in the save directory, it has
interesting interactions with game security. Giving ordi-
nary players access to recover through setuid or setgid is
tantamount to leaving the playground world-writable, with
respect to both cheating and messing up other players. For
January Last change: 9 1
RECOVER(6) 1993 RECOVER(6)
a single-user system, this of course does not change any-
thing, so some of the microcomputer ports install recover by
default.
For a multi-user system, the game administrator may want to
arrange for all .0 files in the playground to be fed to
recover when the host machine boots, and handle game crashes
individually. If the user population is sufficiently
trustworthy, recover can be installed with the same permis-
sions the nethack executable has. In either case, recover
is easily compiled from the distribution utility directory.
NOTES
Like nethack itself, recover will overwrite existing save-
files of the same name. Savefiles created by recover are
uncompressed; they may be compressed afterwards if desired,
but even a compression-using nethack will find them in the
uncompressed form.
SEE ALSO
nethack(6)
BUGS
recover makes no attempt to find out if a base name speci-
fies a game in progress. If multiple machines share a play-
ground, this would be impossible to determine.
recover should be taught to use the nethack playground lock-
ing mechanism to avoid conflicts.
January Last change: 9 2