83 lines
4.3 KiB
Plaintext
83 lines
4.3 KiB
Plaintext
RECOVER(6) Games Manual 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 pertinent 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 playground. It overrides the value
|
||
from NETHACKDIR, HACKDIR, or the directory specified by the game admin‐
|
||
istrator during compilation (usually /usr/games/lib/nethackdir).
|
||
|
||
For recovery to be possible, nethack must have been compiled with the
|
||
INSURANCE option (this configuration was), and the run‐time option
|
||
checkpoint 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. Vari‐
|
||
ous OSes use different strategies for constructing the base name. Mi‐
|
||
crocomputers use the character name, possibly truncated and modified to
|
||
be a legal filename on that system. Multi‐user systems use the (modi‐
|
||
fied) 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 playground 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 ordinary 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 a single‐user system, this of course does not change anything, 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 ma‐
|
||
chine boots, and handle game crashes individually. If the user popula‐
|
||
tion is sufficiently trustworthy, recover can be installed with the
|
||
same permissions the nethack executable has. In either case, recover
|
||
is easily compiled from the distribution utility directory.
|
||
|
||
NOTES
|
||
Like nethack itself, recover will overwrite existing savefiles 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 specifies a game in
|
||
progress. If multiple machines share a playground, this would be im‐
|
||
possible to determine.
|
||
|
||
recover should be taught to use the nethack playground locking mecha‐
|
||
nism to avoid conflicts.
|
||
|
||
COPYRIGHT
|
||
This file is Copyright (C) Kenneth Lorber, 2022 for version
|
||
NetHack‐3.7:1.12. NetHack may be freely redistributed. See license
|
||
for details.
|
||
|
||
NETHACK 8 February 2022 RECOVER(6)
|