Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Jari Komppa, posted on April 26, 2002

Image Description, by Jari Komppa

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


    Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
    Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
    Fredman Jr.

    April 26, 2002, 12:53 PM

    wow, i got first. cool pic, lot's of description.


    April 26, 2002, 12:55 PM

    Well, thanks an "Internal Server Error" and a "An existing topic with that ID already exists" that let you be first


    April 26, 2002, 01:04 PM

    Why is so important be the first?
    Commonly the first don't give a valuable opinion...


    April 26, 2002, 01:05 PM

    Well I havent read your description, its so damn long !

    But I think its nonsense. I'll try to find more arguments soon



    April 26, 2002, 01:30 PM

    And apparently, neither do the 3rd or 4th posts. :-) At least, not this time.

    Rasmus Christian Kaae

    April 26, 2002, 01:32 PM

    OK, besides the nice tracks that comes with these musicdisks, what's so cool about this IOTD? All it does it to play tracked music using 3rd party libraries and display some visuals also through 3rd party libraries.

    Your description is very fun reading, but i'd say it belong in a scene-history-book or something, not on a coder-site like this.

    All in all, a misplaced IOTD imho.

    (Keep in mind that I find the musicdisk cool though).


    April 26, 2002, 01:39 PM

    What a great comment!


    April 26, 2002, 01:48 PM

    I like music, but I tought that the IOTD was for visual things... And I don't think that this kind of too much colorful UI (that's my opinion) has a visual interest...


    April 26, 2002, 01:52 PM

    Rasmus, sometimes it's just really neat to see "historical" IOTDs, at least in my opinion.


    April 26, 2002, 01:57 PM

    When did we become so elite? I enjoy seeing things that are not only using the newest technology but those that aren't.


    April 26, 2002, 02:09 PM

    Well I guess if some people started coding a couple of years ago won't find anything interesting here. Cycle optimizing code isn't "in" anymore, since Intel throws out a new chip every 6 months. Yeah, you can bet on better optimization attacking the problem at the algorithm level. Yet I don't think I had more fun coding than when hand optimizing assembly.

    There, you got me sentimental with this "historic" moment :-)


    April 26, 2002, 02:19 PM

    Tiny little egos, no life to speak of, and the thrill of near-accomplishment.

    Neat interface, though.


    Headless Chicken

    April 26, 2002, 02:20 PM

    Why don't we ever just accept peoples opinions anymore and leave them be? I don't think Rasmus was trying to be mean, he just beleives the IOTD is out of place. Honestly, so do I.


    April 26, 2002, 02:23 PM

    I hate people who don't have respect for oldschool stuff and furthermore, post crap in IOTD.
    Jari, neat stuff over there. one of the best musicdisks i've ever seen ! and the list of available features at that time is amasing. makes me remember my first vesa 1.2 experiments :)

    ps : .fi coders were always my fav scene coder idols =)


    April 26, 2002, 02:57 PM

    Maximum respect to the oldskool..! :)

    What I want to know is - how did you do the real BPM counter ?

    If it's *real*, it should have involved quite a lot of signal-processing..!
    (RealBpm != (position in the mod-pattern % 4) :))


    April 26, 2002, 03:17 PM

    I think some other people here at flipcode have caught a case of baxtonitis!


    April 26, 2002, 03:18 PM

    Well, you're wrong. It's not just for visual things.


    April 26, 2002, 03:21 PM

    The tunes are great! good work.


    April 26, 2002, 03:22 PM

    Again, looks like another case of baxtonitis.


    April 26, 2002, 03:24 PM

    Oh, wait! You mean tiny egos etc. for people who want to be first? Ahh, never mind then.

    Mike Howell

    April 26, 2002, 04:12 PM

    It's the same instictive need as being the first to discover a hidden cave filled with beautiful, delicate rock formations and huge chambers of geoluminescent crystals, and then spraypainting "JOE IS A FAG" on the wall.


    April 26, 2002, 04:18 PM

    What else is it for? Music? I've turned up the speakers all the way, but you know, I still can't hear the music!

    This is not Project of the Day. It is *IMAGE* of the Day. Sure, ugly images are perfectly fine if they at least illustrate something, like how someone's program works. But all this is is a screenshot of a UI and it shows very little about how this guy's music program works.

    I don't mind this IOTD much, but honestly the IOTD is supposed to be about images.


    April 26, 2002, 04:20 PM

    Referring to Punchey's post.


    April 26, 2002, 04:29 PM

    "6 hours of hacking" actually means you changed everything under the hood, right? :)
    I used to code pascal and asm many years ago :))) but unfortunately we never released anything worth showing. Those times were really great and it ment a lot of fun to us optimizing our asm code.
    Nowadays I do Java all day and that is a totally different world.


    Jeff Olson

    April 26, 2002, 04:35 PM

    That is rather trippy, and definatly cool!
    Keep up the work =)


    April 26, 2002, 04:54 PM

    Congrats on the longest iotd I've seen so far:)
    Looks great!
    Nice fonts!


    Rasmus Christian Kaae

    April 26, 2002, 04:58 PM

    Then get the creators of some of the early 3D-engines to tell about how they had to do hardwaretricks to obtain "high" framerates.

    Rasmus Christian Kaae

    April 26, 2002, 05:01 PM

    I remeber the "joy" of trying to optimize my very first polyfillers around 94-95 ;-D

    Ted L. Chen

    April 26, 2002, 05:02 PM

    Gosh, I've been out of it so long that I don't even know what a musicdisk is. I do remember MODs though and wish I had kept my collection safe. Alas, it's in bit heaven now.

    Anyway, it's cool to see this is still alive and kicking. As for criticism, that font in the main menu (top-left) is seriously driving me insane. It's like reading a doctor's chicken-scratch. Arghhh!! Maybe it's a combination of that and the background stucco texture - which is really out of place with the rest of the screen anyways.


    Peter Mackay

    April 26, 2002, 05:12 PM

    Ahh brings back memories. I did a music diskmag thingee years ago when I started programming.

    Good work. Shame a some of the kids around here have no idea.

    This thread contains 74 messages.
    First Previous ( To view more messages, select a page: 0 1 2 ... out of 2) Next Last
    Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.