Video And Audio Playback On Low-End MS-DOS Machines

For most people the phrases ‘MS-DOS’ and ‘video playback’ probably aren’t commonly associated, yet it was quite normal as those of us who were watching full-motion video with games like Command & Conquer can attest to. These audiovisual experiences did however require somewhat more capable hardware than something like an original, 4.77 MHz IBM PC. More recently, however, the removal of these limitations has been turned into a challenge that has been gleefully accepted by hackers, including [Scali] whose recent tinkering with getting not only real-time video but also audio working on these old beasts has been documented on their blog.

Unlike existing early video formats like FLIC from the 1990s, the XDC format developed over the past years enables real-time, 60 FPS video and audio playback on an 8088 IBM PC that has a SoundBlaster 2 and CGA card installed. As [Scali] notes, the SB2 card is convenient, because it enables DMA transports for the audio data, which saves a lot of precious CPU cycles. Unlike the original SB card, it also fixes some teething issues, but an SB2 is hardly ‘low-end’ for an early 1980s PC, so it has to go.

In [Scali]’s GitHub fork of the XDC codebase a number of optimizations are added, as well as PC speaker PWM routines that use an in-memory lookup table to convert from PCM to PWM values, which still struggles on a 4.77 MHz system. Next, the Covox Speech Thing supports PCM directly, giving pretty good results at 4.77 MHz, and adding both Tandy NCR 8496 as well as Sound Blaster (1.0) support was a snap afterwards, opening up a HD-ish audiovisual experience to many more early 1980s systems.

Below you can compare the two versions, first on an IBM PC with SB2 card, and then [Scali]’s version running on a Turbo XT system with just the dinky little PC speaker, which clearly sounds like it’s struggling:

13 thoughts on “Video And Audio Playback On Low-End MS-DOS Machines

  1. Pretty cool, considering it’s 4MHz, on a slow ram bus with a CPU the used multiple ticks per instruction. Could you have done this 40 years ago? Getting Tron on vhs, doable, digitizing it maybe. But having the storage for it in the 80’s… probably not.

      1. Well… people could do a lot in the eighties, even in the 70’s technology was pretty advanced. But what we tend to forget it that although possible, nobody could or was willing to afford it. Which is a big reason why something did not happen at that time.

        Every time somebody does something cool with a retro machine, people tend to fall into the rabbit hole and imagine what the world would have looked like if “they only did it like that…” back then…. That something was doable in another time is true for so many things but we always forget the reasons why things did not happen. We always see the pretty things of the past, because the crap has already been thrown away. Confirming the myth of “they don’t build quality like that anymore”. When we visit a museum, we see the pretty armor of knights (worn by few) but not the cheap trash used by many that required a can opener in order to pee. Which was pretty nasty, considering the can opener wasn’t invented yet. Although technically, they could have build one back in the day as they had the technology… (see where this is going).

        And that’s exactly why retro computing is so much fun, because now we can build/assemble the machine we always wanted with much more ease and unlimited financial resources. We can build our dream machines. Play our favorite games (10 times the speed, ignoring that it isn’t fun otherwise). Tinkering with the hobby for periods longer than it ever lasted. Making wonderful games that took years to develop but work perfect on that old machine. Forgetting that back then a game was developed mostly by bedroom programmers in weeks. Retro computing is about polishing the memories of the “glory days” era of a certain model that only existed for a few years. Making it do today what was impossible back then, knowing that back then it also could have been done… as long as you had an infinite amount of cash and time (impossible for a 13 year old paying everything from pocket money and birthday gifts).

        1. I thought the question was a rhetorical one, which basically meant to imply that HDDs of the size to store a video of significant length was not available.
          The original 8088 Domination content is about 30 MB, which could *just* fit on a 32 MB RLL disk together with DOS. These disks would be found in later IBM 5160 PC/XT models.
          Posssible? Yes. Practical? Not really.

          However, these harddisks had a speed of only 90 kb/s, and the content is designed for that transfer rate. So it does physically run on an actual 1980s disk as long as it’s large enough.
          Single-speed CD-ROM however is 150 kb/s, so not only does it gives you more storage, it also gives you better performance.
          If you follow the FTP link from you’ll find an entire Star Trek movie encoded with XDC in an ISO format as a proof-of-concept.

          So yes, all this is possible with actual 80s tech (unlike many projects that use some old hardware, combined with modern microcontrollers, amounts of memory/storage never available back in the day or whatnot).

          Authoring the videos with 80s tech… also possible. Although that hardware would be more expensive and less common (digitizers, early CD-Rs and such, possibly using something like a tapestreamer as storage rather than a HDD that would fit an entire ISO). But CD-ROMs were authored in the 80s, even at relatively small scales, by small organizations.

          It could have been done. Probably wouldn’t have been, at least not for movies and such, because why bother when the quality of a cheap VHS recording is better?
          Although it would be interesting for multimedia presentations, or as video intros in games and such.

    1. Seems like the videos are text based. Text compresses at 80:1 ratio, or better.
      Only the text is also colored.
      Had it been a b&w video, based on text, it could have stored just fine.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.