Some results from the modified XDC movie player for 8088/CGA

For my modifications to the XDC player, I targeted my Philips 3105 XT clone. It has a turbo mode of 8 MHz, and an ATi Small Wonder CGA clone. The harddisk is a 32MB Disk-on-Module connected to an XT-IDE card.

8 MHz you say? Yes, I was somewhat surprised by that myself. Most turbo XT machines will derive their clockspeed from the NTSC base clock of 14.31818. So common speeds are 4.77 MHz, 7.16 MHz and 9.54 MHz.

So I checked with TOPBench and Landmark, and they both confirmed that this CPU is actually running at 8 MHz:

I wrote a simple tool that can halve the sample rate of the audio in a video file, and also preprocess the audio to PWM or Tandy formats, so there is no translation required at runtime, reducing CPU overhead.

The first attempt wasn’t too successful… The machine wasn’t quite fast enough. Or, the code wasn’t quite fast enough, depending on how you look at it. This resulted in a few buffer underruns, causing the PC speaker to glitch, as it would play garbage data at this point (it also does this at the start of each video, as there is no data buffered yet). So I performed some optimization in assembly, and some other minor performance tweaks, and after a few tries, I came up with a version that can *almost* play the 8088 Domination content with 11 kHz PC speaker audio:

As you can see, there is still one place in the video where there’s an underrun, but it quickly solves itself, and it continues playing (with audio and video in sync of course). I suppose that is close enough for me. If I were to optimize the code further, I don’t think I could do it with the inline assembler in Pascal. Besides, the performance is highly dependent on all the hardware. With just a slightly faster video card or a slightly faster HDD controller, this machine could probably play it without a glitch. And the more common 9.54 MHz turbo XTs should also have no problem with it. Nor would a 6 MHz AT.

Oh, and yes, the Bad Apple part is missing. That’s because my HDD is only 32 MB, so I can’t fit all videos on the disk at the same time.

If you want to try this modified version of 8088 Domination for yourself, you can download it here.

This entry was posted in Oldskool/retro programming, Software development and tagged , , , , , , , , , , , , , , , . Bookmark the permalink.

2 Responses to Some results from the modified XDC movie player for 8088/CGA

  1. Pingback: Video playback on low-end MS-DOS machines | Scali's OpenBlog™

  2. illys says:

    Yes, 8 MHz… the fact it is a Philips, a European brand, probably explains the disconnection with the NTSC frequency. I lived in France in the 80’s and in my souvenir, most turbo XTs were 8 MHz. I especially recall the Amstrad PC1512, Sinclair PC 200 (8086), Olivetti PC1, and many other nonames. I still have a 8088 noname with turbo button to choose between 4.77 and 8 MHz. Thanks for your work and articles, a pleasure to read.

Leave a comment