1chocolate-strife(6)              Games Manual              chocolate-strife(6)
2
3
4

NAME

6       chocolate-strife - historically compatible strife engine
7

SYNOPSIS

9       chocolate-strife [OPTIONS]
10

DESCRIPTION

12       Chocolate Strife is an accurate and complete recreation of Rogue Enter‐
13       tainment's "Strife: Quest for the Sigil". It was created  through  more
14       than  two years of reverse engineering effort with the blessings of the
15       original programmers of the game (see the section HISTORY below).
16
17

GENERAL OPTIONS

19       -cdrom [windows  only]  Save  configuration  data  and   savegames   in
20              c:\strife.cd, allowing play from CD.
21
22       -config <file>
23              Load  main configuration from the specified file, instead of the
24              default.
25
26       -devparm
27              Developer mode. Implies -nograph.
28
29       -dumpsubstconfig <filename>
30              Read all MIDI files from loaded WAD files, dump an example  sub‐
31              stitution music config file to the specified filename and quit.
32
33       -extraconfig <file>
34              Load  additional  configuration from the specified file, instead
35              of the default.
36
37       -fast  Monsters move faster.
38
39       -file <files>
40              Load the specified PWAD files.
41
42       -flip  Flip player gun sprites (broken).
43
44       -iwad <file>
45              Specify an IWAD file to use.
46
47       -loadgame <s>
48              Load the game in slot s.
49
50       -mb <mb>
51              Specify the heap size, in MiB (default 16).
52
53       -mmap  Use the OS's virtual memory subsystem to map WAD files  directly
54              into memory.
55
56       -nograph
57              Disable graphical introduction sequence
58
59       -nomonsters
60              Disable monsters.
61
62       -nomusic
63              Disable music.
64
65       -nosfx Disable sound effects.
66
67       -nosound
68              Disable all sound output.
69
70       -novoice
71              Disable  voice  dialog  and show dialog as text instead, even if
72              voices.wad can be found.
73
74       -random
75              Items respawn at random locations
76
77       -respawn
78              Respawn monsters after they are killed.
79
80       -savedir <directory>
81              Specify a path from which to load and save games. If the  direc‐
82              tory does not exist then it will automatically be created.
83
84       -skill <skill>
85              Set  the game skill, 1-5 (1: easiest, 5: hardest).  A skill of 0
86              disables all monsters.
87
88       -turbo <x>
89              Turbo mode.  The player's speed is multiplied by x%.  If unspec‐
90              ified,  x defaults to 200.  Values are rounded up to 10 and down
91              to 400.
92
93       -warp x
94              Start a game immediately, warping to level x.
95
96       -work  Set  Rogue  playtesting  mode  (godmode,   noclip   toggled   by
97              backspace)
98
99

COMPATIBILITY

101       -donut <x> <y>
102              Use the specified magic values when emulating behavior caused by
103              memory overruns from improperly constructed donuts.  In  Vanilla
104              Strife  this  can differ depending on the operating system.  The
105              default (if this option is not  specified)  is  to  emulate  the
106              behavior when running under Windows 98.
107
108       -gameversion <version>
109              Emulate a specific version of Strife. Valid values are "1.2" and
110              "1.31".
111
112       -setmem <version>
113              Specify DOS version to emulate for NULL pointer dereference emu‐
114              lation.   Supported  versions  are:  dos622,  dos71, dosbox. The
115              default is to emulate DOS 7.1 (Windows 98).
116
117       -spechit <n>
118              Use the specified magic value when emulating spechit overruns.
119
120

DEMO OPTIONS

122       -maxdemo <size>
123              Specify the demo buffer size (KiB)
124
125       -playdemo <demo>
126              Play back the demo named demo.lmp.
127
128       -record <x>
129              Record a demo named x.lmp.
130
131       -solo-net
132              Play back a demo recorded in a netgame with a single player.
133
134       -strictdemos
135              When recording or playing back demos, disable any extensions  of
136              the  vanilla demo format - record demos as vanilla would do, and
137              play back demos as vanilla would do.
138
139       -timedemo <demo>
140              Play back the demo named demo.lmp, determining the framerate  of
141              the screen.
142
143

DISPLAY OPTIONS

145       -1     Don't scale up the screen. Implies -window.
146
147       -2     Double up the screen to 2x its normal size. Implies -window.
148
149       -3     Double up the screen to 3x its normal size. Implies -window.
150
151       -fullscreen
152              Run in fullscreen mode.
153
154       -geometry <WxY>
155              Specify the dimensions of the window. Implies -window.
156
157       -height <y>
158              Specify the screen height, in pixels. Implies -window.
159
160       -noblit
161              Disable blitting the screen.
162
163       -nodraw
164              Disable rendering the screen entirely.
165
166       -nograbmouse
167              Don't grab the mouse when running in windowed mode.
168
169       -nomouse
170              Disable the mouse.
171
172       -width <x>
173              Specify the screen width, in pixels. Implies -window.
174
175       -window
176              Run in a window.
177
178

