Source

doom / src / _doc / editing.html

Full commit
   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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <link rel="stylesheet" href="legacy.css" type="text/css"/>
  <meta name="keywords" content="Doom, Legacy, documentation, editing guide"/>
  <meta name="description" content="Doom Legacy Editing Guide"/>
  <title>Doom Legacy Editing Guide</title>
</head>

<body>
<h1><a name="top" id="top">Doom Legacy 1.44 Editing Guide</a></h1>

<div class="floatbox">
<ul>
<li><a href="index.html">User's Guide</a></li>
<li><strong>Map Editing</strong></li>
<li><a href="tutorial.html">Tutorial</a></li>
<li><a href="3dfloors.html">3D Floors Tutorial</a></li>
<li><strong>FraggleScript</strong></li>
<li><a href="fsbasic.html">Getting started</a></li>
<li><a href="fsfuncs.html">Reference manual</a></li>
</ul>
</div>

<div class="floatbox">
<ul>
<li><strong>Editing Specs</strong></li>
<li><a href="#linedefs">Linedef Types</a></li>
<li><a href="#things">Thing Types</a></li>
<li><a href="#textures">Palettes, Colormaps and Textures</a></li>
<li><a href="#sprites">Sprites and Skins</a></li>
<li><a href="#voodoo">Voodoo Dolls</a></li>
<li><a href="#wadcontents">legacy.wad contents</a></li>
<li><a href="#links">Editing Links</a></li>
<li><a href="boomref.html">Boom Reference</a></li>
</ul>
</div>

<!-- TODO
fontbxxx bigfont menu graphics
-->

<div class="column">
<p>
This is a documentation of the new editing features in Legacy. These
features should be in Doom Legacy version 1.43 and up.
</p>
<p>
Doom Legacy supports most Boom editing features discussed in the
<a href="boomref.html">Boom Reference</a>.
</p>

<p>
These editing documents are also fairly lightweight and straight
forward, if you would like a more comprehensive version, please visit
the <a href="http://legacywiki.net/index.php/Main_Page">Doom Legacy Wiki</a>.
</p>


<h2 id="linedefs">Linedef Types</h2>

<table class="def">
<tr><th>Range</th><th>Use</th></tr>
<tr><td>0 &ndash; 141</td><td>Original Doom and Doom2 linedef types</td></tr>
<tr><td>142 &ndash; 269</td><td>Boom extensions</td></tr>
<tr><td>272 &ndash; 306</td><td>Legacy extensions</td></tr>
</table>

<h3>Legacy Linedef extensions</h3>

<table class="def">
<tr>
<th>LINEDEF type</th>
<th>Effect</th>
</tr>

<tr><td class="note" colspan="2">
FraggleScript triggers<br/>
See
<a href="fsbasic.html"> FS getting started</a> and
<a href="fsfuncs.html">FS reference manual</a>.
</td></tr>
<tr>
<td>272</td>
<td>Start FS script (tagnumber), WR</td>
</tr>
<tr>
<td>273</td>
<td>Start FS script (tagnumber), WR, 1-sided</td>
</tr>
<tr>
<td>274</td>
<td>Start FS script (tagnumber), W1</td>
</tr>
<tr>
<td>275</td>
<td>Start FS script (tagnumber), W1, 1-sided</td>
</tr>
<tr>
<td>276</td>
<td>Start FS script (tagnumber), SR</td>
</tr>
<tr>
<td>277</td>
<td>Start FS script (tagnumber), S1</td>
</tr>
<tr>
<td>278</td>
<td>Start FS script (tagnumber), GR</td>
</tr>
<tr>
<td>279</td>
<td>Start FS script (tagnumber), G1</td>
</tr>


<tr><td class="note" colspan="2">
Translucency maps
</td></tr>
<tr><td>284 &ndash; 288</td>
<td>
<b>Software translucency</b><br/>
These linedefs each apply a different translucency map to the middle
texture. The corresponding <a href="#transmap">translucency maps</a> are
stored in <a href="#legacy_transmaps">legacy.wad</a>.<br/>
<br/>
284 &mdash; TRANSMED: Brightens everything behind the line. Turns things kinda green though.<br/>
285 &mdash; TRANSMOR: Less brightness with a lot less green.<br/>
286 &mdash; TRANSHI: Darkens a little with no green tint.<br/>
287 &mdash; TRANSFIR: Brightens but with no green tint.<br/>
288 &mdash; TRANSFX1: Selective translucency. Only certain colors are translucent.<br/>
</td></tr>


<tr><td class="note" colspan="2">
Colormaps and water
</td></tr>
<tr>
<td>280</td>
<td>
<b>Water &mdash; Boom style</b>
<p>
  Creates swimmable water in all tagged sectors, with colormap transfer like Boom 242.<br />
  Similar to the Boom 242 deep water type but swimmable (using the
  Legacy swimming code). It operates more like water than 242 does,
  but does not have ripples like types 301 and 304. Unlike type 242,
  this type will not make the actual floor or ceiling into invisible
  barriers.<br/>

  The water is only shown if it is above the target sector's floor;
  otherwise, the regular floor is rendered. When water is rendered,
  the properties for the top of the water "plane" and the bottom, are
  both taken from the control sector's floor.
</p>
<p>The lightlevel of the water is controlled by the target sector's
  lightlevel unless the target sector has been also tagged to a
  "Transfer floor properties" linedef, in which case, the water will
  have the transferred lightlevel.<br/>

  It also uses the sidedef1 upper, lower, and middle textures as
  colormaps in the targeted sector.
