NAME¶
chocolate-strife - historically compatible strife engine
SYNOPSIS¶
chocolate-strife [
OPTIONS]
DESCRIPTION¶
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).
GENERAL OPTIONS¶
- -cdrom
- [windows only] Save configuration data and savegames in c:\strife.cd,
allowing play from CD.
- -config <file>
- Load main configuration from the specified file, instead of the
default.
- -devparm
- Developer mode. Implies -nograph.
- -dumpsubstconfig <output filename>
- Read all MIDI files from loaded WAD files, dump an example substitution
music config file to the specified filename and quit.
- -extraconfig <file>
- Load additional configuration from the specified file, instead of the
default.
- -fast
- Monsters move faster.
- -file <files>
- Load the specified PWAD files.
- -flip
- Flip player gun sprites (broken).
- -iwad <file>
- Specify an IWAD file to use.
- -loadgame <s>
- Load the game in slot s.
- -mb <mb>
- Specify the heap size, in MiB (default 16).
- -mmap
- Use the OS's virtual memory subsystem to map WAD files directly into
memory.
- -noblit
- Disable blitting the screen.
- -nodraw
- Disable rendering the screen entirely.
- -nograph
- Disable graphical introduction sequence
- -nomonsters
- Disable monsters.
- -nomusic
- Disable music.
- -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.
- -random
- Items respawn at random locations
- -respawn
- Respawn monsters after they are killed.
- -servername <name>
- When starting a network server, specify a name for the server.
- -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.
- -work
- Set Rogue playtesting mode (godmode, noclip toggled by backspace)
COMPATIBILITY¶
- -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.
DEMO OPTIONS¶
- -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.
- -timedemo <demo>
- Play back the demo named demo.lmp, determining the framerate of the
screen.
DISPLAY OPTIONS¶
- -1
- Don't scale up the screen.
- -2
- Double up the screen to 2x its normal size.
- -3
- Double up the screen to 3x its normal size.
- -8in32
- Set the color depth of the screen to 32 bits per pixel.
- -bpp <bpp>
- Specify the color depth of the screen, in bits per pixel.
- -fullscreen
- Run in fullscreen mode.
- -geometry <WxY>[wf]
- Specify the dimensions of the window or fullscreen mode. An optional
letter of w or f appended to the dimensions selects windowed or fullscreen
mode.
- -grabmouse
- Grab the mouse when running in windowed mode.
- -height <y>
- Specify the screen height, in pixels.
- -nograbmouse
- Don't grab the mouse when running in windowed mode.
- -nomouse
- Disable the mouse.
- -nonovert
- Enable vertical mouse movement.
- -novert
- Disable vertical mouse movement.
- -width <x>
- Specify the screen width, in pixels.
- -window
- Run in a window.
NETWORKING OPTIONS¶
- -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.
- -extratics <n>
- Send n extra tics in every packet as insurance against dropped
packets.
- -ignoreversion
- When running a netgame server, ignore version mismatches between the
server and the client. Using this option may cause game desyncs to occur,
or differences in protocol may mean the netgame will simply not function
at all.
- -left
- Run as the left screen in three screen mode.
- -localsearch
- Search the local LAN for running servers.
- -newsync
- Use new network client sync code rather than the classic sync code. This
is currently disabled by default because it has some bugs.
- -nodes <n>
- Autostart the netgame when n nodes (clients) have joined the server.
- -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.
- -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.
DEHACKED AND WAD MERGING¶
- -aa <files>
- Equivalent to "-af <files> -as <files>".
- -af <files>
- Simulates the behavior of NWT's -af option, merging flats into the main
IWAD directory. Multiple files may be specified.
- -as <files>
- Simulates the behavior of NWT's -as option, merging sprites into the main
IWAD directory. Multiple files may be specified.
- -deh <files>
- Load the given dehacked patch(es)
- -merge <files>
- Simulates the behavior of deutex's -merge option, merging a PWAD into the
main IWAD. Multiple files may be specified.
- -nocheats
- Ignore cheats in dehacked files.
- -nwtmerge <files>
- Simulates the behavior of NWT's -merge option. Multiple files may be
specified.
ENVIRONMENT¶
This section describes environment variables that control Chocolate Strife's
behavior.
- DOOMWADDIR, DOOMWADPATH
- 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. DOOMWADDIR specifies a single path in which to look
for WAD files, while DOOMWWADPATH specifies a colon-separated list
of paths to search.
- 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.
FILES¶
- $HOME/.chocolate-doom/strife.cfg
- The main configuration file for Chocolate Strife. See
strife.cfg(5).
- $HOME/.chocolate-doom/chocolate-strife.cfg
- Extra configuration values that are specific to Chocolate Strife and not
present in Vanilla Strife. See chocolate-strife.cfg(5).
SEE ALSO¶
chocolate-doom(6),
chocolate-server(6),
chocolate-setup(6)
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.
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.
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.
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.
COPYRIGHT¶
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.