WARNING: Highly technical information follows. You probably don't need to study this at all unless you want to investigate this stuff. Worth a quick look to see if there are any known issues on any maps you plan to record on though. Or if you're making a "vanilla" wad and just want some tips on how to avoid triggering overflows (or at least reduce the risk of them), read the text immediately below (in yellow).

To avoid spechits overflows: Avoid a situation where you have more than 8 special lines so close together that a player or monster is able to cross them all at the same time. Remember that some monsters have a larger radius than the player.

To avoid reject overflows: Use a good reject map builder - any modern one should be OK.

To reduce the chance of intercepts overflows: Make sure that linedef 0 is very short, and perhaps out of the main area of play.

To avoid playeringame overflows: Don't obstruct your player start positions.


If you've read this thread you'll know roughly what a spechits overflow is, and that it can lead to desyncs. You may also be aware that recent versions of Prboom-plus can detect them, and attempt to emulate the behaviour of the vanilla exes and Dosdoom/Tasdoom in this respect. Chocolate-Doom also includes similar code to emulate the vanilla behaviour.

I have compiled a list of maps where spechits overflows can occur, together with some notes on their effects. I have also done so for maps with Reject overflows and demos with Intercepts overflows (which often results in the all ghosts bug). Here are the tables; some notes follow. Table of maps for which spechits overflows are possible +------------------------------------------------------------------------+ | | | | |comments on | | |map red | |lines |effects, desyncs | |pwad |if |example demo yellow |leading to|and emulation in | | |critical|if Tasdoom |overflow |current | | | | | |Prboom-plus; bold | | | | | |if critical | |------------+--------+--------------------+----------+------------------| | | | |3055, |behaviour depends | | | | |3056, |on magic number; | | | | |3057, |2423-301.lmp is OK| |1024 |map23 |2423-301.lmp |3058, |with the default | | | | |3066, |magic number, but | | | | |3072, |desyncs with the | | | | |3073, |alternate | | | | |3074, 3075|(2230937832) | |------------+--------+--------------------+----------+------------------| | | | |1025, | | | | | |1050, | | | | | |1069, | | |2sectors |map01 |2s01-030.lmp |1093, |benign? | | | | |1152, | | | | | |1153, | | | | | |1154, | | | | | |1155, 1158| | |------------+--------+--------------------+----------+------------------| | | | |613, 616, | | |aboo4 | | |617, 619, |unknown - no demos| |(original |map01 |none |620, 622, |to test it with | |version) | | |623, 625, | | | | | |626 | | |------------+--------+--------------------+----------+------------------| | | | |2265, | | | | | |2266, | | | | | |2269, | | |av |map05 |av05-227.lmp |2270, |benign? | | | | |2281, | | | | | |2284, | | | | | |2305, | | | | | |2306, 2309| | |------------+--------+--------------------+----------+------------------| | | | | |system-dependent | | | | | |in Doom2.exe; | | | | |2098, |emulated OK; the | | | | |2106, |example demos need| | | |av15-317.lmp |2109, |a magic number | | | |av15-612.lmp |2110, |with prboom-plus: | |av |map15 |av15-623.lmp |2097, |-spechit | | | |av15-638.lmp |2104, |2230937832 works | | | |av15-715.lmp |2105, |in all cases; | | | |af151000.lmp |2108, 2111|other compet-n | | | | |or similar|demos on this map | | | | | |play back OK with | | | | | |the default magic | | | | | |number | |------------+--------+--------------------+----------+------------------| | | | |1316, | | | | | |1506, | | | | | |1507, |benign? this is | |av |map21 |at211122.lmp |1965, |the only demo on | | | | |1967, |this map with this| | | | |1968, |overflow | | | | |1969, | | | | | |1226, 1966| | |------------+--------+--------------------+----------+------------------| | | | |4131, |benign? this is | | | | |4132, |the only demo on | | | | |4133, |this map with this| |av |map26 |av261924.lmp |4140, |overflow; it also | | | | |4141, |features a benign | | | | |4142, |intercepts | | | | |4143, |overflow | | | | |4144, 4145| | |------------+--------+--------------------+----------+------------------| | | | |1206, | | | | | |1217, | | | | | |1218, | | |base666 |map01 |btas1056.lmp |1592, |benign? | | | | |1593, | | | | | |1598, | | | | | |1599, | | | | | |1600, 1601| | |------------+--------+--------------------+----------+------------------| | | | |8082, | | | | | |8083, | | | | | |8084, | | |belltoll |map02 |none |8085, |unknown - no demos| | | | |8086, |to test it with | | | | |8087, | | | | | |8088, | | | | | |8109, 8111| | |------------+--------+--------------------+----------+------------------| | | | |848, 849, | | | | | |850, 851, |unknown - no demos| |biotech |map03 |none |852, 854, |to test it with | | | | |853, 855, | | | | | |856 | | |------------+--------+--------------------+----------+------------------| | | | |1650, | | | | | |1651, | | | | | |1652, | | |biowar |map13 |bw131304.lmp |1653, |benign? | | | | |1654, | | | | | |1655, | | | | | |1656, | | | | | |1657, 1658| | |------------+--------+--------------------+----------+------------------| | | | |6260, | | | | | |6261, | | | | | |6262, |unknown; there's | | | | |6263, |more than one | |cchest2 |map24 |none |6265, |place where an | | | | |6268, |overflow can occur| | | | |6271, |- the map is full | | | | |6264, 6267|of special lines | | | | |and | | | | | |other(s) | | |------------+--------+--------------------+----------+------------------| | | | |566, 568, | | | | | |572, 562, |unknown - no demos| |class_e2 |e1m8 |none |563, 595, |to test it with | | | | |596, 597, | | | | | |598 | | |------------+--------+--------------------+----------+------------------| | | | |1837, | | | | | |1844, | | | | | |1834, | | |darken |map08 |darken08.lmp |1835, |benign? | | | | |1836, | | | | | |1838, | | | | | |1839, | | | | | |1840, 1841| | |------------+--------+--------------------+----------+------------------| | | | |1005, | | | | | |1004, | | | | | |1495, | | |datavill |map19 |none |1496, |unknown - no demos| |(hacx pwad) | | |1499, |to test it with | | | | |1500, | | | | | |1509, | | | | | |1510, 1524| | |------------+--------+--------------------+----------+------------------| | | | |18, 19, |unknown - this map| | | | |20, 21, |is a tech demo; | |dmdhzfan |map01 |none |22, 25, |note that the fan | | | | |48, 50, 56|causes the | | | | | |overflow | |------------+--------+--------------------+----------+------------------| | | | |447, 448, | | | | | |449, 450, |unknown - no demos| |dmplylnd |e2m3 |none |459, 461, |to test it with | | | | |463, 465, | | | | | |499 | | |------------+--------+--------------------+----------+------------------| | | |c4m1o139.lmp | |An overflow in an | | | |c4m1v139.lmp | |id map! It occurs | | | |c4n1-055.lmp | |when a spectre | | | |c4x1-055.lmp | |walks over the NIN| | | |e4m1-216.lmp | |secret; emulated | | | |ep4-2207.lmp | |OK, it seems, and | | | |ep4-2631.lmp | |can lead to | | | |ep4-3500.lmp |256, 257, |desyncs: e4ns1246 | | | |ep4-3945.lmp |258, 262, |desyncs without | | | |f4m1-243.lmp |264, 266, |emulation (though | |doom |e4m1 |f4m1-256.lmp |267, 268, |the player exits | | | |f4m1-426.lmp |270 or |E4M1, and dies | | | |n4s1-058.lmp |similar |early in E4M2), | | | |r4m1-137.lmp | |and so does | | | |r4m1-344.lmp | |r4m1-152; r4m1-525| | | |t4m1long.lmp | |requires -spechit | | | |u4m1-228.lmp | |2230937832; the | | | |u4m1-232.lmp | |others listed all | | | |e4ns1246.lmp | |play back OK with | | | |r4m1-152.lmp | |or without | | | |r4m1-525.lmp | |emulation | |------------+--------+--------------------+----------+------------------| | | | |117, 118, |benign? These bars| | | | |119, 122, |were removed in | |doom2 v1.666|map02 |uvlev2.lmp |123, 124, |v1.9; the demo can| | | | |453, 454, |be found here | | | | |455 | | |------------+--------+--------------------+----------+------------------| | | | |3461, | | | | | |3526, | | | | | |3536, | | |dv |map01 |dv01-max-2942-wh.lmp|3609, |benign? | | | | |3655, | | | | | |4420, | | | | | |4568, | | | | | |1472, 1946| | |------------+--------+--------------------+----------+------------------| | | | |1180, | | | | | |1181, | | | | | |1184, | | |dyst3 |map08 |dyst3-08.lmp |1185, |benign? | | | | |1190, | | | | | |1196, | | | | | |1197, | | | | | |1203, 1214| | |------------+--------+--------------------+----------+------------------| | | | |1350, | | | | | |1355, | | |eternal |map12 |et122614.lmp |1356, 15, |benign? | | | | |1349, 16, | | | | | |1348, | | | | | |1362, 1361| | |------------+--------+--------------------+----------+------------------| | | | |638, 1910,| | | | | |1911, | | |eternall.wad| | |1914, | | |(from |map25 |et252031.lmp |1915, |benign? | |eternal.zip)| | |1916, | | | | | |1917, | | | | | |1919, 1920| | |------------+--------+--------------------+----------+------------------| | | | |2921, | | | | | |2922, | | | | | |2923, |emulated OK; | |eternal |map31 |et312225.lmp |2924, |likely to lead to | | | | |2933, |desyncs if not | | | | |2936, |emulated | | | | |2942, | | | | | |2943, 2965| | |------------+--------+--------------------+----------+------------------| | | | |271, 272, | | | | | |273, 276, |unknown - no demos| |extremal |e3m8 |none |277, 278, |to test it with | | | | |279, 280, | | | | | |281 | | |------------+--------+--------------------+----------+------------------| | | | |604, 605, |the example demo | | | | |716, 717, |is for tasdoom, | |flsofdth |e4m3 |fod3uv.lmp |718, 719, |and it is emulated| | | | |728, 729, |OK | | | | |730 | | |------------+--------+--------------------+----------+------------------| | | | |1522, | | | | | |1538, |a spechits magic | | | | |1539, |number such as | |grind2x |map01 |gr2x_847.lmp |1542, |2230937832 is | | | | |1540, |needed with | | | | |1543, |prboom-plus | | | | |1544, | | | | | |1545, 1547| | |------------------------------------------------------------------------| |------------------------------------------------------------------------| | | | |2509, |unknown - no demos| | | | |2510, |to test it with; | | | | |2511, |overflow can occur| |gunsmoke |map01 |none |2512, |when running into | | | | |2513, |any of the three | | | | |2515, |bars, which have | | | | |2514, |many blue-keyed | | | | |2517, 2518|sides | |------------+--------+--------------------+----------+------------------| | | | |586, 587, | | | | | |588, 590, | | |h2h-xmas |map26 |xm26-313.lmp |591, 592, |benign? | | | | |594, 595, | | | | | |596 | | |------------+--------+--------------------+----------+------------------| | | | |1336, | | | | | |1338, | | | | | |1340, | | |hacx |map04 |hx04-724.lmp |1341, |benign? | | | | |1344, | | | | | |1345, | | | | | |1348, | | | | | |1349, 1350| | |------------+--------+--------------------+----------+------------------| | | | |1149, | | | | | |1151, | | | | | |1163, | | |hacx |map09 |hx09-847.lmp |1169, |benign? | | | | |1170, | | | | | |1171, | | | | | |1172, | | | | | |1176, 1177| | |------------+--------+--------------------+----------+------------------| | | | |1077, | | | | | |1080, |emulated OK | | | | |1151, |(Doom2.exe and | |hr |map18 |hr18-348.lmp |1152, |Tasdoom); likely | | | |hr181329.lmp |1153, |to lead to desyncs| | | | |1154, |if not emulated | | | | |1171, | | | | | |1173, 1174| | |------------+--------+--------------------+----------+------------------| | | | |169, 3068,| | | | | |3081, | | | | | |3087, | | |hr2final |map19 |hr2-lv19.lmp |3088, |benign? | | | | |3089, | | | | | |3096, | | | | | |3097, 3098| | |------------+--------+--------------------+----------+------------------| | | | | |probably emulated | | | | |522, 560, |OK; demos recorded| | | | |561, 562, |without emulation | |hr2final |map31 |hr2-lv31.lmp |563, 564, |desync if played | | | | |565, 566, |back with | | | | |1858 |emulation in the | | | | | |same way they do | | | | | |with Doom2.exe | |------------+--------+--------------------+----------+------------------| | | | |389, 400, |benign?; | | | |ic09uvgb.lmp |434, 436, |ic09uv.lmp is for | |icarus |map09 |ic09uv.lmp |437, 439, |tasdoom and it is | | | | |440, 441, |emulated OK | | | | |442 | | |------------+--------+--------------------+----------+------------------| | | | |5748, | | | | | |5749, | | | | | |5750, | | |ksutra |map18 |ks181235.lmp |2848, |benign? | | | | |2885, | | | | | |2886, | | | | | |5745, | | | | | |5746, 5747| | |------------+--------+--------------------+----------+------------------| | | | |3099, | | | | | |3100, | | | | | |3101, | | |ksutra |map23 |ks23-201.lmp |3104, |benign? | | | | |3105, | | | | | |3106, | | | | | |3107, | | | | | |3108, 3109| | |------------+--------+--------------------+----------+------------------| | | | |1892, | | | | | |1893, | | | | | |1895, | | |ksutra |map31 |ks311117.lmp |1897, |benign? | | | | |1898, | | | | | |1899, | | | | | |1900, | | | | | |1901, 1904| | |------------+--------+--------------------+----------+------------------| | | | |307, 965, | | | | | |966, 968, | | |mm |map02 |mm021204.lmp |974, 975, |benign? | | | | |964, 967, | | | | | |970 | | |------------+--------+--------------------+----------+------------------| | | | | |playback is | | | | | |presumably | | | | | |system-dependent | | | | | |with Doom2.exe; a | | | | | |spechits magic | | | | |961, 963, |number such as | | | | |952, 953, |2230937832 is | |mm |map05 |mm05r554.lmp |954, 955, |needed with | | | | |956, 957, |prboom-plus; this | | | | |958 |demo crashes | | | | | |timer.exe; the | | | | | |overflow occurs | | | | | |when a pain | | | | | |elemental crosses | | | | | |the (lowered) red | | | | | |key bars. | |------------+--------+--------------------+----------+------------------| | | | |714, 722, | | | | | |723, 726, | | |mm |map08 |mm08-119.lmp |733, 734, |benign? | | | | |735, 736, | | | | | |738 | | |------------+--------+--------------------+----------+------------------| | | | |2022, | | | | | |2023, | | | | | |2025, | | |mm |map28 |30mm8356.lmp |2015, |benign? | | | | |2016, | | | | | |2017, | | | | | |2018, | | | | | |2019, 2020| | |------------+--------+--------------------+----------+------------------| | | | |3163, | | | | | |3164, | | | | | |3534, | | |mm2 |map18 |m218nmx.lmp |3535, |benign? | | | | |3536, | | | | | |3537, | | | | | |3538, | | | | | |3539, 3540| | |------------+--------+--------------------+----------+------------------| | | | |441, 507, |benign? the | | | | |524, 533, |overflow occurs | |mm2 |map20 |m220-547.lmp |612, 613, |when an | | | | |611, 615, |arachnotron (large| | | | |519 |radius) crosses | | | | | |these lines | |------------+--------+--------------------+----------+------------------| | | | |1315, | | | | | |1370, | | | | | |1371, | | |ndcp |map06 |none |3755, |unknown | | | | |3756, | | | | | |3757, | | | | | |3758, | | | | | |3759, 3760| | |------------+--------+--------------------+----------+------------------| | | | |128, 130, | | | | | |131, 132, | | |ongar |map10 |none |134, 135, |unknown | | | | |122, 123, | | | | | |124 | | |------------+--------+--------------------+----------+------------------| | | | | |p4p2s118.lmp plays| | | | | |back OK with or | | | | |243, 244, |without emulation | | | |p4e2s052.lmp |245, 246, |(but crashes | |pe4_dt2 |e4m2 |p4p2s118.lmp |247, 248, |timer.exe); | | | | |249, 250, |p4e2s052.lmp | | | | |251 |requires, e.g., | | | | | |-spechit | | | | | |2230937832 | |------------+--------+--------------------+----------+------------------| | | | |1186, | | | | | |1284, | | | | | |1285, | | |requiem |map03 |rq03-136.lmp |1286, |benign? | | | | |1287, | | | | | |1294, | | | | | |1295, | | | | | |1296, 1297| | |------------+--------+--------------------+----------+------------------| | | | |2000, | | | | | |2004, | | | | | |2010, | | |requiem |map15 |rq151440.lmp |1976, |benign? | | | | |1981, | | | | | |1982, | | | | | |1983, | | | | | |2014, 2018| | |------------+--------+--------------------+----------+------------------| | | | |1115, | | | | | |1116, | | | | | |1117, | | |requiem |map16 |rr16-955.lmp |1119, |benign? | | | | |1122, | | | | | |1123, | | | | | |1124, | | | | | |1125, 1118| | |------------+--------+--------------------+----------+------------------| | | | |2507, | | | | | |2508, |benign? note that | | | | |2510, |the overflow | |requiem + |map21 |rq21-636.lmp |2511, |occurs even with | |req21fix | | |2513, |the fixed version | | | | |2514, |of the map, used | | | | |2516, |for recording | | | | |2517, 2512| | |------------+--------+--------------------+----------+------------------| | | | |317, 320, | | | | | |1779, | | | | | |1780, | | |requiem |map31 |rq31s115.lmp |1784, |benign? | | | | |1785, | | | | | |1786, | | | | | |1787, 1788| | |------------+--------+--------------------+----------+------------------| | | | |209, 210, | | | | | |211, 212, |benign? trivial | |squadron |map01 |sq417-01.lmp |217, 218, |map anyway | | | | |219, 220, | | | | | |229 | | |------------+--------+--------------------+----------+------------------| | | | |1262, | | | | | |1263, | | | | | |1264, | | |sci2 |map03 |s203n245.lmp |1265, |benign? | | | | |1266, | | | | | |1268, | | | | | |1267, | | | | | |1269, 1270| | |------------+--------+--------------------+----------+------------------| | | | |2268, |emulated OK; | | | | |2269, |playback is | | | | |2270, |system-dependent | | | | |2271, |with Doom2.exe; a | |sci2 |map05 |s205n546.lmp |2273, |spechits magic | | | | |2274, |number such as | | | | |2275, |2230937832 is | | | | |2287, 2288|needed with | | | | | |prboom-plus | |------------+--------+--------------------+----------+------------------| | | | |1527, |emulated OK; | | | | |1528, |playback is | | | | |1529, |system-dependent | | | | |1531, |with Doom2.exe; a | |sci2 |map07 |s207n516.lmp |1532, |spechits magic | | | | |1533, |number such as | | | | |1535, |2231485512 is | | | | |1536, 1537|needed with | | | | | |prboom-plus | |------------+--------+--------------------+----------+------------------| | | | |1527, | | | | | |1528, | | | | | |1529, | | |sci2 |map16 |s216n241.lmp |1531, |benign? | | | | |1532, | | | | | |1533, | | | | | |1535, | | | | | |1536, 1537| | |------------+--------+--------------------+----------+------------------| | | | |351, 352, | | | | | |353, 354, |sc18-sp.lmp plays | | | | |355, 360, |back OK with or | | | |sc18-sp.lmp |361, 362, |without emulation;| |scythe |map18 |sc18e036.lmp |363 or |the 0:36 coop by | | | |sc18m036.lmp |356, 357, |Erik/Method needs | | | | |358, 363, |-spechit | | | | |364, 365, |2230937832 | | | | |366, 367, | | | | | |368, etc. | | |------------+--------+--------------------+----------+------------------| | | | | |emulated OK?; can | | | | |2565, |lead to desyncs if| | | | |2577, |not emulated; for | | | | |2571, |sf304509.lmp (an | |scythe |map30 |sc30-uv.lmp |2578, |egg in the scythe | | | |sf304509.lmp |2576, |demopack), a | | | | |2569, |spechits magic | | | | |2570, |number is needed: | | | | |2575, 2567|one that works is | | | | | |2230937832 | |------------+--------+--------------------+----------+------------------| | | | | |emulated OK; | | | | | |playback is | | | | |649, 650, |system-dependent | | | | |651, 658, |with Doom2.exe; a | |scythe2 |map02 |s202-207.lmp |643, 644, |spechits magic | | | | |645, 646, |number such as | | | | |652 |2230220160 is | | | | | |needed with | | | | | |prboom-plus | |------------+--------+--------------------+----------+------------------| | | | |2202, | | | | | |2203, | | | | | |2206, | | |scythe2 |map08 |none |3053, |unknown | | | | |3054, | | | | | |2200, | | | | | |2208, | | | | | |3055, 3056| | |------------+--------+--------------------+----------+------------------| | | | |673, 674, | | | | | |676, 681, |benign?; emulated | |scythe2 |map10 |s210-245.lmp |682, 684, |OK | | | | |686, 687, | | | | | |688 | | |------------+--------+--------------------+----------+------------------| | | | |1578, | | | | | |1579, | | | | | |1617, | | |scythe2 |map18 |s218-428.lmp |1635, |benign? | | | | |1636, | | | | | |1680, | | | | | |1681, | | | | | |1682, 1683| | |------------+--------+--------------------+----------+------------------| | | | |1736, | | | | | |1786, | | | | | |2333, | | |strain |map06 |str06-uv.lmp |1737, |benign? | | | | |1738, | | | | | |1785, | | | | | |2334, | | | | | |2336, 2332| | |------------+--------+--------------------+----------+------------------| | | | | |spechits overflow | | | | | |necessary to exit | | | | | |the map! emulated | | | | | |OK, it seems; | | | | |986, 998, |precise behaviour | | | | |999, 1000,|depends on magic | | | | |1007, |number - | |strain |map07 |st07-237.lmp |1008, |st07-237.lmp is OK| | | | |1009, |with the default | | | | |1010, 1011|magic number, but | | | | | |desyncs (no exit) | | | | | |with the alternate| | | | | |(2230937832), or | | | | | |with | | | | | |Chocolate-Doom | |------------+--------+--------------------+----------+------------------| | | | |2351, | | | | | |2353, | | | | | |2355, | | |strain |map14 |st14-832.lmp |2357, |benign? | | | | |2358, | | | | | |2359, | | | | | |2360, | | | | | |2361, 2362| | |------------+--------+--------------------+----------+------------------| | | | |704, 705, | | | | | |706, 707, | | |tnt |map25 |ep25-908.lmp |708, 893, |benign? | | | | |894, 895, | | | | | |896 | | |------------+--------+--------------------+----------+------------------| | | | |707, 713, | | | | | |714, 715, | | |vesperas |map09 |vesp_729.lmp |716, 717, |benign? | | | | |718, 719, | | | | | |720 | | |------------+--------+--------------------+----------+------------------| | | | |1117, | | | | | |1122, | | | | | |1129, | | |wotdoom3 |map07 |none |1108, |unknown - no demos| | | | |1109, |to test it with | | | | |1110, | | | | | |1115, | | | | | |1120, 1106| | |------------+--------+--------------------+----------+------------------| | | | |1622, | | | | | |1625, | | | | | |1626, | | |zomheart |map01 |none |1627, |unknown - no demos| | | | |1629, |to test it with | | | | |1642, | | | | | |1643, | | | | | |1644, 1645| | +------------------------------------------------------------------------+ Table of maps with a REJECT overflow +------------------------------------------------------------------------+ |pwad |map |example demo |size of |emulation in current | | | | |overflow |Prboom-plus | |--------------+-----+-------------+-------------+-----------------------| | | |berm1032.lmp | |emulation not | |berserk |e1m1 |and |too short |guaranteed; both demos | | | |bert2740.lmp |(666<667) |play back OK with or | | | | | |without emulation | |--------------+-----+-------------+-------------+-----------------------| | | | |too short |too large for | |bldnight |map05|bld51351.lmp |(21218<29404)|emulation; the example | | | | | |demo desyncs | |--------------+-----+-------------+-------------+-----------------------| | | | | |too large for | |bldnight |map07|bld71232.lmp |too short |emulation, but the | | | | |(14792<14965)|example demo plays back| | | | | |OK | |--------------+-----+-------------+-------------+-----------------------| | | | | |too large for | | | | | |emulation, but the | | | | | |example demo plays back| |dmonfear |map25|ydfear25.lmp |too short |OK (padding with zeros | | | | |(2702<2888) |+ attempted emulation);| | | | | |Donner's other dfear | | | | | |demos on maps with | | | | | |reject problems desync | |--------------+-----+-------------+-------------+-----------------------| |flsofdth |e4m2 |fod2uv.lmp |too short |emulation not | | | | |(2415<2416) |guaranteed (?) | |--------------+-----+-------------+-------------+-----------------------| | | |hlrmp257.lmp |too short |emulated; both demos | |hellroom |map01|hlrfp555.lmp |(84<85) |play back OK without | | | | | |emulation too | |--------------+-----+-------------+-------------+-----------------------| |hyena |e1m1 |none |too short |emulation not | | | | |(325<326) |guaranteed | |--------------+-----+-------------+-------------+-----------------------| |invasion |e1m1 |none |too short |emulated | |(inva_19.zip) | | |(760<761) | | |--------------+-----+-------------+-------------+-----------------------| | | | | |too large for | | | | | |emulation, but the | | | | | |desyncs in Doom.exe and| | | | | |Prboom-plus with | | | | | |emulation appear the | | | | | |same; another demo, | |lwfirst |e1m3 |equ3-104.lmp |too short |equ3-114.lmp, plays | |(equino-x.zip)| | |(21841<22050)|back OK with or without| | | | | |emulation; because | | | | | |these demos were | | | | | |recorded with an older | | | | | |version of prboom, | | | | | |-pad_reject_with_ff is | | | | | |needed | |--------------+-----+-------------+-------------+-----------------------| | | | | |too large for | | | | | |emulation, but the | | | | | |sample demo plays back | | | | | |OK with or without | |lwfirst |e1m7 |equ7-108.lmp |too short |emulation; because this| |(equino-x.zip)| | |(596<1082) |demo was recorded with | | | | | |an older version of | | | | | |prboom, | | | | | |-pad_reject_with_ff is | | | | | |needed | |--------------+-----+-------------+-------------+-----------------------| |requiem |map08|any on this |too short |emulated | | | |map |(13944<13945)| | |--------------+-----+-------------+-------------+-----------------------| |requiem |map16|any on this |too short |emulated | | | |map |(10224<10225)| | |--------------+-----+-------------+-------------+-----------------------| | | |any on this |too short | | |requiem |map22|map (e.g. |(10804<10805)|emulated | | | |rq22-518.lmp)| | | |--------------+-----+-------------+-------------+-----------------------| |requiem |map31|any on this |too short |emulated | | | |map |(3784<3785) | | |--------------+-----+-------------+-------------+-----------------------| |rrd201 |map02|none |too short |emulation not | | | | |(7750<7751) |guaranteed | |--------------+-----+-------------+-------------+-----------------------| |te |map06|none |too short |emulation not | | | | |(5778<5779) |guaranteed | |--------------+-----+-------------+-------------+-----------------------| |teeth (Master | |teeth-32.lmp |too short |emulated / tends to | |Levels) |map32|te32-106.lmp |(24<25) |lead to a desync if not| | | | | |emulated | |--------------+-----+-------------+-------------+-----------------------| | | | |too short |emulated; the sample | |too1337 |e1m1 |too1-035.lmp |(3120<3121) |demo plays back OK | | | | | |without emulation too | |--------------+-----+-------------+-------------+-----------------------| |ultdtv |maps |none |all too short|emulated (?) | | |02-07| |by one byte | | |--------------+-----+-------------+-------------+-----------------------| | | | | |too large an overflow | | | | | |for emulation, but | | | | | |yao-uv.lmp plays back | | | |yao-uv.lmp |too short |OK in prboom-plus | |yaotzin |map01|yao-750.lmp |(50404<51200)|2.4.6.2 (REJECT padded | | | | | |with zeroes) with or | | | | | |without emulation; | | | | | |yao-750.lmp desyncs | | | | | |though | +------------------------------------------------------------------------+ Table of demos with an INTERCEPTS overflow +------------------------------------------------------------------------+ | | | | | emulation in | | pwad | map | demo | outcome | current | | | | | | Prboom-plus | |--------------+-------+----------------+--------------+-----------------| | av | map08 | av08-odd.lmp | "all ghosts" | emulated OK | |--------------+-------+----------------+--------------+-----------------| | av | map26 | av261924.lmp | benign | no bad effects, | | | | | | it seems | |--------------+-------+----------------+--------------+-----------------| | | | | | not emulated | | | | | "all ghosts" | perfectly, but | | blacktwr | map25 | blackbug.lmp | and exit | well enough | | | | | | that the player | | | | | | exits | |--------------+-------+----------------+--------------+-----------------| | | | | | emulated OK; | | | | | | this demo is by | | doom | e1m3 | n1m3bug.lmp | "all ghosts" | Donatas Tamonis | | | | | | and can be | | | | | | found in his | | | | | | web space | |--------------+-------+----------------+--------------+-----------------| | | | | | no bad effects, | | | | | | it seems; yes, | | | | | | another | | | | e1m9-uv.lmp | | intercepts | | doom | e1m9 | (dm-atm.zip) | benign | overflow on one | | | | | | of the original | | | | | | E1/shareware | | | | | | maps; this is a | | | | | | dht3 demo | |--------------+-------+----------------+--------------+-----------------| | | | lv02-!!!.lmp | | | | doom2 | map02 | (fa02-132.zip) | "all ghosts" | emulated OK | | | | map02gho.lmp | | | |--------------+-------+----------------+--------------+-----------------| | | | | | probably | | | | ty18-bug.lmp | | emulated OK, | | doom2 | map18 | (ty18c810.zip) | "all ghosts" | but not fully | | | | | | checked; this | | | | | | is a DANG demo | |--------------+-------+----------------+--------------+-----------------| | | | | | emulated OK? | | eternall.wad | | | | (not fully | | (from | map18 | wtf.lmp | "all ghosts" | checked); the | | eternal.zip) | | | | demo is in | | | | | | et18-227.zip | |--------------+-------+----------------+--------------+-----------------| | hr | map27 | hr27odd.lmp | "all ghosts" | emulated OK | |--------------+-------+----------------+--------------+-----------------| | hr2final | map24 | h2241828.lmp | benign | no bad effects, | | | | | | it seems | |--------------+-------+----------------+--------------+-----------------| | | | | | the demo was | | hr2final | map32 | h2323105.lmp | "all ghosts" | recorded | | | | | | without | | | | | | emulation | |--------------+-------+----------------+--------------+-----------------| | ksutra | map10 | ks101018.lmp | benign | no bad effects, | | | | | | it seems | |--------------+-------+----------------+--------------+-----------------| | manor | map01 | manorbug.lmp | "all ghosts" | emulated OK | |--------------+-------+----------------+--------------+-----------------| | mm | map12 | mm12r406.lmp | benign | no bad effects, | | | | | | it seems | |--------------+-------+----------------+--------------+-----------------| | | | | | emulated OK, | | nuts | map01 | nutsnp52.lmp | "all ghosts" | but with a | | | | | | significant | | | | | | slow-down | |--------------+-------+----------------+--------------+-----------------| | | | | | emulated OK? | | | | | | (not fully | | plutonia | map15 | pl15-odd.lmp | "all ghosts" | checked); demo | | | | | | is in | | | | | | pl15-238.zip | |--------------+-------+----------------+--------------+-----------------| | | | | | "all ghosts" | | ssbase | e1m1 | ssba-heh.lmp | crash with | with | | | | | Doom2.exe | prboom-plus, | | | | | | but no crash | +------------------------------------------------------------------------+ Sorry, I haven't given hyperlinks for the wads or demos; I presume that anyone interested in this stuff will already have them or be able to find them. The idgames database, Compet-n, DSDA and this Demos Forum are the places to look. This is a useful link in this respect (replace "demoname" with the filename you're seeking):
http://www.google.com/search?q=site:alkali.org/fraggle/random/competn+demoname