</p>
<p><em>* It will also create a low fake ceiling if the control ceiling
    is lower than the target ceiling (this is usually not
    desired).</em></p>
</td>
</tr>
<tr>
<td><a name="linedef_282">282</a></td>
<td>
<b>Generate colormap</b>
<p>This type sets the colormap of all tagged sectors like described below, without changing the floor/ceiling or light values. This is nice for putting colored lighting in many different sectors of different floor/ceiling heights:</p>
<table>
<tr>
<th>Texture</th>
<th>Value</th>
<th>Effect</th>
</tr>
<tr>
<td>upper</td>
<td>#rrggbba</td>
<td>6 hex chars giving the color value in RGB format of the colormap mask, 1 alphanumeric char (a-z) denoting the amount of the colormap mask.</td>
</tr>
<tr>
<td>middle</td>
<td>#abbcc</td>
<td>a = boolean value (0 or 1) denoting if this particular colormap
  should be treated like fog (i.e. equal application of colormap to
  all walls, etc.) bb = numerical value (0-32) of the colormap at
  which the fade begins cc = numerical value (1-33) of the colormap at
  which the destination color will be reached. (not yet supported in
  hardware mode)</td>
</tr>
<tr>
<td>lower</td>
<td>#rrggbb</td>
<td>6 hex chars denoting the color the colormap will fade to. (not yet supported in hardware mode)</td>
</tr>
</table>

<p>
Hex color values can be found via paint program or web editor.<br/>
There are tons of colors to choose from but here are some to get you started:
<span style="color: #FF0000">#FF0000</span> 
<span style="color: #009900">#009900</span> 
<span style="color: #0099FF">#0099FF</span> 
<span style="color: #FFFF00">#FFFF00</span> 
<span style="color: #6600CC">#6600CC</span> 
<span style="color: #FF6600">#FF6600</span>
</p>
</td>
</tr>
<tr>
<td>283</td>
<td>
<b>Fog sheet</b>
<p>
  Displays a 128 high transparent dark fog texture as the middle
  texture. This can be used to make a better fog effect by patching up
  the "holes" in fog sectors. Because you often will not want this
  effect on both sides of the line, this linedef will only affect
  sides with a middle texture.
</p>
</td>
</tr>


<tr><td id="fakefloors" class="note" colspan="2">
3D floors
</td></tr>
<tr>
<td>281</td>
<td>
<b>Solid 3D floor with shadow</b>
<p>
Creates a solid 3D floor in all tagged sectors.<br />
It creates a floor, as a solid slab with thickness, that can be walked on and under.</p>
</td>
</tr>
<tr>
<td>289</td>
<td>
<b>Solid 3D floor without shadow</b>
<p>
Creates a solid 3D floor in all tagged sectors, same as type 281, but
without changing the lighting under the floor slab. The floor does not
cast a shadow, so the light below the slab is the same as above. It
puts a floor, as a solid slab with thickness, that can be walked on
and under, inside all tagged sectors.
</p>
</td>
</tr>
<tr>
<td>300</td>
<td>
<b>Solid translucent 3D floor</b>
<p>Creates a solid translucent 3D floor in all tagged sectors, same as
  type 281, but translucent, and without changing the lighting under
  the floor slab.<br />
It creates a floor, as a solid slab with thickness, that can be walked on and under. Sidedef1
upper texture: #nnn</p>
<p>nnn = 3 digit number that encodes for the translucent effect alpha. If it is empty then alpha is 127.</p>
</td>
</tr>
<tr>
<td>301</td>
<td>
<b>Translucent 3D water</b>
<p>Creates translucent 3D water in all tagged sectors.<br />
Set the control sector ceiling to the water top level, and the floor to the floor level (or below).<br />
Sidedef1 upper texture: #nnn</p>
<p>nnn = 3 digit number that encodes for the translucent effect alpha. If it is empty then alpha is 127.</p>
</td>
</tr>
<tr>
<td>304</td>
<td>
<b>Opaque water</b>
<p>Creates a 3D fluid, that is not translucent on the surface. Within the fluid it is transparent.<br />
Does not have translucent effect, does not have alpha, so upper texture is normal. The control sector is sidedef1 of the linedef.</p>
</td>
</tr>
<tr>
<td>302</td>
<td>
<b>3D fog</b>
<p>Creates 3D fog (using control sector's colormap) in all tagged
  sectors.<br />
The middle texture is normal, but is not used. Has the same light
  effect as 303, but also tints anything seen through any of the
  edges, top, or bottom, like a translucent. Because the fog effect is
  not present within the fog itself, it helps to add some fog sheet
  linedefs (283).</p>
</td>
</tr>
<tr>
<td>303</td>
<td>
<b>Ceiling light</b>
<p>Creates a 3D light below the control sector's ceiling height, in all tagged sectors.<br />
Does the 3D light and colormap of a 3D floor, without the floor.</p>
</td>
</tr>
<tr>
<td>305</td>
<td>
<b>Double light effect</b>
<p>Creates a 3D light similar to 303, except that the light is only
  affects the area between the control sector ceiling height, and the
  control sector floor height. Does the 3D light and colormap of a 3D
  floor, without the floor. The control sector light and colormap are
  used with-in the control sector floor and ceiling heights.</p>
</td>
</tr>
<tr>
<td>306</td>
<td>
<b>Invisible floor</b>
<p>Creates a 3D invisible floor, or slab in each tagged sector. The
  floor can be walked on, and will stop weapons, but does not affect
  light nor colormaps.</p>
</td>
</tr>

<tr><td class="note" colspan="2">
Instant z movement
</td></tr>
<tr>
<td>290</td>
<td>Instant lower floor</td>
</tr>
<tr>
<td>291</td>
<td>
Instant raise ceiling
</td>
</tr>
</table>


<h3>New Linedef Flags</h3>

<ul>
<li>Legacy has 2 slightly newer Line Flags.</li>
<li>These flags can usually be found in your map editor by selecting a linedef property.</li>
<li>And then enabling it via Flags check box.</li>
</ul>
<table class="def">
<tr>
<th>Linedef Flag</th>
<th>Effect</th>
</tr>
<tr>
<td>
<p>512 = 0x200</p>
</td>
<td>
  <p><b>Passthru</b>: This flag when set allows a push or switch linedef trigger to pass the push action thru it to ones within range behind it. - Boom</p>
</td>
</tr>
<tr>
<td>
<p>1024 = 0x400</p>
</td>
<td>
  <p><b>Alltrigger</b>: This flag, when set, will allow all things to activate a W* line, with the exception of flying blood. :) This includes all generalized types that are W*.</p>
