Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  

Welcome to the Demos forum! [Prboom-plus usage, WAD and IRC links, general info]

Recommended Posts

[Edit by Grazza, February 2012: Looking for the old Compet-N/SDA archives, but can't find them because the FTP is down? Browse a copy here or grab the lot (just Compet-N, not SDA) here. Let us know if this link dies. Thanks.]

After seeing a noteworthy interest in demos in recent threads, as well as receiving a few recommendations for a demos forum, we've decided to give it a try. This forum is now the place on Doomworld to discuss anything and everything related to recording and watching demos for Doom-engine games. In addition to discussing existing demos, demo styles, techniques, tools, compatibility, etc., this forum is also for users to post their own demos. You can do this using the "attachment" feature (see the final post in this thread). You can also share your demos by hosting them in your own webspace or e-mailing them to one of the moderators of this forum.

We should stress how important it is to zip your demos and to include a text file in the zip. This makes it far easier for everyone else to know how to watch the demo. As a minimum, this text file should include: your name, the filenames of any wads needed (e.g. hr.wad) and the demo-compatibility format (Doom2, Boom or other). Note that the zip file should actually be a zip file, and not a file in some other format that has merely been given the zip extension.

It is also desirable to include some basic details about the demo, such as the category (e.g. UV Speed) and the time, and the executable used (e.g. Doom2.exe, Prboom-plus, etc.). You're very welcome to include a description of your demo - please tend to enjoy reading these, and it also makes it easier for people to know whether they should credit you for any tricks or ideas of yours that they later use. If you have used other people's route ideas or tricks, then it is courteous to mention these too.

The demo's file name should be kept short (8 characters), and follow similar principles to the compet-n demo naming: a couple of letters for the wad, two digits for the level number, and three or four digits for the time (and one letter to suggest the category, space permitting). When you are recording on a wad for which there is a pre-existing naming convention in use, please follow that convention.

Examples of suitable topics for discussion include:

  • how to record demos
  • which port (if any) to use
  • which demos you have most enjoyed watching
  • what control set-up to use
  • the techniques used by speedrunners
  • which maps are most demo-friendly
  • "demopack" projects
  • demo categories
  • demo news
  • technical questions/discussions about anything to do with Doom-engine demos
  • trick ideas and exploitable game physics
  • built and tool-assisted demos: how to make them and which tools are needed

The new moderators of this forum are vdgg and dew. Both are very active recorders and should be well-known to most members of the demos community. vdgg also maintains detailed records of new compet-n entries, while dew has a near-encyclopedic knowledge of Doom tricks.

If a demo is suitable for Compet-N (i.e. you have used Doom(2).exe and the demo improves upon a current compet-n record or fills a gap in one of the compet-n tables), this thread is the place to post these demos.

Doom Speed Demo Archive currently serves as an unofficial archive for demos posted in this forum. If you don't want a demo posted on his site, then say so - it's an opt-out, not an opt-in.

Feel free to comment constructively on other people's demos, and to ask for tips if you are having problems in your own attempts to record. No smack talk, please. The moderators of this forum both intend to watch all demos that are attached in this forum.

We accept demos recorded with the original exes or with any port - if you prefer Legacy, GZDoom, Eternity, Chocolate Doom, MBF, etc., there is no need to change. However, please note that demos recorded with the Doomsday engine (i.e. jDoom) tend to have very large file sizes, so if you want to use Doomsday, it is best to upload your demos to your own web space, and to place a link to them in this forum. And please note that Zdoom and its derivatives don't tend to have good demo compatibility between versions, so your demo may not be easily viewable very far into the future.

Many people use Prboom-plus to record or watch demos, as it has compatibility modes that make it a convenient choice for many wads. There are other threads in this forum that provide assistance with its settings. Be sure to state what compatibility mode you have used, and if a particular thread suggests a specific compatibility level, then it would be a good idea to use that level, unless there is a very good reason not to.

The rules for bumping threads are a little different from those for other forums. If you have a demo to post, and it fits neatly into an existing thread (e.g. if you have an Icarus demo, then the Icarus demos thread would be a natural place to post it), then post it there rather than starting a new thread. This applies even if the thread is old. But avoid bumping old threads just to make a comment on something that happened years ago.

If your demo doesn't fit into an existing thread, and the demo isn't on a major wad, then post it in the Misc. demos thread (or Misc. TAS demos thread if it is a TAS demo). This is also a good way to make sure it is seen by lots of people, since these threads will always be among the most prominent in the forum, rather than slipping well down the list. Only start a new thread if the wad already has a lot of demo interest, or is a major new project for which a lot of demo interest can be very confidently expected.

We hope this will prove a lively forum, and be useful to everyone in the Doom Community with an interest in demos, ranging from newcomers recording for the first time, to experts looking to achieve near-optimized runs.


- The Doomworld staff

Last updated: 11 November 2020


Edited by dew : '20/11/11: andy's dsda site expired, relinking to kraflab's archive

Share this post

Link to post

Note about Tools-Assisted (TAS) and Built demos

The term "tools-assisted" generally refers to the use of slow motion and/or recording in sections (normally by re-recording). Use of these would be an extreme form of cheating if you claimed you had not used them. But in a TAS demo, it is explicitly stated that they have been used, and it is viewed as a separate category of demos. Generally, to be considered a good TAS demo, the time should be highly optimized or the task should be one that would be virtually impossible otherwise.

TAS demos that are a form of "training" for a very difficult non-TAS run are also welcome; these would typically feature relatively few segments (and little if any slomo) and omit tricks and ideas that are not intended to be used in a potential non-TAS run.

Another type of "semi-TAS" is a movie run where each individual map is recorded normally, and segmentation is only used at the start of each map. This is essentially the same method as used for Doom2 Done Quick.

In a Built demo, the player goes a step further, and edits the demo at a gametic level, either via LMPC or using a special tool of some type. This enables even greater precision than is possible in a TAS demo.

TAS and Built demos are very welcome here, but be sure to make it very clear in both your post and your text-file that it was recorded with tool assistance, and which TAS methods were used. I'd recommend starting your text-file with the words "THIS IS A TOOLS-ASSISTED DEMO". (Yes, in big capital letters.)

If you record a demo with slow motion, joining, strafe-50 automation or other such hacks, but pretend it was recorded normally, then we will most probably notice, and won't be very impressed at all.

If Turbo is used, this must be stated separately. Secretly using Turbo is an extreme form of cheating, even in a TAS demo.

Please don't leave the moderators of this forum having to decide what to do with "suspicious" demos. This puts us in a very unpleasant situation, but one where we must take action in fairness to all the honest recorders.

Share this post

Link to post

Many people like to use Prboom-plus to record demos that are compatible with Doom2.exe (or Boom). This enables them to play outside a DOS environment (with sound) while maintaining compatibility (in terms of the game's behaviour) with the original game. There follows a quick no-nonsense guide to getting it working.

Where to get itchangelog and current test version <- recommended, as despite being called a "test version", it is generally the most stable, glitch-free and compatible of all; just think of it as "the current version"

prboom-plus sourceforge site (report bugs and make feature requests here)
official released versions (older)

I urge you always to use the most up-to-date version. This will be more likely than older versions to record and play back demos in the standard formats without problems, and has the most fixes and options to play back problematic demos.

Software and OpenGL rendering Prboom-plus comes in two flavours: prboom-plus.exe (software rendering) and glboom-plus.exe (OpenGL rendering by default). How glboom-plus.exe performs will depend on your hardware, and of course it is less similar to the original game from a visual viewpoint. If you encounter problems, one thing to try is using the older versions of the SDL files that are supplied.

complevels and cfg settings The game behaviour and settings are determined in two ways: by the contents of the cfg file (prboom-plus.cfg or glboom-plus.cfg) and by whether you include a "-complevel" in the command line. The full list of complevels can be found in the accompanying documentation (usage.txt - a good place to look if you need further info about prboom-plus's features), but here I'll just give a quick summary of the most important ones for recording:

-complevel 2 - "vanilla" Doom2.exe
-complevel 3 - "vanilla" Ultimate Doom.exe or Doom95
-complevel 4 - Final Doom (use this only when using tnt.wad or plutonia.wad as the iwad)
-complevel 9</b> - Boom</font>

Thus if you mostly want to record vanilla demos (and Boom when necessary), you can put 2 as your default compatibility for Doom2, 3 as the default compatibility for Ultimate Doom, and put -complevel 9 in the command line when recording on a Boom map. Nothing more to worry about.

These complevels do not enforce vanilla or Boom limits, and so are suitable for "limit-removing" maps or "Boom + additional removal of limits" maps.

Note that the "vanilla" and Boom complevels (2-9) will override the individual compatibility settings in the cfg. With MBF compatibility and above (11-17 and -1), many aspects of the in-game behaviour will be determined by the cfg settings. If you don't use a complevel at all, you will just get the default settings, which may not be what you're after at all. And crucially, it will not then record a demo that will play back with any other program.

Overflow settings
Prboom+ offers several options for emulating memory overflows that can occur with the vanilla exes. I recommend the following settings:
Spechits overflow emulation: yes
Reject overflow emulation: yes
Intercepts overflow emulation: no (this overflow can trash a recording attempt, especially on large limit-removing levels, and is useful only in exceptionally rare cases)
Playeringame overflow emulation: yes or no (this one is very rare)
Donut overflow emulation: yes
Missedbackside overflow emulation: yes

Example command lines glboom-plus -complevel 2 -iwad doom.wad -file uac_dead.wad -playdemo uac_dead
This plays back a Doom 1.9 demo (this pwad doesn't function correctly with Ultimate Doom)

glboom-plus -complevel 2 -iwad doom2.wad -file ksutra.wad -warp 15 -skill 5 -record kn15-xxx
This records a vanilla Doom2.exe demo

glboom-plus -complevel 3 -iwad doom.wad -warp 1 9 -skill 5 -record n1m9-xxx
This records a vanilla Ultimate Doom.exe demo

glboom-plus -complevel 5 -iwad doom2.wad -file icarus.wad -playdemo ic25uv
This plays back a Dosdoom .47 demo

glboom-plus -iwad doom2.wad -file nulspace.wad -playdemo nulnx415
This plays back an unconverted Tasdoom.exe demo (this demo format is autodetected, so there's no need to include -complevel 6 in the command line)

As you can see from the examples above, it is possible to specify a complevel for playback by putting it in the command line. This is to handle cases in which autodetection does not correctly identify the demo-type. Autodetection (i.e. prboom+ guesses the best complevel based on the information in the lmp header and the iwad that is being used) will work for the vast majority of demos.

If you use a complevel for playback by including it in the command line, it will override the autodetection of the demo type.

Autodetection will be used whenever a complevel is not given in the command line.

The default compatibility in the cfg will not override autodetection.

You'll normally only need to specify a complevel for playback when there is something unusual about the demo, such as it being a dosdoom .47 or tasdoom demo.

Note that the demo must have the same binary format as the complevel is expecting (so, e.g., you can't attempt to play back a vanilla demo with -complevel 9).

Once you have things set up, it would make sense to test that it is working correctly by recording some short test demos, and checking that they play back correctly with other exes (e.g. that "vanilla" demos play back with Chocolate Doom, and that "Boom" demos play back with Boom 2.02 or Prboom 2.02).

<h4>Usage Notes:</h4>

  • Note that if you use the regular Prboom instead of Prboom-plus, you will get a "demo recorded" dialogue (this dialogue is quite irritating, especially if you are making a large number of attempts at a short demo), and you will get a GF49 tic every so often when you should get a GF50 (normal forward running). You may also get a "kick" at start-up, and be unable to move for the first part of a second. It also lacks some compatibility fixes that are in prboom-plus, so there is a greater chance of recording a desynching demo.
  • Prboom-plus offers a number of TAS features (including slow motion and strafe-50 automation), so be careful that you don't inadvertently use any of them when recording standard demos (check the options menu or the cfg). The default settings are for them to be turned off, so you've nothing to worry about unless you have previously used or experimented with these features.
  • Check that you are using up-to-date versions of the SDL files that Prboom uses. If you have the most recent version of Prboom-plus, then you will probably have the current versions, but it is a good idea to check the SDL site every so often in any case to see if there are updates. If you have odd performance issues, try using a newer or older version of the SDL files.
  • Prboom-plus gives the option of overwriting an existing demo. Find demo_overwriteexisting in the cfg and give it the value 1. With previous versions or if you don't want to risk overwriting one that you want to keep, you will need to delete or rename each attempt (manually or via a batch file) before trying again.
  • The screen resolution can be set from the command line (e.g. -width 1280 -height 1024 - you only need to do this once, as it remembers it from then on) or by editing prboom.cfg or glboom.cfg. You can also set the resolution temporarily from the command line using in a way that is not saved in the cfg: -geom 640x480 for example.
  • You can set autorun by editing the cfg or by choosing autorun (CAPS by default) in-game. Then pressing Shift has the effect of making you walk.
  • If you need help with knowing what you should put in your command line to record demos generally, then you will find some useful examples (courtesy of Opulent) here, and guidance from Kristian here.
  • If you don't specify an iwad, Prboom will choose Doom2.wad if it finds it in the same folder. If you want to use a different iwad, you will need to use -iwad in the command line, or run it from a folder where it instead finds the iwad you want it to use.
  • To record Final Doom demos, if you use -complevel 2, then this is like using Doom2.exe with Final Doom as a pwad. If you use -complevel 4, then this is like using Final Doom's own Doom2.exe. For playback of Final Doom demos, you need to use the equivalent complevel. If the demo was recorded with Doom2.exe, then you need to use -complevel 2 to play it back. Or use the auto-loading patterns.
  • You can enter the command line via Start->Run... (rather than a command prompt box) as long as you include the full path to the exe. You don't need to give paths for other files as long as they are in the same folder.
  • You may wish to disable emulation of intercepts overflows completely. There is only one known demo that has ever made successful use of this "allghosts" bug to which this type of overflow often leads. In every other case, it has either made no difference, or has trashed the recording attempt. Most people would rather have a demo that plays back only with PrBoom+ rather than an amusing but useless failed attempt.
  • When updating to a new version, I suggest you simply keep your old cfg files (which you will no doubt have spent some time customizing in line with your preferencs), and run the program. If there are new or changed options, then these can be changed from the in-game menus or be editing the cfg manually.

thanks, etc. I hope this is helpful, and that I haven't muddied anything that had been clear! Thanks to Opulent, Kristian Ronge, myk and entryway for some helpful suggestions on what to include here. However, any shortcomings in these notes are my responsibility, and if you wish to suggest any corrections or improvements, please contact me.

Share this post

Link to post

This post answers some frequently-asked questions about the basics of demo-recording and demo-watching.

New (2007): Please see this thread for information on an easier way to watch demos. This works with most demos recorded with the "vanilla" engines, Boom, MBF, etc.

A demo is not a video clip. It is a recording of the player's actions. The original games and most ports support the recording and playing back of demos. In general, demos only play back with the same engine (exe) that they were recorded with (but see the red text below). You also need to make sure that any wads required (iwad or pwad) are the same version as was used to record, and haven't been modified in any way. So if you have for some reason rebuilt the nodes for your iwads, you'll need to reinstall them from the original disks, and if necessary patch them up to version 1.9, or else restore them from a backup. Note also that Doom95 cannot be relied upon to play back Doom2 demos (it works well with Ultimate Doom demos though).

To watch a demo, you put "-playdemo" in the command-line, followed by the name of the demo file. Thus:
doom2 -playdemo 30nm2956
plays back the demo named 30nm2956.lmp using doom2.exe and the doom2 iwad.

To play back a pwad demo, you need to include the pwad in the command line, as normal, using "-file". Example:
prboom-plus -file hr.wad hrmus.wad -playdemo 30hr2843
plays back the demo named 30hr2843.lmp using prboom-plus, and Hell Revealed.

Dragging and dropping also works with prboom-plus - drag and drop the demo file (and any pwads and dehs needed) onto an icon for prboom. Note that the default iwad it uses is Doom2.wad. If you need to use a different iwad, then you need to specify it with "-iwad" in the command line, or else to make an icon to another copy of prboom-plus that has a different iwad (simplest way: put a copy in a folder where there is a copy of doom.wad {or one of the Final Doom iwads, whatever} but no doom2.wad).

To record a demo, you need to put "-record" in the command line, followed by the name you want the demo to have. You will also need to specify a skill level and warp to the level on which you want to begin. Example:
eternity -file av.wad -warp 01 -skill 5 -record an01-xxx
records a demo temporarily named an01-xxx.lmp using Eternity, on Nightmare skill starting on map01 of Alien Vendetta.

<font color=red>In some ports, compatibility modes have been implemented that enable them to play back demos from some other ports.</font> Most notable is Prboom-plus, which will play back demos from the original games, Boom, MBF (and some others) with a high degree of success. (A failure is known as a "desync", and generally means the player starts acting crazily, shooting walls, and most often dying.) Eternity will reliably play back demos from the original games and MBF demos, while Chocolate Doom will handle "vanilla" demos well.

Prboom-plus can also be used to record demos in several formats. See the documentation and this post for details.

The majority of demos you'll find online will play back with Prboom-plus. This program will normally autodetect the demo format if it is one that it can play back. There should generally be a textfile accompanying a demo. Read this to see if you need to use a different port to watch the demo, or if you need to "force" a complevel via the command line (it is very rare to need to do this). The most common other ports for recording are Legacy and Zdoom. In each case, you will need to make sure you have the same version of the port that was used to record it. (A Zdoom demo from version 2.0.47, for instance, is quite unlikely to play back with 2.0.63a, etc.)

Useful links:
Andrey Budko's PrBoom-plus (also: prboom-plus sourceforge site). This comes in software and OpenGL "flavours" - use either prboom.exe or glboom.exe.
Compet-n (accepts "world record" demos on the iwads and selected pwads, as long as they are recorded with the original DOS exes)
newly incoming compet-n demos
Doomed Speed Demos Archive (click on "Single Player" to get a listing of pwads for which there are SP demos; DSDA accepts almost all demos on any pwad)
Doomworld Demos Forum (you are here! Discussion, recording projects, demos, tips, and anything else to do with demos and speedrunning)
Doom2.net (lots of info, especially on deathmatch)
Archive of Compet-n, DSDA and Pdang demos

Share this post

Link to post

Here is a quick run-down of how to use the attachments feature.

  • You can attach demos only in a zip file (please include a txt too), and they must not be more than 200K. For larger zip files than that, split them or upload them to your own webspace (or wherever) and link to them from there. Please avoid file-hosting services that will nuke the link after a short period of time: we want the demos to remain available to people browsing the Demos forum in the future.

  • Start making your post as normal, and use the "Attach file:" window to browse for the file you want to attach.

  • Do not make your post and then try to edit an attachment onto it. That does not work. Once a post has been made without an attachment, it stays that way. If you make too many "Whoops! Forgot the attachment" posts that need fixing, the moderators' patience may start to wear thin.

  • If you wish to replace an attachment with a new one (e.g. to fix an error in the txt), do not "Delete current attachment". Use the "Upload new attachment:" line instead.

  • Do not abuse the attachment feature.

Share this post

Link to post

While PrBoom-plus supports various compatibility levels (in addition to the specific compatibility settings), only a few are widely used for recording:

For true vanilla or Doom levels, use compatibility levels 2-4, depending on the game played (2 is DOOM II, 3 is The Ultimate Doom, and 4 is Final DOOM). These compatibility levels are best used with the IWADs themselves as well as with all PWADs successfully tested by the level author with the vanilla executables or Chocolate Doom.

The three Doom compatibility levels are also suitable with many limit removing level sets, but note that such demos may not play back in vanilla executables (Doom, Doom95 or Chocolate Doom) by exceeding visplane overflow limits and such, and may also suffer from intercepts overflows. The demos will often work with Doom-plus, which lifts some of the limits by a good margin.

You may prefer to disable intercepts overflow emulation entirely, as it means that you won't have a demo attempt trashed by the "all-ghosts bug". This will be especially useful in levels where hitscan attacks may easily go over hundreds of linedefs or things. Note that if you have intercepts overflow emulation disabled by default, the very small number of bug demos dependent on the overflow will not be emulated accurately.

For Boom levels, compatibility level 9, Boom's standard behavior, is most suitable. Levels presented as "Boom compatible" should run as intended with this compatibility level. One drawback of Boom compatibility is that living monsters may fall off ledges, possibly into hard-to-access pits. Some limit-removing levels or sets that otherwise only use vanilla features may also require Boom compatibility if Boom behavior was used while testing them (we usually say they suffer from "Boomisms.") This is because there are some moving-sector differences between Boom and vanilla. There's no immediate way of knowing this, but you should be able to notice if Boom compatibility is necessary while playing the level initially and before recording, if you encounter problems under either Doom or Boom compatibility, such as switches not responding, sectors not lowering or stairs not rising.

Keep in mind the above notes while creating and testing levels, as well, if you are interested in seeing consistent demos of your levels from fellow players.

If you have any doubts or comments about this post, you can send me a private message.

Share this post

Link to post

Generally speaking, the Doom demos community takes its lead in terms of definitions of standard demo categories from the original Compet-n, though everyone is free to define their own new categories if they wish.

Note on Max demos (as there has been some confusion due to an old ambiguity in the compet-n rules that was clarified by Adam Hegyi only in the compet-n forums):

To be a valid demo in a Max category (including UV Max and UV Fast), all killable monsters (with the exception of lost souls or anything spawned by a boss shooter) must be dead when the player exits the map (and all reachable secrets need to be triggered). This means that any monsters revived by an arch-vile must be rekilled.

If there are unreachable monsters, or any that for some reason are unkillable, then these can be left alive.

If on some particular map it is very hard to kill all monsters (but it can't be demonstrated that it is physically impossible to kill them), then the closest to Max can be considered valid. Any later demo featuring fewer monsters left alive at the end can be considered "a better Max" than the earlier demo, even if the time is slower. (Of course, it is possible for the demos community to agree upon map-specific rules or conventions in vexing cases.)

Share this post

Link to post

As you will have noticed if you have read the FAQ or started to make a post in a long-dormant thread, in general Doomworld strongly discourages bumping old threads where there hasn't been activity for a long time.

There is an exception for the Demos Forum. If you have a demo to post, it is completely OK, and preferred, to post in the thread that is the most appropriate place to put it (e.g. a thread for demos on a particular wad) no matter how long it has been since the previous post.

Note: This only applies if you have a demo to post. For comments or discussion, the same rule applies as for the rest of the Doomworld forums: the older the thread, the more earth-shatteringly important your post needs to be to justify a bump (and err on the side of caution).

Share this post

Link to post

Do you want to chat live with fellow speedrunners? Join one of the following IM channels where we congregate and discuss, like, glides and UV -respawn and stuff!

IRC: #nightmare at QuakeNet: A blast from the past, the channel where the original Compet-N magic happened. It still lives! (Somewhat.) Meet allsome of your favourite zombie doomgods!
Discord: Doom Speed Demos: The general Doom speedrunning channel where active runners hang out! The highlight feature is a bot announcing ongoing Doom-related streams on Twitch and a bot for quick DSDA queries!

Edited by dew

Share this post

Link to post
This topic is now closed to further replies.
Sign in to follow this