Crispy 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 section “HISTORY”
below.
- -config file
- Load main configuration from the specified file, instead of the
default.
- -devparm
- Developer mode. Implies -nograph.
- Load additional configuration from the specified file, instead of the
default.
- -file file ...
- Load the specified PWAD files. Each succeeding argument is treated as a
PWAD file name until one starts with a dash or the argument list is
exhausted.
- -iwad file
- Specify an IWAD file to use.
- -nograph
- Disable graphical introduction sequence
- -nomusic
- Disable music.
- -nomusicpacks
- Disable substitution music packs.
- -nosfx
- Disable sound effects.
- -nosound
- Disable all sound output.
- -novoice
- Disable voice dialog and show dialog as text instead, even if voices.wad
can be found.
- -response file
- Load extra command-line arguments from the given response file. Arguments
read from the file are inserted into the command line, replacing this
argument. A response file can also be loaded using the abbreviated syntax
'@file.rsp'.
- -savedir directory
- Specify a path from which to load and save games. If the directory does
not exist then it will automatically be created.
- -version
- Print the program version and exit.
- -doubleammo
- Double ammo pickup rate. This option is not allowed when recording a demo,
playing back a demo or when starting a network game.
- -fast
- Monsters move faster.
- -loadgame s
- Load the game in slot s.
- -nomonsters
- Disable monsters.
- -random
- Items respawn at random locations
- -respawn
- Respawn monsters after they are killed.
- -skill skill
- Set the game skill, 1-5 (1: easiest, 5: hardest). A skill of 0 disables
all monsters.
- -turbo x
- Turbo mode. The player's speed is multiplied by x%. If unspecified, x
defaults to 200. Values are rounded up to 10 and down to 400.
- -warp x
- Start a game immediately, warping to level x.
- -1
- Don't scale up the screen. Implies -window.
- -2
- Double up the screen to 2x its normal size. Implies -window.
- -3
- Double up the screen to 3x its normal size. Implies -window.
- -display x
- Specify the display number on which to show the screen.
- -fullscreen
- Run in fullscreen mode.
- -geometry WxH
- Specify the dimensions of the window. Implies -window.
- -height H
- Specify the screen height, in pixels. Implies -window.
- -noblit
- Disable blitting the screen.
- -nodraw
- Disable rendering the screen entirely.
- -nograbmouse
- Don't grab the mouse when running in windowed mode.
- -nomouse
- Disable the mouse.
- -width W
- Specify the screen width, in pixels. Implies -window.
- -window
- Run in a window.
- -altdeath
- Start a deathmatch game. Weapons do not stay in place and all items
respawn after 30 seconds.
- -autojoin
- Automatically search the local LAN for a multiplayer server and join
it.
- -avg
- Austin Virtual Gaming: end levels after 20 minutes.
- -connect address
- Connect to a multiplayer server running on the given address.
- -dedicated
- Start a dedicated server, routing packets but not participating in the
game itself.
- -dup n
- Reduce the resolution of the game by a factor of n, reducing the amount of
network bandwidth needed.
- Send n extra tics in every packet as insurance against dropped
packets.
- -left
- Run as the left screen in three screen mode.
- -localsearch
- Search the local LAN for running servers.
- -nodes n
- Autostart the netgame when n nodes (clients) have joined the server.
- -oldsync
- Use original network client sync code rather than the improved sync
code.
- -port n
- Use the specified UDP port for communications, instead of the default
(2342).
- -privateserver
- When running a server, don't register with the global master server.
Implies -server.
- -query address
- Query the status of the server running on the given IP address.
- -right
- Run as the right screen in three screen mode.
- -search
- Query the Internet master server for a global list of active servers.
- -server
- Start a multiplayer server, listening for connections.
- -servername name
- When starting a network server, specify a name for the server.
- -solo-net
- Start the game playing as though in a netgame with a single player. This
can also be used to play back single player netgame demos.
- -timer n
- For multiplayer games: exit each level after n minutes.
- -aa file ...
- Equivalent to "-af <files> -as <files>".
- -af file ...
- Simulates the behavior of NWT's -af option, merging flats into the main
IWAD directory. Multiple files may be specified.
- -as file ...
- Simulates the behavior of NWT's -as option, merging sprites into the main
IWAD directory. Multiple files may be specified.
- -deh file ...
- Load the given dehacked patch(es)
- -merge file ...
- Simulates the behavior of deutex's -merge option, merging a PWAD into the
main IWAD. Multiple files may be specified.
- -noautoload
- Disable auto-loading of .wad files.
- -nocheats
- Ignore cheats in dehacked files.
- -nwtmerge file ...
- Simulates the behavior of NWT's -merge option. Multiple files may be
specified.
- -maxdemo size
- Specify the demo buffer size (KiB)
- -playdemo demo
- Play back the demo named demo.lmp.
- -record x
- Record a demo named x.lmp.
- -solo-net
- Play back a demo recorded in a netgame with a single player.
- -strictdemos
- When recording or playing back demos, disable any extensions of the
vanilla demo format - record demos as vanilla would do, and play back
demos as vanilla would do.
- -timedemo demo
- Play back the demo named demo.lmp, determining the framerate of the
screen.
- -donut x
y
- Use the specified magic values when emulating behavior caused by memory
overruns from improperly constructed donuts. In Vanilla Strife this can
differ depending on the operating system. The default (if this option is
not specified) is to emulate the behavior when running under Windows
98.
- -gameversion version
- Emulate a specific version of Strife. Valid values are "1.2" and
"1.31".
- -setmem version
- Specify DOS version to emulate for NULL pointer dereference emulation.
Supported versions are: dos622, dos71, dosbox. The default is to emulate
DOS 7.1 (Windows 98).
- -spechit n
- Use the specified magic value when emulating spechit overruns.
- -cdrom
- [windows only] Save configuration data and savegames in c:\strife.cd,
allowing play from CD.
- -dumpsubstconfig file
- Read all MIDI files from loaded WAD files, dump an example substitution
music config file to the specified file, and quit.
- -flip
- Flip player gun sprites.
- -mb mb
- Specify the heap size, in MiB.
- -mmap
- Use the OS's virtual memory subsystem to map WAD files directly into
memory.
- -nogui
- If specified, don't show a GUI window for error messages when the game
exits with an error.
- -work
- Set Rogue playtesting mode (god mode; no cliping mode toggled by
backspace).
To play, an IWAD file is needed. This is a large file containing
all of the levels, graphics, sound effects, music and other material that
make up the game. IWAD files are named according to the game; the standard
names are:
- doom.wad, doom1.wad, doom2.wad, tnt.wad, plutonia.wad
- Doom, Doom II, Final Doom
- heretic.wad, hexen.wad, strife.wad
- Heretic, Hexen and Strife (commercial Doom engine games).
- hacx.wad, chex.wad
- Hacx and Chex Quest - more obscure games based on the Doom engine.
- freedm.wad, freedoom1.wad, freedoom2.wad
- The Freedoom open content IWAD files.
The following directory paths are searched in order to find an
IWAD:
- Current working
directory
- Any IWAD files found in the current working directory will be used in
preference to IWADs found in any other directories.
- DOOMWADDIR
- This environment variable can be set to contain a path to a single
directory in which to look for IWAD files. This environment variable is
supported by most Doom source ports.
- DOOMWADPATH
- This environment variable, if set, can contain a colon-separated list of
directories in which to look for IWAD files, or alternatively full paths
to specific IWAD files.
- $HOME/.local/share/games/doom
- Writeable directory in the user's home directory. The path can be
overridden using the XDG_DATA_HOME environment variable (see the
XDG Base Directory Specification).
- /usr/local/share/doom
- /usr/local/share/games/doom
- /usr/share/doom
- /usr/share/games/doom
- System-wide locations that can be accessed by all users. The path
/usr/share/games/doom is a standard path that is supported by most
Doom source ports. These paths can be overridden using the
XDG_DATA_DIRS environment variable (see the XDG Base Directory
Specification).
The above can be overridden on a one-time basis by using the
-iwad command line parameter to provide the path to an IWAD file to
use.This parameter can also be used to specify the name of a particular IWAD
to use from one of the above paths. For example, “-iwad
doom.wad” will search the above paths for the file
doom.wad to use.
This section describes environment variables that control Crispy
Strife's behavior.
- DOOMWADDIR
- DOOMWADPATH
- See section “IWAD SEARCH PATHS” above.
- PCSOUND_DRIVER
- 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).
- OPL_DRIVER
- 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.
- $HOME/.local/share/crispy-doom/strife.cfg
- The main configuration file for Crispy Strife. See
strife.cfg(5).
- $HOME/.local/share/crispy-doom/crispy-strife.cfg
- Extra configuration values that are specific to Crispy Strife and not
present in Vanilla Strife. See crispy-strife.cfg(5).
The source code for Strife was lost, which means, unlike the code
for all the other commercial games using the Doom engine, 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.
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.
Crispy 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 Crispy 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, Crispy 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.
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.
Copyright © id Software Inc. Copyright © 2005-2013
Simon Howard, James Haley, Samuel Villarreal.
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.