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.

    April 26, 2002, 05:52 PM

    Ofcourse it's about images. But it's not about visually STUNNING images. Not about things that are neccessarily of visual interest. As you said, it's about images that illustrate something interesting (or not interesting) that someone has done/is doing.


    April 26, 2002, 05:53 PM



    April 26, 2002, 06:57 PM

    The me likes colorful GUIs ;) -Wernaeh


    April 26, 2002, 07:25 PM

    Importance of first post may seem important for some people :) But just post who says nothing at all makes "first post" totally useless.

    Most people are unable to produce something original so they can feel a little different just making their post "first"

    While, in reality, It is total lameness


    April 26, 2002, 08:29 PM

    Yeah this server is screwed today!


    April 26, 2002, 11:16 PM

    Is it worth a comment?
    I think so.

    Are you worth a comment?
    I think not.

    Joe is a fag.


    April 26, 2002, 11:19 PM

    Is first post worth a comMENT?

    U think not...
    I thinK SO

    Dan Royer

    April 26, 2002, 11:43 PM

    Oh no, it isn't a terrain engine! *cries*
    Oh no, it isn't beautiful! *cries some more*
    Oh NO! I'm not the first one to post! *elephant tears*

    Yes, you have the right you bleat and complain and try to wow us with your fast posting abilities. ..but that doesn't mean you've earned it. Mr. Komppa has FINISHED more projects than you've ever STARTED and it's my personal belief that you small minded troglodytes should spend a little less time in the forums and a little more time in you favorite development environment. Xrist, you make me sick, but all the more so because I feel the need to say this, which takes away from timw when I could be working on something useful, too.


    April 27, 2002, 12:00 AM

    Amen, brotha! :)

    Seriously, I'm so sick and tired of people complaining that they never have any time to work on their projects and stuff, when what they're really doing involves sitting around IRC and looking at stupid webpages. Then they bitch at people who finish projects because the project they finished isn't some 3D piece of eyecandy trash. Stupid, lazy, non-devoted idiots .. arrrrrrrrgh!

    Ewan Higgs

    April 27, 2002, 12:39 AM

    I agree with Baxton (like usual -which is why I am always lurking and now posting).

    The description goes on for several paragraphs about people in a band.

    I think I will go to and tell them all about the latest program I wrote...

    Jari Komppa

    April 27, 2002, 01:38 AM

    Oh my God, Flipcode is turning as bad as slashdot. People commenting on things without reading the article, and flaming the editors for not doing their job..


    Fredman, grugnorr - first post stupidness. Maybe flipcode should have some kind of loopback mechanism to make sure people do something in order to be able to post. Like download a linked file which would contain a password to post. Or something.

    MC BAXTON - Maybe he should have his own column.

    Rasmus Christian Kaae, faelenor & co - When did you last take your released 12kline - very visual - project and port it successfully into windows under 24 hours? I doubt that you even tried the application, or played with the activities. Do you think Kurt would have posted this if it didn't fit in here?

    Jubanka - In the end, HORS 2.0 hardly had any assembler optimizations. Only couple memory transfer/fill functions, actually. Most of the speed improvements were algorithmic (like minimizing the updated memory area)

    benishor, krogoth, olson, fil, mackay, wernaeh - thanks.

    L.e.D - the 'real bpm' is derived from 'speed' and 'bpm' values in the tunes, not bpm alone. Naturally if you have a mod that has some very tight breakbeat loop this isn't accurate =)

    hdmx - What I had to do was abstracting video output, audio output, controls and timer. The last being the most difficult. SDL made most of the work rather easy, and I was surprised to find that fmod could output all the values I wanted from it after I misused it a bit. Anyway, luckily the computing power has increased, so I could solve most problems in a brute-force way (like turning some global variable into a global function that does some work).

    Ted L. Chen - this was BEFORE any of us did any web work, for example. I had seen a browser and 'surfed' for maybe half an hour or something. =) The graphic design would be drastically different if the project started today.

    Dan - thanks.


    April 27, 2002, 02:08 AM

    First off - Great IOTD.

    The image isn't amazing (at least compared to some of the awesome eye candy people have been posting lately), but that's not what this site is all about. Demos are eye candy. Music disks are ear candy!

    - Well written description, and long (just the way I like em!) Good work.

    I don't have any questions since you answered them all already,
    But I did want to thank you for bringing back long forgotten memories of the "golden years" of computing: P When 386/486's rained supreme. When MODS were the ultimate in music. When BBS's were are there was.

    Ahhh.. Such fond memories.

    I like to take a trip back to the past (well, in my head at least! Time machine is still broken) and reminisce about that time.

    And when its time to reminisce the first thing I do is start up a good mod. (Of which I have lost all of mine!)

    Trying your music disk out now :p

    Side Note:
    For the game, which I am working on, I am seriously considering some sort of tracker format for music (my last game used mods). They offer a low CPU hit compared to Ogg/mp3, eat less memory and still can compete sound wise!
    They also offer the ability to do neat things like interactivity and dynamic music.

    Another Side Note:
    About the MC_BAXTON troll fest,
    I hope Kurt will address this issue soon, and it IS an issue.
    Yes, sure you can ignore him and heck, he might even just go away.

    But he IS spewing offensive, some times sexist, and just generally all around inflammatory crud constantly.

    It's _quite_ hard not to comment. His posts always leave me with a bad feeling after reading flipcode, despite the fact that 90% of the other stuff on the boards is awesome.


    April 27, 2002, 02:26 AM

    Back again.

    Now that i've poked the music disk a bit more,
    I realized that i've tried out the older music disks by you a while ago.

    I am impressed (and was then).
    Definately quality stuff.

    The sound quality of fmod is pretty good in windows, these mods sound as they should (as far as I can tell) and i'm running on a laptop with some onboard wannabe soundcard doohickey.

    I forgot to comment on one other thing.

    It sweet to hear your a Finn - My GF is a Finn, and i've started to learn abit about the culture. Simply put, Finns rox0r!

    Awesome to see your representing your country in a good way!

    (Unlike us Canadians. And our military... and our people.... Grrrr....)


    April 27, 2002, 06:23 AM

    Off Topic: Hehe, I was looking for a word for it. Baxtonitis it shall be ;) Only problem is that their form of it is less original... might be a mutation...

    Well, I have worked on some small projects during that time, too. And like with Jari the change from Pascal to Watcom was one done on one weekend and the only reason for me to touch good old pascal again after that was to compile and fix a few things I had done and released with it ;)

    Ahh, good old Watcom C++... the 2nd C compiler I bought... the first was Aztec C on Amiga but it was sooooo damn slow at compile times that I completely lost any interest in it. Especially once I've seen TP/BP compile times ;)


    April 27, 2002, 06:26 AM

    hey jari

    it's funny
    some months i downloaded all the musicdisks on your site
    the hors didn't work idd, but i just use winamp to play the files =)

    although winamp is just fine for me, i'll check out your hors2 winport to see what is was actually like back then :)

    before i found your site, it's funny i never heard of musicdisks before

    cool music btw :)


    April 27, 2002, 06:29 AM


    Keep up the good work, as usual, and don't bother with the typical bunch of unproductive whinners who think you're here to SERVE them. Simply ignore them. We shouldn't despair and let this flipcode section go down the drain.

    Semi-offtopic note: I have been trying to find the (controversial) music for your old "Silence" demo, but haven't had luck... was it ever released or ripped?


    April 27, 2002, 06:48 AM

    Kurt, I understand you now ....


    April 27, 2002, 07:18 AM

    What's gotten into the IOTD lately?

    It does say "Image", but this doesn't mean what you are showcasing is just images. Of course this belongs in an IOTD, it is what Jari has been working on lately. And I personally prefer a long description, giving some information on the motivations in creating your work.

    And if you just don't like the IOTD, then come back tomorrow!

    Jari, I haven't been involved with the MOD scene, but that's an impressive feature list. I have to agree with TLC about the top-left text though :) Still a great bit of work though.


    April 27, 2002, 09:21 AM

    Interactive music is something we havent seen (heard?) Enough of recently.

    Main problem with MODs (And derivatives) tho, is that it's hard to make music that sounds, well, non-MOD. We're using an orchestral score for one of our games, it'd be almost impossible to mimic it convincingly synthesised.

    Jari Komppa

    April 27, 2002, 09:33 AM

    We thought of holding a competition in which we'd give some hefty prize to whoever manages to rip the tune in some usable format, but never actually did it.

    The music was originally composed as MTM on a machine we borrowed for !cube from school (with permission, although they were surprised when we returned it) - cube didn't have a PC at the time. It doesn't play right on any MTM player though, especially the tracker, which was broken as designed. The version in 'silence' is not an MTM though, but some halfway format that only works with the player that was coded for the demo. We've been looking for any semi- to completely finished versions of the tune in our work files but it seems that it has been lost forever.

    You can watch the demo under win2k using the gus emulator though, if that's any help =)

    As to the controversy, some of the accusations were very hilarious.. I think the reason why it caught so much attention was that the demo itself was 'above average' - if it had been crap, nobody would have bothered. And in the end most flamers were flaming because that was cool thing to do at the time. =)

    Parashar Krishnamachari

    April 27, 2002, 11:38 AM

    > first was Aztec C on Amiga but it was sooooo damn slow at compile
    > times that I completely lost any interest in it. Especially once
    > I've seen TP/BP compile times ;)

    Well, Amiga didn't exactly have a monstrous ALU. Its weapon was a host of coprocessors... Paula, Blitter, Janus, etc... Those didn't serve to do much for compile times.
    As for TP/BP compile times... TP and BP were not much for code optimization, were they? TMT Lite also compiles ridiculously fast, but Lite didn't optimize code either. (You'd have to pay for optimizing)


    April 27, 2002, 12:04 PM

    "All it does it to play tracked music using 3rd party libraries and display some visuals also through 3rd party libraries"

    Uh...we this sort of comment I guess we should all stop using OpenGl and start writing our own library. Who doesn't use 3rd party libs those days anyway? Anyone ever coded his own FMOD library? Not many people I guess...

    Btw nice music disk. I had it quite a while back and those songs were truly my favorites, no kidding!

    good job

    Lourens Veen

    April 27, 2002, 12:30 PM

    Well, I missed them mostly (born too late I guess), but here's a big hurray to the old days. Since it's SDL, any chance of there ever being a Linux version? (I'd like to see it alive as well :))


    April 27, 2002, 01:14 PM

    Rather impressive interface.
    Uhm...pardon me....whats a musicdisk ? :-)
    I am not a oldskool coder.
    I have only a rather vague idea of what you guys are conversing about...

    Code-wise, converting 12000 lines is impressive.



    April 27, 2002, 02:28 PM

    A good example of a MOD derivative that sounds great is the OST to Vagrant Story. It uses WAV samples like MODs (I ripped em from the CD), and manages to sound pretty realistic. How do they do it? Lots and lots of multitimbral instruments. Usually a instrument will have 6-8 individual WAV samples attached to it.


    April 27, 2002, 03:00 PM

    musicdisk - floppy with mp3

    Jari Komppa

    April 27, 2002, 03:34 PM

    If I ever again run a linux box I could to the port, naturally. Fmod also runs on linux.

    Svn Hek

    April 27, 2002, 04:22 PM

    BAXTON, this was done in 1994 and musicdisks existed long before that. Bleh. Or maybe you have written a hand crafted MP3 player in assembly that worked in real-time on a 386SX? At least when trolling, do it right and don't post on topic, so that you can conceal your ignorance.

    Musicdisks play MOD files - read about them here


    April 27, 2002, 04:47 PM

    Another of those morons who thinks that all musicdisk are the same..

    MOD is the ProTracker format used in the amiga days..
    There are plenty of trackers out there such as:

    *The Highest Experience (yes stolen name and they changed to ahx)
    a synth based tracker (synthed samples etc and ordinary tracker interface i believe it was.. very popular format in 4ks etc on amiga since the player was so small and the music was "ok" nowadays it still lives on gbx i think?:)

    hopefully needs no explanation... compiled music for the sid chipset that is ;)

    *Scream Tracker
    the old tracker made by futurecrew wich purplemotion/skaven etc used alot.. ScreamTracker3 was a big hit (.s3m) and used in for example secondreality by fc

    Tritons very popular pc tracker for dos (still used acctually by alot of people, some bad attempts to make windows clones has been done..)

    a funky textmode tracker with 64 (or even 128?) channel limit instead of fasttrackers 32 .. dos only but has cool plugin for different sounddevices.. :)

    I guess those are some of the most popular trackers (or was atleast;)
    and usually musicdisks uses some of those, BUT there are also more cool music disks out there.. like the 4k one by ephidrena for amiga who has like 20 tunes or something wich are all ofcourse generated with some kindof funky generator..

    nowadays modules are often used in intros where the size has to be small often with generated samples

    Svn Hek

    April 27, 2002, 04:51 PM

    Did you actually bother to read the link I posted before flaming?

    "Throughout this FAQ, modules will be referred to as 'mods'. This term will be used for all types of modules, be they M.K., 8CHN, ULT, S3M, XM or anything else."

    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.