Submitted by , posted on 26 April 2002
Image Description, by
What you're seeing in the picture is the UI of my little project called
HORS. HORS is a musicdisk interface.
The HORS project started in 1994. !Cube, a friend of mine, was in
something like four groups at the time, and wanted a short group name to
release his MOD music under, and decided to form DEE. Nitro joined DEE as
well as the second musician and they recruited me, Sol, to write a musicdisk
Musicdisks at the time were mostly one to two disks (1.4 megs per disk) of
size, and a 'proper' music disk was considered to be one with a graphical
interface. Most musicdisk interfaces out there were obviously weekend hacks,
just showing a picture and changing tune when a key was pressed. We felt
that this was no fun, and planned something slightly bigger. HORS 1.0 was
coded in 1994 by me, and it was the largest, and last, pascal project I
wrote. Running in 640x480 (most if not all of the mainstream graphics
applications were 320x200 at the time), it included lots of assembler hacks
to get around turbo pascals' limitations.
After the success of DEE ONE we sat down and planned a monster. (Ever read
the jargon file? Look up 'second-system effect'). The moster was to be
called HORS 2.0, and it was to include interesting things like the mouse
followers (nice idea that was stolen from the original 'discworld' game),
scroller at the bottom, scrollable information panel (versus the
fadeout/fadein in original HORS), among other things. Six months to the
project I realized that I spent more time fighting with turbo pascal's and
real mode's limitations than with the actual building.
So I checked watcom C out, and never looked back. My transition to C
happened completely in one weekend; originally I thought I'd still go and
write some smaller tools with pascal, but I couldn't see any reason after
working with C for a while.
So HORS 2.0 ended up being my first C project. At about 12000 lines and 12
months of work (while finishing up with highschool and other stuff) it is
the largest personal 'solo' project I've done.
So finally at the end of '96 HORS 2.0 was about to be finished and we
started building DEE TWO, and it was released in january 1997, and it was
very well received by the audience. As an example, DemoNews, newsletter by
the then-active hornet archive, said the following:
Dee Musicdisk Two by Dee. Excellent. Download now!
'****+' Slam! This is how a music disk should be done. Absolutely
the best interface I've seen for a music disk since Epidemic. Not
only that, but the interface is configurable... you can actually
use it for your own productions. The music kicks ass. If you
only download a couple music disks this year, be sure that one of
them is Dee Musicdisk Two!"
-- DemoNews # 141 - 02 February 1997
We got tons of fan mail about it; best bits can be found in praise_dee.txt
included in the distribution.
While waiting for my military service to begin (which is mandatory in
finland) I made 'koivis', a hypercardish presentation of my highschool,
partially to show that it's possible using HORS with no code changes
whatsoever. While I was in the army we released DEE 2:42, DEE 3 and DEE PI,
along with a Trauma demo at assembly, and couple of invitation intros to
different parties. All in all, I personally released more scene stuff during
my military year than most scene people do in all their lives. =) Later on
we released all dubius sound tracks as one HORS disk.
After that years passed. I've had this idea of porting HORS to windows for
some time now - it wouldn't run under emulation due to the VESA mode used
and also because the music player by Tremor isn't exactly
emulation-friendly. However, after getting some fan mail after a long time,
and also being on vacation, I started going through the HORS sources and
figured they wouldn't be too hard to port.
After 6 hours of hacking I had sound, graphics, controls and mouse
running. Some 10-12 hours of finishing touches later here it is.
When you listen to the DEE disks and read all the stuff contained within,
do remember that most of the information is very old. There are some things
I would have wanted to change, as did Nitro and others, but I thought that
it might be better to just let it be this way. Running the DEE disks on
current hardware is a nostalgia trip for us; let it be like that for the
rest of you as well.
The music player used is FMOD, which I only had to misuse very slightly in
order to get it to work the way I wanted it (I checked with Firelight to
make sure my hack was ok). For graphics I used SDL, which in my opinion is
the sanest way to do 2d graphics on current hardware. Due to some hacks I
had to do HORS now requires a bit more CPU power than it used to (it used to
run just fine on pentium 100MHz; now I'd recommend 300+MHz).
As for the final 'key feature' list:
640x480x256 graphics mode with minimal display memory changes and no
blinking mousecursors (everything else ran in 320x200 back then)
Mouse cursor with clock and mouse followers
Greeting scroller on bottom
Tune info box (with real bpm counter)
Fancy channel-based volumebars (with panning and note display)
Information viewer (with hyperlinks, images, background image, different
fonts, links in images, text wrapping around the images or centered images,
font rendering styles and colors, all through HTMLish renderer)
Compressed file library system
Note dots (showing pan, volume, note instead of channel-based view)
3d IFS fractal renderer
Nibbles (worms) game with 25 levels
Own, specific, paleted image format
Runtime palette reorganization and quantization
Musicdisk change on the fly
Plus probably others that I just can't remember right now.
Yes, I used to have far too much free time on my hands =)
Special thanks go to Joachim Fenkes for the superlative beta testing he
HORS can be downloaded from my site at iki.fi/sol as either separate engine package
(if you have the old musicdisks) or as a whopping 22 megabyte package that
contains all the data ever released with this interface.
ps. Remember the text mode