When I have described an overflow as "benign?", this means that any demos I have tested have played back OK whether the overflow is emulated or not. In some cases it is hard to judge if the overflow is being emulated correctly, as there are no demos on the map in question that play back OK with Doom2.exe.

If you are recording in Prboom-plus on any of maps where the spechits overflow is liable to cause desyncs, then if you want your demo to play back with Doom2.exe, set the program to attempt to emulate the overflow. Note that this is not guaranteed to work, and that it might not play back with Eternity (as it doesn't at present have this feature, as far as I am aware). If you record with Doom2.exe on one of these maps and the demo desyncs with Prboom-plus, try it with overflows emulated.

I'll note that so far I haven't come across an instance where Prboom-plus 2.4.8.1 is clearly unable to emulate a spechits overflow.

Obviously I haven't tested every map in existence, but as you can see I have tested a fair few, including most of the popular wads for recording. Let me know if you find any more, or can help resolve any of those listed more clearly, or if there are some obscure desynching demos that ought to be tested.

I have also added short tables of INTERCEPTS and REJECT overflows. These are based on far less testing (just ad hoc, really). There are probably quite a lot of maps with the REJECT problem, but one wouldn't expect to find many demos where there is a large overflow in any case, as they often lead to desyncs in Doom2.exe itself. Prboom+ can emulate them as long as the size of the overflow is no more than 16 bytes and the size of the REJECT lump is divisible by 4. Demos with INTERCEPTS overflows are also rare, as they sometimes result in a crash with the vanilla engine, and often in "all ghosts" behaviour, which in most cases makes it impossible to exit the map (you need to find a damage/exit sector, which most maps don't have). There also appear to be a few where the overflow is small and has no effects.

In some cases, a spechits overflow makes a demo play back differently on different systems with the vanilla exe. In these cases, you may need to get the spechits "magic number", generated by a patched "e6y" version of Doom2.exe or Doom-plus running on a system where the demo plays back OK, and enter that in the command line using the "-spechit" parameter. However, if you want to use a shortcut and just try something that has a good chance of working if the demo is an old one, or was recorded on an older OS, or with Chocolate-Doom, use this:
-spechit 2230937832
So far, all demos that have been found not to work with the default value, play back OK with this one.

Last updated: 16-March-2008 (minor addition 19-January-2012)