forked from fabiangreffrath/crispy-doom
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.Crispy.htm
377 lines (364 loc) · 39.7 KB
/
README.Crispy.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
<!DOCTYPE html>
<html lang="en" dir="ltr" class="client-nojs">
<head>
<meta charset="UTF-8"/>
<title>Crispy Doom - Chocolate Doom</title>
<script>document.documentElement.className = document.documentElement.className.replace( /(^|\s)client-nojs(\s|$)/, "$1client-js$2" );</script>
<script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Crispy_Doom","wgTitle":"Crispy Doom","wgCurRevisionId":2486,"wgRevisionId":2486,"wgArticleId":254,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":"Fabian","wgUserGroups":["*","user","autoconfirmed"],"wgCategories":["Forks"],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"Crispy_Doom","wgRelevantArticleId":254,"wgRequestId":"1b143e80249d9b8c0a260b20","wgUserId":627,"wgUserEditCount":117,"wgUserRegistration":1373885836000,"wgUserNewMsgRevisionId":null,"wgIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgPreferredVariant":"en"});mw.loader.implement("user.options",function($,jQuery,require,module){mw.user.options.set({"rememberpassword":"1"});});mw.loader.implement("user.tokens",function ( $, jQuery, require, module ) {
mw.user.tokens.set({"editToken":"bec118cc9bc906d9baca8d7f8ff3248f59fde51a+\\","patrolToken":"91b02b3b34c05f2718f32c53f0df8a7c59fde51a+\\","watchToken":"6f0ee370d77293df2f16a342560e27a859fde51a+\\","csrfToken":"bec118cc9bc906d9baca8d7f8ff3248f59fde51a+\\"});/*@nomin*/;
});mw.loader.load(["mediawiki.page.startup","skins.vector.js"]);});</script>
<link rel="stylesheet" href="/wiki/load.php?debug=false&lang=en&modules=mediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.sectionAnchor%7Cmediawiki.skinning.interface%7Cskins.vector.styles&only=styles&printable=1&skin=vector"/>
<meta name="ResourceLoaderDynamicStyles" content=""/>
<link rel="stylesheet" href="/wiki/load.php?debug=false&lang=en&modules=site&only=styles&printable=1&skin=vector"/>
<script async="" src="/wiki/load.php?debug=false&lang=en&modules=startup&only=scripts&printable=1&skin=vector"></script>
<meta name="generator" content="MediaWiki 1.27.3"/>
<meta name="robots" content="noindex,follow"/>
<link rel="alternate" type="application/x-wiki" title="Edit" href="/wiki/index.php?title=Crispy_Doom&action=edit"/>
<link rel="edit" title="Edit" href="/wiki/index.php?title=Crispy_Doom&action=edit"/>
<link rel="shortcut icon" href="/favicon.png"/>
<link rel="search" type="application/opensearchdescription+xml" href="/wiki/opensearch_desc.php" title="Chocolate Doom (en)"/>
<link rel="EditURI" type="application/rsd+xml" href="//www.chocolate-doom.org/wiki/api.php?action=rsd"/>
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html"/>
<link rel="alternate" type="application/atom+xml" title="Chocolate Doom Atom feed" href="/wiki/index.php?title=Special:RecentChanges&feed=atom"/>
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-Crispy_Doom rootpage-Crispy_Doom skin-vector action-view">
<div id="mw-page-base" class="noprint"></div>
<div id="mw-head-base" class="noprint"></div>
<div id="content" class="mw-body" role="main">
<a id="top"></a>
<div class="mw-indicators">
</div>
<h1 id="firstHeading" class="firstHeading" lang="en">Crispy Doom</h1>
<div id="bodyContent" class="mw-body-content">
<div id="siteSub">From Chocolate Doom</div>
<div id="contentSub"></div>
<div id="jump-to-nav" class="mw-jump">
Jump to: <a href="#mw-head">navigation</a>, <a href="#p-search">search</a>
</div>
<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div class="thumb tright"><div class="thumbinner" style="width:302px;"><a href="/wiki/index.php/File:Crispy-doom.png" class="image"><img alt="" src="/wiki/images/thumb/b/be/Crispy-doom.png/300px-Crispy-doom.png" width="300" height="300" class="thumbimage" srcset="/wiki/images/thumb/b/be/Crispy-doom.png/450px-Crispy-doom.png 1.5x, /wiki/images/b/be/Crispy-doom.png 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/index.php/File:Crispy-doom.png" class="internal" title="Enlarge"></a></div>The Crispy Doom icon</div></div></div>
<div class="noprint" style="clear: right; border: solid #a3bfb1 1px; margin: 0 0 1em 1em; font-size: 90%; background: #cef2e0; width: 250px; padding: 4px; spacing: 0px; text-align: left; float: right;">
<div style="float: left;"> <img alt="DoomWiki.org" src="/wiki/images/thumb/b/bd/Doomwiki.png/50px-Doomwiki.png" title="DoomWiki.org" width="50" height="50" srcset="/wiki/images/thumb/b/bd/Doomwiki.png/75px-Doomwiki.png 1.5x, /wiki/images/thumb/b/bd/Doomwiki.png/100px-Doomwiki.png 2x" /></div>
<div style="margin-left: 60px;">For more information on this article, visit the <a href="https://doomwiki.org/wiki/Crispy_Doom" class="extiw" title="doom:Crispy Doom">Crispy Doom</a> page on the <a href="https://doomwiki.org/wiki/Entryway" class="extiw" title="doom:Entryway">Doom Wiki</a>.</div>
</div>
<p>Crispy Doom is a limit-removing enhanced-resolution Doom source port based on <a href="/wiki/index.php/Chocolate_Doom" title="Chocolate Doom">Chocolate Doom</a>.
<br />Its name means that 640x400 looks "crisp" and is also a slight <a rel="nofollow" class="external text" href="http://www.mathsisfun.com/recipie.html">reference</a> to its origin.
</p>
<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Synopsis"><span class="tocnumber">1</span> <span class="toctext">Synopsis</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#Objectives_and_features"><span class="tocnumber">2</span> <span class="toctext">Objectives and features</span></a>
<ul>
<li class="toclevel-2 tocsection-3"><a href="#New_command_line_parameters"><span class="tocnumber">2.1</span> <span class="toctext">New command line parameters</span></a></li>
<li class="toclevel-2 tocsection-4"><a href="#New_cheat_codes"><span class="tocnumber">2.2</span> <span class="toctext">New cheat codes</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-5"><a href="#Compatibility"><span class="tocnumber">3</span> <span class="toctext">Compatibility</span></a></li>
<li class="toclevel-1 tocsection-6"><a href="#Download"><span class="tocnumber">4</span> <span class="toctext">Download</span></a>
<ul>
<li class="toclevel-2 tocsection-7"><a href="#Sources"><span class="tocnumber">4.1</span> <span class="toctext">Sources</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-8"><a href="#History_of_changes"><span class="tocnumber">5</span> <span class="toctext">History of changes</span></a>
<ul>
<li class="toclevel-2 tocsection-9"><a href="#Changes_of_Crispy_Doom_5.0_from_Crispy_Doom_4.3"><span class="tocnumber">5.1</span> <span class="toctext">Changes of Crispy Doom 5.0 from Crispy Doom 4.3</span></a></li>
<li class="toclevel-2 tocsection-10"><a href="#Changes_of_Crispy_Doom_4.3_from_Crispy_Doom_4.2"><span class="tocnumber">5.2</span> <span class="toctext">Changes of Crispy Doom 4.3 from Crispy Doom 4.2</span></a></li>
<li class="toclevel-2 tocsection-11"><a href="#Changes_of_Crispy_Doom_4.2_from_Crispy_Doom_4.1"><span class="tocnumber">5.3</span> <span class="toctext">Changes of Crispy Doom 4.2 from Crispy Doom 4.1</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-12"><a href="#Versioning"><span class="tocnumber">6</span> <span class="toctext">Versioning</span></a></li>
<li class="toclevel-1 tocsection-13"><a href="#Contact"><span class="tocnumber">7</span> <span class="toctext">Contact</span></a></li>
<li class="toclevel-1 tocsection-14"><a href="#Acknowledgement"><span class="tocnumber">8</span> <span class="toctext">Acknowledgement</span></a></li>
<li class="toclevel-1 tocsection-15"><a href="#Legalese"><span class="tocnumber">9</span> <span class="toctext">Legalese</span></a></li>
</ul>
</div>
<h2><span class="mw-headline" id="Synopsis">Synopsis</span></h2>
<p>Crispy Doom is a friendly fork of <a href="/wiki/index.php/Chocolate_Doom" title="Chocolate Doom">Chocolate Doom</a> that provides a higher display resolution, removes the <a href="https://doomwiki.org/wiki/Static_limits" class="extiw" title="doom:Static limits">static limits</a> of the Doom engine and offers further optional visual, tactical and physical enhancements while remaining entirely config file, savegame, netplay and demo <a href="#Compatibility">compatibile</a> with the original.
</p>
<h2><span class="mw-headline" id="Objectives_and_features">Objectives and features</span></h2>
<p>Crispy Doom is a source port that aims to provide a faithful Doom gaming experience while also featuring some user-requested improvements and enhancements. It is forked off of Chocolate Doom to take advantage of its free and open-source code base, portability, accuracy and compatibility with Vanilla Doom.
</p><p>Its core features are:
</p>
<ul><li> Enhanced 640x400 display resolution, with the original 320x200 resolution still available in the "Graphics Detail: Low" mode.</li>
<li> Removal of all static engine limits, or at least raising of the less crucial ones.</li>
<li> Full support for the "Doom Classic" WADs shipped with the "Doom 3: BFG Edition", especially the "No Rest For The Living" episode shipped in the NERVE.WAD file.</li></ul>
<p>Furthermore, the following optional user-visible features are available:
</p>
<ul><li> Jumping.</li>
<li> Free vertical looking, including mouse look and vertical aiming.</li>
<li> A new minimal Crispy HUD, displaying only the status bar numbers.</li>
<li> Colorized status bar numbers, HUD texts and blood sprites for certain monsters.</li>
<li> Tranlucency for certain sprites and status bar elements in the Crispy HUD.</li>
<li> Randomly mirrored death animations and corpse sprites.</li>
<li> Players may walk over or under monsters and hanging corpses.</li>
<li> Aiming support by a crosshair that may get directly rendered into the game world.</li>
<li> Centered Weapons when firing, weapon recoil thrust and pitch.</li>
<li> Reports whenever a secret is revealed.</li>
<li> Level statistics in the Automap.</li></ul>
<p>All of these features are disabled by default and need to get enabled either in the in-game "Crispness" menu or in the crispy-doom-setup tool. They are implemented in a way that preserves demo-compatibility with Vanilla Doom and network game compatibility with Chocolate Doom. Furthermore, Crispy Doom's savegames and config files are compatible, <a href="#Compatibility">though not identical</a>, to Vanilla Doom's.
</p><p>Crispy Doom strives for maximum compatibility with all "limit-removing Vanilla" maps -- but not Boom or ZDoom maps. Many additional less user-visible features have been implemented, e.g. fixed engine limitations and crashes, fixed rendering bugs, fixed harmless game logic bugs, full support for DEHACKED files and lumps in BEX format, additional and improved cheat codes, an improved Automap, and many more! For a detailed list of features and changes please refer to the release notes below.
</p>
<h3><span class="mw-headline" id="New_command_line_parameters">New command line parameters</span></h3>
<ul><li> <tt>-mergedump <file></tt> merges the PWAD file(s) given on the command line with the IWAD file and writes the resulting data into the <tt><file></tt> given as argument. Might be considered as a replacement for the <tt>DEUSF.EXE</tt> tool.</li>
<li> <tt>-fliplevels</tt> loads mirrored versions of the maps. <b>WARNING: This is the default on April 1st!</b></li>
<li> <tt>-blockmap</tt> forces a (re-)building of the BLOCKMAP lumps for loaded maps.</li>
<li> <tt>-monosfx</tt> plays all sound effects in mono (new in 5.0).</li></ul>
<h3><span class="mw-headline" id="New_cheat_codes">New cheat codes</span></h3>
<ul><li> <tt>TNTWEAP</tt> followed by a weapon number gives or removes this weapon (8 = Chainsaw, 9 = SSG). Try to load Doom 1 with <tt>DOOM2.WAD</tt> as a PWAD and type <tt>TNTWEAP9</tt> to play the SSG in Doom 1.</li>
<li> <tt>TNTEM</tt>, <tt>KILLEM</tt> or <tt>FHHALL</tt> kill all monsters on the current map (and disables all cube spitters).</li>
<li> <tt>SPECHITS</tt> triggers all <a href="https://doomwiki.org/wiki/Linedef_type" class="extiw" title="doom:Linedef type">Linedef actions</a> on a map at once, no matter if they are enabled by pushing, walking over or shooting or whether they require a key or not. It also triggers all boss monster and Commander Keen actions if possible.</li>
<li> <tt>NOTARGET</tt> or <tt>FHSHH</tt> toggle deaf and blind monsters that do not act until attacked.</li>
<li> <tt>TNTHOM</tt> toggles the flashing <a href="https://doomwiki.org/wiki/Hall_of_mirrors_effect" class="extiw" title="doom:Hall of mirrors effect">HOM</a> indicator (disabled by default).</li>
<li> <tt>SHOWFPS</tt> or <tt>IDRATE</tt> toggle printing the FPS in the upper right corner.</li>
<li> <tt>NOMOMENTUM</tt> toggles a debug aid for pixel-perfect positioning on a map (not recommended to use in-game).</li>
<li> <tt>GOOBERS</tt> triggers an easter egg, i.e. an "homage to an old friend". ;-)</li>
<li> <tt>IDBEHOLD0</tt> disables all currently active power-ups.</li>
<li> <tt>IDCLEV00</tt> restarts the current level.</li></ul>
<h2><span class="mw-headline" id="Compatibility">Compatibility</span></h2>
<ul><li> Savegames saved by Crispy Doom are still <b>compatible with Vanilla Doom</b>, but are <b>not identical</b> anymore to the files that Vanilla Doom would have saved. This is caused by several reasons:
<ul><li> In order to distinguish the NRFTL levels from the regular Doom 2 levels, Crispy Doom uses the <tt>gameepisode</tt> variable, which is used in Doom 1 to distinguish between the game episodes but is hitherto unused in Doom 2 (e.g. Chocolate Doom ignores the <tt>gameepisode</tt> variable in Doom 2). Consequently, savegames that have been recorded playing NRFTL in Crispy Doom can be loaded in Chocolate Doom if the latter is invoked with "<tt>-file nerve.wad</tt>". On the other hand, savegames that are recorded in Chocolate Doom with the "<tt>-file nerve.wad</tt>" parameter cannot immediately be loaded in Crispy Doom without the "<tt>-file nerve.wad</tt>" parameter. In order to "convert" savegames to Crispy Doom, run it with the "<tt>-file nerve.wad</tt>" parameter, load the savegames and save them again. It should then be possible to load them without the "<tt>-file nerve.wad</tt>" parameter in Crispy Doom.</li>
<li> Crispy Doom preserves the <tt>mobj->target</tt> and <tt>mobj->tracers</tt> fields when saving a game by replacing their contents with specific indices. These indices are then converted back into the corresponding pointers in Crispy Doom when the game is loaded again. In Vanilla Doom, however, the contents of the <tt>mobj->target</tt> and <tt>mobj->tracers</tt> fields are disregarded and get overwritten with <tt>NULL</tt> when loading the game. Games saved in Vanilla Doom, on the other hand, still contain pointers in the <tt>mobj->target</tt> and <tt>mobj->tracers</tt> fields, but these will not match any of the indices expected by Crispy Doom and will thus get overwritten with <tt>NULL</tt> as in Vanilla Doom.</li></ul></li></ul>
<ul><li> If you are going to share savegames between Crispy Doom and Chocolate Doom, make sure to load all PWADs with the <tt>-merge</tt> parameter in the latter.</li></ul>
<ul><li> The Crispy HUD is displayed when <tt>blocksize == 12</tt>, which isn't supported by Chocolate Doom. To retain config file compatibility, quit the game with any other view size.</li></ul>
<ul><li> The "flipped levels" and "SSG available in Doom 1" features introduced in Crispy Doom 1.3 are considered strictly <b>experimental</b>! They may produce savegames, demo files or netgames that are not compatible with Chocolate Doom, Vanilla Doom or previous versions of Crispy Doom at all. Furthermore, the <tt>SPECHITS</tt> cheat introduced in Crispy Doom 1.5 may leave a map in a completely inconsistent state and games saved after using it may even cause Vanilla to crash by exceeding static limits.</li></ul>
<h2><span class="mw-headline" id="Download">Download</span></h2>
<p>Binaries for Windows XP / Vista / 7 / 8.1 / 10 (both x86 and x64 editions) are available here:
<br /><a rel="nofollow" class="external free" href="http://www.greffrath.com/~fabian/crispy-doom_5.0.zip">http://www.greffrath.com/~fabian/crispy-doom_5.0.zip</a>
</p><p>A supplementary Music Pack that contains the fluidsynth library and a freely-available soundfont is available here:
<br /><a rel="nofollow" class="external free" href="http://www.greffrath.com/~fabian/crispy-doom-music-pack_5.0.zip">http://www.greffrath.com/~fabian/crispy-doom-music-pack_5.0.zip</a>
</p><p>Crispy Doom can play nearly all variants of Doom. If you don't own any, you may download the <a rel="nofollow" class="external text" href="http://cdn.debian.net/debian/pool/non-free/d/doom-wad-shareware/doom-wad-shareware_1.9.fixed.orig.tar.gz">Shareware version of Doom</a>, extract it and copy the DOOM1.WAD file into your Crispy Doom directory. Alternatively, you may want to play Crispy Doom with <a href="/wiki/index.php/Freedoom" title="Freedoom">Freedoom</a> and a MegaWAD.
</p>
<h3><span class="mw-headline" id="Sources">Sources</span></h3>
<p>The Crispy Doom source code is available at GitHub: <a rel="nofollow" class="external free" href="https://github.com/fabiangreffrath/crispy-doom">https://github.com/fabiangreffrath/crispy-doom</a>.
It can be <a rel="nofollow" class="external text" href="https://github.com/fabiangreffrath/crispy-doom/releases">downloaded in either ZIP or TAR.GZ format</a>
or cloned via
</p>
<pre>git clone <a rel="nofollow" class="external free" href="https://github.com/fabiangreffrath/crispy-doom.git">https://github.com/fabiangreffrath/crispy-doom.git</a>
</pre>
<p>Compilation on Debian/Ubuntu systems should be as simple as
</p>
<pre>sudo apt-get install build-essential automake
sudo apt-get build-dep chocolate-doom
</pre>
<p>to install the prerequisites and then
</p>
<pre>cd crispy-doom
autoreconf -vif
./configure
make
</pre>
<p>After successful compilation the resulting binaries can be found in the <tt>src/</tt> directory.
</p>
<h2><span class="mw-headline" id="History_of_changes">History of changes</span></h2>
<h3><span class="mw-headline" id="Changes_of_Crispy_Doom_5.0_from_Crispy_Doom_4.3">Changes of Crispy Doom 5.0 from Crispy Doom 4.3</span></h3>
<p>Crispy Doom 5.0 has been released on November 04, 2017.
</p><p>This is the first release based on SDL2, merging Chocolate Doom's SDL2-branch which has yet to see its own release.
</p><p>Besides this major transition, it features the following changes and fixes:
</p>
<ul><li> The <tt>NUMCMAPS</tt> variable is now initialized to 32 to fix the missing "Finished" and "Now Entering" lines on the intermission screens for Doom 1 (bug introduced in Crispy 4.2).</li>
<li> Joystick look up/down (which has been introduced for the three non-Doom games in Choco's SDL2-branch) has been adapted to Doom.</li>
<li> Smooth scaling of the framebuffer content to the game window (which is the only choice in Choco's SDL2-branch) has been made optional with plain nearest interpolation as the other alternative.</li>
<li> The 60FPS and 70FPS rendering modes have been removed in favor of proper VSYNC.</li>
<li> DOS references in the game quit confirmation dialogs have been replaced with the name of the actual operating system.</li>
<li> A new <tt>-monosfx</tt> command line parameter has been introduced to play all sound effects in mono. Inspired by other Choco derivatives like Russian Doom and Riscos Doom.</li></ul>
<p>Crispy Doom 5.0 has merged all changes to the Chocolate Doom sdl2-branch up to commit <a rel="nofollow" class="external text" href="https://github.com/chocolate-doom/chocolate-doom/commit/413f4ecd7aae41229cc7b40ea3275970dc18cdb4"><tt>413f4ecd</tt></a>
</p>
<h3><span class="mw-headline" id="Changes_of_Crispy_Doom_4.3_from_Crispy_Doom_4.2">Changes of Crispy Doom 4.3 from Crispy Doom 4.2</span></h3>
<p>Crispy Doom 4.3 has been released on September 19, 2017.
</p><p>This quick fix release introduces improvements requested by ZeroMaster010 and is supposed to be the last release based on SDL1.
</p><p><b>Improvements</b>
</p>
<ul><li> The <tt>sector->soundtarget</tt> element is now saved in extended savegames.</li></ul>
<ul><li> The <tt>-shorttics</tt> command line option has been added to force low-resolution turning even when not recording a demo which is useful for demo run practice.</li></ul>
<ul><li> Smoother fake contrasts are disabled again as they disturb pixel perfect alignment for speedrunners.</li></ul>
<h3><span class="mw-headline" id="Changes_of_Crispy_Doom_4.2_from_Crispy_Doom_4.1">Changes of Crispy Doom 4.2 from Crispy Doom 4.1</span></h3>
<p>Crispy Doom 4.2 has been released on September 15, 2017.
</p><p>The changes since 4.1 are mostly polish of previously introduced features.
</p><p><b>Improvements</b>
</p>
<ul><li> DOS references have been removed from the game quit confirmation dialogs on Zodomaniac's request inspired by Doom Retro, now they say:<br /><tt>Press Y to quit.</tt><br /><tt>I wouldn't leave if i were you. Your desktop is much worse.</tt><br /><tt>You're trying to say you like your desktop better than me, right?</tt> and<br /><tt>Don't go now, there's a dimensional shambler waiting at the command prompt!</tt><br />Note: When switching to SDL2, the desktop references will be replaced by the platform name detected by SDL2 ;)</li>
<li> "Screen shot" message doesn't get burned into the screenshots anymore when they are taken one after another on Zodomaniac's report.</li>
<li> Map coordinates enabled by the <tt>IDMYPOS</tt> cheat are now persistent, i.e. they don't automatically disappear anymore after a few seconds.</li>
<li> The (<tt>sprframe->rotate == -1</tt>) case is handled since it has been made non-fatal.</li>
<li> Interpolation of player missiles for the first tic is suppressed.</li>
<li> Different spellings of similar cheats in other engines are now supported:<br />Kill all monsters and disable all cube spitters: <tt>TNTEM</tt> (PrBoom+), <tt>KILLEM</tt> (MBF), <tt>FHHALL</tt> (Doom95)<br />Toggle monsters being deaf and blind until attacked: <tt>NOTARGET</tt> (PrBoom+), <tt>FHSHH</tt> (Doom95)<br />Display framerate: <tt>SHOWFPS</tt>, <tt>IDRATE</tt> (PrBoom+)</li>
<li> Higher scaling video modes up to 3200x2400/3200x2000 are supported on Calinou's request.</li>
<li> Crashes with maps with unusual map numbers are prevented.</li>
<li> Music number under- and overflows for both Doom 1 and 2 are prevented.</li>
<li> Negative ammo values are not allowed anymore thanks to the report by Zodomaniac and AnotherLife.</li>
<li> Evil grin is now triggered when <tt>IDFA/IDKFA</tt> is used which is 1) rather reasonable by itself as <tt>ID(K)FA</tt> gives weapons and items and 2) prevents the grin triggering when the next random item is picked up that AnotherLife noticed.</li>
<li> The first extra state is explicitly set to 1089 and the first extra mapthing to 150 to remain in sync with Doom Retro.</li>
<li> Weapon sprite is removed from clean screenshots only in maximized screen (no HUD) mode now, it was awkward before when the status bar was rendered but the weapon wasn't.</li>
<li> Calling <tt>pspr</tt> action pointers from <tt>mobj</tt> states and vice versa won't crash the game anymore after Zodomaniac's and JNechaevsky's investigation.</li>
<li> Menu messages are always printed with shadows regardless of which menu is the current one. Thanks to JNechaevsly for spotting this.</li></ul>
<p>Crispy Doom 4.3 and 4.2 have merged all changes to the Chocolate Doom master branch up to commit <a rel="nofollow" class="external text" href="https://github.com/chocolate-doom/chocolate-doom/commit/83a71dd850fb02e571e2b5117f234395f8869a11"><tt>83a71dd8</tt></a>.
</p><p><b><a href="/wiki/index.php/Crispy_Doom/Changelog" title="Crispy Doom/Changelog">Previous changes</a></b>
</p>
<h2><span class="mw-headline" id="Versioning">Versioning</span></h2>
<p>Crispy Doom maintains a major and a minor version number. The major version number is increased whenever a new official version of Chocolate Doom is released and the changes merged into Crispy Doom. The minor version number is increased whenever changes have been applied that are not part of an official Chocolate Doom release or do only affect Crispy Doom.
</p>
<h2><span class="mw-headline" id="Contact">Contact</span></h2>
<p>The canonical homepage for Crispy Doom is <a rel="nofollow" class="external free" href="https://fabiangreffrath.github.io/crispy-doom">https://fabiangreffrath.github.io/crispy-doom</a>.
<br />Crispy Doom is maintained by <a rel="nofollow" class="external text" href="mailto:fabian@greffXremovethisXrath.com">Fabian Greffrath</a>.
</p><p>Please report any bugs, glitches or crashes that you encounter to the GitHub <a rel="nofollow" class="external text" href="https://github.com/fabiangreffrath/crispy-doom/issues">Issue Tracker</a>.
</p>
<h2><span class="mw-headline" id="Acknowledgement">Acknowledgement</span></h2>
<p>Although I have played the thought of hacking on Chocolate Doom's renderer for quite some time already, it was Brad Harding's <a href="/wiki/index.php/Doom_Retro" title="Doom Retro">Doom Retro</a> that provided the incentive to finally do it. However, his fork aims at a different direction and I did not take a single line of code from it. Lee Killough's <a href="https://doomwiki.org/wiki/MBF" class="extiw" title="doom:MBF">MBF</a> was studied and used to debug the code, especially in the form of Team Eternity's <a href="https://doomwiki.org/wiki/WinMBF" class="extiw" title="doom:WinMBF">WinMBF</a> source port, which made it easier to compile and run on my machine. And of course there is fraggle's <a href="/wiki/index.php/Chocolate_Doom" title="Chocolate Doom">Chocolate Doom</a> with its exceptionally clean and legible source code. Please let me take this opportunity to appreciate all these authors for their work!
</p><p>Also, thanks plums of the <a class="external text" href="https://www.doomworld.com/vb/">Doomworld forums</a> for beta testing, Zodomaniac and JNechaevsky for the continuous flow of support and inspiration during the 3.x/4.x development phase and (last but not the least) <a rel="nofollow" class="external text" href="http://www.moddb.com/members/cacodemon9000">Cacodemon9000</a> for his <a rel="nofollow" class="external text" href="http://www.moddb.com/games/doom-ii/addons/infested-outpost">Infested Outpost</a> map that helped to track down quite a few bugs!
</p>
<h2><span class="mw-headline" id="Legalese">Legalese</span></h2>
<p>Doom is © 1993-1996 Id Software, Inc.;
<br />Boom 2.02 is © 1999 id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman;
<br />PrBoom+ is © 1999 id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman,
© 1999-2000 Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze,
© 2005-2006 Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko;
<br />Chocolate Doom is © 1993-1996 Id Software, Inc., © 2005 Simon Howard;
Chocolate Hexen is © 1993-1996 Id Software, Inc., © 1993-2008 Raven Software, © 2008 Simon Howard;
<br />Strawberry Doom is © 1993-1996 Id Software, Inc., © 2005 Simon Howard, © 2008-2010 GhostlyDeath;
<br />Crispy Doom is additionally © 2014-2017 Fabian Greffrath;
all of the above are released under the <a rel="nofollow" class="external text" href="https://www.gnu.org/licenses/gpl-2.0.html">GPL-2+</a>.
<br /><br />
SDL 2.0, SDL_mixer 2.0 and SDL_net 2.0 are © 1997-2016 Sam Lantinga and are released under the <a rel="nofollow" class="external text" href="http://www.gzip.org/zlib/zlib_license.html">zlib license</a>.
<br /><br />
Secret Rabbit Code (libsamplerate) is © 2002-2011 Erik de Castro Lopo and is released under the <a rel="nofollow" class="external text" href="http://www.gnu.org/licenses/gpl-2.0.html">GPL-2+</a>.
<br />Libpng is © 1998-2014 Glenn Randers-Pehrson, © 1996-1997 Andreas Dilger, © 1995-1996 Guy Eric Schalnat, Group 42, Inc. and is released under the <a rel="nofollow" class="external text" href="http://www.libpng.org/pub/png/src/libpng-LICENSE.txt">libpng license</a>.
<br />Zlib is © 1995-2013 Jean-loup Gailly and Mark Adler and is released under the <a rel="nofollow" class="external text" href="http://www.zlib.net/zlib_license.html">zlib license</a>.
<br /><br />
The Crispy Doom icon (as shown at the top right of this page) is composed of the <a rel="nofollow" class="external text" href="https://www.chocolate-doom.org/wiki/images/7/77/Chocolate-logo.png">Chocolate Doom icon</a> and a <a href="http://en.wikipedia.org/wiki/File:Potato-Chips.jpg" class="extiw" title="wikipedia:File:Potato-Chips.jpg">photo</a> of potato crisps (Utz-brand, grandma's kettle-cooked style) by <a rel="nofollow" class="external text" href="https://commons.wikimedia.org/wiki/User:Evan-Amos">Evan-Amos</a> who kindly released it into the <a href="http://en.wikipedia.org/wiki/Public_domain" class="extiw" title="wikipedia:Public domain">public domain</a>. The current high-resolution version of this icon has been contributed by JNechaevsky (formerly by Zodomaniac).
</p>
<!--
NewPP limit report
Cached time: 20171104160420
Cache expiry: 86400
Dynamic content: false
CPU time usage: 0.057 seconds
Real time usage: 0.057 seconds
Preprocessor visited node count: 93/1000000
Preprocessor generated node count: 194/1000000
Post‐expand include size: 470/2097152 bytes
Template argument size: 0/2097152 bytes
Highest expansion depth: 2/40
Expensive parser function count: 0/100
-->
<!--
Transclusion expansion time report (%,ms,calls,template)
100.00% 2.408 1 - -total
100.00% 2.408 1 - Template:Doomwiki
-->
<!-- Saved in parser cache with key chocolate_doom_wiki:pcache:idhash:254-0!*!0!!en!5!* and timestamp 20171104160420 and revision id 2486
-->
</div> <div class="printfooter">
Retrieved from "<a dir="ltr" href="http://www.chocolate-doom.org/wiki/index.php?title=Crispy_Doom&oldid=2486">http://www.chocolate-doom.org/wiki/index.php?title=Crispy_Doom&oldid=2486</a>" </div>
<div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/index.php/Special:Categories" title="Special:Categories">Category</a>: <ul><li><a href="/wiki/index.php/Category:Forks" title="Category:Forks">Forks</a></li></ul></div></div> <div class="visualClear"></div>
</div>
</div>
<div id="mw-navigation">
<h2>Navigation menu</h2>
<div id="mw-head">
<div id="p-personal" role="navigation" class="" aria-labelledby="p-personal-label">
<h3 id="p-personal-label">Personal tools</h3>
<ul>
<li id="pt-userpage"><a href="/wiki/index.php/User:Fabian" class="new" dir="auto" title="Your user page [.]" accesskey=".">Fabian</a></li><li id="pt-mytalk"><a href="/wiki/index.php/User_talk:Fabian" class="new" title="Your talk page [n]" accesskey="n">Talk</a></li><li id="pt-preferences"><a href="/wiki/index.php/Special:Preferences" title="Your preferences">Preferences</a></li><li id="pt-watchlist"><a href="/wiki/index.php/Special:Watchlist" title="A list of pages you are monitoring for changes [l]" accesskey="l">Watchlist</a></li><li id="pt-mycontris"><a href="/wiki/index.php/Special:Contributions/Fabian" title="A list of your contributions [y]" accesskey="y">Contributions</a></li><li id="pt-logout"><a href="/wiki/index.php?title=Special:UserLogout&returnto=Crispy+Doom&returntoquery=printable%3Dyes" title="Log out">Log out</a></li> </ul>
</div>
<div id="left-navigation">
<div id="p-namespaces" role="navigation" class="vectorTabs" aria-labelledby="p-namespaces-label">
<h3 id="p-namespaces-label">Namespaces</h3>
<ul>
<li id="ca-nstab-main" class="selected"><span><a href="/wiki/index.php/Crispy_Doom" title="View the content page [c]" accesskey="c">Page</a></span></li>
<li id="ca-talk"><span><a href="/wiki/index.php/Talk:Crispy_Doom" title="Discussion about the content page [t]" accesskey="t" rel="discussion">Discussion</a></span></li>
</ul>
</div>
<div id="p-variants" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-variants-label">
<h3 id="p-variants-label">
<span>Variants</span><a href="#"></a>
</h3>
<div class="menu">
<ul>
</ul>
</div>
</div>
</div>
<div id="right-navigation">
<div id="p-views" role="navigation" class="vectorTabs" aria-labelledby="p-views-label">
<h3 id="p-views-label">Views</h3>
<ul>
<li id="ca-view" class="selected"><span><a href="/wiki/index.php/Crispy_Doom" >Read</a></span></li>
<li id="ca-edit"><span><a href="/wiki/index.php?title=Crispy_Doom&action=edit" title="Edit this page [e]" accesskey="e">Edit</a></span></li>
<li id="ca-history" class="collapsible"><span><a href="/wiki/index.php?title=Crispy_Doom&action=history" title="Past revisions of this page [h]" accesskey="h">View history</a></span></li>
<li id="ca-unwatch" class="icon mw-watchlink"><span><a href="/wiki/index.php?title=Crispy_Doom&action=unwatch" title="Remove this page from your watchlist [w]" accesskey="w">Unwatch</a></span></li>
</ul>
</div>
<div id="p-cactions" role="navigation" class="vectorMenu" aria-labelledby="p-cactions-label">
<h3 id="p-cactions-label"><span>More</span><a href="#"></a></h3>
<div class="menu">
<ul>
<li id="ca-move">
<a href="/wiki/index.php/Special:MovePage/Crispy_Doom" title="Move this page [m]" accesskey="m">Move</a>
</li>
</ul>
</div>
</div>
<div id="p-search" role="search">
<h3>
<label for="searchInput">Search</label>
</h3>
<form action="/wiki/index.php" id="searchform">
<div id="simpleSearch">
<input type="search" name="search" placeholder="Search" title="Search Chocolate Doom [f]" accesskey="f" id="searchInput"/><input type="hidden" value="Special:Search" name="title"/><input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton mw-fallbackSearchButton"/><input type="submit" name="go" value="Go" title="Go to a page with this exact name if it exists" id="searchButton" class="searchButton"/> </div>
</form>
</div>
</div>
</div>
<div id="mw-panel">
<div id="p-logo" role="banner"><a class="mw-wiki-logo" href="/wiki/index.php/Chocolate_Doom" title="Visit the main page"></a></div>
<div class="portal" role="navigation" id='p-Chocolate_Doom' aria-labelledby='p-Chocolate_Doom-label'>
<h3 id='p-Chocolate_Doom-label'>Chocolate Doom</h3>
<div class="body">
<ul>
<li id="n-mainpage-description"><a href="/wiki/index.php/Chocolate_Doom" title="Visit the main page [z]" accesskey="z">Main page</a></li><li id="n-Screenshots"><a href="/wiki/index.php/Screenshots">Screenshots</a></li><li id="n-Download-package"><a href="/wiki/index.php/Downloads">Download package</a></li><li id="n-Report-bug"><a href="https://github.com/chocolate-doom/chocolate-doom/issues" rel="nofollow">Report bug</a></li><li id="n-Source-code"><a href="https://github.com/chocolate-doom/chocolate-doom" rel="nofollow">Source code</a></li><li id="n-Follow-on-Twitter"><a href="https://twitter.com/Cocoademon" rel="nofollow">Follow on Twitter</a></li> </ul>
</div>
</div>
<div class="portal" role="navigation" id='p-Wiki' aria-labelledby='p-Wiki-label'>
<h3 id='p-Wiki-label'>Wiki</h3>
<div class="body">
<ul>
<li id="n-recentchanges"><a href="/wiki/index.php/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li><li id="n-randompage"><a href="/wiki/index.php/Special:Random" title="Load a random page [x]" accesskey="x">Random page</a></li> </ul>
</div>
</div>
<div class="portal" role="navigation" id='p-External_links' aria-labelledby='p-External_links-label'>
<h3 id='p-External_links-label'>External links</h3>
<div class="body">
<ul>
<li id="n-Doomworld"><a href="https://www.doomworld.com/">Doomworld</a></li><li id="n-The-Doom-Wiki"><a href="https://doomwiki.org/wiki/Entryway">The Doom Wiki</a></li><li id="n-idgames-archive"><a href="https://www.doomworld.com/idgames/">idgames archive</a></li> </ul>
</div>
</div>
<div class="portal" role="navigation" id='p-tb' aria-labelledby='p-tb-label'>
<h3 id='p-tb-label'>Tools</h3>
<div class="body">
<ul>
<li id="t-whatlinkshere"><a href="/wiki/index.php/Special:WhatLinksHere/Crispy_Doom" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li><li id="t-recentchangeslinked"><a href="/wiki/index.php/Special:RecentChangesLinked/Crispy_Doom" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li><li id="t-upload"><a href="/wiki/index.php/Special:Upload" title="Upload files [u]" accesskey="u">Upload file</a></li><li id="t-specialpages"><a href="/wiki/index.php/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q">Special pages</a></li><li id="t-permalink"><a href="/wiki/index.php?title=Crispy_Doom&oldid=2486" title="Permanent link to this revision of the page">Permanent link</a></li><li id="t-info"><a href="/wiki/index.php?title=Crispy_Doom&action=info" title="More information about this page">Page information</a></li> </ul>
</div>
</div>
</div>
</div>
<div id="footer" role="contentinfo">
<ul id="footer-info">
<li id="footer-info-lastmod"> This page was last modified on 4 November 2017, at 16:04.</li>
<li id="footer-info-copyright">Content is available under <a class="external" rel="nofollow" href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License 1.3 or later</a> unless otherwise noted.</li>
</ul>
<ul id="footer-places">
<li id="footer-places-privacy"><a href="/wiki/index.php/Wiki:Privacy_policy" title="Wiki:Privacy policy">Privacy policy</a></li>
<li id="footer-places-about"><a href="/wiki/index.php/Wiki:About" title="Wiki:About">About Chocolate Doom</a></li>
<li id="footer-places-disclaimer"><a href="/wiki/index.php/Wiki:General_disclaimer" title="Wiki:General disclaimer">Disclaimers</a></li>
<li id="footer-places-mobileview"><a href="//www.chocolate-doom.org/wiki/index.php?title=Crispy_Doom&printable=yes&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li>
</ul>
<ul id="footer-icons" class="noprint">
<li id="footer-copyrightico">
<a href="http://www.gnu.org/copyleft/fdl.html"><img src="/wiki/resources/assets/licenses/gnu-fdl.png" alt="GNU Free Documentation License 1.3 or later" width="88" height="31"/></a> </li>
<li id="footer-poweredbyico">
<a href="//www.mediawiki.org/"><img src="/wiki/resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="/wiki/resources/assets/poweredby_mediawiki_132x47.png 1.5x, /wiki/resources/assets/poweredby_mediawiki_176x62.png 2x" width="88" height="31"/></a> </li>
</ul>
<div style="clear:both"></div>
</div>
<script>(window.RLQ=window.RLQ||[]).push(function(){mw.loader.state({"user":"ready","user.groups":"ready"});mw.loader.load(["mediawiki.toc","mediawiki.action.view.postEdit","site","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.searchSuggest","mediawiki.page.watch.ajax"]);});</script><script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":82});});</script>
</body>
</html>