NETWORKING OPTIONS

180       -altdeath
181              Start  a  deathmatch game.  Weapons do not stay in place and all
182              items respawn after 30 seconds.
183
184       -autojoin
185              Automatically search the local LAN for a multiplayer server  and
186              join it.
187
188       -avg   Austin Virtual Gaming: end levels after 20 minutes.
189
190       -connect <address>
191              Connect to a multiplayer server running on the given address.
192
193       -dedicated
194              Start  a dedicated server, routing packets but not participating
195              in the game itself.
196
197       -dup <n>
198              Reduce the resolution of the game by a factor of n, reducing the
199              amount of network bandwidth needed.
200
201       -extratics <n>
202              Send  n  extra tics in every packet as insurance against dropped
203              packets.
204
205       -left  Run as the left screen in three screen mode.
206
207       -localsearch
208              Search the local LAN for running servers.
209
210       -newsync
211              Use new network client sync code rather than  the  classic  sync
212              code.  This is currently disabled by default because it has some
213              bugs.
214
215       -nodes <n>
216              Autostart the netgame when n nodes  (clients)  have  joined  the
217              server.
218
219       -port <n>
220              Use  the  specified  UDP port for communications, instead of the
221              default (2342).
222
223       -privateserver
224              When running a server, don't register  with  the  global  master
225              server. Implies -server.
226
227       -query <address>
228              Query the status of the server running on the given IP address.
229
230       -right Run as the right screen in three screen mode.
231
232       -search
233              Query  the  Internet  master  server for a global list of active
234              servers.
235
236       -server
237              Start a multiplayer server, listening for connections.
238
239       -servername <name>
240              When starting a network server, specify a name for the server.
241
242       -solo-net
243              Start the game playing as though in  a  netgame  with  a  single
244              player.   This  can  also  be  used  to  play back single player
245              netgame demos.
246
247       -timer <n>
248              For multiplayer games: exit each level after n minutes.
249
250

DEHACKED AND WAD MERGING

252       -aa <files>
253              Equivalent to "-af <files> -as <files>".
254
255       -af <files>
256              Simulates the behavior of NWT's -af option, merging  flats  into
257              the main IWAD directory.  Multiple files may be specified.
258
259       -as <files>
260              Simulates the behavior of NWT's -as option, merging sprites into
261              the main IWAD directory.  Multiple files may be specified.
262
263       -deh <files>
264              Load the given dehacked patch(es)
265
266       -merge <files>
267              Simulates the behavior of deutex's -merge option, merging a PWAD
268              into the main IWAD.  Multiple files may be specified.
269
270       -nocheats
271              Ignore cheats in dehacked files.
272
273       -nwtmerge <files>
274              Simulates  the  behavior of NWT's -merge option.  Multiple files
275              may be specified.
276
277

IWAD SEARCH PATHS

279       To play, an IWAD file is needed. This is a large file containing all of
280       the levels, graphics, sound effects, music and other material that make
281       up the game. IWAD files are named according to the game;  the  standard
282       names are:
283
284       doom.wad, doom1.wad, doom2.wad, tnt.wad, plutonia.wad
285              Doom, Doom II, Final Doom
286
287       heretic.wad, heretic1.wad, hexen.wad, strife1.wad
288              Heretic, Hexen and Strife (commercial Doom engine games).
289
290       hacx.wad, chex.wad
291              Hacx  and  Chex  Quest  -  more  obscure games based on the Doom
292              engine.
293
294       freedm.wad, freedoom1.wad, freedoom2.wad
295              The Freedoom open content IWAD files.
296
297       The following directory paths are searched in order to find an IWAD:
298
299       Current working directory
300              Any IWAD files found in the current working  directory  will  be
301              used in preference to IWADs found in any other directories.
302
303       DOOMWADDIR
304              This environment variable can be set to contain a path to a sin‐
305              gle directory in which to look for IWAD files. This  environment
306              variable is supported by most Doom source ports.
307
308       DOOMWADPATH
309              This environment variable, if set, can contain a colon-separated
310              list of directories in which to look for IWAD files, or alterna‐
311              tively full paths to specific IWAD files.
312
313       $HOME/.local/share/games/doom
314              Writeable  directory  in the user's home directory. The path can
315              be overridden using the XDG_DATA_HOME environment variable  (see
316              the XDG Base Directory Specification).
317
318       /usr/local/share/games/doom, /usr/share/games/doom
319              System-wide  locations  that  can  be accessed by all users. The
320              path /usr/share/games/doom is a standard path that is  supported
321              by  most  Doom source ports. These paths can be overridden using
322              the XDG_DATA_DIRS environment variable (see the XDG Base  Direc‐
323              tory Specification).
324
325       The above can be overridden on a one-time basis by using the -iwad com‐
326       mand line parameter to provide the path to an IWAD file  to  use.  This
327       parameter  can also be used to specify the name of a particular IWAD to
328       use from one of the above paths. For  example,  '-iwad  doom.wad'  will
329       search the above paths for the file doom.wad to use.
330