</td>
</tr>
</table>


<h2 id="things">Thing Types</h2>

<p>
 Legacy supports up to 64 deathmatch starts.
 For compatibility with the existing maps, Legacy
 will use the player starts if all the deathmatch starts
 in a map are occupied. If all the player starts are
 occupied (including extended ones), then a dm start
 chosen randomly will be used.. and players might get
 stuck together, but this will happen normally only
 at the beginning of games with maps with few dm starts.
</p>
<p>
The Doom map format refers to different types of THINGs
(a.k.a. mapthings, map objects, mobjs) by unsigned 16-bit codes,
known as DoomEd numbers. Doom and Heretic use
different numberings, with the number ranges overlapping in some
places.
The situation has been made even more complicated by the different
Doom source ports introducing their own, often conflicting, special THING types.
</p>
<p>
Legacy tries to honor the most common "new" thing types, especially
those introduced by Boom and SMMU.
<!-- TODO sound sequences  (ambient/local/sector action) 4000-7999 -->
</p>

<table class="def">
<tr><th>THING type</th><th>description</th><th>origin</th></tr>
<tr><td>4001-4028</td>
<td>Playerstarts for players 5-32.</td><td>JDS group</td>
</tr>

<tr><td>5001, 5002</td>
<td>Point push and pull effects</td><td>Boom</td>
</tr>

<tr><td>5003</td>
<td>Camera location</td><td>SMMU</td>
</tr>

<tr><td>5004</td>
<td>Path node</td><td>SMMU</td>
</tr>
</table>



<h2 id="textures">Palettes, Colormaps and Textures</h2>

<p>
Doom Legacy consists of several new graphic and patch resources as well as
supporting different variations of modifying them, view the following:
</p>

<h3>Doom Color Palette</h3>

<p>
Like many other older games, Doom used originally 256 color
paletted graphics. The graphics stored in a WAD do not have real
color information but palette indices. The engine maps these indices
to real RGB colors using the palettes defined by the
<a href="http://doom.wikia.com/wiki/PLAYPAL">PLAYPAL</a>
lump in the IWAD.
</p>
<p>
So say you want to make a few new textures in your paint program.
You can either create paletted images using the
<a href="res/doom.pal">Doom palette</a>, or use
24/32 bit truecolor images and quantize them to the Doom palette when
they are done.
<a href="res/heretic.pal">Heretic palette</a> is different from
Doom's, but used exactly in the same way.
Modern lump editors such
as <a href="http://www.doomworld.com/xwe/">XWE</a> will convert your
image to the proper color palette automatically, but
the results will generally be better if you use the correct palette to
begin with.
</p>
<p>
Legacy 1.44 does not support hi-res or hicolor textures or sprites.
However, Legacy 2.0 does!
Please check the <a href="http://doomlegacy.sourceforge.net/">Doom Legacy website</a> for more info on Legacy 2.0.
</p>

<h3>Colormaps</h3>

<p>
The Doom software renderer uses many different kinds of color mapping tables to
simulate lighting and color blending effects.
A <b>colormap</b> is a 256-byte array used to remap the colors inside
a palette:
</p>
<div class="code">new_index = colormap[old_index]</div>
<p>
They are used to create colored area effects,
such as sectors with colored lighting, or a colored fog for the whole level.
</p>
<p>
Colormaps can be created with a utility called Inkworks.
Inkworks is a DOS based program which allows you to manipulate the
color palette and save it in a WAD which contains both PLAYPAL and
COLORMAP lumps to merge or insert into your WAD.
This old way of creating colormaps is somewhat deprecated due to the
fact that they only would show up in software mode. Yet, still an
option.
</p>
<p>
For both hardware and software modes, the easiest way to simulate
colormaps is just by using Legacy's 
<a href="#linedef_282">Generate colormap</a> linetype and setting
a hexadecimal RGB color value in its texture field.
When this is done, an actual colormap lump is not needed.
</p>


<h3 id="lightmap"><span class="keyword">[ADVANCED TOPIC]</span> Lightmaps</h3>
<p>
The Doom software renderer uses a set of 34 different colormaps (one
for each light level plus 2 extra), called a
<b>lightmap</b>, to simulate different visibility levels.
The default lightmap is stored in the confusingly named
<a href="http://doom.wikia.com/wiki/COLORMAP">COLORMAP</a> lump.
One can also simulate colored lighting and fog using lightmaps.
</p>


