1chocolate-strife(6) Games Manual chocolate-strife(6)
2
3
4
6 chocolate-strife - historically compatible strife engine
7
9 chocolate-strife [OPTIONS]
10
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
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 -skill <skill>
81 Set the game skill, 1-5 (1: easiest, 5: hardest). A skill of 0
82 disables all monsters.
83
84 -turbo <x>
85 Turbo mode. The player's speed is multiplied by x%. If unspec‐
86 ified, x defaults to 200. Values are rounded up to 10 and down
87 to 400.
88
89 -warp x
90 Start a game immediately, warping to level x.
91
92 -work Set Rogue playtesting mode (godmode, noclip toggled by
93 backspace)
94
95
97 -donut <x> <y>
98 Use the specified magic values when emulating behavior caused by
99 memory overruns from improperly constructed donuts. In Vanilla
100 Strife this can differ depending on the operating system. The
101 default (if this option is not specified) is to emulate the
102 behavior when running under Windows 98.
103
104 -gameversion <version>
105 Emulate a specific version of Strife. Valid values are "1.2" and
106 "1.31".
107
108 -setmem <version>
109 Specify DOS version to emulate for NULL pointer dereference emu‐
110 lation. Supported versions are: dos622, dos71, dosbox. The
111 default is to emulate DOS 7.1 (Windows 98).
112
113 -spechit <n>
114 Use the specified magic value when emulating spechit overruns.
115
116
118 -maxdemo <size>
119 Specify the demo buffer size (KiB)
120
121 -playdemo <demo>
122 Play back the demo named demo.lmp.
123
124 -record <x>
125 Record a demo named x.lmp.
126
127 -solo-net
128 Play back a demo recorded in a netgame with a single player.
129
130 -strictdemos
131 When recording or playing back demos, disable any extensions of
132 the vanilla demo format - record demos as vanilla would do, and
133 play back demos as vanilla would do.
134
135 -timedemo <demo>
136 Play back the demo named demo.lmp, determining the framerate of
137 the screen.
138
139
141 -1 Don't scale up the screen.
142
143 -2 Double up the screen to 2x its normal size.
144
145 -3 Double up the screen to 3x its normal size.
146
147 -8in32 Set the color depth of the screen to 32 bits per pixel.
148
149 -bpp <bpp>
150 Specify the color depth of the screen, in bits per pixel.
151
152 -fullscreen
153 Run in fullscreen mode.
154
155 -geometry <WxY>[wf]
156 Specify the dimensions of the window or fullscreen mode. An
157 optional letter of w or f appended to the dimensions selects
158 windowed or fullscreen mode.
159
160 -grabmouse
161 Grab the mouse when running in windowed mode.
162
163 -height <y>
164 Specify the screen height, in pixels.
165
166 -noblit
167 Disable blitting the screen.
168
169 -nodraw
170 Disable rendering the screen entirely.
171
172 -nograbmouse
173 Don't grab the mouse when running in windowed mode.
174
175 -nomouse
176 Disable the mouse.
177
178 -nonovert
179 Enable vertical mouse movement.
180
181 -novert
182 Disable vertical mouse movement.
183
184 -width <x>
185 Specify the screen width, in pixels.
186
187 -window
188 Run in a window.
189
190
192 -altdeath
193 Start a deathmatch game. Weapons do not stay in place and all
194 items respawn after 30 seconds.
195
196 -autojoin
197 Automatically search the local LAN for a multiplayer server and
198 join it.
199
200 -avg Austin Virtual Gaming: end levels after 20 minutes.
201
202 -connect <address>
203 Connect to a multiplayer server running on the given address.
204
205 -dedicated
206 Start a dedicated server, routing packets but not participating
207 in the game itself.
208
209 -dup <n>
210 Reduce the resolution of the game by a factor of n, reducing the
211 amount of network bandwidth needed.
212
213 -extratics <n>
214 Send n extra tics in every packet as insurance against dropped
215 packets.
216
217 -ignoreversion
218 When running a netgame server, ignore version mismatches between
219 the server and the client. Using this option may cause game
220 desyncs to occur, or differences in protocol may mean the
221 netgame will simply not function at all.
222
223 -left Run as the left screen in three screen mode.
224
225 -localsearch
226 Search the local LAN for running servers.
227
228 -newsync
229 Use new network client sync code rather than the classic sync
230 code. This is currently disabled by default because it has some
231 bugs.
232
233 -nodes <n>
234 Autostart the netgame when n nodes (clients) have joined the
235 server.
236
237 -port <n>
238 Use the specified UDP port for communications, instead of the
239 default (2342).
240
241 -privateserver
242 When running a server, don't register with the global master
243 server. Implies -server.
244
245 -query <address>
246 Query the status of the server running on the given IP address.
247
248 -right Run as the right screen in three screen mode.
249
250 -search
251 Query the Internet master server for a global list of active
252 servers.
253
254 -server
255 Start a multiplayer server, listening for connections.
256
257 -servername <name>
258 When starting a network server, specify a name for the server.
259
260 -solo-net
261 Start the game playing as though in a netgame with a single
262 player. This can also be used to play back single player
263 netgame demos.
264
265 -timer <n>
266 For multiplayer games: exit each level after n minutes.
267
268
270 -aa <files>
271 Equivalent to "-af <files> -as <files>".
272
273 -af <files>
274 Simulates the behavior of NWT's -af option, merging flats into
275 the main IWAD directory. Multiple files may be specified.
276
277 -as <files>
278 Simulates the behavior of NWT's -as option, merging sprites into
279 the main IWAD directory. Multiple files may be specified.
280
281 -deh <files>
282 Load the given dehacked patch(es)
283
284 -merge <files>
285 Simulates the behavior of deutex's -merge option, merging a PWAD
286 into the main IWAD. Multiple files may be specified.
287
288 -nocheats
289 Ignore cheats in dehacked files.
290
291 -nwtmerge <files>
292 Simulates the behavior of NWT's -merge option. Multiple files
293 may be specified.
294
295
297 To play, an IWAD file is needed. This is a large file containing all of
298 the levels, graphics, sound effects, music and other material that make
299 up the game. IWAD files are named according to the game; the standard
300 names are:
301
302 doom.wad, doom1.wad, doom2.wad, tnt.wad, plutonia.wad
303 Doom, Doom II, Final Doom
304
305 heretic.wad, heretic1.wad, hexen.wad, strife1.wad
306 Heretic, Hexen and Strife (commercial Doom engine games).
307
308 hacx.wad, chex.wad
309 Hacx and Chex Quest - more obscure games based on the Doom
310 engine.
311
312 freedm.wad, freedoom1.wad, freedoom2.wad
313 The Freedoom open content IWAD files.
314
315 The following directory paths are searched in order to find an IWAD:
316
317 Current working directory
318 Any IWAD files found in the current working directory will be
319 used in preference to IWADs found in any other directories.
320
321 DOOMWADDIR
322 This environment variable can be set to contain a path to a sin‐
323 gle directory in which to look for IWAD files. This environment
324 variable is supported by most Doom source ports.
325
326 DOOMWADPATH
327 This environment variable, if set, can contain a colon-separated
328 list of directories in which to look for IWAD files, or alterna‐
329 tively full paths to specific IWAD files.
330
331 $HOME/.local/share/games/doom
332 Writeable directory in the user's home directory. The path can
333 be overridden using the XDG_DATA_HOME environment variable (see
334 the XDG Base Directory Specification).
335
336 /usr/local/share/games/doom, /usr/share/games/doom
337 System-wide locations that can be accessed by all users. The
338 path /usr/share/games/doom is a standard path that is supported
339 by most Doom source ports. These paths can be overridden using
340 the XDG_DATA_DIRS environment variable (see the XDG Base Direc‐
341 tory Specification).
342
343 The above can be overridden on a one-time basis by using the -iwad com‐
344 mand line parameter to provide the path to an IWAD file to use. This
345 parameter can also be used to specify the name of a particular IWAD to
346 use from one of the above paths. For example, '-iwad doom.wad' will
347 search the above paths for the file doom.wad to use.
348
350 This section describes environment variables that control Chocolate
351 Strife's behavior.
352
353 DOOMWADDIR, DOOMWADPATH
354 See the section, IWAD SEARCH PATHS above.
355
356 PCSOUND_DRIVER
357 When running in PC speaker sound effect mode, this environment
358 variable specifies a PC speaker driver to use for sound effect
359 playback. Valid options are "Linux" for the Linux console mode
360 driver, "BSD" for the NetBSD/OpenBSD PC speaker driver, and
361 "SDL" for SDL-based emulated PC speaker playback (using the dig‐
362 ital output).
363
364 OPL_DRIVER
365 When using OPL MIDI playback, this environment variable speci‐
366 fies an OPL backend driver to use. Valid options are "SDL" for
367 an SDL-based software emulated OPL chip, "Linux" for the Linux
368 hardware OPL driver, and "OpenBSD" for the OpenBSD/NetBSD hard‐
369 ware OPL driver.
370
371 Generally speaking, a real hardware OPL chip sounds better than
372 software emulation; however, modern machines do not often
373 include one. If present, it may still require extra work to set
374 up and elevated security privileges to access.
375
376
377
379 $HOME/.chocolate-doom/strife.cfg
380 The main configuration file for Chocolate Strife. See
381 strife.cfg(5).
382
383 $HOME/.chocolate-doom/chocolate-strife.cfg
384 Extra configuration values that are specific to Chocolate Strife
385 and not present in Vanilla Strife. See chocolate-strife.cfg(5).
386
388 chocolate-doom(6), chocolate-server(6), chocolate-setup(6)
389
390
392 The source code for Strife was lost, which means, unlike the code for
393 all the other commercial DOOM-engine games, it cannot be released. The
394 only access we have to the code is the binary executable file. Reverse
395 engineering tools were employed to disassemble and decompile the exe‐
396 cutables, which were cross- referenced against the Linux DOOM and DOS
397 Heretic sources and painstakingly combed over multiple times, instruc‐
398 tion-by-instruction, to ensure that the resulting Chocolate-Doom-based
399 executable is as close as possible to the original.
400
401
403 Reverse engineering is a protected activity so long as the original
404 code is not used directly in the product. Due to the vast amount of
405 information lost through the process of compilation, and the need to
406 refactor large portions of code in order to eliminate non-portable
407 idioms or to adapt them properly to Chocolate Doom's framework, the
408 resulting code behaves the same, but is not the *same* code.
409
410 In addition, James Monroe and John Carmack have both stated that they
411 have no objections to the project. Because they are the original
412 authors of the code, and neither Rogue nor their publisher, Velocity,
413 Inc., exist any longer as legal entities, this is effectively legal
414 permission.
415
416
418 Chocolate Strife is almost, but not entirely perfect, in recreating the
419 behavior of Vanilla Strife. Help us by reporting any discrepancies you
420 might notice between this executable and the vanilla DOS program.
421
422 However, do *not* report any glitch that you can replicate in the
423 vanilla EXE as a bug. The point of Chocolate Strife, like Chocolate
424 Doom before it, is to be as bug-compatible with the original game as
425 possible. Also be aware that some glitches are impossible to compatibly
426 recreate, and wherever this is the case, Chocolate Strife has erred on
427 the side of not crashing the program, for example by initializing
428 pointers to NULL rather than using them without setting a value first.
429
430
432 Chocolate Strife is part of the Chocolate Doom project. It was reverse
433 engineered from the DOS versions of Strife by James Haley and Samuel
434 Villarreal. Chocolate Doom was written and maintained by Simon Howard,
435 and is based on the LinuxDoom source code released by Id Software.
436
438 Copyright © id Software Inc. Copyright © 2005-2013 Simon Howard, James
439 Haley, Samuel Villarreal.
440 This is free software. You may redistribute copies of it under the
441 terms of the GNU General Public License
442 <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the
443 extent permitted by law.
444
445
446
447
448 chocolate-strife(6)