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 -1 Don't scale up the screen. Implies -window.
102
103 -2 Double up the screen to 2x its normal size. Implies -window.
104
105 -3 Double up the screen to 3x its normal size. Implies -window.
106
107 -fullscreen
108 Run in fullscreen mode.
109
110 -geometry <WxY>
111 Specify the dimensions of the window. Implies -window.
112
113 -height <y>
114 Specify the screen height, in pixels. Implies -window.
115
116 -noblit
117 Disable blitting the screen.
118
119 -nodraw
120 Disable rendering the screen entirely.
121
122 -nograbmouse
123 Don't grab the mouse when running in windowed mode.
124
125 -nomouse
126 Disable the mouse.
127
128 -width <x>
129 Specify the screen width, in pixels. Implies -window.
130
131 -window
132 Run in a window.
133
134
136 -maxdemo <size>
137 Specify the demo buffer size (KiB)
138
139 -playdemo <demo>
140 Play back the demo named demo.lmp.
141
142 -record <x>
143 Record a demo named x.lmp.
144
145 -solo-net
146 Play back a demo recorded in a netgame with a single player.
147
148 -strictdemos
149 When recording or playing back demos, disable any extensions of
150 the vanilla demo format - record demos as vanilla would do, and
151 play back demos as vanilla would do.
152
153 -timedemo <demo>
154 Play back the demo named demo.lmp, determining the framerate of
155 the screen.
156
157
159 -altdeath
160 Start a deathmatch game. Weapons do not stay in place and all
161 items respawn after 30 seconds.
162
163 -autojoin
164 Automatically search the local LAN for a multiplayer server and
165 join it.
166
167 -avg Austin Virtual Gaming: end levels after 20 minutes.
168
169 -connect <address>
170 Connect to a multiplayer server running on the given address.
171
172 -dedicated
173 Start a dedicated server, routing packets but not participating
174 in the game itself.
175
176 -dup <n>
177 Reduce the resolution of the game by a factor of n, reducing the
178 amount of network bandwidth needed.
179
180 -extratics <n>
181 Send n extra tics in every packet as insurance against dropped
182 packets.
183
184 -left Run as the left screen in three screen mode.
185
186 -localsearch
187 Search the local LAN for running servers.
188
189 -newsync
190 Use new network client sync code rather than the classic sync
191 code. This is currently disabled by default because it has some
192 bugs.
193
194 -nodes <n>
195 Autostart the netgame when n nodes (clients) have joined the
196 server.
197
198 -port <n>
199 Use the specified UDP port for communications, instead of the
200 default (2342).
201
202 -privateserver
203 When running a server, don't register with the global master
204 server. Implies -server.
205
206 -query <address>
207 Query the status of the server running on the given IP address.
208
209 -right Run as the right screen in three screen mode.
210
211 -search
212 Query the Internet master server for a global list of active
213 servers.
214
215 -server
216 Start a multiplayer server, listening for connections.
217
218 -servername <name>
219 When starting a network server, specify a name for the server.
220
221 -solo-net
222 Start the game playing as though in a netgame with a single
223 player. This can also be used to play back single player
224 netgame demos.
225
226 -timer <n>
227 For multiplayer games: exit each level after n minutes.
228
229
231 -aa <files>
232 Equivalent to "-af <files> -as <files>".
233
234 -af <files>
235 Simulates the behavior of NWT's -af option, merging flats into
236 the main IWAD directory. Multiple files may be specified.
237
238 -as <files>
239 Simulates the behavior of NWT's -as option, merging sprites into
240 the main IWAD directory. Multiple files may be specified.
241
242 -deh <files>
243 Load the given dehacked patch(es)
244
245 -merge <files>
246 Simulates the behavior of deutex's -merge option, merging a PWAD
247 into the main IWAD. Multiple files may be specified.
248
249 -nocheats
250 Ignore cheats in dehacked files.
251
252 -nwtmerge <files>
253 Simulates the behavior of NWT's -merge option. Multiple files
254 may be specified.
255
256
258 -donut <x> <y>
259 Use the specified magic values when emulating behavior caused by
260 memory overruns from improperly constructed donuts. In Vanilla
261 Strife this can differ depending on the operating system. The
262 default (if this option is not specified) is to emulate the
263 behavior when running under Windows 98.
264
265 -gameversion <version>
266 Emulate a specific version of Strife. Valid values are "1.2" and
267 "1.31".
268
269 -setmem <version>
270 Specify DOS version to emulate for NULL pointer dereference emu‐
271 lation. Supported versions are: dos622, dos71, dosbox. The
272 default is to emulate DOS 7.1 (Windows 98).
273
274 -spechit <n>
275 Use the specified magic value when emulating spechit overruns.
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)