<h3 id="transmap"><span class="keyword">[ADVANCED TOPIC]</span> Translucency maps</h3>
<p>
A <b>translucency map</b> is a 256-by-256 byte array used for
selective software translucency, where a background color is seen
through a translucent foreground:
</p>
<div class="code">new_index = transmap[fg_index][bg_index]</div>
<p>
You can visualize it as a set of 256 colormaps, one for each
foreground color. Boom (and hence Legacy) uses the lump TRANSMAP as
the default translucency map.
</p>



<h3>Section marker overview</h3>
<p>
Certain lump types in an IWAD or PWAD should be in continous blocks
surrounded by the appropriate section markers. Here are the markers
used by Doom Legacy:
</p>

<table class="def">
<tr><th>Markers</th><th>Section contents</th></tr>
<tr>
<td>C_START, C_END</td>
<td>Software colormaps</td>
</tr>
<tr>
<td>P_START, P_END</td>
<td>Patch lumps (wall and sky textures)</td>
</tr>
<tr>
<td>PP_START, PP_END</td>
<td>alternative</td>
</tr>
<tr>
<td>F_START, F_END</td>
<td>Flat lumps (floor and ceiling textures)</td>
</tr>
<tr>
<td>FF_START, FF_END</td>
<td>alternative</td>
</tr>
<tr>
<td>S_START, S_END</td>
<td>Sprite lumps (mapthings)</td>
</tr>
<tr>
<td>SS_START, SS_END</td>
<td>alternative</td>
</tr>
</table>

<p>
Not all lump types need section markers, for example graphics, sounds
and music do not.
More about section markers and the lumps that go between them will be
found below, but we also encourage you to view your IWAD contents for
more info.
</p>


<h3>Wall textures</h3>
<h4>P_START and P_END markers</h4>
<p>Legacy honors the section markers P_START and P_END when introduced as new Patch textures. As well as PP, P1, P2, and P3, just like Doom.</p>

<ul>
<li>
After adding your section markers, load your texture images between them.
</li>
<li>
When a new wall texture is added, it's name and number will also need to be added to the PNAMES lump, and it's scale, name and off-sets added to the TEXTURE1 lump. If the lump editor doesn't do this automatically, you will have to manually. - (in Xwe, right click the texture image, select 'add to Patch Names' and then again select 'add to Texture').
</li>
</ul>

<p>
(The quickest way is automatically. The way to do this is by selecting
the Patches Tab, and then loading new texture images. Entry&gt;Load.)
From that point Xwe should automatically add the P_START and P_END
markers, as well as the PNAMES and TEXTURE1 lumps) required for the
new patch textures.
The engine then takes the texture name, number, and scale, and puts them where they are assigned to by the map, in game.
</p>

<p>It's a general rule of mine to create NEW patch textures rather than replacing an exsiting one, or creating NEW patch textures with a New Name rather than replacing an existing one.</p>

<p>Standard wall texture sizes: 64x128, 128x128, 256x128.<br/>
However as of 1.41x, hardware video mode in Doom Legacy
supports x2 large flats and wall textures
</p>

<h3 id="rsky">Sky textures</h3>

<p>
The original sky texture size in Doom is 256x128, however,
Legacy also supports sky textures the size of 256x240.
This is because of freelook: you are able to look
higher, thus seeing a part of the sky you couldn't see
in the original Doom. A taller sky texture was needed.
</p>
<p>
Using a taller graphic is better than scaling up the
original skies, it looks better. However for compatibility,
Legacy scales up the SKY textures if it finds that they
are the old small size 256x128.
</p>
<p>
The bottom 40 lines are under the horizon and not
normally seen. The lines 100 to 199 are the ones
you see while looking straight ahead. The top lines
0-99 are the lines of sky you see when looking up.
</p>
<p>
There is a small utility called <a href="res/lumpy.zip">LUMPY</a> provided in this
archive to create patches for the sky. Other editing
utilities can be used to add the new sky patch to your
WAD, XWE for example, see <a href="#links">Editing Links</a>.
</p>

<p>To convert the sky with LUMPY:
<span class="example">LUMPY image.pcx -width 256 -height 240</span>
</p>

<p>
To add the sky to your WAD with XWE:<br/>
Open XWE, select the Patches Tab at the bottom. Select:
Entry&gt;Load. Load your image.
</p>



<h3>Flat textures</h3>

<p>
Flats in a PWAD are supported by the 'addfile' console command
(loading a PWAD file in the game world). This is useful for testing
purposes.
</p>

<h4>F_ and FF_ markers</h4>
<p>
Flats in a PWAD already worked with the original Doom, you had
to put a 'F_END' after the last flat. However, it wasted
memory because the engine took all resources from the F_START
of the original game WAD, up to the F_END in your PWAD, as
flats.
</p>
<p>
Legacy honors the section markers F_START and F_END.
FF_START and FF_END are also honored. Flats are expected to
be within these markers and these flat areas will be searched first.
Separate flat sections within PWAD files are supported, and they
add flats to those found in the IWAD.
If a flat name is not found within the flat markers then Legacy
will search the entire IWAD and PWAD for the flat.
</p>
<p>
Most ports and vanilla Doom engines expect F_START and F_END,
so use them. It makes your WAD compatible with other ports, and speeds
up the name search in Legacy.
</p>

<p>
Unlike patch textures, Flats don't need a pname or texture lump.
Just slap them in your PWAD between the section markers F_START and
F_END and your done.
</p>

<p>
The standard flat (floor / ceiling) texture size in Doom is 64x64 pixels.
However as of 1.41x, hardware video mode in Doom Legacy
supports x2 large flats and wall textures.
More about x2 flats and wall textures
can be found on the
<a href="http://legacywiki.net/index.php/Large_flats_and_textures">Doom Legacy Wiki</a>.
</p>