ENVIRONMENT

332       This  section  describes  environment  variables that control Chocolate
333       Strife's behavior.
334
335       DOOMWADDIR, DOOMWADPATH
336              See the section, IWAD SEARCH PATHS above.
337
338       PCSOUND_DRIVER
339              When running in PC speaker sound effect mode,  this  environment
340              variable  specifies  a PC speaker driver to use for sound effect
341              playback.  Valid options are "Linux" for the Linux console  mode
342              driver,  "BSD"  for  the  NetBSD/OpenBSD  PC speaker driver, and
343              "SDL" for SDL-based emulated PC speaker playback (using the dig‐
344              ital output).
345
346       OPL_DRIVER
347              When  using  OPL MIDI playback, this environment variable speci‐
348              fies an OPL backend driver to use.  Valid options are "SDL"  for
349              an  SDL-based  software emulated OPL chip, "Linux" for the Linux
350              hardware OPL driver, and "OpenBSD" for the OpenBSD/NetBSD  hard‐
351              ware OPL driver.
352
353              Generally  speaking, a real hardware OPL chip sounds better than
354              software  emulation;  however,  modern  machines  do  not  often
355              include  one. If present, it may still require extra work to set
356              up and elevated security privileges to access.
357
358
359

FILES

361       $HOME/.local/share/chocolate-doom/strife.cfg
362              The  main  configuration  file  for   Chocolate   Strife.    See
363              strife.cfg(5).
364
365       $HOME/.local/share/chocolate-doom/chocolate-strife.cfg
366              Extra configuration values that are specific to Chocolate Strife
367              and not present in Vanilla Strife.  See chocolate-strife.cfg(5).
368

SEE ALSO

370       chocolate-doom(6), chocolate-server(6), chocolate-setup(6)
371
372

HISTORY

374       The source code for Strife was lost, which means, unlike the  code  for
375       all  the other commercial DOOM-engine games, it cannot be released. The
376       only access we have to the code is the binary executable file.  Reverse
377       engineering  tools  were employed to disassemble and decompile the exe‐
378       cutables, which were cross- referenced against the Linux DOOM  and  DOS
379       Heretic  sources and painstakingly combed over multiple times, instruc‐
380       tion-by-instruction, to ensure that the resulting  Chocolate-Doom-based
381       executable is as close as possible to the original.
382
383

LEGALITY

385       Reverse  engineering  is  a  protected activity so long as the original
386       code is not used directly in the product. Due to  the  vast  amount  of
387       information  lost  through  the process of compilation, and the need to
388       refactor large portions of code  in  order  to  eliminate  non-portable
389       idioms  or  to  adapt  them properly to Chocolate Doom's framework, the
390       resulting code behaves the same, but is not the *same* code.
391
392       In addition, James Monroe and John Carmack have both stated  that  they
393       have  no  objections  to  the  project.  Because  they are the original
394       authors of the code, and neither Rogue nor their  publisher,  Velocity,
395       Inc.,  exist  any  longer  as legal entities, this is effectively legal
396       permission.
397
398

BUGS

400       Chocolate Strife is almost, but not entirely perfect, in recreating the
401       behavior of Vanilla Strife.  Help us by reporting any discrepancies you
402       might notice between this executable and the vanilla DOS program.
403
404       However, do *not* report any glitch  that  you  can  replicate  in  the
405       vanilla  EXE  as  a  bug. The point of Chocolate Strife, like Chocolate
406       Doom before it, is to be as bug-compatible with the  original  game  as
407       possible. Also be aware that some glitches are impossible to compatibly
408       recreate, and wherever this is the case, Chocolate Strife has erred  on
409       the  side  of  not  crashing  the  program, for example by initializing
410       pointers to NULL rather than using them without setting a value first.
411
412

AUTHORS

414       Chocolate Strife is part of the Chocolate Doom project. It was  reverse
415       engineered  from  the  DOS versions of Strife by James Haley and Samuel
416       Villarreal.  Chocolate Doom was written and maintained by Simon Howard,
417       and is based on the LinuxDoom source code released by Id Software.
418
420       Copyright © id Software Inc.  Copyright © 2005-2013 Simon Howard, James
421       Haley, Samuel Villarreal.
422       This is free software.  You may redistribute copies  of  it  under  the
423       terms       of       the      GNU      General      Public      License
424       <http://www.gnu.org/licenses/gpl.html>.  There is NO WARRANTY,  to  the
425       extent permitted by law.
426
427
428
429
430                                                           chocolate-strife(6)
Impressum