[checked revision] | [pending revision] |
|
|
| ==All-ghosts effect== | | ==All-ghosts effect== |
− | In extremely rare cases, a memory overflow can occur which causes all [[thing]]s, including [[player]]s and monsters, to become ghosts. In [[deathmatch]] play, this phenomenon is termed the ''DM no-clipping bug''. One such way to cause this is when a hitscan attack, or a BFG tracer crosses over more than 128 linedefs/things at once, causing an [[Static limits#Intercepts|intercept overflow]]. Such an overflow can be produced, somewhat awkwardly but quite reliably, for example, by shooting a hitscan weapon over a large amount of corpses and pickups all lined-up in a row. | + | In extremely rare cases, a memory overflow can occur which causes all [[thing]]s, including [[player]]s and monsters, to become ghosts. In [[deathmatch]] play, this phenomenon is termed the ''DM no-clipping bug''. One such way to cause this is when a hitscan attack, or a BFG tracer crosses over more than 128 linedefs/things at once, causing an [[Static limits#Intercepts|intercept overflow]]. Such an overflow can be produced, somewhat awkwardly but quite reliably, for example, by shooting a hitscan weapon over a large amount of corpses and pickups all lined-up in a row. The actual all-ghosts effect happens, when hitscan attack encounters 147 intercepts. With every intercept beyond 128, the game will start overwriting memory addresses that have nothing to do with intercepts. At 147 intercepts the game overwrites memory addresses for the blockmap data. Overwriting blockmap data causes the blockmap to become corrupted, which results in all collision checks in game to fail, resulting in the all-ghosts effect. |
| | | |
| This bug can happen in all [[Doom engine]] games except [[Strife]], where a fix was implemented to stop progression of tracers when the intercepts array is full. In versions of Doom up to 1.2, and in Heretic and Hexen, it is also possible for line-of-sight checks to trigger the glitch, as a tracer-like algorithm is used for line-of-sight checking in those games which utilizes the same intercept array. | | This bug can happen in all [[Doom engine]] games except [[Strife]], where a fix was implemented to stop progression of tracers when the intercepts array is full. In versions of Doom up to 1.2, and in Heretic and Hexen, it is also possible for line-of-sight checks to trigger the glitch, as a tracer-like algorithm is used for line-of-sight checking in those games which utilizes the same intercept array. |