<p>
Legacy texture flat loading supports any number of new flats (using
new names), and it only animates (loads) those animated flats that are
used in a level.
</p>


<h3 id="animated">Animated textures</h3>
<p>
Swantbl can be used to create new animations.
Now you're probably wondering, what the heck is Swantbl?
</p>
<p>
<a href="res/swantbls.zip">Swantbl</a> is a utility that creates
SWITCHES and ANIMATED lumps to put in your WAD, used by Boom and of
course Doom Legacy. First you will need 2-4 image framesets for your
animation - depending wheater its a flat, a wall, or a switch.
They will need to be (named) and in your WAD. And then, by editing the
DEFSWANI.dat you add new image frame (names) from Last to
First. Then compile it with Swantbl, which then outputs the 2
animation lumps to put in your WAD. More info can be found on
the <a href="http://legacywiki.net/index.php/ANIMATED_and_SWITCHES">Wiki</a>
about animated textures. And of course the DEFSWANI.dat.
</p>


<h3 id="pic_t">pic_t graphics</h3>

<p>
For now, certain Legacy resources need to be in a format called pic_t.
You can also use LUMPY or 
<a href="http://www.sbsoftware.com/">Deepsea</a> to convert other
image formats to pic_t.
This is a <span class="warning">DEPRECATED</span> feature, and is
replaced in Legacy 2.0 by PNG.
</p>


<h2 id="sprites">Sprites and Skins</h2>


<h3 >Using SPRITES in a PWAD</h3>


<p>S_START and S_END markers</p>
<p>SPRITES in a PWAD _ARE_ supported by the 'addfile' console command
(loading a PWAD file in the game world). This is useful for testing
purposes.</p>

<p>
It is not needed anymore to append the missing sprites in a PWAD
(using your faithful lump editor).
You need only S_END (or SS_END) added after the last sprite in your PWAD.
S_START (or SS_START) is not obligatory, but is recommended to clearly
separate sprites from skin sprites, and other sections that might
redefine the same sprite, but for other uses.
It's good practice to place both S_START and S_END in a PWAD when
adding new sprite graphics.
</p>

<p>
All sprite resources found in a PWAD will replace those loaded
before, just like with any other resources. Thus, sprites in a PWAD
replace the original sprites of Doom, Doom2 etc. since the original
game IWAD is always the first one loaded.
</p>

<p>
If you put S_END, but not S_START, sprites will be searched from the
beginning of the PWAD, up to the S_END.
We could get rid of S_END, but the loading of sprites would be less efficient.
</p>

<p>
Another reason for section markers (S_START, S_END): sprite resources
are recognized by their first 4 letters. For example player sprites
start with PLAY. Suppose you replace the PLAYPAL resource in a
PWAD, and use sprites in it, if you don't put the S_START, and
PLAYPAL is BEFORE the sprites, it will be taken as a sprite since it
starts with PLAY.<br />
Solution: always use S_START/S_END, or put the PLAYPAL resource after
S_END.
</p>


<p>
You can replace only some frames of a sprite in a PWAD,
for example replacing PUNGA0, but not PUNGB0. this DOES NOT work
using sprite renaming with DeHackEd. So I really encourage you to use
sprites in a PWAD directly instead of DeHackEd sprite renaming. This
is useful for the rocket for example, when you want to replace only
the missile or only the explosion.</p>



<h2>Creating Skins</h2>


<h3>OVERVIEW</h3>

<p>
In Doom Legacy, each sprite skin in a PWAD is defined by a lump named S_SKIN.
It contains an ASCII text file which describes
the name and properties of the skin.
</p>

<p>
If you put more than one skin into a WAD file, there are effectively
multiple resources of the same name S_SKIN. If this is a problem
you can add any characters after the S_SKIN letters, so that
your WAD editor doesn't complain. Example: S_SKIN1, S_SKIN2, ...
Legacy will search only for the first 6 letters.
</p>

<h4>Skin sprites</h4>
<p>
A skin is basically a sprite replacement for the player avatar.
ALL the frames of the player sprite must be replaced; this
includes the normal run, attack and hurt sequences, as well as the
normal death, and the explode death sequences.
</p>

<h4>Skin face</h4>
<p>
Though the status bar face is viewable only by the player who
uses the skin, it may be replaced in order to be consistent
with the player character appearance. As soon as we ran some
tests with a Leprechaun skin, and saw the marine's head in
the status bar... we added support for replacing the status bar
face. Like the sprites, _ALL_ the face graphics need to be
replaced, if some are not defined, the game will quit.
</p>

<h4>Skin sounds</h4>
<p>
To make it more fun, a skin can have a set of up to 10 sounds
replaced, these are called the 'skin sounds'. Skin sounds are
replacements of a set of the original Doom sounds, which are
given out only by the skin that defines them. All the sounds
need not be replaced.
</p>


<h3>S_SKIN resource format</h3>

<div class="code">// comments start with '//'

name = xxxxxxx &lt;- The name of your skin, max 16 chars, NO SPACES!
sprite = XXXX &lt;- Identify the sprites to use for this skin, 4 characters, optional.
face = XXX &lt;- Identify the status bar face graphics to use for this skin. MUST be 3 characters.
dsORIGNL = dsNEWXXX &lt;- Replace one of the 10 customisable sounds with a new sound.</div>

