See what's going on with flipcode!


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 interface.

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:
"_____The Good... Dee Musicdisk Two by Dee. Excellent. Download now! [cut] '****+' 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 selector
  • 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)
  • Mandelbrot explorer
  • Julia explorer
  • 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 did.

    HORS can be downloaded from my site at 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 demo competition!

    Image of the Day Gallery



    Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
    Please read our Terms, Conditions, and Privacy information.