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