Music Disk

Some time ago (2007 I think), I mentioned that czPlayer has origins in an old sound system I coded for a Music Disk, back in 1998.
I managed to find a zip file with that same Music Disk, and wrap it with DOSBox, so that anyone can take a look, as it wouldn’t run in modern PCs.

You can download it here.

Just unpack to a folder, and run the LaunchPH5_5 batch script. It will automatically launch PH5.5 running inside DOSBox.

I coded pretty much everything apart from a really nice graphics library I got from a book, and most of the work was done during 1998 Summer holidays. Some of the awesome features (in 1997-1998 at least):

  • Runs in VGA VESA mode, 800×600, with support for Linear Frame Buffer. (Sounds like Chinese to you? If not, then you’re getting old)
  • Optimized 256 colour palette.
  • Coded in good old Watcom C++ for DOS, and runs in protected mode (uses PMODE/W)
  • The sound system itself was quite nice, support a couple of things not commonly found
    • Critical mixing functions coded in hand optimized assembly
    • Support from SB Mono to SB 16
    • Support for Gravis Ultrasound, both hardware mixing, or software mixing, to work around the hardware voices limitation
    • Mono, Stereo, 8 and 16 bits support
    • Fixed point mixing
    • Decent Impulse Tracker format support

The art was done by a friend of mine. The music was also done by him and a friend of his, whom I never met, using Impulse Tracker. Two of the songs were mine, but not as good as the other ones, since after all I was the coder!

Just look at these awesome screen shots!
Keep in mind that’s from 1998, using a 800×600 8bits display mode

Sound Setup Screen

Coded in ASCII mode. Look at those amazing shadows. 🙂

Start-up screen

The awesome start-up screen, calculating some really useful lookup tables.
Also, note the 800×600 video mode, at 8 bits. Live wasn’t easy.

User Interface (Trance Zone)

The UI was divided in two zones. The background art was indeed nice. The way everything fits on top is a bit crude without antialiasing, because with just 256 colours it was a limited palette to choose from.
The spheres with the song names were faded in and out in a cycle.

Trip-Hop Zone

And the other zone, which we could scroll to. It had a complete different set of colours, which didn’t help. Both zone colours came from the same 256 colour palette.

Some options

I had some options for sound and the graphics. Turning off interpolation would only have an effect if using software mixing of course.

Credits

Notice the transparency of the dialog box. As all the other screenshots, still using the same colour palette.

Conclusion

That was the first project I started, finished, and released.
Also, the first project using the original czPlayer. The current version still has a bit of that code, but most of it has been refactored.
It’s an interesting experience to look at code I wrote >12 years ago, with a complete coding style.
Was an interesting thing to work on. I remember sitting down with my friend to discuss details and take a look at each other’s work.
Also, I remember a particular day I was brainstorming about display modes, and If I could go for 16bits/24bits mode, which would look a lot nicer, but would require a lot more CPU at that time.

These were the specs of the computer I used for coding:

  • Pentium 233 MMX
  • 32 MB
  • About 20 MB of Hard Drive space, for code and assets
  • SB16 clone, and a GUS sound cards
  • Cirrus Logic Laguna 5464 PCI graphics card

Leave a Reply

Be the First to Comment!

Notify of
avatar
wpDiscuz