summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
Diffstat (limited to 'man')
-rw-r--r--man/INSTALL.template59
-rw-r--r--man/Makefile.am81
-rwxr-xr-xman/docgen70
-rw-r--r--man/doom.template41
-rw-r--r--man/environ.man25
-rw-r--r--man/heretic.template43
-rw-r--r--man/hexen.template43
-rw-r--r--man/manpage.template63
-rw-r--r--man/strife.template83
9 files changed, 391 insertions, 117 deletions
diff --git a/man/INSTALL.template b/man/INSTALL.template
index 19d3c88d..6a26cc03 100644
--- a/man/INSTALL.template
+++ b/man/INSTALL.template
@@ -39,8 +39,8 @@ information.
Obtaining an IWAD file
----------------------
-To play Doom, you need an IWAD file. This file contains the game data
-(graphics, sounds, etc). The full versions of the Doom games are
+To play, you need an IWAD file. This file contains the game data
+(graphics, sounds, etc). The full versions of the games are
proprietary and need to be bought. The IWAD file has one of the
following names:
@@ -50,49 +50,50 @@ following names:
tnt.wad (Final Doom: TNT: Evilution)
plutonia.wad (Final Doom: Plutonia Experiment)
chex.wad (Chex Quest)
+ heretic.wad (Heretic)
+ hexen.wad (Hexen)
+ strife1.wad (+voices.wad) (Strife)
If you don't have a copy of a commercial version, you can download
-the shareware version (extract the file named doom1.wad):
+the shareware version of Doom (extract the file named doom1.wad):
* http://www.doomworld.com/idgames/index.php?id=7053
(idstuff/doom/win95/doom95.zip in your nearest /idgames mirror)
If you have a commercial version, obtaining the IWAD file is usually
-straightforward. The method depends on how you obtained your copy of
+straightforward. The method depends on how you obtained your copy of
the game:
#if _WIN32
* The Doom games are available to buy for download on Steam
- (http://www.steampowered.com/). Chocolate Doom will autodetect
+ (http://www.steampowered.com/). Chocolate Doom will autodetect
IWADs installed by Steam and you do not need to do anything.
#else
* The Doom games are available to buy for download on Steam
- (http://www.steampowered.com/). To find the IWAD files on a
- Windows system, look in the Steam directory (usually within
- "Program Files"), under the "steamapps/common" path.
+ (http://www.steampowered.com/), but are available for Windows only.
+ To find the IWAD files on a Windows system, look in the Steam
+ directory (usually within "Program Files"), under the
+ "steamapps/common" path.
#endif
- * There have been several CD-based versions of Doom. Generally, the
+ * There have been several CD-based versions of Doom. Generally, the
IWAD files can be found on the CD and copied off directly.
#if _WIN32
- * If the IWAD files are not directly available on the CD, or you have
- a floppy disk version, you will need to run the install program to
- install the game to your hard disk. As the installer is DOS-based,
- you may not be able to do this on 64-bit versions of Windows. In
- this case, the best suggestion is to use a DOS emulator (such as
- DOSbox) to run the installer.
+ * If you have a floppy disk version, you will need to run the install
+ program to install the game to your hard disk. As the installer is
+ DOS-based, you may not be able to do this on 64-bit versions of
+ Windows. In this case, the easiest suggestion is to use a DOS
+ emulator (such as DOSbox) to run the installer.
#else
- * If the IWAD files are not directly available on the CD, or you have
- a floppy disk version, installation is more difficult. The best
- suggestion is to use a DOS emulator (such as DOSbox) to run the
- installer.
+ * If you have a floppy disk version, installation is more difficult.
+ The easiest suggestion is to use a DOS emulator (such as DOSbox) to
+ run the installer.
#endif
* As an alternative to using an emulator, it is possible to extract
- the files manually. On the install disk(s), you will find several
- files with numbered extensions (with CD versions there may be a
- single large file with the extension .1, eg. "resource.1").
+ the files manually. On the install disk(s), you will find several
+ files with numbered extensions (eg. "doom_se.1").
From the command line it is possible to combine these files into a
single large file, using a command similar to the following:
@@ -219,7 +220,7 @@ Music support
Chocolate Doom includes OPL emulation code that accurately reproduces
the way that the in-game music sounded under DOS when using an
-Adlib/Soundblaster card. This is, however, not to everyone's taste.
+Adlib/Soundblaster card. This is, however, not to everyone's taste.
#if _WIN32
Better quality MIDI playback is possible by using Windows' native
@@ -244,10 +245,18 @@ be found here:
http://www.doomworld.com/idgames/index.php?id=13928
(Doom idgames archive, /sounds/eawpats.zip)
+Chocolate Doom also has provides a very limited form "emulation" of
+the Gravis Ultrasound (GUS) card, using Timidity's GUS patch file
+support. To use this requires a copy of the GUS patch files, found
+here:
+
+ http://www.doomworld.com/idgames/index.php?id=17127
+ (Doom idgames archive, /music/dgguspat.zip)
+
#ifn PRECOMPILED
-When compiling from source, be sure to compile and install timidity
+When compiling from source, be sure to compile and install Timidity
before installing SDL_mixer.
-#endif
+#endif
# vim: tw=70
diff --git a/man/Makefile.am b/man/Makefile.am
index 618c0bde..c8811db3 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -1,26 +1,87 @@
-MANPAGE_GEN_FILES=manpage.template docgen default.cfg.template extra.cfg.template
+MANPAGE_GEN_FILES=\
+ doom.template \
+ heretic.template \
+ hexen.template \
+ strife.template \
+ docgen \
+ default.cfg.template \
+ extra.cfg.template
docdir=$(prefix)/share/doc/@PACKAGE@
if HAVE_PYTHON
-man_MANS=chocolate-doom.6 \
- chocolate-server.6 \
- chocolate-setup.6 \
- default.cfg.5 \
- $(PACKAGE).cfg.5
+man_MANS=chocolate-server.6 \
+ chocolate-setup.6 \
+ chocolate-doom.6 \
+ default.cfg.5 \
+ chocolate-doom.cfg.5 \
+ chocolate-heretic.6 \
+ heretic.cfg.5 \
+ chocolate-heretic.cfg.5 \
+ chocolate-hexen.6 \
+ hexen.cfg.5 \
+ chocolate-hexen.cfg.5 \
+ chocolate-strife.6 \
+ strife.cfg.5 \
+ chocolate-strife.cfg.5
nodist_doc_DATA=INSTALL
+
+
chocolate-doom.6: ../src $(MANPAGE_GEN_FILES)
- ./docgen -m manpage.template ../src > $@
+ ./docgen -g doom -m doom.template ../src ../src/doom > $@
default.cfg.5: ../src default.cfg.template
- ./docgen -m default.cfg.template -c default.cfg ../src > $@
+ ./docgen -g doom -m default.cfg.template \
+ -c default ../src/m_config.c > $@
+
+chocolate-doom.cfg.5: ../src extra.cfg.template
+ ./docgen -g doom -m extra.cfg.template \
+ -c extended ../src/m_config.c > $@
+
+
+
+chocolate-heretic.6: ../src $(MANPAGE_GEN_FILES)
+ ./docgen -g heretic -m heretic.template ../src ../src/heretic > $@
+
+heretic.cfg.5: ../src default.cfg.template
+ ./docgen -g heretic -m default.cfg.template \
+ -c default ../src/m_config.c > $@
+
+chocolate-heretic.cfg.5: ../src extra.cfg.template
+ ./docgen -g heretic -m extra.cfg.template \
+ -c extended ../src/m_config.c > $@
+
+
+
+chocolate-hexen.6: ../src $(MANPAGE_GEN_FILES)
+ ./docgen -g hexen -m hexen.template ../src ../src/hexen > $@
+
+hexen.cfg.5: ../src default.cfg.template
+ ./docgen -g hexen -m default.cfg.template \
+ -c default ../src/m_config.c > $@
+
+chocolate-hexen.cfg.5: ../src extra.cfg.template
+ ./docgen -g hexen -m extra.cfg.template \
+ -c extended ../src/m_config.c > $@
+
+
+
+chocolate-strife.6: ../src $(MANPAGE_GEN_FILES)
+ ./docgen -g strife -m strife.template ../src ../src/strife > $@
+
+strife.cfg.5: ../src default.cfg.template
+ ./docgen -g strife -m default.cfg.template \
+ -c default ../src/m_config.c > $@
+
+chocolate-strife.cfg.5: ../src extra.cfg.template
+ ./docgen -g strife -m extra.cfg.template \
+ -c extended ../src/m_config.c > $@
+
-$(PACKAGE).cfg.5: ../src extra.cfg.template
- ./docgen -m extra.cfg.template -c $(PACKAGE).cfg ../src > $@
INSTALL: INSTALL.template
./simplecpp -DPRECOMPILED < INSTALL.template > $@
diff --git a/man/docgen b/man/docgen
index 3016dc5a..d9535be8 100755
--- a/man/docgen
+++ b/man/docgen
@@ -19,7 +19,7 @@
#
# For configuration file values:
#
-# //! @begin_config_file myconfig.cfg
+# //! @begin_config_file myconfig
#
# //!
# // Description of the configuration file value.
@@ -34,6 +34,8 @@ import re
import glob
import getopt
+INCLUDE_STATEMENT_RE = re.compile("@include\s+(\S+)")
+
# Find the maximum width of a list of parameters (for plain text output)
def parameter_list_width(params):
@@ -160,6 +162,7 @@ class Parameter:
self.platform = None
self.category = None
self.vanilla_option = False
+ self.games = None
def should_show(self):
return not self.vanilla_option or show_vanilla_options
@@ -184,12 +187,21 @@ class Parameter:
self.category = data
elif option_type == "vanilla":
self.vanilla_option = True
+ elif option_type == "game":
+ self.games = re.split(r'\s+', data.strip())
else:
raise "Unknown option type '%s'" % option_type
else:
self.text += text + " "
+ def _games_only_text(self, pattern="(%s only)"):
+ if not match_game and self.games:
+ games_list = ", ".join(map(str.capitalize, self.games))
+ return " " + (pattern % games_list)
+ else:
+ return ""
+
def manpage_output(self):
result = self.name
@@ -205,7 +217,7 @@ class Parameter:
escaped = re.sub('\\\\', '\\\\\\\\', self.text)
- result += escaped + "\n"
+ result += escaped + self._games_only_text() + "\n"
return result
@@ -221,6 +233,7 @@ class Parameter:
if self.platform:
result += "'''(%s only)'''" % self.platform
+ result += self._games_only_text("'''(%s only)'''")
return result
@@ -243,6 +256,8 @@ class Parameter:
if self.platform:
description += " (%s only)" % self.platform
+ description += self._games_only_text()
+
# Build the complete text for the argument
# Split the description into words and add a word at a time
@@ -291,18 +306,25 @@ def add_wiki_links(text):
def add_parameter(param, line, config_file):
+ # If we're only targeting a particular game, check this is one of
+ # the ones we're targeting.
+
+ if match_game and param.games and match_game not in param.games:
+ return
+
# Is this documenting a command line parameter?
- match = re.search('M_CheckParm(WithArgs)?\s*\(\s*"(.*?)"', line)
+ match = re.search('(M_CheckParm(WithArgs)|M_ParmExists)?\s*\(\s*"(.*?)"',
+ line)
if match:
- param.name = match.group(2)
+ param.name = match.group(3)
categories[param.category].add_param(param)
return
# Documenting a configuration file variable?
- match = re.search('CONFIG_VARIABLE_\S+\s*\(\s*(\S+?),', line)
+ match = re.search('CONFIG_VARIABLE_\S+\s*\(\s*(\S+?)\),', line)
if match:
param.name = match.group(1)
@@ -357,9 +379,9 @@ def process_file(file):
if match:
# Beginning a configuration file
- filename = match.group(1)
- current_config_file = ConfigFile(filename)
- config_files[filename] = current_config_file
+ tagname = match.group(1)
+ current_config_file = ConfigFile(tagname)
+ config_files[tagname] = current_config_file
else:
# Start of a normal comment
param = Parameter()
@@ -367,26 +389,31 @@ def process_file(file):
finally:
f.close()
-def process_files(dir):
+def process_files(path):
# Process all C source files.
- if os.path.isdir(dir):
- files = glob.glob(dir + "/*.c")
+ if os.path.isdir(path):
+ files = glob.glob(path + "/*.c")
for file in files:
process_file(file)
else:
# Special case to allow a single file to be specified as a target
- process_file(dir)
+ process_file(path)
def print_template(template_file, content):
f = open(template_file)
try:
for line in f:
- line = line.replace("@content", content)
- print(line.rstrip())
+ match = INCLUDE_STATEMENT_RE.search(line)
+ if match:
+ filename = match.group(1)
+ print_template(filename, content)
+ else:
+ line = line.replace("@content", content)
+ print(line.rstrip())
finally:
f.close()
@@ -416,22 +443,25 @@ def plaintext_output(targets, template_file):
print_template(template_file, content)
def usage():
- print("Usage: %s [-V] [-c filename ]( -m | -w | -p ) <directory>" \
+ print("Usage: %s [-V] [-c tag] [-g game] ( -m | -w | -p ) <dir>..." \
% sys.argv[0])
print(" -c : Provide documentation for the specified configuration file")
+ print(" (matches the given tag name in the source file)")
print(" -m : Manpage output")
print(" -w : Wikitext output")
print(" -p : Plaintext output")
print(" -V : Don't show Vanilla Doom options")
+ print(" -g : Only document options for specified game.")
sys.exit(0)
# Parse command line
-opts, args = getopt.getopt(sys.argv[1:], "m:wp:c:V")
+opts, args = getopt.getopt(sys.argv[1:], "m:wp:c:g:V")
output_function = None
template = None
doc_config_file = None
+match_game = None
for opt in opts:
if opt[0] == "-m":
@@ -446,14 +476,16 @@ for opt in opts:
show_vanilla_options = False
elif opt[0] == "-c":
doc_config_file = opt[1]
+ elif opt[0] == "-g":
+ match_game = opt[1]
-if output_function == None or len(args) != 1:
+if output_function == None or len(args) < 1:
usage()
else:
-
# Process specified files
- process_files(args[0])
+ for path in args:
+ process_files(path)
# Build a list of things to document
diff --git a/man/doom.template b/man/doom.template
new file mode 100644
index 00000000..b587d153
--- /dev/null
+++ b/man/doom.template
@@ -0,0 +1,41 @@
+.TH chocolate\-doom 6
+.SH NAME
+chocolate\-doom \- historically compatible Doom engine
+.SH SYNOPSIS
+.B chocolate\-doom
+[\fIOPTIONS\fR]
+.SH DESCRIPTION
+.PP
+Chocolate Doom is a port of Id Software's 1993 game "Doom" that is designed
+to behave as similar to the original DOS version of Doom as is possible.
+.br
+@content
+.SH ENVIRONMENT
+This section describes environment variables that control Chocolate Doom's
+behavior.
+@include environ.man
+.SH FILES
+.TP
+\fB$HOME/.chocolate-doom/default.cfg\fR
+The main configuration file for Chocolate Doom. See \fBdefault.cfg\fR(5).
+.TP
+\fB$HOME/.chocolate-doom/chocolate-doom.cfg\fR
+Extra configuration values that are specific to Chocolate Doom and not
+present in Vanilla Doom. See \fBchocolate-doom.cfg\fR(5).
+.SH SEE ALSO
+\fBchocolate-server\fR(6),
+\fBchocolate-setup\fR(6),
+\fBchocolate-heretic\fR(6),
+\fBchocolate-hexen\fR(6),
+\fBchocolate-strife\fR(6)
+.SH AUTHOR
+Chocolate Doom is written and maintained by Simon Howard. It is based on
+the LinuxDoom source code, released by Id Software.
+.SH COPYRIGHT
+Copyright \(co id Software Inc.
+Copyright \(co 2005-2013 Simon Howard.
+.br
+This is free software. You may redistribute copies of it under the terms of
+the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
+There is NO WARRANTY, to the extent permitted by law.
+
diff --git a/man/environ.man b/man/environ.man
new file mode 100644
index 00000000..502e965c
--- /dev/null
+++ b/man/environ.man
@@ -0,0 +1,25 @@
+.TP
+\fBDOOMWADDIR\fR, \fBDOOMWADPATH\fR
+These environment variables provide paths to search for Doom .WAD files when
+looking for a game IWAD file or a PWAD file specified with the `-file' option.
+\fBDOOMWADDIR\fR specifies a single path in which to look for WAD files,
+while \fBDOOMWWADPATH\fR specifies a colon-separated list of paths to search.
+.TP
+\fBPCSOUND_DRIVER\fR
+When running in PC speaker sound effect mode, this environment variable
+specifies a PC speaker driver to use for sound effect playback. Valid
+options are "Linux" for the Linux console mode driver, "BSD" for the
+NetBSD/OpenBSD PC speaker driver, and "SDL" for SDL-based emulated PC speaker
+playback (using the digital output).
+.TP
+\fBOPL_DRIVER\fR
+When using OPL MIDI playback, this environment variable specifies an
+OPL backend driver to use. Valid options are "SDL" for an SDL-based
+software emulated OPL chip, "Linux" for the Linux hardware OPL driver,
+and "OpenBSD" for the OpenBSD/NetBSD hardware OPL driver.
+
+Generally speaking, a real hardware OPL chip sounds better than software
+emulation; however, modern machines do not often include one. If
+present, it may still require extra work to set up and elevated
+security privileges to access.
+
diff --git a/man/heretic.template b/man/heretic.template
new file mode 100644
index 00000000..e9afa96d
--- /dev/null
+++ b/man/heretic.template
@@ -0,0 +1,43 @@
+.TH chocolate\-heretic 6
+.SH NAME
+chocolate\-heretic \- historically compatible Heretic engine
+.SH SYNOPSIS
+.B chocolate\-heretic
+[\fIOPTIONS\fR]
+.SH DESCRIPTION
+.PP
+Chocolate Heretic is a port of Raven Software's 1994 game "Heretic" that
+aims to behave as similar to the original DOS version of Heretic as
+possible.
+.br
+@content
+.SH ENVIRONMENT
+This section describes environment variables that control Chocolate Heretic's
+behavior.
+@include environ.man
+.SH FILES
+.TP
+\fB$HOME/.chocolate-doom/heretic.cfg\fR
+The main configuration file for Chocolate Heretic. See \fBheretic.cfg\fR(5).
+.TP
+\fB$HOME/.chocolate-doom/chocolate-heretic.cfg\fR
+Extra configuration values that are specific to Chocolate Heretic and not
+present in Vanilla Heretic. See \fBchocolate-heretic.cfg\fR(5).
+.SH SEE ALSO
+\fBchocolate-doom\fR(6),
+\fBchocolate-hexen\fR(6),
+\fBchocolate-server\fR(6),
+\fBchocolate-setup\fR(6)
+.SH AUTHOR
+Chocolate Heretic is part of the Chocolate Doom project, written and
+maintained by Simon Howard. It is based on the Heretic source code,
+released by Raven Software.
+.SH COPYRIGHT
+Copyright \(co id Software Inc.
+Copyright \(co Raven Software Inc.
+Copyright \(co 2005-2013 Simon Howard.
+.br
+This is free software. You may redistribute copies of it under the terms of
+the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
+There is NO WARRANTY, to the extent permitted by law.
+
diff --git a/man/hexen.template b/man/hexen.template
new file mode 100644
index 00000000..4c0524a4
--- /dev/null
+++ b/man/hexen.template
@@ -0,0 +1,43 @@
+.TH chocolate\-hexen 6
+.SH NAME
+chocolate\-hexen \- historically compatible Hexen engine
+.SH SYNOPSIS
+.B chocolate\-hexen
+[\fIOPTIONS\fR]
+.SH DESCRIPTION
+.PP
+Chocolate Hexen is a port of Raven Software's 1995 game "Hexen" that
+aims to behave as similar to the original DOS version of Hexen as
+possible.
+.br
+@content
+.SH ENVIRONMENT
+This section describes environment variables that control Chocolate Hexen's
+behavior.
+@include environ.man
+.SH FILES
+.TP
+\fB$HOME/.chocolate-doom/hexen.cfg\fR
+The main configuration file for Chocolate Hexen. See \fBhexen.cfg\fR(5).
+.TP
+\fB$HOME/.chocolate-doom/chocolate-hexen.cfg\fR
+Extra configuration values that are specific to Chocolate Hexen and not
+present in Vanilla Hexen. See \fBchocolate-hexen.cfg\fR(5).
+.SH SEE ALSO
+\fBchocolate-doom\fR(6),
+\fBchocolate-heretic\fR(6),
+\fBchocolate-server\fR(6),
+\fBchocolate-setup\fR(6)
+.SH AUTHOR
+Chocolate Hexen is part of the Chocolate Doom project, written and
+maintained by Simon Howard. It is based on the Hexen source code,
+released by Raven Software.
+.SH COPYRIGHT
+Copyright \(co id Software Inc.
+Copyright \(co Raven Software Inc.
+Copyright \(co 2005-2013 Simon Howard.
+.br
+This is free software. You may redistribute copies of it under the terms of
+the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
+There is NO WARRANTY, to the extent permitted by law.
+
diff --git a/man/manpage.template b/man/manpage.template
deleted file mode 100644
index 41f06dc0..00000000
--- a/man/manpage.template
+++ /dev/null
@@ -1,63 +0,0 @@
-.TH chocolate\-doom 6
-.SH NAME
-chocolate\-doom \- historically compatible doom engine
-.SH SYNOPSIS
-.B chocolate\-doom
-[\fIOPTIONS\fR]
-.SH DESCRIPTION
-.PP
-Chocolate Doom is a modern doom engine designed to behave
-as similar to the original doom game as is possible.
-.br
-
-@content
-
-.SH ENVIRONMENT
-This section describes environment variables that control Chocolate Doom's
-behavior.
-.TP
-\fBDOOMWADDIR\fR, \fBDOOMWADPATH\fR
-These environment variables provide paths to search for Doom .WAD files when
-looking for a game IWAD file or a PWAD file specified with the `-file' option.
-\fBDOOMWADDIR\fR specifies a single path in which to look for WAD files,
-while \fBDOOMWWADPATH\fR specifies a colon-separated list of paths to search.
-.TP
-\fBPCSOUND_DRIVER\fR
-When running in PC speaker sound effect mode, this environment variable
-specifies a PC speaker driver to use for sound effect playback. Valid
-options are "Linux" for the Linux console mode driver, "BSD" for the
-NetBSD/OpenBSD PC speaker driver, and "SDL" for SDL-based emulated PC speaker
-playback (using the digital output).
-.TP
-\fBOPL_DRIVER\fR
-When using OPL MIDI playback, this environment variable specifies an
-OPL backend driver to use. Valid options are "SDL" for an SDL-based
-software emulated OPL chip, "Linux" for the Linux hardware OPL driver,
-and "OpenBSD" for the OpenBSD/NetBSD hardware OPL driver.
-
-Generally speaking, a real hardware OPL chip sounds better than software
-emulation; however, modern machines do not often include one. If
-present, it may still require extra work to set up and elevated
-security privileges to access.
-.SH FILES
-.TP
-\fB$HOME/.chocolate-doom/default.cfg\fR
-The main configuration file for Chocolate Doom. See \fBdefault.cfg\fR(5).
-.TP
-\fB$HOME/.chocolate-doom/chocolate-doom.cfg\fR
-Extra configuration values that are specific to Chocolate Doom and not
-present in Vanilla Doom. See \fBchocolate-doom.cfg\fR(5).
-.SH SEE ALSO
-\fBchocolate-server\fR(6),
-\fBchocolate-setup\fR(6)
-.SH AUTHOR
-Chocolate Doom is written and maintained by Simon Howard. It is based on
-the LinuxDoom source code, released by Id Software.
-.SH COPYRIGHT
-Copyright \(co id Software Inc.
-Copyright \(co 2005-8 Simon Howard.
-.br
-This is free software. You may redistribute copies of it under the terms of
-the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
-There is NO WARRANTY, to the extent permitted by law.
-
diff --git a/man/strife.template b/man/strife.template
new file mode 100644
index 00000000..ddcc12f9
--- /dev/null
+++ b/man/strife.template
@@ -0,0 +1,83 @@
+.TH chocolate\-strife 6
+.SH NAME
+chocolate\-strife \- historically compatible strife engine
+.SH SYNOPSIS
+.B chocolate\-strife
+[\fIOPTIONS\fR]
+.SH DESCRIPTION
+.PP
+Chocolate Strife is an accurate and complete recreation of Rogue
+Entertainment's "Strife: Quest for the Sigil". It was created through
+more than two years of reverse engineering effort with the blessings
+of the original programmers of the game (see the section HISTORY below).
+
+@content
+
+.SH ENVIRONMENT
+This section describes environment variables that control Chocolate Strife's
+behavior.
+@include environ.man
+
+.SH FILES
+.TP
+\fB$HOME/.chocolate-doom/strife.cfg\fR
+The main configuration file for Chocolate Strife. See \fBstrife.cfg\fR(5).
+.TP
+\fB$HOME/.chocolate-doom/chocolate-strife.cfg\fR
+Extra configuration values that are specific to Chocolate Strife and not
+present in Vanilla Strife. See \fBchocolate-strife.cfg\fR(5).
+.SH SEE ALSO
+\fBchocolate-doom\fR(6),
+\fBchocolate-server\fR(6),
+\fBchocolate-setup\fR(6)
+
+.SH HISTORY
+The source code for Strife was lost, which means, unlike the code for all the
+other commercial DOOM-engine games, it cannot be released. The only access we
+have to the code is the binary executable file. Reverse engineering tools
+were employed to disassemble and decompile the executables, which were cross-
+referenced against the Linux DOOM and DOS Heretic sources and painstakingly
+combed over multiple times, instruction-by-instruction, to ensure that the
+resulting Chocolate-Doom-based executable is as close as possible to the
+original.
+
+.SH LEGALITY
+Reverse engineering is a protected activity so long as the original code is
+not used directly in the product. Due to the vast amount of information lost
+through the process of compilation, and the need to refactor large portions
+of code in order to eliminate non-portable idioms or to adapt them properly to
+Chocolate Doom's framework, the resulting code behaves the same, but is not
+the *same* code.
+
+In addition, James Monroe and John Carmack have both stated that they have no
+objections to the project. Because they are the original authors of the code,
+and neither Rogue nor their publisher, Velocity, Inc., exist any longer as
+legal entities, this is effectively legal permission.
+
+.SH BUGS
+Chocolate Strife is almost, but not entirely perfect, in recreating the
+behavior of Vanilla Strife. Help us by reporting any discrepancies you
+might notice between this executable and the vanilla DOS program.
+
+However, do *not* report any glitch that you can replicate in the vanilla EXE
+as a bug. The point of Chocolate Strife, like Chocolate Doom before it, is to
+be as bug-compatible with the original game as possible. Also be aware that
+some glitches are impossible to compatibly recreate, and wherever this is the
+case, Chocolate Strife has erred on the side of not crashing the program,
+for example by initializing pointers to NULL rather than using them without
+setting a value first.
+
+.SH AUTHORS
+Chocolate Strife is part of the Chocolate Doom project. It was reverse
+engineered from the DOS versions of Strife by James Haley and Samuel
+Villarreal.
+Chocolate Doom was written and maintained by Simon Howard, and is based
+on the LinuxDoom source code released by Id Software.
+.SH COPYRIGHT
+Copyright \(co id Software Inc.
+Copyright \(co 2005-2013 Simon Howard, James Haley, Samuel Villarreal.
+.br
+This is free software. You may redistribute copies of it under the terms of
+the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
+There is NO WARRANTY, to the extent permitted by law.
+