LMP

An LMP is a lump that is usually referenced externally as a demo. The term LMP comes from the file extension that the original MS-DOS Doom engine used when recording gameplay demonstrations (see Demos), as file extensions under this operating system were strictly limited to three characters; LMP was the most logical shortening of "lump".

In the MS-DOS version of Doom, players could make a recording of their gameplay by typing

Viewing the demo is done by typing

at the DOS console, where   was the name of the file to record the demo to. This was restricted (again, by the operating system) to eight characters. Doom would append the .LMP extension to the file, and regurgitate any attempt to record or play a demo with an alternate file extension, effectively setting the LMP extension in stone. The LMP files that Doom created were of exactly the same format as the internal demo files. These demo files could then be uploaded to BBSes and FTP servers to aid other players in the completion of the game, or to show off tricks or reveal secrets.

An LMP file contains a sequence of commands which tells the game engine what actions the player will perform &mdash; e.g. when he will take a step forward, turn around, shoot, switch weapons, etc. While some elements of the game - such as damage done by attacks - is typically random, the usage of a pseudorandom number generator ensures they stay the same with every playback. Because the LMP file is interpreted as keyboard and mouse input, which allows anyone to watch a recreation of the original recorded actions, rather than as a video of recorded gameplay, LMP files are relatively small and were very practical in their time. In the mid-1990s, when Doom was most popular, broadband internet connections were quite rare, and it would have been nearly impossible to distribute demos as video captures due to their much larger size.

Most modern source ports, such as ZDoom, cannot record demos in Doom's original LMP format, because their movement code requires the recording of extra data (such as Y-axis viewpoints and trajectories, and jumping) even if the associated features are not being utilised. With few exceptions, Doom LMP files can only be played back with the same versions of the Doom IWAD and Doom executable or source port as those used by the original recorder of the demo. If a demo is played on a different source port, using a different WAD(s), or even with a different version of the same source port or IWAD, it may refuse to play, or the actions of the player in the demo may become nonsensical, with the player running into walls and shooting apparently at random. This is known as "desynch", and indicates that the demo is not compatible with the playback method being used.

For many Doomers, it is not practical or even possible to use the original Doom executables to play demos. The original executables were written for DOS, and require DOS or a DOS-like OS environment to function properly. Many, though not all, demos recorded with the original Doom executables will play properly in PrBoom, the Eternity Engine, or Chocolate Doom since these source ports are specifically designed to emulate Vanilla Doom as closely as possible.

Over the years, a few utility programs have been written to convert LMPs between the original binary format and other formats. One such program is LMPC, which can also be used for hex editing of demos (see TAS).