Recent news: This project was just started, so please fill out the survey listed below.

The Demoscene Videos Project


Project Details

Introduction

Welcome to The Oldskool Demoscene Videos Project. This project has a very simple scope: To create Video CD-quality MPEG-1 videos of classic PC demos and intros. (For simplicity's sake, I'll just refer to demos from now on, although all demos, intros, and 4k intros are inclusive in the scope of this project. I'll also refer to MPEG-1 video files as "MPEGs".)

An obvious question after reading the above would be, "Why on earth would anyone want to do that when you can just run the demo?" There are several good reasons to make videos of demos:

MPEGs were chosen as the distribution medium for video because that way you completely avoid problems with different broadcast standards (NTSC vs. PAL vs. SECAM, etc.) At first glance, it seems very silly to make an MPEG of a demo; the resulting MPEG file is always bigger than the source material. But for the reasons listed above, it's desirable. Better to do it now before it can't be done at all, right?

Project Specifics

The intended output format for each MPEG file is MPEG-1 at NTSC Video CD bitrates and parameters (352x240x29.97fps). This format is compatible with Video CD and DVD players, and also provides the maximum motion quality possible per demo at a slight cost of vertical resolution and color saturation. (It's also the video standard here in the states, so if I'm stuck with it, so are you. :)

This project is limited in scope to PC demos only. While I have the ability to run most Amiga demos on my A1200 using Degrader, and while I can view and capture PAL with some effort, the recent improvements in Fellow and UAE make this project mostly unnecessary for Amiga demos.

Demo Platforms:

Distribution

The aforementioned MPEG video clips, like the demos themselves, will obviously be free; there will be no limitations on copying them. However, since it takes me hours and hours to create an MPEG clip for a single demo, and since I don't have a lot of bandwidth, I will be providing the MPEG clips I produce on CDR only. The current estimate is that after all is said and done, there will be enough MPEG footage to fully fill two CDROMs. I will capture, encode, create, burn, label, package, and ship these CDs myself, so I will be charging money (or old games ;-) for my effort involved and the cost of the media/packaging/shipping. Once you receive the CDRs, you can do with them what you like.

To those who don't want to pay for getting CDRs: I'm sorry, but if I can't get compensated for my efforts, it's not worth my while to lead the project. I have a job and two kids, in addition to many other projects, which leaves me with a fraction of the time I used to have when I was in the PC demoscene for 7+ years.


Technical Details

The Capture Process

Capturing video from demos all comes down to refresh rates. Horizontal refresh rates don't matter too much, since NTSC video has an analog, "infinite" horizontal resolution. This is easily compensated for. Vertical resolution, however, makes or breaks the capture. But before I go into that, let's look at the conversion process for video.

NTSC video is traditionally represented as 640x480 at 29.97 frames per second, with each frame consisting of two interlaced fields that actually make up two discrete images (so the "framerate" is really 59.94 fps -- this is why live events on videotape seem more than twice as smooth as live events captured on film, because they are). MPEG-1 video, when constrained by the Video CD whitebook specification, has a 352x240x29.97 mode. This is perfect for our needs. The conversion process is relatively simple: Each 640x480 frame is "field-blended" so that the two fields bleed into each other. Then the resulting picture is resized down to 352x240 using 8-tap ansiotropic filtering (a 3x3 matrix around each sampled point, essentially). This produces a very high quality result that, although the framerate is halved, contains information from both frames vieing for the spot. This helps minimize the "harsh" look that 30fps MPEGs usually have from 60fps source material.

So, conversion is relatively easy. Capturing, then, becomes the hard part. It may not seem hard at first; VGA hardware at 320x240 produces 60 images a second, which maps almost exactly into NTSC video (59.94 images a second). But what if you run a demo that has a video mode with a refresh rate of 50Hz? Or the most common mode, 320x200, which is 70Hz?

It's a problem. If you simply drop or add frames to match NTSC, the motion looks jerky. If you interpolate across frame buffers in a sophisticated timebase corrector, the image looks ghosty and washed out. So, the solution is to simply force all refresh rates of the video modes to 60Hz. This way, the capture process never needs to drop or add frames. Since most demos wait for verticle retrace before updating the screen, they'll just wait slightly longer (or shorter) before displaying the new image.

This is the solution that I prefer, as it produces the best results for video, which is our goal. (The demo may not run exactly as it does on a monitor, but over 90% run just fine; more on this phenominon later.) It is also the same method used by the "TV-OUT" portion of video cards and 3D accelerators that provide the capability to display images on a TV. For the Pentium 120 and Pentium Pro 200, the video cards that will be used have this capability; they simply initialize most video modes, including VESA modes, to 60Hz. For the 386, I have built a simple device that maps VGA signals to S-Video, and have written a TSR that ensures most BIOS-initialized video modes come up with a refresh rate of 60Hz. (The 386 method isn't foolproof; if it doesn't work with a requested demo, I'll attempt running the demo on the Pentium.)

Expectations and Limitations

It's important to clarify what you can and cannot expect from this project and its capture/conversion process:

  • 30fps, no matter how interpolated, can never be as fluid as the original 60fps.
  • Not all DVD players can play burnt CDRs; most need a "discrete/dual pickup" laser system, which simply means the DVD player has two lasers, one to read DVDs and the other to read CDs. To test your DVD player, burn a regular audio CD yourself (gold media works best) and try playing it in your DVD player. If it plays, you've got the necessary hardware. If it doesn't, then you'll only be able to play the Video CD on your computer (or Playstations or Sega Saturns with the Video CD addon).
  • As stated before, I will charge money for the CDs. If you don't want to pay for the MPEG clips, then get them from a friend who has them. Until someone legitimate offers to host them somewhere, this is the only way to get the full quality clips.
  • Not all demos can be captured due to problems involved with forcing the video refresh rate to 60Hz. These include:

    A few demos can be patched to be "capture-friendly" (Electric Gruere, some jmagic demos) and some can be modified by the original authors to run (some Craw Productions demos, Amnesia / Renaissance), and yet still more can probably be fixed in post-production (Second Reality, demos that use "fakemodes"). So, even if a demo quite obviously uses wacko modes, try asking for it anyway, because I probably know something you don't.

    There are other methods that could be used to make videos of demos, but they all have their limitations. Here's a table I've whipped up so that you can see why I chose the method I described earlier:

    Method Why It Is Unsuitable Redeeming Factors
    Consumer-grade VGA to TV Converters Cheap converters don't display any image at all if video mode isn't exactly 60 or 70Hz (and in 70Hz, they drop frames). Either that, or they require a resident driver that can potentially screw up the demo. It's cheap (if you can get it to work)
    Professional VGA to TV Converters In addition to being rediculously expensive, they deal with non-regular refresh rates by produce images that either have jerky motion (because of the internal timebase corrector dropping every Nth frame from the frame buffer) or intermittant ghosting and lag from blending frame buffers. For demos that do work, it's a very high-quality conversion.
    Aim a video camera at the monitor and adjust the exposure/fstop, then start recording Fuzzy, bland, flickering image in addition to the problems described above with professional converters. Can "capture" any demo, albeit at a great loss of quality
    Aim a camera at the output of a video projector and adjust the exposure/fstop, then start recording Same as aiming the camera at a monitor, but you replace the flickering problem with lack of saturation and brightness. Can "capture" any demo, albeit at a great loss of quality
    Write a real-mode demo "wrapper" that dumps screen memory to disk 30 times a second Impractical; it would steal way too much CPU time away from the demo. Would provide great quality, if it were practical.
    Write a protected-mode "wrapper" that captures port writes to flip video pages in VESA and ModeX video modes; dump screen memory only when the video page is flipped Impractical; more elegant than the real-mode wrapper idea, but still would take way too much cpu time. Would provide the best quality, if it were practical.
    Write a complete 80386 and VGA/VESA emulator that can dump screen memory Would take much more time and skill than I have right now. Would provide the absolute best quality possible, if it were practical to write.


    Your Input

    Survey

    Help me get a feel for what people want to see from this project by filling out my survey. The answers will help determine the scope and practicality of this project, so please answer seriously.

    List the top three demos or intros you would most like to see as an MPEG file: ____________ ____________ ____________

    List any other demos or intros you'd like to see converted: ____________ ____________ ____________ ____________ ____________ ____________ ____________

    Some demos like Second Reality and Crystal Dream 2 cannot be captured properly or easily due to the way they were written or use the video card. Would you accept an inferior quality capture process (may be fuzzy, flicker, or lose motion smoothness compared to the others) for these demos? o Yes: I must see them no matter how bad they look compared to the others! o No: If quality cannot be maintained, don't bother.

    Would you prefer to see beginning and/or ending title screens tacked onto each clip? o Yes: I want beginning titles to announce the demo, and ending titles to display the credits of who made it and other information. o No: Just the demo, please.

    Capturing and encoding clips of demos and intros takes a lot of time (three or hours per clip; a day if titles are created). What would you think is a fair price for two full CDs of these clips? o Free! o $5 o $10 o $15 o $20 o $25 o $30 o $35 o $40

    Would you be willing to pay more for a CD set that looked and felt "professional"? o Yes: I like colorful CD labels and inserts, even if they raise the price. o No: I don't care about stuff like that and want to pay as little as possible to get the CDs.

    Demos/Intros are free, so I have no problem making all of the finished MPEG clips freely downloadable. However, MPEG clips are really big (10 megabytes per minute). I do not have the bandwidth or storage space to put up 1.2 gigabytes of finished clips online. Where can I host them online for free? +---------+ | | | | | | +---------+

    (Note: Raping free webhosting places (GeoCities, Xoom, etc.) and University accounts is not an option. ftp.cdrom.com is also not an option because it was recently purchased by Digitalriver, and aren't accepting new archives. -->


    Project Status

    Example Clips

    Here are some 10-second clips of the actual MPEGs. These are final versions in NTSC VideoCD format (352x240x29.97fps) and are taken from final, finished clips. I'm providing these as an example of the finished quality of the MPEG files. Use these to test the final output with your system (a P120 or higher should be able to play them at the full framerate with acceleration, or a P166 with no acceleration) or disc player (burn them to Video CD with Nero Burning ROM if you want to test your DVD or Video CD player or software).

    Completed Demos

    The entire archive of demos and intros that I've done so far is conveniently reproduced here in RealVideo G2 format. All clips are 176x128 unless otherwise specified:


    Related Information

    The Video CD FAQ has a lot of information on Video CDs, where you can get them, how you can play them without a computer, etc.