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 -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
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
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
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
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
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
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
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
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
370 chocolate-doom(6), chocolate-server(6), chocolate-setup(6)
371
372
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
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
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
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)