<h4>EXAMPLE</h4>
<p>
An example is better than 1000 words, so here we go.
Here's a sample of a text file that you could have in the S_SKIN resource:
</p>
<div class="code">// Terminator skin by xxx mail me yyy@myhouse.com
name = terminator
sprite = TERM
face = TER
dsouch = dstmouch
dsplpain = dstmpain
dsslop = dstmexpl
</div>


<p>Let's study each line one by one:</p>

<div class="code">// Terminator skin by xxx mail me yyy@myhouse.com</div>

<p>This is just a comment line. Comments start with '//'.
Use comments to enter author information. The comments
are not displayed anywhere into the game, but they may
be useful if someone hacks your WAD, he/she'll know
where it comes from and who did it.</p>

<div class="code">name = terminator</div>

<p>
This tells that the skin name is "terminator".
The skin name is displayed in the multiplayer-&gt;setup menu.
It is used by the "skin" command, in the console. You would
type "skin terminator" at the console to change the skin
manually, of course it's easier to use the multiplayer menu.
The skin name must be UNIQUE : if there are two skins in
a WAD with the same name, however different the graphics maybe,
only the first skin will be used.
</p>

<p>The skin name is also displayed in the teamplay rankings,
when using "teamskins". Since each team is identified by
a skin in teamskin mode, the rankings would show like this:</p>

<p>107 LEPRECHAUNS TEAM<br/>
98 TERMINATOR TEAM</p>

<p>As you see, the name of the skin is used as the name of the
team. If you don't specify the name of the skin, it receives a
name like SKIN 1, SKIN 2, etc.. not fun.</p>

<p>The name can't have spaces in it... for example
a name like "blues brothers" will make Legacy quit with
a message like "unknown 'brothers' keyword". We should fix
that later.</p>

<div class="code">sprite = TERM</div>

<p>Tells the name of the sprite to use for the skin. Sprites in
Doom use only 4 letters, the original player graphics sprite
is PLAY. The line above tells Legacy to look for TERMA1
instead of PLAYA1, TERMA2A8 instead of PLAYA2A8 etc.</p>

<p>
It is usually easiest to put all the sprites right after
the S_SKIN resource. Example:</p>

<p>S_SKIN<br/>
TERMA1<br/>
TERMA2A8<br/>
TERMA3A7<br/>
TERMA4A6<br/>
etc.</p>

<p>If you put the sprites just after S_SKIN, the sprite
name doesn't matter, Legacy looks for the first sprite name,
and continues to collect all the frames with the same sprite
name, until the name has changed, or the end of the wadfile.
You will want to rename the skin sprites only if your WAD
editor requests that all resources have a _unique_ name.
</p>

<p>Since you can use any name for the sprites, even without
using the "sprite = XXXX" statement, you will probably need
this only if you really can't get the sprites ordered just
after the S_SKIN resource.</p>
<p>Note: _ALL_ the frames of the player sprites must be replaced.</p>

<div class="code">face = TER</div>

<p>
All the status bar face graphics resources in Doom WAD have
a name that starts with STF: STFST01, STFGOD0, STFDEAD, etc.
This line simply gives the three characters to use in place of STF.
So in this example Legacy will look for TERGOD0 instead of
STFGOD0, TERST01 instead of STFST01, etc.
</p>
<p>
The STFB1, STFB2 and STFB3 resources of the original
Doom are not used anymore. Doom Legacy only uses
STFB0, and remaps the green color to the color
of the player, as like it does for sprites.
</p>
<p>
Contrary to the sprites renaming, you MUST use this
line in order to change the status bar face graphics.
You must replace _ALL_ of the status bar face
graphics, that is, provide a replacement for all
the resources that start with STF.</p>

<div class="code">dsouch = dstmouch
dsplpain = dstmpain
dsslop = dstmexpl</div>
              
<p>These lines tell Legacy to use new sounds for this skin in particular,
in place of the game's original sounds.</p>

<p>Up to 10 sounds related to the player actions can be replaced.
The new sound names MUST start with letters DS.
Any of the 10 sounds can be replaced, or all.
The sounds that are not replaced will sound just like the original.
</p>

<table class="def">
<tr><th>Original sound name</th><th>Purpose</th></tr>
<tr><td>dsplpain</td><td>pain sound</td></tr>
<tr><td>dspldeth</td><td>death sound</td></tr>
<tr><td>dspdiehi</td><td>extreme death sound</td></tr>
<tr><td>dsslop</td><td>gibbing sound</td></tr>
<tr><td>dsoof</td><td>hitting the ground / missing a key to a locked door</td></tr>
<tr><td>dsouch</td><td>hitting head on ceiling</td></tr>
<tr><td>dsnoway</td><td>failed using something</td></tr>
<tr><td>dsjump</td><td>jumping sound</td></tr>
<tr><td>dspunch</td><td>punch attack sound</td></tr>
<tr><td>dsradio</td><td>message sound</td></tr>
</table>


<p>Note: the replacement sound doesn't have to be a new sound, you can
use any sound from the game. For example, if you create an
imp skin, you could replace the player sounds with the imp
sounds.</p>


<h4>Skins and sprites in the same PWAD</h4>
<p>
If you have a WAD with skins _AND_ other sprite replacements,
make sure you use S_START, S_END sprite section markers so
that the skin sprites are not replacing the default player
sprites, in case you use 'PLAY' for the skin sprites. If the
PLAYxxxx skin sprites are _outside_ of the sprite section
markers, they will not be mistaken as the default player
sprites.</p>

