forked from fabiangreffrath/crispy-doom
-
Notifications
You must be signed in to change notification settings - Fork 1
/
README.Crispy.htm
1658 lines (1626 loc) · 122 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
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html dir="ltr" class="client-js" lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Crispy Doom - Chocolate Doom wiki</title>
<meta charset="UTF-8">
<meta name="generator" content="MediaWiki 1.19.20+dfsg-2.3">
<meta name="robots" content="noindex,follow">
<link rel="alternate" type="application/x-wiki" title="Edit" href="http://www.chocolate-doom.org/wiki/index.php?title=Crispy_Doom&action=edit">
<link rel="edit" title="Edit" href="http://www.chocolate-doom.org/wiki/index.php?title=Crispy_Doom&action=edit">
<link rel="shortcut icon" href="http://www.chocolate-doom.org/favicon.png">
<link rel="search" type="application/opensearchdescription+xml" href="http://www.chocolate-doom.org/wiki/opensearch_desc.php" title="Chocolate Doom wiki (en)">
<link rel="EditURI" type="application/rsd+xml" href="http://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 wiki Atom feed" href="http://www.chocolate-doom.org/wiki/index.php?title=Special:RecentChanges&feed=atom">
<link rel="stylesheet" href="README.Crispy-Dateien/load.css">
<style type="text/css" media="all">.js-messagebox{margin:1em 5%;padding:0.5em 2.5%;border:1px solid #ccc;background-color:#fcfcfc;font-size:0.8em}.js-messagebox .js-messagebox-group{margin:1px;padding:0.5em 2.5%;border-bottom:1px solid #ddd}.js-messagebox .js-messagebox-group:last-child{border-bottom:thin none transparent}
/* cache key: chocolate_doom_wiki:resourceloader:filter:minify-css:7:8b08bdc91c52a9ffba396dccfb5b473c */
.mw-collapsible-toggle{float:right} li .mw-collapsible-toggle{float:none} .mw-collapsible-toggle-li{list-style:none}
/* cache key: chocolate_doom_wiki:resourceloader:filter:minify-css:7:4250852ed2349a0d4d0fc6509a3e7d4c */
</style><meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" href="README.Crispy-Dateien/load_002.css">
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}a.new,#quickbar a.new{color:#ba0000}
/* cache key: chocolate_doom_wiki:resourceloader:filter:minify-css:7:c88e2bcd56513749bec09a7e29cb3ffa */
</style>
<script src="README.Crispy-Dateien/load_002.php"></script><script src="README.Crispy-Dateien/load_004.php"></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Crispy_Doom","wgTitle":"Crispy Doom","wgCurRevisionId":1966,"wgArticleId":254,"wgIsArticle":true,"wgAction":"view","wgUserName":"Fabian","wgUserGroups":["*","user","autoconfirmed"],"wgCategories":["Forks"],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgRelevantPageName":"Crispy_Doom","wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function($){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":1,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"highlightbroken":1,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":"1","rows":25,"searchlimit":20,"showhiddencats":0,"showjumplinks":1,"shownumberswatching":1,"showtoc":1,"showtoolbar":1,"skin":"vector","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":0,"watchdefault":0,"watchdeletion":
0,"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"variant":"en","language":"en","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false});;},{},{});mw.loader.implement("user.tokens",function($){mw.user.tokens.set({"editToken":"20e74f5006132f9cf6ae069dd00d2a04+\\","watchToken":"ad142cca0dfd0132f747ba1c441353d8+\\"});;},{},{});
/* cache key: chocolate_doom_wiki:resourceloader:filter:minify-js:7:6995852fb1a659d859b27e8c4457637c */
}</script>
<script>if(window.mw){
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
}</script><script type="text/javascript" src="README.Crispy-Dateien/load_006.php"></script>
<!--[if lt IE 7]><style type="text/css">body{behavior:url("/wiki/skins/vector/csshover.min.htc")}</style><![endif]--></head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-Crispy_Doom skin-vector action-view">
<div id="mw-page-base" class="noprint"></div>
<div id="mw-head-base" class="noprint"></div>
<!-- content -->
<div id="content" class="mw-body">
<a id="top"></a>
<div class="js-messagebox" id="mw-js-message" style="display:none;"></div>
<!-- firstHeading -->
<h1 id="firstHeading" class="firstHeading">
<span dir="auto">Crispy Doom</span>
</h1>
<!-- /firstHeading -->
<!-- bodyContent -->
<div id="bodyContent">
<!-- tagline -->
<div id="siteSub">From Chocolate Doom wiki</div>
<!-- /tagline -->
<!-- subtitle -->
<div id="contentSub"></div>
<!-- /subtitle -->
<!-- jumpto -->
<div id="jump-to-nav" class="mw-jump">
Jump to: <a href="#mw-head">navigation</a>,
<a href="#p-search">search</a>
</div>
<!-- /jumpto -->
<!-- bodycontent -->
<div id="mw-content-text" dir="ltr" class="mw-content-ltr" lang="en"><div class="thumb tright"><div class="thumbinner" style="width:66px;"><a href="http://www.chocolate-doom.org/wiki/index.php/File:Crispy-doom.png" class="image"><img alt="(thumbnail)" src="README.Crispy-Dateien/Crispy-doom.png" class="thumbimage" height="64" width="64"></a> <div class="thumbcaption"><div class="magnify"><a href="http://www.chocolate-doom.org/wiki/index.php/File:Crispy-doom.png" class="internal" title="Enlarge"><img src="README.Crispy-Dateien/magnify-clip.png" alt="" height="11" width="15"></a></div>The Crispy Doom icon</div></div></div>
<p>Crispy Doom is a limit-removing enhanced-resolution Doom source port based on <a href="http://www.chocolate-doom.org/wiki/index.php/Chocolate_Doom" title="Chocolate Doom">Chocolate Doom</a>.
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>
<table id="toc" class="toc"><tbody><tr><td><div id="toctitle"><h2>Contents</h2><span class="toctoggle"> [<a href="#" class="internal" id="togglelink">hide</a>] </span></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"><span class="tocnumber">2</span> <span class="toctext">Objectives</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="#Changes_of_Crispy_Doom_3.0_from_Crispy_Doom_2.3"><span class="tocnumber">3</span> <span class="toctext">Changes of Crispy Doom 3.0 from Crispy Doom 2.3</span></a>
<ul>
<li class="toclevel-2 tocsection-4"><a href="#Major_Features"><span class="tocnumber">3.1</span> <span class="toctext">Major Features</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="#Other_Enhancements"><span class="tocnumber">3.2</span> <span class="toctext">Other Enhancements</span></a></li>
<li class="toclevel-2 tocsection-6"><a href="#Bug_fixes"><span class="tocnumber">3.3</span> <span class="toctext">Bug fixes</span></a></li>
<li class="toclevel-2 tocsection-7"><a href="#Code_clean-up"><span class="tocnumber">3.4</span> <span class="toctext">Code clean-up</span></a></li>
<li class="toclevel-2 tocsection-8"><a href="#Other_ports"><span class="tocnumber">3.5</span> <span class="toctext">Other ports</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-9"><a href="#Changes_of_Crispy_Doom_2.3_from_Crispy_Doom_2.2"><span class="tocnumber">4</span> <span class="toctext">Changes of Crispy Doom 2.3 from Crispy Doom 2.2</span></a>
<ul>
<li class="toclevel-2 tocsection-10"><a href="#Automap_improvements"><span class="tocnumber">4.1</span> <span class="toctext">Automap improvements</span></a></li>
<li class="toclevel-2 tocsection-11"><a href="#Cheats_improvements"><span class="tocnumber">4.2</span> <span class="toctext">Cheats improvements</span></a></li>
<li class="toclevel-2 tocsection-12"><a href="#New_features"><span class="tocnumber">4.3</span> <span class="toctext">New features</span></a></li>
<li class="toclevel-2 tocsection-13"><a href="#Rendering_improvements"><span class="tocnumber">4.4</span> <span class="toctext">Rendering improvements</span></a></li>
<li class="toclevel-2 tocsection-14"><a href="#Minor_improvements"><span class="tocnumber">4.5</span> <span class="toctext">Minor improvements</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-15"><a href="#Changes_of_Crispy_Doom_2.2_from_Crispy_Doom_2.1"><span class="tocnumber">5</span> <span class="toctext">Changes of Crispy Doom 2.2 from Crispy Doom 2.1</span></a>
<ul>
<li class="toclevel-2 tocsection-16"><a href="#Laser_Pointer_improvements"><span class="tocnumber">5.1</span> <span class="toctext">Laser Pointer improvements</span></a></li>
<li class="toclevel-2 tocsection-17"><a href="#Cheats_improvements_2"><span class="tocnumber">5.2</span> <span class="toctext">Cheats improvements</span></a></li>
<li class="toclevel-2 tocsection-18"><a href="#Feature_review"><span class="tocnumber">5.3</span> <span class="toctext">Feature review</span></a></li>
<li class="toclevel-2 tocsection-19"><a href="#Further_improvements"><span class="tocnumber">5.4</span> <span class="toctext">Further improvements</span></a></li>
<li class="toclevel-2 tocsection-20"><a href="#Additional_Bug_fixes"><span class="tocnumber">5.5</span> <span class="toctext">Additional Bug fixes</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-21"><a href="#Changes_of_Crispy_Doom_2.1_from_Crispy_Doom_2.0"><span class="tocnumber">6</span> <span class="toctext">Changes of Crispy Doom 2.1 from Crispy Doom 2.0</span></a>
<ul>
<li class="toclevel-2 tocsection-22"><a href="#Color_translation_improvements"><span class="tocnumber">6.1</span> <span class="toctext">Color translation improvements</span></a></li>
<li class="toclevel-2 tocsection-23"><a href="#Menu_improvements"><span class="tocnumber">6.2</span> <span class="toctext">Menu improvements</span></a></li>
<li class="toclevel-2 tocsection-24"><a href="#More_victims_of_the_feature_clean-up"><span class="tocnumber">6.3</span> <span class="toctext">More victims of the feature clean-up</span></a></li>
<li class="toclevel-2 tocsection-25"><a href="#Further_improvements_2"><span class="tocnumber">6.4</span> <span class="toctext">Further improvements</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-26"><a href="#Changes_of_Crispy_Doom_2.0_from_Crispy_Doom_1.5"><span class="tocnumber">7</span> <span class="toctext">Changes of Crispy Doom 2.0 from Crispy Doom 1.5</span></a>
<ul>
<li class="toclevel-2 tocsection-27"><a href="#.22Back_to_the_Roots.22_campaign"><span class="tocnumber">7.1</span> <span class="toctext">"Back to the Roots" campaign</span></a></li>
<li class="toclevel-2 tocsection-28"><a href="#Support_for_BEX_files_and_lumps"><span class="tocnumber">7.2</span> <span class="toctext">Support for BEX files and lumps</span></a></li>
<li class="toclevel-2 tocsection-29"><a href="#Menu_improvements_2"><span class="tocnumber">7.3</span> <span class="toctext">Menu improvements</span></a></li>
<li class="toclevel-2 tocsection-30"><a href="#Automap_improvements_2"><span class="tocnumber">7.4</span> <span class="toctext">Automap improvements</span></a></li>
<li class="toclevel-2 tocsection-31"><a href="#Cheat_improvements"><span class="tocnumber">7.5</span> <span class="toctext">Cheat improvements</span></a></li>
<li class="toclevel-2 tocsection-32"><a href="#Color_translation_improvements_2"><span class="tocnumber">7.6</span> <span class="toctext">Color translation improvements</span></a></li>
<li class="toclevel-2 tocsection-33"><a href="#Transparent_Crispy_HUD"><span class="tocnumber">7.7</span> <span class="toctext">Transparent Crispy HUD</span></a></li>
<li class="toclevel-2 tocsection-34"><a href="#Laser_Pointer_improvements_2"><span class="tocnumber">7.8</span> <span class="toctext">Laser Pointer improvements</span></a></li>
<li class="toclevel-2 tocsection-35"><a href="#Further_improvements_3"><span class="tocnumber">7.9</span> <span class="toctext">Further improvements</span></a></li>
<li class="toclevel-2 tocsection-36"><a href="#Further_Bug_and_Compatibility_fixes"><span class="tocnumber">7.10</span> <span class="toctext">Further Bug and Compatibility fixes</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-37"><a href="#Changes_of_Crispy_Doom_1.5_from_Crispy_Doom_1.4"><span class="tocnumber">8</span> <span class="toctext">Changes of Crispy Doom 1.5 from Crispy Doom 1.4</span></a>
<ul>
<li class="toclevel-2 tocsection-38"><a href="#Gameplay"><span class="tocnumber">8.1</span> <span class="toctext">Gameplay</span></a></li>
<li class="toclevel-2 tocsection-39"><a href="#Technical"><span class="tocnumber">8.2</span> <span class="toctext">Technical</span></a></li>
<li class="toclevel-2 tocsection-40"><a href="#Additional_bug_fixes_2"><span class="tocnumber">8.3</span> <span class="toctext">Additional bug fixes</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-41"><a href="#Changes_of_Crispy_Doom_1.4_from_Crispy_Doom_1.3"><span class="tocnumber">9</span> <span class="toctext">Changes of Crispy Doom 1.4 from Crispy Doom 1.3</span></a>
<ul>
<li class="toclevel-2 tocsection-42"><a href="#Gameplay_2"><span class="tocnumber">9.1</span> <span class="toctext">Gameplay</span></a></li>
<li class="toclevel-2 tocsection-43"><a href="#Technical_2"><span class="tocnumber">9.2</span> <span class="toctext">Technical</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-44"><a href="#Changes_of_Crispy_Doom_1.3_from_Crispy_Doom_1.2"><span class="tocnumber">10</span> <span class="toctext">Changes of Crispy Doom 1.3 from Crispy Doom 1.2</span></a>
<ul>
<li class="toclevel-2 tocsection-45"><a href="#New_features_2"><span class="tocnumber">10.1</span> <span class="toctext">New features</span></a></li>
<li class="toclevel-2 tocsection-46"><a href="#Experimental_features"><span class="tocnumber">10.2</span> <span class="toctext">Experimental features</span></a></li>
<li class="toclevel-2 tocsection-47"><a href="#Other_bug_fixes"><span class="tocnumber">10.3</span> <span class="toctext">Other bug fixes</span></a></li>
<li class="toclevel-2 tocsection-48"><a href="#Non-Doom_Ports"><span class="tocnumber">10.4</span> <span class="toctext">Non-Doom Ports</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-49"><a href="#Changes_of_Crispy_Doom_1.2_from_Crispy_Doom_1.1"><span class="tocnumber">11</span> <span class="toctext">Changes of Crispy Doom 1.2 from Crispy Doom 1.1</span></a></li>
<li class="toclevel-1 tocsection-50"><a href="#Changes_of_Crispy_Doom_1.1_from_Crispy_Doom_1.0"><span class="tocnumber">12</span> <span class="toctext">Changes of Crispy Doom 1.1 from Crispy Doom 1.0</span></a>
<ul>
<li class="toclevel-2 tocsection-51"><a href="#Visual_Enhancements"><span class="tocnumber">12.1</span> <span class="toctext">Visual Enhancements</span></a></li>
<li class="toclevel-2 tocsection-52"><a href="#Enhancements_affecting_gameplay"><span class="tocnumber">12.2</span> <span class="toctext">Enhancements affecting gameplay</span></a></li>
<li class="toclevel-2 tocsection-53"><a href="#Technical_Enhancements"><span class="tocnumber">12.3</span> <span class="toctext">Technical Enhancements</span></a></li>
<li class="toclevel-2 tocsection-54"><a href="#Bug_Fixes_2"><span class="tocnumber">12.4</span> <span class="toctext">Bug Fixes</span></a></li>
<li class="toclevel-2 tocsection-55"><a href="#Crispy-Doom-Setup"><span class="tocnumber">12.5</span> <span class="toctext">Crispy-Doom-Setup</span></a></li>
<li class="toclevel-2 tocsection-56"><a href="#Non-Doom_Ports_2"><span class="tocnumber">12.6</span> <span class="toctext">Non-Doom Ports</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-57"><a href="#Changes_of_Crispy_Doom_1.0_from_Chocolate_Doom_2.0.0"><span class="tocnumber">13</span> <span class="toctext">Changes of Crispy Doom 1.0 from Chocolate Doom 2.0.0</span></a>
<ul>
<li class="toclevel-2 tocsection-58"><a href="#Display_Resolution"><span class="tocnumber">13.1</span> <span class="toctext">Display Resolution</span></a></li>
<li class="toclevel-2 tocsection-59"><a href="#Raised_Limits"><span class="tocnumber">13.2</span> <span class="toctext">Raised Limits</span></a></li>
<li class="toclevel-2 tocsection-60"><a href="#Improved_Support_for_the_BFG_Edition"><span class="tocnumber">13.3</span> <span class="toctext">Improved Support for the BFG Edition</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-61"><a href="#Compatibility"><span class="tocnumber">14</span> <span class="toctext">Compatibility</span></a></li>
<li class="toclevel-1 tocsection-62"><a href="#Versioning"><span class="tocnumber">15</span> <span class="toctext">Versioning</span></a></li>
<li class="toclevel-1 tocsection-63"><a href="#Download"><span class="tocnumber">16</span> <span class="toctext">Download</span></a>
<ul>
<li class="toclevel-2 tocsection-64"><a href="#Binaries"><span class="tocnumber">16.1</span> <span class="toctext">Binaries</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-65"><a href="#Contact"><span class="tocnumber">17</span> <span class="toctext">Contact</span></a></li>
<li class="toclevel-1 tocsection-66"><a href="#Acknowledgement"><span class="tocnumber">18</span> <span class="toctext">Acknowledgement</span></a></li>
<li class="toclevel-1 tocsection-67"><a href="#Legalese"><span class="tocnumber">19</span> <span class="toctext">Legalese</span></a></li>
</ul>
</td></tr></tbody></table>
<h2> <span class="mw-headline" id="Synopsis"> Synopsis </span></h2>
<p>Crispy Doom is a fork of <a href="http://www.chocolate-doom.org/wiki/index.php/Chocolate_Doom" title="Chocolate Doom">Chocolate Doom</a> that provides a higher display resolution, removes the <a href="http://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"> Objectives </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><p>Crispy Heretic, Crispy Hexen and Crispy Strife are also available
but do currently only feature the resolution enhancements, but none of
the other features mentioned here.
</p>
<h2> <span class="mw-headline" id="Changes_of_Crispy_Doom_3.0_from_Crispy_Doom_2.3"> Changes of Crispy Doom 3.0 from Crispy Doom 2.3 </span></h2>
<p>Crispy Doom 3.0 has been released on July 14, 2015.
</p><p>This is a major Crispy Doom release, because it is based upon the Chocolate Doom 2.2.0 release.
</p>
<h3> <span class="mw-headline" id="Major_Features"> Major Features </span></h3>
<ul><li> Add optional rendering with <b>Uncapped Framerate</b>. Thank
you very much to Alexmax for this major code contribution! In the course
of this, add an FPS counter that can get activated with the new <tt>SHOWFPS</tt> cheat.
</li><li> Allow for a <b>variable jump height</b>, either "low" (i.e. 8
units of vertical momentum as in ZDoom) or "high" (i.e. the previous
value of 9 units as in Hexen or current PrBoom+).
</li><li> Support the <b>"<tt>masterlevels.wad</tt>" all-in-one PWAD</b> file from the PSN version. Thanks to quakeguy123 for the suggestion.
</li><li> If "<tt>-warp</tt>" is used with "<tt>-playdemo</tt>", <b>fast-forward the demo</b> up to the requested map.
</li><li> Fix rendering of <b>single-patched transparent textures</b>. Finally found a fix nearly one year after this has been requested by plumsinus. \o/
</li></ul>
<h3> <span class="mw-headline" id="Other_Enhancements"> Other Enhancements </span></h3>
<ul><li> Add a third "Crispness" in-game menu page and get rid of some
of the lesser used items in the "Cripsness" menu in the
crispy-doom-setup tool.
</li><li> Render missing flat as sky.
</li><li> Permit binding mouse button to jump. Thanks to Jonathan Dowland for the PR.
</li><li> Prevent frame buffer overflows in <tt>V_DrawPatch()</tt>. It should now be impossible to trigger a "Bad V_DrawPatch" error anymore. Also, prevent frame buffer overflows in <tt>V_CopyRect()</tt>.
</li><li> Never override savegames during demo playback anymore.
</li><li> Do not reset "<tt>-respawn</tt>", "<tt>-fast</tt>" and "<tt>-nomonsters</tt>" parameters in <tt>G_DoNewGame()</tt> anymore.
</li><li> The <tt>NOTARGET</tt> cheat makes all monsters forget their current target. Thanks to bradharding for the idea.
</li><li> In the Automap, initialize the zoomlevel on huge maps so that a
4096 units square map would just fit in. Somehow inspired by Doom
Retro.
</li><li> Make "bad texturecolumn" errors non-fatal.
</li><li> Colorize the confusing <tt>IDBEHOLD</tt> power-up menu. Inspired by Doom Retro.
</li><li> Make the DEH/BEX parser more tolerant. If a DEHACKED file does
not contain a valid header signature, print a warning but do not error
out. If a DEHACKED file contains BEX sections which contain non-escaped
newlines and there is no new valid section marker after the newline, try
to proceed parsing with the previous line parser. Fixes loading the
completely messed-up Jptr_fix.bex file provided on <<a rel="nofollow" class="external free" href="http://www.doomworld.com/pageofdoom/lostdoom.html">http://www.doomworld.com/pageofdoom/lostdoom.html</a>>.
</li><li> Differentiate between Weapon Recoil Thrust and Pitch options.
</li><li> When a linedef is missing a first sidedef (aka. right side), replace with a dummy sidedef instead of crashing.
</li><li> Allow Chocolate Doom 2.2.0 clients to connect to Crispy Doom servers.
</li></ul>
<h3> <span class="mw-headline" id="Bug_fixes"> Bug fixes </span></h3>
<ul><li> In the Automap, do not calculate player coordinates for players
not in game. Fixes a crash in multiplayer games reported by Marscaleb.
</li><li> In Automap Overlay mode, draw the Automap beneath the bezel for smaller view sizes. Thanks to Ronald Lasmanowicz for reporting.
</li><li> Also in Automap Overlay mode, for full view sizes, move the
map title line to the bottom and remove the obtrusive map origin line.
</li><li> Catch overflows in the <tt>SlopeDiv()</tt> function only during rendering. Fixes the one remaining demo desync in Choco's statcheck test.
</li><li> In the Crispy HUD, properly center the Berserk Pack patch in the Ammo widget.
</li><li> Only interpret the second argument to the "<tt>-warp</tt>" parameter as "startmap" if it is not yet another parameter (i.e. begins with '-').
</li><li> Restrict conditions for recognizing E1M10 and MAP33 and fix Par Times for MAP10 in "commercial" game mode.
</li><li> The demo progress bar is now better recognizable.
</li><li> Draw the Berserk Pack in the Ammo widget and blink the Health indicator also in Automap Overlay mode.
</li><li> Force redrawing the status bar when switching Automap Overlay mode back and forth.
</li><li> No Rest for the Living was not special-cased if the "<tt>nerve.wad</tt>" PWAD file name was in upper case. Thanks chungy for the report.
</li><li> The map name for MAP33 now always defaults to "Betray" if it
has not been dehacked to another name. Thanks to quakeguy123 for the
suggestion.
</li><li> The highest and lowest viewing angles can now be reached with
the keyboard without needing to press the corresponding button a second
time. Deviating from Heretic and Hexen behaviour here.
</li><li> When resurrecting dead players with the IDDQD cheat, they now
face the same direction again as before (not exactly, but closer).
</li><li> Fix rendering glitches caused by segs that had their vertices
removed in order to prevent slime trails. The shorter a segs is, the
more affected is its angle by moving its vertices. So re-calculate seg
angles after moving vertices in <tt>P_RemoveSlimeTrails()</tt> and use these angles in rendering only.
</li><li> Remove the limit of merged <tt>PNAMES</tt> and <tt>TEXTURE1/2</tt> lumps.
</li><li> Disable auto-loading of PWADs in the "shareware" game mode.
</li></ul>
<h3> <span class="mw-headline" id="Code_clean-up"> Code clean-up </span></h3>
<ul><li> Reformat <tt>R_DrawColumnInCache()</tt>, <tt>R_GenerateComposite()</tt>, <tt>R_GenerateLookup()</tt> and <tt>R_DrawColumn()</tt>
to closer match their Chocolate Doom pendants. These functions were
previously replaced with code from MBF to fix the Medusa and
Tutti-Frutti effects, respectively. Now, these fixes have been merged
into the Vanilla functions.
</li><li> Do the slow linear search in <tt>R_FlatNumForName()</tt> only if the initially returned lump number is not within the "flats" range.
</li><li> In the Crispness menu, the "Jumping" and "Crosshair" items now offer multiple choices.
</li><li> Get rid of the <tt>player2_t</tt> type.
</li></ul>
<h3> <span class="mw-headline" id="Other_ports"> Other ports </span></h3>
<ul><li> Remove <tt>MAXVISPLANES</tt>, <tt>MAXDRAWSEGS</tt>, <tt>MAXSEGS</tt> and <tt>MAXVISSPRITES</tt> limits for Crispy Heretic.
</li></ul>
<h2> <span class="mw-headline" id="Changes_of_Crispy_Doom_2.3_from_Crispy_Doom_2.2"> Changes of Crispy Doom 2.3 from Crispy Doom 2.2 </span></h2>
<p>Crispy Doom 2.3 has been released on March 4, 2015.
</p>
<h3> <span class="mw-headline" id="Automap_improvements"> Automap improvements </span></h3>
<ul><li> The Automap now has an <b>Overlay Mode</b> that draws the map directly onto the player view and that can be toggled by pressing '<tt>O</tt>'.
</li><li> The Automap now has a <b>Rotate Mode</b> that -- as the name
suggests -- keeps the player arrow oriented upwards and rotates the
entire map instead. It can be toggled by pressing the '<tt>R</tt>' key and fits nicely into the Automap Overlay Mode.
</li><li> If Follow Mode is disabled and Overlay Mode is enabled, instead of panning through the map, it will remain static.
</li><li> The extra triangle for the player is not drawn anymore if the <tt>IDDT</tt> cheat is enabled.
</li><li> If Follow Mode is enabled an actual crosshair is drawn instead of a single point.
</li></ul>
<h3> <span class="mw-headline" id="Cheats_improvements"> Cheats improvements </span></h3>
<ul><li> A new "<tt>NOMOMENTUM</tt>" cheat has been added -- that is,
merely enabled, all the code has already been there before -- that
avoids the player from gaining momentum. It is called a "debug aid" in
the source code and is pretty useless unless you want to position the
player at an exact position.
</li><li> A "gibs" sound is now played if a dead player is resurrected by the <tt>IDDQD</tt> cheat.
</li><li> Players are now given full in-air control in <tt>IDCLIP</tt> mode. Thanks Linguica for the idea.
</li></ul>
<h3> <span class="mw-headline" id="New_features"> New features </span></h3>
<ul><li> The <b>secret E1M10 map</b> present exclusively in the XBOX
variant of The Ultimate Doom is now supported. The map is entered by
triggering a secret, erm, "wall" in E1M1 and exits to E1M2. The map name
is right in both the Automap and the Intermission screen and the blood
splat is drawn in the latter, though only once. To enter the map with a
cheat code, type <tt>IDCLEV10</tt>; to warp there from the command line, type "<tt>-warp 1 A</tt>"
(or any other letter for the map). Thanks to Ronald Lasmanowicz of
Wii-Doom for some suggestions regarding the implementation. If you want
to try out this feature but do not own the XBOX variant of <tt>DOOM.WAD</tt>, try the patch posted here: <a rel="nofollow" class="external free" href="http://www.doomworld.com/vb/wads-mods/71374-patch-ultimate-doom-1-9-xbox-doom/">http://www.doomworld.com/vb/wads-mods/71374-patch-ultimate-doom-1-9-xbox-doom/</a> .
</li><li> The <b>texture files</b> (<tt>TEXTURE1/2</tt> lumps) and <b>patch lookup tables</b> (<tt>PNAMES</tt> lumps) from PWADs do not override those of the IWAD anymore. Instead, up to 8 <tt>TEXTURE1/2</tt> lumps and up to 4 PNAMES lumps <b>get merged</b>, so that all textures from all loaded WADs are available. This makes it possible to e.g. run "<tt>crispy-doom -iwad freedoom2.wad -file doom1.wad</tt>", which loads the <i>Freedoom: Phase 2</i> IWAD and replaces all textures which are also present in the <i>Doom 1 Shareware</i> WAD but leaves all others intact.
</li><li> <b>Weapon Pitch</b> has been added as a new feature and fits nicely if combined with Weapon Recoil.
</li><li> The <b>static crosshair</b> has been added back. It is now drawn as the HU font's '<tt>+</tt>'
character in the center of the screen and is rendered translucent if
that is globally enabled. It has become the default, the crosshair
rendered into the game world has to get activated by a new dedicated
switch.
</li><li> Support for <b>music in OGG or FLAC formats from lumps in PWADs</b> has been added. This means, it is possible to run e.g. DoomMetalVol4 by simply calling "<tt>crispy-doom -file DoomMetalVol4.wad</tt>". Please note that this feature is only available if Music is set to "Native MIDI".
</li><li> PWAD files and DEHCAKED patches that are located in the config directory (i.e. the same directory that holds the <tt>crispy-doom.cfg</tt> file) and that are named following the <tt>preloadN.{wad,deh,bex}</tt> naming scheme (with <tt>N=[0..9]</tt>) are <b>automatically pre-loaded at startup</b>. For example, Linux users may call "<tt>ln -s /path/to/DoomMetalVol4.wad ~/.crispy-doom/preload0.wad</tt>" to automate the call cited in the previous bullet point.
</li><li> It is now possible to <b>dump the result of the "<tt>-merge</tt>" parameter into a file</b> by means of the "<tt>-mergedump <filename>.wad</tt>"
parameter. This is meant as a convenient "DEUSF replacement" for
Vanilla Doom or other exotic source ports that still do not support the
"-merge" feature. It is now possible to e.g create a portable variant of
Requiem by calling "<tt>crispy-doom -iwad doom2.wad -file requiem.wad reqmus.wad req21fix.wad -mergedump req4all.wad</tt>".
Please note that no duplicates are removed, so the resulting file gets
rather big (about as big as the sum of all input files).
</li><li> Crispy Doom is now able to (re-)create <b>BLOCKMAP lumps</b> if they are either too small or too big or if requested by the user by the "<tt>-blockmap</tt>" parameter. The actual BLOCKMAP creation routine has been taken from Lee Killough's MBF source port.
</li><li> Crispy Doom is now able to load maps with <b>NODES lumps in either compressed or uncompressed ZDBSP format or DeePBSP format</b>
and/or LINEDEFS and THINGS lumps in Hexen map format. The code is
mostly adapted from PrBoom+ and Chocolate Hexen, though especially the
ZDBSP nodes loading routine has been heavily modified, condensed and
simplified. Please note that although it is now possible to load and
explore maps in Hexen format, all interactions with their environment
are most probably broken. Let me state that this feature has only been
added because of a rejected patch of mine (tsts...) to add support for
compressed ZDBSP nodes to PrBoom+. ;)
</li><li> If running out of zone memory, Crispy Doom now allocates another zone of twice the size instead of crashing with a <b>Z_Malloc error</b>
message. Please note that this turns Crispy Doom into a memory hog
quite quickly, but it should only happen in very huge maps anyway and is
still better than crashing.
</li></ul>
<h3> <span class="mw-headline" id="Rendering_improvements"> Rendering improvements </span></h3>
<ul><li> Wobbling long walls have been fixed, using e6y's beautiful fixed-point math formula which is also used in PrBoom+.
</li><li> Visplanes with the same flats now match up far better than
before. Fixed using code adapted from PrBoom+, converted to fixed point
math (and already merge back into PrBoom+).
</li><li> Some rendering glitches introduced by the Wiggle Fix (feature
introduced in Crispy Doom 2.0) have been fixed, thanks to e6y and
PrBoom+.
</li></ul>
<h3> <span class="mw-headline" id="Minor_improvements"> Minor improvements </span></h3>
<ul><li> Lost Souls and spawned monsters are now counted in an extra
variable that is displayed in the Automap stats next to the regular
kills count, separated by a '<tt>+</tt>' sign. They are not added to the
regular kills variable anymore which means one less (demo-critical)
deviation from Vanilla behavior and one less switch in the Crispness
menu. As a collateral damage, the special-casing of the Keen monsters in
"<tt>-nomonsters</tt>" mode had to go as well, but that's to cope with.
</li><li> In the Crispy HUD, the health indicator now only blinks if below 10%.
</li><li> Weapon recoil is now applied after trajectories have been calculated.
</li><li> Warnings are now printed whenever <tt>SPECHITS</tt> or <tt>INTERCEPTS</tt> overflows are triggered.
</li><li> The previously selected savegame in the Load Game menu is now also pre-selected in the Save Game menu and the other way round.
</li><li> The <tt>braintargets</tt> limit has been removed. It was previously set to <tt>32</tt> and broke e.g. Speed of Doom's MAP30 which has <tt>40 braintargets</tt>.
</li></ul>
<h2> <span class="mw-headline" id="Changes_of_Crispy_Doom_2.2_from_Crispy_Doom_2.1"> Changes of Crispy Doom 2.2 from Crispy Doom 2.1 </span></h2>
<p>Crispy Doom 2.2 has been released on January 2, 2015.
</p>
<h3> <span class="mw-headline" id="Laser_Pointer_improvements"> Laser Pointer improvements </span></h3>
<ul><li> The laser spot now points to the center coordinates of the target.
</li><li> Laser spots are now solid instead of translucent. They became
practically invisible too quickly, which was exactly not their purpose.
</li></ul>
<h3> <span class="mw-headline" id="Cheats_improvements_2"> Cheats improvements </span></h3>
<ul><li> New cheat: IDBEHOLD0 will reset all player powers.
</li><li> When the IDDQD cheat is activated after a player has died, his body is respawned at the current position.
</li></ul>
<h3> <span class="mw-headline" id="Feature_review"> Feature review </span></h3>
<ul><li> The "center weapon sprite when firing" feature is now optional.
</li><li> The "colored blood" feature as well as the "fix lost soul and spectre blood" features are now optional.
</li><li> The "randomly mirrored corpses" feature is now optional.
</li><li> A second page has been added to the in-game "Crispness" menu to account for the added options.
</li><li> New optional feature: The "Kills" statistics are fixed, i.e.
the "Kills" ratios shown after finishing a map or in the automap stats
are adjusted each time a new monster is spawned on the map (e.g. in
Nightmare mode, a Lost Soul spawned by a Pain Elemental, a monster
resurrected by an Archiville or a monster spawned by a cube spitter).
Furthermore, in "-nomonsters" games, Keens are now preserved but don't
count towards the "Kills" statistics.
</li><li> If the "player may walk over/under monsters" feature is
enabled, the player is now also able to walk under solid hanging
corpses.
</li></ul>
<h3> <span class="mw-headline" id="Further_improvements"> Further improvements </span></h3>
<ul><li> In the Crispy HUD, the health indicator now blinks if it is below 10%. Somehow inspired by Doom Retro.
</li><li> Logging to stderr has been generally improved. Especially, the
map slot, the WAD file and the skill are now printed whenever a map is
loaded. Furthermore, absurd texture names in error messages have been
fixed.
</li><li> Linedefs with the two-sided flag but without second sidedef
are now fixed in a demo-compatible way, i.e. they are rendered as
one-sided walls when a mid-texture is set and transparent else.
</li><li> Missing textures and flats do not lead to crashes anymore.
Missing textures are rendered as HOM, i.e. black in Crispy Doom, and
missing flats are replaced with the first flat available. In a very
limited scope, this feature makes it possible to intermix resources and
maps from different Doom missions.
</li><li> Most Slime Trails are removed when loading a map. This feature
has been mostly taken from Lee Killough's implementation in MBF, but
has been modified for demo-compatibility to not modify actual vertex
coordinates, but instead dummy "pseudovertexes" that are only used in
rendering.
</li></ul>
<h3> <span class="mw-headline" id="Additional_Bug_fixes"> Additional Bug fixes </span></h3>
<ul><li> The patch color translations are now cleared after drawing the
"Crispness" menu cursor. This could lead to the menu picture or the
status bar being rendered too dark. Thanks to fistmarine for the bug
report.
</li><li> Crashes in huge maps that occured due to the Wiggle-Fix
(introduced in Crispy Doom 2,0) have been fixed. This has been done by
upgrading the entire renderer to use 32-bit integer math. Thanks to kb1,
RjY and Quasar for pointers to the relevant code changes!
</li><li> Crashes caused by the laser spot getting drawn behind the view plane have been fixed.
</li><li> The laser spot is not able to trigger an intercepts overflow anymore.
</li><li> A crash in maps with a cube spitter but without spawn spots (e.g. MAP04 in DV.WAD) has been fixed.
</li><li> A crash during map transitions has been fixed if a PWAD
contains a stray MAP33 lump (e.g. INTIME.WAD). MAP33 is now only
considered a regular map if the CWILV32 lump is also present.
</li></ul>
<h2> <span class="mw-headline" id="Changes_of_Crispy_Doom_2.1_from_Crispy_Doom_2.0"> Changes of Crispy Doom 2.1 from Crispy Doom 2.0 </span></h2>
<p>Crispy Doom 2.1 has been released on November 12, 2014. This is
mostly a bug fix release to treat a bug that reproducibly crashed the
setup program on Windows systems.
</p><p>Further changes that have accumulated in the short time frame include:
</p>
<h3> <span class="mw-headline" id="Color_translation_improvements"> Color translation improvements </span></h3>
<ul><li> Color space translations are now also applied to gray shades. This means that now really <b>any</b>
status bar can be fully colorized. The only exception are the gray drop
shadows of the original IWAD status bar numbers, which are
intentionally left untouched.
</li></ul>
<h3> <span class="mw-headline" id="Menu_improvements"> Menu improvements </span></h3>
<ul><li> In menus, numerical values are now always shown next to sliders.
</li><li> Setting mouse sensitivity to 0 now disables the corresponding axis entirely.
</li><li> The Crispness menu has got a complete overhaul:
<ul><li> The in-game "Crispness" menu now has a solid background. There
was too much text displayed and the game graphics in the background were
too distracting for it to remain legible.
</li><li> The menu items are now ordered into "Visual", "Tactical" and "Physical" categories.
</li><li> Disabled menu items are now indicated by darker colors.
</li></ul>
</li></ul>
<h3> <span class="mw-headline" id="More_victims_of_the_feature_clean-up"> More victims of the feature clean-up </span></h3>
<ul><li> The "power up" sound is not played anymore when selecting the
Berserker fist. This feature was hardly noticable at all and did not
justify all the code that it required. Also, speaking about random
non-Vanilla featuritis...
</li><li> Common mapping errors (e.g. missing sidedefs) are not fixed
upon level setup anymore. After all, they are errors and should be fixed
during mapping and not by the engine. But, more importantly, some
mapping errors are demo and network game critical. However, due to the
order in which variables are juggled around in p_setup.c, it is
impossible to conditionally enable the fixed based on certain variables.
Instead, I attempted to implement a separate patch, but failed and thus
decided to drop that feature entirely.
</li></ul>
<h3> <span class="mw-headline" id="Further_improvements_2"> Further improvements </span></h3>
<ul><li> The screen wiping speed and amplitude have been adjusted to be
closer to Vanilla. This involved removing a work-around that has been
introduced in Crispy Doom 1.0.
</li><li> During demo playback, a thin (2 px) bar indicating demo
progress is now printed at the bottom of the screen (similar to
PrBoom+).
</li><li> A warning will be printed when loading a level if it contains
unknown linedef types (i.e. line->special > 141), e.g. Boom
linedefs or generalized linedef types.
</li></ul>
<h2> <span class="mw-headline" id="Changes_of_Crispy_Doom_2.0_from_Crispy_Doom_1.5"> Changes of Crispy Doom 2.0 from Crispy Doom 1.5 </span></h2>
<p>Crispy Doom 2.0 "Back to the Roots" has been released on October 27, 2014.
</p><p>This is a major Crispy Doom release, because it has merged the Chocolate Doom 2.1.0 release.
</p>
<h3> <span class="mw-headline" id=".22Back_to_the_Roots.22_campaign"> "Back to the Roots" campaign </span></h3>
<ul><li> For the current release, Crispy Doom has undergone a strict
feature revision. Features that are considered demo or netgame critical
but are not user-visible enough to justify a dedicated switch, have been
removed. This has been done to avoid development two separate feature
sets, one for demos and net games and one for regular play, and to
generally remain closer to actual Vanilla Doom behaviour. As a rule of
thumb, features which affect the BFG Edition support, especially the No
Rest For The Living expansion, and features which affect level
progression in general have been left intact. Furthermore, using cheats
is considered at own risk (they are disabled in netgames and screw up
demo recording anyway), so they are no longer restricted to single
player games.
<ul><li> It is not possible anymore to switch between the regular fist and the chainsaw.
</li><li> A new level will not automatically start with the chainsaw anymore if the previous one was quit with the fist.
</li><li> The "restart level" and "go to next level" keys are considered
as shortcuts to the IDCLEV cheat and are thus treated as such, i.e.
they are only disabled in net games.
</li><li> The monster corpse flipping feature (based on randomization of
monster corpse health values) is now unconditionally enabled, it is
considered harmless.
</li><li> The vertical bobbing of ammo released by killed monsters has been removed, it has been shown to desync demos.
</li><li> The ability to gib a monster with the SSG has been removed, it
has caused demos to instantly desync whenever it occured. However, that
feature is not lost forever, it has already been merged into Doom Retro
in the mean time.
</li><li> The weapon sprite is now unconditionally centered during
shooting, but only horizontally. The vertical position affects the
weapon lowering and raising times which in turn affect demo sync.
</li><li> The behaviour of the "Run" key when resurrecting a dead player
has been switched. If it is held down, the most current savegame is now
reloaded. If it is not pressed, the level now starts from scratch, just
as in Vanilla Doom.
</li><li> Furthermore, for a cleaner diff relative to Chocolate Doom,
the code added or changed by Crispy Doom has been extensively
documented, commented, restructured and cleaned up where appropriate.
</li></ul>
</li></ul>
<h3> <span class="mw-headline" id="Support_for_BEX_files_and_lumps"> Support for BEX files and lumps </span></h3>
<ul><li> Support for DEHACKED lumps or files in the BEX format
(established in Boom and MBF) has been added. The implementation is
considered complete and supports the following features:
<ul><li> BITS mnemonics in regular "Things" sections,
</li><li> [CODEPTR] sections,
</li><li> [PARS] sections,
</li><li> INCLUDE directives for which the following additional rules apply:
<ul><li> DEHACKED lumps loaded from PWADs may not include files,
</li><li> files that have already been included may not include other files,
</li><li> files included with the INCLUDE NOTEXT directive will have their regular "Text" sections ignored;
</li></ul>
</li><li> [STRINGS] sections. Support for the latter has been merged
from Chocolate Doom, but is enabled in Crispy Doom without any further
restrictions.
</li></ul>
</li></ul>
<h3> <span class="mw-headline" id="Menu_improvements_2"> Menu improvements </span></h3>
<ul><li> The in-game menu now has a "Crispness" item that resembles the
same item from the crispy-setup tool. It allows to enable or disable
most of Crispy Doom's features from inside the game without the need to
open an external application and restart the game.
</li><li> The "permanent mouse look" switch has been added to the "Mouse Sensitivity" menu.
</li><li> During demo recording or net games, it will be impossible to
enable certain "Crispness" features for compatibility reasons. These
will appear as grayed out in the menu.
</li><li> Since there are no graphics for the word "Crispness" available
in regular Doom resources, the menu item has to be renderd in the HU
font. To avoid optical clashes with the other menu entries, these are
now rendered in the HU font as well.
</li></ul>
<h3> <span class="mw-headline" id="Automap_improvements_2"> Automap improvements </span></h3>
<ul><li> If the "Automap stats" feature is enabled, the current map
coordinates will be shown in the upper right corner of the Automap in a
human readable form.
</li><li> Also, if the "Automap stats" feature is enabled and the
current map is loaded from a PWAD, the file name of this PWAD and the
map are displayed in the bottom left corner of the Automap.
</li></ul>
<h3> <span class="mw-headline" id="Cheat_improvements"> Cheat improvements </span></h3>
<ul><li> The IDMYPOS cheat has been improved to show the current map
coordinates in the upper right corner in a human-readable form. This is
the same widget that is also shown in the Automap when the "Automap
stats" feature is enabled. It is shown twice as long as the text line
printed by the original implementation, i.e. long enough to take a
decent screenshot.
</li><li> The SPECHITS cheat now also triggers tag 666/667 sectors. On
maps, where specific monsters are expected to trigger that tag, their
actions take precedence. On any other map, the tags are triggered as
killing all "Keen" monsters would do.
</li><li> The TNTHOM cheat has been introduced to toggle the flasing HOM detector on and off in-game.
</li><li> IDMUS0x or IDMUSx0 will not lead to crashes anymore.
</li><li> IDCLEV00 now reloads the current level and, in Doom 1, IDCLEV0x now warps to map x in the current episode.
</li></ul>
<h3> <span class="mw-headline" id="Color_translation_improvements_2"> Color translation improvements </span></h3>
<ul><li> The former static color translation tables have been replaced
by dynamically generated ones based on actual color space translations,
thanks Paul Haeberli. Formerly, the color translation tables were
identical to the ones found in Boom and MBF and only covered the red
range (palette indices 176-191, 44, 45, 47, 67) so that other colors
were not translated at all. With the new tables, <b>any</b> color can be
converted to any other color in the Status Bar or the HU font. Due to
limitations in the color space translation procedure, though, gray tones
will remain gray. Furthermore, due to limitations in the original Doom
palette, light blue tones are often mapped to grays.
</li><li> The translucency filter table has been improved. First, the
entire algorithm to calculate that table has been re-implemented from
scratch, replacing the former implementation by Lee Killough found in
Boom and MBF. Second, for the same reason mentioned before, the
algorithm has been tuned by plums to emphasize the blue tones in the
results.
</li><li> The translucency filter initialization routine now properly
indicates if the TRANMAP lump has been generated or loaded from a file
at startup.
</li></ul>
<h3> <span class="mw-headline" id="Transparent_Crispy_HUD"> Transparent Crispy HUD </span></h3>
<ul><li> When the display size is expanded beyond the regular Crispy
HUD, the HUD is now rendered as translucent. Of course, this only works
if transparency is generally enabled.
</li><li> When the translucent Crispy HUD is enabled, all HU messages will be printed as translucent, too.
</li></ul>
<h3> <span class="mw-headline" id="Laser_Pointer_improvements_2"> Laser Pointer improvements </span></h3>
<ul><li> The static laser pointer introduced in Crispy Doom 1.1 has been
removed. Its implementation has always been considered emberrassing,
since it was merely four red pixels hard-coded into the center of the
frame buffer.
</li><li> The new laser pointer works like a "real" laser vision spot
and is now an actual sprite (i.e. the '+' character of the HU font) that
is projected into the game world and shows <b>exactly</b> where the
next shot will hit. This also means that it will lock itself to a
monster sprite if the next shot is going to hit that monster.
</li><li> Also, the ability to change the color of the spot when a
monster is targeted has been removed, because laser vision spots really
just don't do that.
</li><li> It is not yet decided if the old static laser spot or the color changing feature will ever return in one form or another.
</li></ul>
<h3> <span class="mw-headline" id="Further_improvements_3"> Further improvements </span></h3>
<ul><li> The per-line "WiggleFix" developed by kb1 and e6y has been
applied. In the course of this, Lee Killough's int64 sprtopscreen fix
has also been applied.
</li><li> The number of supported savegames has been raised to 8.
</li><li> In the cast shown after beating Doom 2, the monsters can now
be rotated using the left/right keys. Furthermore, they can get skipped
back and forth by using the strafe left/right keys and turned into gibs
by pressing the "Run" key.
</li><li> Colored blood is now enabled on a per-monster basis. That is,
if a monster's death sprites have been replaced by a PWAD, this
monster's blood will not get colorized anymore. This allows for
disabling of colored blood for specific monsters by loading a PWAD that
merely needs to include a single lump: BOSSI0 for the Baron of Hell,
BOS2I0 for the Hell Knight or HEADG0 for the Cacodemon. Furthermore,
Lost souls bleeding Puffs can be disabled by replacing the SKULG0 lump
and Spectres bleeding Spectre blood can be disabled by replacing the
SARGI0 lump. Colored blood is generally disabled in Chex Quest (where
monsters do not bleed, anyway) and Hacx, with the exception of the Thorn
Thing in the latter, which now bleeds green blood.
</li><li> Lost Souls spawned by Pain Elementals now also bleed Puffs.
</li><li> In Deathmatch games, frags are now colorized in the status
bar. Positive frags are shown in green, negative ones in red and zero
flags appear golden.
</li><li> The red palette which is applied when the player is hurt is
toned down a bit when the menu is active, so the latter remains legible.
</li></ul>
<h3> <span class="mw-headline" id="Further_Bug_and_Compatibility_fixes"> Further Bug and Compatibility fixes </span></h3>
<ul><li> Since Crispy Doom 1.5, PWADs loaded with the "-file" parameter
are treated as if they were loaded with the "-merge" parameter. This has
lead to issues with PWADs that contain duplicate lumps once inside the
"flats" range and once outside. To overcome this issue, lumps returned
by the FlatNumForName() function are now restricted forcefully into the
"flats" range (as an exception, this rule does not apply to PWADs which
have been merged using one of the NWT-style merging parameters). Please
note that this may cause graphical glitches in the flats rendering for
savegames that are saved in Crispy Doom and afterwards loaded in
Chocolate Doom. These can be avoided by loading the PWAD with the
"-merge" parameter in Chocolate Doom as well.
</li><li> The rude extra quit messages containing profanity (feature
introduced in Crispy Doom 1.5) have been disabled again. Their reception
was mostly negative, and since they did not win the game anything and
did not justify another dedicated switch, they had to go. Maybe they
were disabled for a reason in the first place...
</li><li> The checks for the NERVE.WAD PWAD file have been simplified.
First, the special-casing for this PWAD is not restricted to the Doom 2
IWAD from the Doom 3 BFG Edition anymore but is now also applied if it
is loaded alongside the regular Doom 2 IWAD. Second, the special-casing
is not restricted to the PWAD being loaded with the "-file" command line
parameter anymore but is now applied independent of the way the PWAD
has been loaded.
</li><li> The check for the SSG resources has been simplified and does
not lead to a crash anymore if a PWAD is loaded that contains the SSG
sprites, but not its sounds (e.g. Freedoom's leftover.wad). It may not
work when "PC Speaker" is selected for sound effects, though.
</li><li> Text lines that exceed the width of the screen will no longer lead to crashes. Thanks Dragonsbrethren for the bug report.
</li><li> The fix for the common mapping error which clears the
ML_TWOSIDED flag when a linedef is missing a second sidedef has been
fixed and is now only applied in single player games.
</li><li> The hackish code that checked for the "Run" key being pressed
in the menus when selecting to quit the game has been removed. Instead,
to speed up the exit sequence, the exit sounds are now omitted if it has
been chosen to not show the ENDOOM screen. However, it is still
possible to instantly quit from in-game by pressing "Run"+F10.
</li><li> Since Crispy Doom 1.1, the default movement keys were mapped
to W, A, S and D and the keys to control the menu have served as a
secondary mapping. However, this led to conflicts with specific key
setups in which the menu keys were given a different meaning. Therefore,
the original key mapping has now been reset and an alternative key set
for forward, backward, strafe left and right has been introduced to
which the W, A, S, D keys have been mapped. Thanks Average for reporting
this issue.
</li><li> Unpausing in the menus during demo recording does not lead to desyncing anymore.
</li><li> The original Doom 2 bug which leads to the sky not changing between episodes has been fixed.
</li><li> The bug which caused flats getting more distorted the closer
they are to the right of the screen has been fixed. Thanks to manny for
reporting the bug and to bradharding for pointing me to the right code
change.
</li><li> The newly allocated memory regions when raising the static limits are now initialized to please Valgrind.
</li><li> Holding the ESC key no longer causes the menu to repeatedly flicker on and off. Thanks joe-ilya for reporting the issue.
</li><li> Upon map initialization, unknown map things (e.g. players 5 to 8 starts) are now ignored and will not lead to crashes anymore.
</li></ul>
<h2> <span class="mw-headline" id="Changes_of_Crispy_Doom_1.5_from_Crispy_Doom_1.4"> Changes of Crispy Doom 1.5 from Crispy Doom 1.4 </span></h2>
<p>Crispy Doom 1.5 "Supernova" has been released on August 18, 2014.
</p>
<h3> <span class="mw-headline" id="Gameplay"> Gameplay </span></h3>
<ul><li> Automap improvements:
<ul><li> Exit lines are now drawn in white.
</li><li> Corpses are now shown as gray rectangles when the <tt>IDDT</tt> cheat is active.
</li><li> The disappearance of map and grid lines when zooming far out in huge maps has been fixed.
</li></ul>
</li></ul>
<ul><li> A new, unique <tt>SPECHITS</tt> cheat has been added that triggers (by either using, shooting or crossing) all special lines available in the map <b>at once</b> -- including lines that require a key to get activated but excluding teleporters and level exits. <i>While
this cheat may appear completely pointless at first, it has proven
useful for debugging purposes and allows map designers to "just see what
happens if...". Be warned, however, that using this cheat may leave the
map in a completely inconsistent state and may cause several overflows
and unpredictable behaviour. Furthermore, please note that doors which
can be activated from both sides will not move at all, because they will
be opened by one <tt>linedef</tt> and closed again by the other one in the same gametic.</i>
</li><li> The <tt>ID[K]FA</tt> cheats now give the backpack to the player.
</li></ul>
<ul><li> Optional weapon recoil has been added for all weapons except
the fist and the chainsaw, using the recoil thrust values found in MBF
and PrBoom+. This feature has to get enabled in <i>crispy-doom-setup</i>, it is disabled by default and only generally available in regular single player games.
</li><li> The extra quit messages (<b>containing profanity!</b>) found in the source code have been enabled and are now shown with the same propability as the original messages.
</li><li> The weapon sprite now gets centered upon firing.
</li><li> When the "Quick Load" button (<tt>F9</tt>) is pressed before the game has been saved via "Quick Save" (<tt>F6</tt>),
the regular "Load Game" menu is now shown and the selected slot is
taken as the "Quick Save" slot. Also, the "Quick Save" slot is now
cleared once the game is ended via "End Game" in the "Options" menu.
</li></ul>
<ul><li> If the player exits a map with the Berserker fist active and is
equiped with the chaisaw, he will start the next map with the chainsaw
instead of the normal fist. This feature is only available in regular
single player games.
</li><li> The "power up" sound is now played (but only audible to the <tt>consoleplayer</tt>) each time the Berserker fist is selected.
</li></ul>
<h3> <span class="mw-headline" id="Technical"> Technical </span></h3>
<ul><li> Compatibility improvements:
<ul><li> The default amount of RAM that is allocated for the game has been doubled to <tt>32 MB</tt>, the minimal amount has been quadrupled to <tt>16 MB</tt>.
</li><li> The "Medusa" effect from multi-patch textures has been fixed by lazily replacing (and slightly adapting) <tt>R_DrawColumnInCache()</tt>, <tt>R_GenerateComposite()</tt> and <tt>R_GenerateLookup()</tt> in <tt>src/doom/r_data.c</tt> with Lee Killough's implementations from MBF.
</li><li> The "Tutti Frutti" effect from short textures has been fixed by (again lazily) replacing <tt>R_DrawColumn()</tt> in <tt>src/doom/r_draw.c</tt> with Lee Killough's implementation from MBF. <i>However, this fix has not yet been applied to the other column drawing functions, namely <tt>R_Draw{Fuzz,Translated,TL}Column[Low]()</tt>.</i>
</li><li> The <tt>MAXVISSPRITES</tt>, <tt>MAXVISPLANES</tt> and <tt>MAXDRAWSEGS</tt> limits have been entirely removed (<i>i.e. the formerly static arrays now get resized dynamically</i>), using no Boom-derived code at all. <i>However, for performance reasons (mostly sprite ordering in <tt>R_SortVisSprites()</tt>), the <tt>MAXVISSPRITES</tt> limit is currently capped at 4096 (i.e. <tt>32 x</tt> Vanilla <tt>MAXVISSPRITES</tt> limit).</i>
</li><li> The <tt>MAXSEGS</tt> limit has been raised from <tt>32</tt> to <tt>(SCREENWIDTH/2+1)</tt>, i.e. the same value found in MBF.
</li><li> The <tt>BLOCKMAP</tt> limit has been removed, using code from PrBoom+.
</li><li> Support for extended nodes has been implemented, again using code from PrBoom+.
</li><li> The <tt>MAX_ADJOINING_SECTORS</tt> limit (<i>formerly up to <tt>20</tt> adjoining sectors</i>) has been removed, while keeping the one overflow (<i>i.e. if <tt>h == 21</tt></i>) that could possibly get emulated intact -- based on code adapted from PrBoom+.
</li><li> The Vanilla savegame and demo limits are now unconditionally disabled.
</li><li> When entering an unknown special sector, the game will not crash with an error message anymore but merely print a warning.
</li><li> The file size limit (<tt>96 kB</tt>) for MID files inside PWADs has been disabled.
</li><li> Common mapping errors (<i>e.g. missing <tt>sidedefs</tt></i>) are now fixed upon loading the maps, using code adapted from PrBoom+.
</li><li> A <a rel="nofollow" class="external text" href="http://doomwiki.org/wiki/Hall_of_mirrors_effect">HOM</a> is fixed if both <tt>ceilingplane</tt> and <tt>floorplane</tt> are the same visplane (e.g. both are skies).
</li><li> An integer overflow in <tt>SlopeDiv()</tt> has been fixed that formerly lead to an open subsector and thus a giant slime trail in <tt>nuts.wad</tt>.
</li></ul>
</li></ul>
<dl><dd> All of the above changes make it possible to properly play (and save, and exit, and record and playback demos in) <i>Fraken</i>maps like e.g. <tt>nuts.wad</tt>, <tt>arcadia.wad</tt> and all of <tt>NOVA.wad</tt> -- gosh, what broken mess. :p
</dd></dl>
<ul><li> Enemy targets and tracers are now preserved when saving and loading a game. <i>This is achieved by enumerating all thinker pointers upon saving a game and storing the corresponding indices in the <tt>mobj->target</tt> and <tt>mobj->tracers</tt>
fields instead of the actual pointers. When loading a game, after all
the thinkers have been restored, the reverse process is applied and all
indices in the <tt>mobj->target</tt> and <tt>mobj->tracers</tt>
fields are replaced by the corresponding current pointers again. This
process is completely Vanilla compatible, as Vanilla will ignore the
contents of the <tt>mobj->target</tt> and <tt>mobj->tracers</tt> fields anyway and overwrite them with <tt>NULL</tt> when loading a game. Otherwise, when loading a game saved in Vanilla, the contents of the <tt>mobj->target</tt> and <tt>mobj->tracers</tt> fields will not match any of the indices expected by Crispy Doom and will thus get overwritten with <tt>NULL</tt>, just as in Vanilla.</i>
</li><li> Games saved in a map with an active cube spitter will not cause a crash anymore when loaded again. <i>When awakened, the cube spitter counts the number of spawn spots and saves them in the <tt>numbraintargets</tt> variable. However, in Vanilla its value is not recalculated when loading a game. This has been fixed by calling <tt>A_BrainAwake()</tt> again if <tt>numbraintargets == 0</tt>.</i>
</li></ul>
<ul><li> Mouse look improvements:
<ul><li> Vertical mouse movement has been vastly smoothened by adjusting the scale instead of the mouse delta. <i>In the former implementation the vertical mouse delta was scaled down by <tt>1/8</tt>, i.e. the lower three bits were discarded. So by moving the mouse really slowly, it was possible to not change <tt>lookdir</tt> at all when the delta on every tic was less than <tt>8</tt>.
This has been fixed by moving the division into the rendering and slope
calculations and scaling all the constants up by factor 8.</i> Thanks to clarry of the doomworld forum for this highly appreciated patch!
</li><li> Centering the view with the mouse button assigned to mouse
look is now more lenient. Any click with that button that is shorter
than <tt>6 tics</tt> will now center the view.
</li><li> The view is now smoothly centered after teleporting.
</li><li> <i>The <tt>yslope[i]</tt> array is not recalculated anymore in <tt>R_SetupFrame()</tt> for each frame when <tt>lookdir</tt> changes; instead a lookup table is calculated once in <tt>R_ExecuteSetViewSize</tt>.</i>
</li></ul>
</li></ul>
<ul><li> All PWADs given as arguments to the "<tt>-file</tt>" parameter will now get merged as if they were passed to the "<tt>-merge</tt>" parameter.
</li><li> It is now possible to scroll through the menus with the same
mouse buttons that are assigned for changing to the previous/next weapon
-- which are usually mouse wheel down/up, respectively.
</li><li> If the "Run" key is pressed while the game window is closed (e.g. by clicking on the <tt>X</tt>
button in the upper right corner) or during confirmation of the quit
message, the game now exits instantly (in addition to the feature
introduced in Crispy Doom 1.4).
</li><li> The background now slowly fades out when a menu is activated or the game is paused.
</li></ul>
<h3> <span class="mw-headline" id="Additional_bug_fixes_2"> Additional bug fixes </span></h3>
<ul><li> The <tt>tranmap.dat</tt> file will not get saved in the root
directory on Windows systems anymore, instead it will now get saved in
the same directory as e.g. <tt>crispy-doom.cfg</tt>. <i>This was caused by an extra leading path separator in the <tt>tranmap.dat</tt> file name string.</i> Thanks to plums of the doomworld forums for the bug report.
</li><li> Visual glitches with transparent sprites caused by palette changes have now been fixed. <i>The cached translucency map in the <tt>tranmap.dat</tt> file is checked for palette changes at startup. However, in the original code derived from MBF, only the first <tt>256</tt> bytes of the palette were compared, whereas the base palette in the <tt>PLAYPAL</tt> lump has <tt>768</tt> bytes. So, changes in later palette indices went completely unnoticed.</i>
</li><li> The state of the "always run" toggle (introduced in Crispy Doom 1.3) after loading and saving a game has been fixed. <i>Enabling "always run" makes the <tt>joybspeed</tt>
variable greater than the size of the array which holds the button
states, which caused an out-of-bounds read in the part of the expression
that determines whether <tt>speed</tt> should be <tt>true</tt>.</i> Thanks to clarry of the doomworld forums for the bug report and the patch!
</li><li> If things are stuck together vertically because of moving
sectors, they are now allowed to move further apart. The fix for this
bug has been taken from Doom Retro.
</li></ul>
<h2> <span class="mw-headline" id="Changes_of_Crispy_Doom_1.4_from_Crispy_Doom_1.3"> Changes of Crispy Doom 1.4 from Crispy Doom 1.3</span></h2>
<p>Crispy Doom 1.4 has been released on June 12, 2014.
</p>
<h3> <span class="mw-headline" id="Gameplay_2"> Gameplay </span></h3>
<ul><li> Players are now allowed to walk over or underneath shootable
objects, i.e. monsters and barrels. This needs to be explicitely enabled
in <i>crispy-doom-setup</i>, but is disabled by default and generally only available in single-player games.
</li></ul>
<dl><dd> Some restrictions still apply to this feature:
<ol><li> Only the player can walk over or underneath other objects,
monsters can not. This prevents multiple monsters from piling up and
avoids the need for more complicated measures in the code that would
potentially break compatibility.
</li><li> It is only allowed to walk over or underneath shootable
objects. Most other objects in Doom have arbitrary heights hard-coded
into the engine which do not necessarily match the actual appereance in
the game.
</li><li> Melee attacks across differences heights are entirely unaffected by this feature.
</li></ol>
</dd></dl>
<ul><li> Automap improvements:
<ul><li> Keyed doors are now drawn in their respective colors.
</li><li> Thus, in order to distinguish red-keyed doors from regular
walls (which were formerly drawn in red) and yellow-keyed doors from
walls with ceiling level changes (which were formerly drawn in yellow),
these are now drawn in darker red and yellow colors, respectively.
</li><li> Furthermore, teleporters (which were formerly drawn in just
that darker red color) are now drawn in green. Additionally, WR
teleporters (<i>linedef type #97</i>) are now also drawn in green if they are not secret.
</li><li> When the <tt>IDDT</tt> cheats are active:
<ul><li> Secret sector boundaries are now drawn in purple until they are revealed (<i>i.e. as long as <tt>sector->special == 9</tt></i>).
</li><li> Keys are now shown as crosses in their respective colors.
</li><li> The triangle size now represents the actual thing size.
</li><li> Countable kills are now shown as red and countable items as yellow triangles.
</li></ul>
</li><li> Episode and Map are now explicitely shown in the automap if the map title string has been modified by means of dehacked.
</li></ul>
</li><li> HUD improvements:
<ul><li> When either the God Mode cheat or the Invincibility powerup are
active, Health and Armor values on the status bar are now printed in
gray.
</li><li> When the fist is selected and the Berserk Pack is active, its
sprite is now drawn into the previously empty Ammo field in the Crispy
HUD.
</li></ul>
</li></ul>
<h3> <span class="mw-headline" id="Technical_2"> Technical </span></h3>
<ul><li> Gun flash sprites are now rendered translucent.
</li><li> Holding down the "Run" key while taking a screen shot now
takes the picture without the weapon sprite or any other HUD elements.
</li><li> Holding down the "Run" key while choosing "Quit Game" now exits instantly. This actually turns <tt>Shift+F10</tt> into an emergency "Boss Key". ;)
</li><li> The presence of MAP33 is not hard-coded to the <tt>doom2.wad</tt> IWAD file of the BFG Edition anymore. Instead, it is now checked at startup and the level progression (i.e. <i>MAP02-(secret exit)->MAP33->MAP03</i>) is adapted accordingly.
</li><li> Once a savegame has been rejected to continue from after
player death (by holding down the "Run" key during resurrection, feature
introduced in Crispy Doom 1.3) it is not considered anymore until
loaded or saved again.
</li><li> The <tt>IDCLEVxy</tt> cheat now eats key presses, i.e. the second digit of the level number is not interpreted as a weapon selection anymore.
</li><li> When using the <tt>-warp</tt> command line parameter for Doom 1, the episode and map numbers do not have to be separated by spaces anymore.
</li><li> The flashing HOM indicator (introduced in Crispy Doom 1.3) has been turned into a command line option <tt>-flashinghom</tt> and now flashes even when the <tt>NOCLIP</tt> cheat is active. Without this option, though, HOMs are still drawn in black but do not flash in red anymore.
</li></ul>
<h2> <span class="mw-headline" id="Changes_of_Crispy_Doom_1.3_from_Crispy_Doom_1.2"> Changes of Crispy Doom 1.3 from Crispy Doom 1.2 </span></h2>
<p>Crispy Doom 1.3 has been released on May 19, 2014.
</p>
<ul><li> Crispy Doom now has its own icon! It is is composed of the <a rel="nofollow" class="external text" href="http://www.chocolate-doom.org/wiki/index.php/File:Chocolate-logo.png">Chocolate Doom icon</a> and a <a rel="nofollow" class="external text" href="https://en.wikipedia.org/wiki/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 rel="nofollow" class="external text" href="https://en.wikipedia.org/wiki/Public_domain">public domain</a>.
</li></ul>
<h3> <span class="mw-headline" id="New_features_2"> New features </span></h3>
<ul><li> A "quick reverse" key has been added.
</li><li> A key to toggle "always run" has been added, set to <tt>Caps Lock</tt> by default.
</li><li> Keys have been added to "go to the next level" and to "reload
the current level", but left unset by default (based on code taken from
PrBoom+).
</li><li> Support to invert the mouse on the vertical axis has been added.
</li><li> It is now possible to toggle between Fist and Chainsaw even
without the Berserk pack applied, not available in demo
recording/playback and netgame mode.
</li><li> Boom's <tt>TNTEM</tt> and <tt>TNTWEAPx</tt> cheats as well as PrBoom+'s/ZDoom's <tt>NOTARGET</tt> cheat have been implemented.
</li><li> The Automap is now updated while playing.
</li><li> The Automap markers are now centerd on the map.
</li><li> Vertical aiming (introduced in Crispy Doom 1.2) is now
optional, since it may have some severe undesired effects on gameplay.
It can be enabled in <i>crispy-doom-setup</i>, but is disabled by default and in demo recording/playback and netgame mode.
</li><li> The corpse flipping randomization (introduced in Crispy Doom 1.2) has been improved by improving corpse health randomization. <i>The
flipping decision is based on the monster health after death. However,
since some weapons do only apply damage in multiples of (multiples of)
2, the distribution was uneven. In Crispy Doom 1.3, moster health is now
reduced by <tt>target->tics & 1</tt>, which itself is randomized by <tt>target->tics -= P_Random()&3</tt> before. Thus, a more even distribution is achived across all weapons and monster types.</i> Furthermore, the Barrel has been added as an exception that should not have its death animation flipped (thanks Doom Retro).
</li><li> The lethal pellet of a point-blank SSG blast may now get an
additional damage boost to achieve an occasional gib chance, disabled in
demo recording/playback and netgame mode. <i>This only happens if the target is within melee range (i.e. if <tt>P_CheckMeleeRange(target)</tt> returns <tt>true</tt>) and if <tt>damage >= 10</tt> for the lethal pellet, which roughly corresponds to a 2/3 chance.</i>
</li><li> If the player dies and the game has been loaded or saved
before in the current level, that savegame is now reloaded instead of
restarting the entire level from scratch. However, since this behaviour
may be undesired, it is possible to suppress it by holding the "Run" key
during resurrection.
</li><li> The player view is now centered when the player dies or hits hard ground (the latter only when mouse look is disabled).
</li><li> Existing demo files with the same file name are now saved from
getting overwritten by adding a file name suffix. That is, if you run
e.g. <tt>crispy-doom -record demo</tt> and a file called <tt>demo.lmp</tt> does already exist, Crispy Doom will now save the new demo as <tt>demo-000.lmp</tt>, or <tt>demo-001.lmp</tt> if that does also exist, etc.
</li><li> Entering menus while recording demos will now pause the game to prevent <a rel="nofollow" class="external text" href="http://doomwiki.org/wiki/Demo_desyncing_caused_by_menu_access">instant desyncing</a>.
</li><li> A <a rel="nofollow" class="external text" href="http://doomwiki.org/wiki/HOM">HOM indicator</a> has been added that flashes between black and red (but remains black if the <i>noclip</i> cheat is active).
</li><li> Chocolate Doom 2.0.0 clients are now allowed to connect to Crispy Doom servers.
</li></ul>
<h3> <span class="mw-headline" id="Experimental_features"> Experimental features </span></h3>
<ul><li> The "flipped levels" feature has been ported over (i.e. "stolen") from Strawberry Doom. To try this out, add the <tt>-fliplevels</tt> parameter to the command line.
</li><li> The SSG is now also available in Doom 1 if the required resources are made available. To try this out, run the game via e.g. <tt>crispy-doom -iwad doom.wad -merge doom2.wad doom.wad</tt> and type <tt>IDKFA</tt> or <tt>TNTWEAP9</tt>.
</li></ul>
<h3> <span class="mw-headline" id="Other_bug_fixes"> Other bug fixes </span></h3>
<ul><li> The tutti-frutti effect which appeared around the weapon sprite under certain circumstances has been fixed.
</li><li> A crash has been fixed when an Automap marker reaches the border of the map.
</li><li> A bug that made the status bar and the face visible under certain circumstances when using the <i>noclip</i> cheat has been fixed.
</li></ul>
<h3> <span class="mw-headline" id="Non-Doom_Ports"> Non-Doom Ports </span></h3>
<ul><li> Due to popular demand, the non-Doom games that are part of
Chocolate Doom have now been added back into the release. However, they
have not seen any development since the Crispy Doom 1.0 release and are
strictly <b>unsupported</b>. Feature requests are accepted if accompanied by patches. ;-)
</li></ul>
<h2> <span class="mw-headline" id="Changes_of_Crispy_Doom_1.2_from_Crispy_Doom_1.1"> Changes of Crispy Doom 1.2 from Crispy Doom 1.1 </span></h2>
<p>Crispy Doom 1.2 has been released on April 10, 2014.
It is mostly a bug fix release to fix the jerky mouse look in Crispy
Doom 1.1. If you were unsatisfied with the mouse look performance of
Crispy Doom 1.1 it is highly recommended to upgrade to Crispy Doom 1.2:
</p>
<ul><li> Unjerkify mouse look.
<ul><li> In Crispy Doom 1.1 vertical mouse movement changed the <tt>look</tt> variable which decided how the actual <tt>player->lookdir</tt> variable will be changed in the next game tic. However, the <tt>look</tt>
variable is intended for keyboard use and changes the lookdir in rather
coarse steps. The code has been changed to now act directly on the <tt>player->lookdir</tt> variable which provides for a much smoother mouse look.
</li><li> Mouse sensitivity selection is moved into a separate sub-menu of the Options menu.
</li><li> Allow to set separate values for horizontal and vertical mouse sensitivity in both the Options menu and in <i>crispy-doom-setup</i>.
</li><li> Increase mouse sensitivity thermometer range up to 20.
</li><li> Fix a crash in the Options menu when mouse sensitivity exceeds
the maximum value. Instead, allow to exceed the thermometer range and
print values next to it.
</li><li> Fix slopes for bullets and missiles that would not have hit a
target anyway. This means that missed shots will now go into the actual
vertical direction looked into. However, auto-aim will still work and
guide shots to their aim. This feature is only enabled in single-player
games (though probably harmless).
</li></ul>
</li></ul>
<ul><li> Monster death sprites and corpses are now flipped randomly.
While the idea is stolen from Doom Retro, the implementation is
completely different. The flipping decision is based on the value of <tt>thing->health</tt>, which is randomized in Doom, since all damage done by weapons is already randomized. Once a monster is dead (i.e. <tt>thing->flags & MF_CORPSE</tt>), this value remains constant. Although probably harmless, this feature is also only available in single-player games.
</li><li> Fix different view frames for normal fullscreen mode and Crispy HUD.
</li><li> Fix a crash when attempting to test settings from <i>crispy-doom-setup</i>, merged from Chocolate Doom.
</li><li> Fix "fast doors make two closing sounds" and "fast doors reopening with wrong sound" engine bugs.
</li></ul>
<h2> <span class="mw-headline" id="Changes_of_Crispy_Doom_1.1_from_Crispy_Doom_1.0"> Changes of Crispy Doom 1.1 from Crispy Doom 1.0 </span></h2>
<p>Crispy Doom 1.1 has been released on April 5, 2014.
</p>
<h3> <span class="mw-headline" id="Visual_Enhancements"> Visual Enhancements </span></h3>
<ul><li> <b>Minimal HUD:</b> When the view size is increased one step
beyond fullscreen, a minimal HUD is displayed which only shows the
numbers of the status bar without its background.
</li><li> <b>Colored Patches and Sprites:</b> Color translation lookup
tables have been ported over from Boom 2.02. They can be used to
(optionally) colorize the numbers on the status bar, the HUD font and
also the blood of certain monsters.
<ul><li> <b>Colored Status Bar Number:</b> The numbers displayed in the
status bar or the minimal HUD can get colorized depending on their
value. If enabled, health is colored red, yellow, green or blue for
values up to 25%, 50%, 100% and above 100% respectively. Ammo is colored
red, yellow and green for values up to 25%, 50%, 100% of the <i>initial</i>
maximum ammo, respectively. Excess ammo, that can only be carried when a
backpack has been found, gets colored blue. Armor is colored green or
blue depending on the type of armor the player currently wears, red
means no armor. Colored numbers in the status bar can be enabled in the <i>crispy-doom-setup</i> tool and are disabled by default.
</li><li> <b>Colored Blood:</b> Blood is now colored depending on the
monster class. Spectres and invisible players will now bleed spectre
blood, Lost Souls will now bleed Puffs (<i>since spawning Puffs demands the RNG differently than spawning Blood, this feature is only enabled in single player games</i>), Cacodemons bleed blue blood and Hell Knights and Barons of Hell bleed green blood. <i>This feature required pointing the <tt>target</tt> field of the blood <tt>mobj_t struct</tt> to the monster <tt>mobj_t struct</tt> and furthermore the addition of another field to the <tt>vissprite_t struct</tt> to keep track of the object that a sprite belongs to. This is considered <a rel="nofollow" class="external text" href="http://www.doomworld.com/vb/post/1254800">harmless</a>, though).</i>
</li></ul>
</li><li> <b>Translucency:</b> Translucency support has been ported over
from Boom 2.02. As in Boom, the nececssary color tinting lookup table