<h4>Same resource name on different PWADs</h4>
<p>
To make it clear: Legacy will add skins _WAD PER WAD_. Which
means it doesn't matter at all if there are resources with the
same name in different PWADs. In fact, Legacy doesn't even bother if you put several markers
with the same name in a PWAD (multiple S_SKINs for example).
We added support for S_SKINxx where xx can be any character,
just because some WAD utilities don't like multiple resources
of the same name.
</p>

<p>You could for example use the same sprite name for several
skins in a single PWAD, since they are delimited by skin
markers (S_SKIN).</p>



<h2 id="voodoo">Voodoo dolls</h2>

<p>Now in version 1.44 and up.</p>

<p>Create Voodoo Dolls for extra player1 start positions.
This is necessary for many WADs, which use the voodoo dolls for timers
and action activators.</p>
<p>Simply place an (extra player 1 start) in your map.</p>
<p>The trick is using it in an area where the player or item can be pushed, pulled or teleported into effected areas.</p>
<p>For example, the appearance of the player will alert monsters, which is useful for teleporting monsters in front of your real player, without the old way (creating a small tunnel) or without any scripts. So, if you put the voodoo doll in a small room with a monster on the other side of a door, when the door opens, the monster walks forward, which then could be teleported in front of your (real) player start location.</p>
<p>This is only 1 example of the many different things that could be done with Voodoo dolls. Another example would be receiving health by means of conveyor or scrolling floor.</p>
<p>Even though similar effects can be done using Fraggle Script and <a href="fsfuncs.html#map_inter">spawning items</a>. The difference is, Voodoo dolls don't require a script and can be implemented via map creation. This makes it easier when you already plan on doing loads of work to your map.</p>


<h2 id="wadcontents">legacy.wad contents</h2>

<p>
legacy.wad is the main data file in the Doom Legacy distribution. It
contains several resources used by the engine, any of which can be
replaced using PWADs.
</p>
<p>
All the graphics in legacy.wad are in patch format, unless stated otherwise.
</p>

<table class="def">
<tr><th>lump</th><th>contents</th></tr>

<tr><td class="note" colspan="2">
Text lumps
</td></tr>
<tr><td><a href="../resources/VERSION.txt">VERSION</a></td>
<td>
legacy.wad version string, must match the engine version
</td></tr>
<tr><td><a href="../resources/FS_things.h">THINGS.H</a></td>
<td>
<a href="fsbasic.html">FraggleScript</a> header file containing THING names
and flags.<br/>
Add include("things.h"); in your script heading to use it.<br/>
See also FS things.h on the <a href="http://legacywiki.net/index.php/FS_Things.h">Wiki</a>.
</td></tr>
<tr><td><a href="../resources/ENDOOM.lmp">ENDOOM</a></td>
<td>
End text, in a <a href="http://doom.wikia.com/wiki/ENDOOM">strange semi-binary format</a>.
</td></tr>

<tr><td class="note" colspan="2">
<a href="#lightmap">Lightmaps</a> and <a href="#transmap">translucency maps</a>
</td></tr>

<tr><td>WATERMAP</td>
<td>
Boom bluish underwater lightmap.
</td></tr>

<tr><td>
TRANSMED
TRANSMOR
TRANSHI
TRANSFIR
TRANSFX1
</td>
<td>
<a name="legacy_transmaps">Maps</a> for default software translucency.
</td></tr>



<tr><td class="note" colspan="2">
Sounds
</td></tr>

<tr><td>DSOUCH</td><td>Player hits the ground or a wall.</td></tr>
<tr><td>DSJUMP</td><td>Player jumps.</td></tr>
<tr><td>DSFLOUSH</td><td>Walking through water.</td></tr>
<tr><td>DSGLOOP</td><td>Landing or jumping in water.</td></tr>
<tr><td>DSSPLASH</td><td>Splash, or getting out of water.</td></tr>

<tr><td class="note" colspan="2">
Sprites
</td></tr>

<tr><td>BLUD[ab]0</td>
<td>
Random projectile blood
</td></tr>

<tr><td>SMOK[a-e]0</td>
<td>
Smoke
</td></tr>

<tr><td>SPLA[a-c]0</td>
<td>
Water splash?
</td></tr>

<tr><td>TNT1A0</td>
<td>
Invisible sprite for invisible mapthings.
</td></tr>

<tr><td class="note" colspan="2">
Other graphics
</td></tr>

<tr><td>CREDIT</td>
<td>
Credits page
</td></tr>

<tr><td>CROSHAI[1-3]</td>
<td>
HUD crosshairs
</td></tr>

<tr><td>RANKINGS</td>
<td>
Deathmatch rankings graphic (while in a net-game).
</td></tr>

<tr><td>
BRDR_MM
BRDR_MT
</td>
<td>
window border patches?
</td></tr>

<tr><td>A_DMG[1-3]</td>
<td>
Wall blood splat patches
</td></tr>


<tr><td>WATER[0-7]</td>
<td>
"Old water" flats.
Legacy uses 8 animated 
water flat textures, instead of the original 4.
</td></tr>


<tr><td>RSKY[1-3]</td>
<td>
Replacement <a href="#rsky">sky textures</a>, 256x240 pixels (not
256x128 like the original ones).
</td></tr>


<tr><td class="note" colspan="2">
Menu graphics
</td></tr>
<tr><td>M_SINGLE</td><td>single-player</td></tr>
<tr><td>M_MULTI</td><td>multi-player</td></tr>
<tr><td>M_SETUPM</td><td>multi-player setup</td></tr>
<tr><td>M_SETUPA</td><td>player1 multi-player setup</td></tr>
<tr><td>M_SETUPB</td><td>player2 multi-player setup</td></tr>
<tr><td>M_2PLAYR</td><td>split-screen multi-player setup</td></tr>
<tr><td>M_STSERV</td><td>start-server multi-player setup</td></tr>
<tr><td>M_CONNEC</td><td>connect-server multi-player setup</td></tr>

<tr><td>
M_CONTROL
M_CDVOL
M_VIDEO
M_SLIDEL
M_SLIDER
M_SLIDEC
</td>
<td>
more menu patches
</td></tr>


<tr><td class="note" colspan="2">
Additional <a href="#pic_t">pic_t</a> graphics
</td></tr>

<tr><td>CORONA</td>
<td>
Corona luminosity map
</td></tr>

<tr><td id="CONSBACK">CONSBACK</td>
<td>
Console background picture, 320x200, when 'con_backpic' is true (the console
variable) also used as the loading picture MUST BE 200 lines high, can
be any width (default is 320)
</td></tr>

<tr><td>CBLEFT</td>
<td>
Console left border, used with translucent console
background MUST BE 200 lines high, any width (default is 8)
</td></tr>

<tr><td>CBRIGHT</td>
<td>
Console right border, used with translucent console background MUST BE 200 lines high, any width (default is 8)
</td></tr>

<tr><td class="note" colspan="2">
Status bar overlay icons, <a href="#pic_t">pic_t</a>
</td></tr>

<tr><td>SBOHEALT</td><td>health (default shows a red cross)</td></tr>
<tr><td>SBOFRAGS</td><td>frags (default shows a skull)</td></tr>
<tr><td>SBOARMOR</td><td>armor (default shows a green armor)</td></tr>
<tr><td>SBOAMMO1</td><td>pistol ammo</td></tr>
<tr><td>SBOAMMO2</td><td>shotgun ammo</td></tr>
<tr><td>SBOAMMO3</td><td>chaingun ammo</td></tr>
<tr><td>SBOAMMO4</td><td>rocket ammo</td></tr>
<tr><td>SBOAMMO5</td><td>plasma ammo</td></tr>
<tr><td>SBOAMMO6</td><td>BFG ammo</td></tr>
<tr><td>SBOAMMO8</td><td>super shotgun ammo</td></tr>
</table>


<h2 id="links">Editing Links</h2>

<p>
Common older WAD utilities are WinTex version 4.3, by Olivier Montanuy
and NWT (New Wad Tools) version 1.3, by Denis Miller.
Both programs will allow you to insert new raw data resources into WADs.
</p>
<p>
Newer Doom lump editors such as XWE and
SlumpED will also work for almost all lump editing variations covered
in this document.
</p>

<h4>Windows map editing utilities</h4>

<ul>
<li>
<a href="http://www.doombuilder.com/">Doom Builder</a>
</li>
<li>
<a href="http://slade.mancubus.net/">SLADE</a>
</li>
<li>
<a href="http://www.doomworld.com/idgames/?id=11183">Wad Author</a>
</li>
<li><a href="http://www.sbsoftware.com/">Deepsea</a></li>
</ul>

<h4>Windows lump editing utilities</h4>

<ul>
<li class="c10">
<a href="http://www.doomworld.com/xwe/">XWE</a>
</li>
<li>
<a href="http://slumped.mancubus.net/index.php?page=news">SlumpED</a>
</li>
<li>
<a href="http://www.teamhellspawn.com/wintex_setup.zip">Wintex4.3</a> - with required runtime files
</li>
</ul>

<h4>Linux/Unix map and lump editing utilities</h4>

<ul>
<li>
<a href="http://www.teaser.fr/%7Eamajorel/yadex/">Yadex</a>
</li>
<li>
<a href="http://w3.teaser.fr/%7Eamajorel/deutex/">DeuTex</a>
</li>
</ul>

<h4>MacOS map editing utilities</h4>

<ul>
<li>
<a href="http://www.teamhellspawn.com/utils/hellmaker12b2.hqx">Hellmaker 1.2b2</a>
</li>
</ul>


<h4>Node builders</h4>

<ul>
<li>
<a href="http://www.mrousseau.org/programs/ZenNode/">Zennode</a> - Best for Legacy Opengl node building.
</li>
<li>
<a href="http://glbsp.sourceforge.net/">BSP</a> - Most stable up to date node builder that we know.
</li>
</ul>


<h4>Standard references</h4>

<p>
These documents are the current standard references to the inner
workings of Doom, Boom, Heretic and Hexen.
Although many of the limitations of the original games have been
lifted and new features have been added, they are still very useful
to a Legacy map editor.
</p>

<ul>
<li>Matt Fell's <a href="http://www.gamers.org/dEngine/doom/spec/uds.1666.txt">Unofficial Doom specs v1.666</a></li>
<li>Team TNT's <a href="boomref.html">Boom reference v1.3</a></li>
<li>Dr Sleep's <a href="hereticspec10.txt">Unofficial Heretic specs v1.0</a></li>
<li>Ben Morris's <a href="hexenspec09.txt">Hexen specs v0.9</a></li>
</ul>

<p>If you have questions regarding the WAD tools in particular, please
consult the Doom editing newsgroups, or ask questions on the Doom
Legacy forum (go to <a href="http://doomlegacy.sourceforge.net">http://doomlegacy.sourceforge.net</a> and look for the forum link.)</p>

<p>And above all, please check
  the <a href="http://legacywiki.net/index.php/Main_Page">Doom Legacy Wiki</a>
  with any other questions regarding Doom Legacy editing!
</p>
<p>
Have fun!
</p>

</div>
</body>
</html>