This is part 5 in a 5-part series about my computer chronicles, right from the beginning of the 80’s to the end of the 90’s. I’ll go into details about the computers I used, how I got into the C64 demo scene, created my music players and editors, and the experiences I had on the way until the turn of the millennium.
Part 1 is here in case you missed it.
At some point during 1991, I got a 33 MHz 80386 PC as payment for doing the Hugo sound work for SilverRock Productions. As soon as I got it, the C64 already started to fade into the background. It was cutting edge at the time, with a whopping 89 MB hard disk (my first hard disk ever), 5 MB RAM, a Sound Blaster card and of course a CRT color monitor on top of a hideous desktop box equipped with a digital MHz display, a 3½” floppy drive and a turbo button I rarely used.
I was instantly attracted by the Sound Blaster sound card and its AdLib FM chip. I wanted to code for it immediately. It actually didn’t take me long to learn how to code on the PC. Even though it was a 80386, everybody said that it was prudent to stick with 8086 code and that meant having to juggle with awkward 64 KB segments for code and data. For games this could be a problem, but it was good enough for testing how to code simple things and of course music players. For coding, I used Borland Turbo Assembler along with QEdit for editing the source codes. At this point it was all DOS mode only.
Getting hold of documentation about the Sound Blaster card was actually quite difficult in 1991. I searched for a long time before I finally got wind of a book in a small computer shop in a village further north on the island of Zealand. It was expensive and came in a box from which I pulled out sort of a small binder. It was unlike any other manual I had seen before for developing software. Things obviously worked differently on the PC. But the manual was a good investment. It had all the information I needed and soon I was testing the basic FM sounds of the AdLib chip. It also had data about programming the DSP on the Sound Blaster card for playing samples, something I would also make use of later.
AdLib was quite a different beast than the SID chip. The SID chip had three voices and just used four basic waveforms, only one of which could be pulsated. Creating modulation ate two of the three voices, so it was expensive. The FM chip, however, had nine voices with basic sine waveforms, and each voice had their own carrier and modulator to work on these sines. This produced a very characteristic, warm sound. It was the same as heard on various cheap keyboards and Japanese arcade games during the 80’s and 90’s.
I started coding my AdLib music player in November 1991. I quickly added a lot of the same kind of effects as I had in the C64 music players, like the arpeggio tables. I also did my own vibrato as well as controlling the degree of modulations myself. This gave a much better control of all the real-time effects and it immediately distanced the player from almost anything that used AdLib on the PC. Everyone else just used the effects offered at the hardware level. I also tried to create better drums but that turned out to be harder than I imagined. Just using waveform tables didn’t automatically ensure thunky drums like on the C64. It was as if the noise waveform in the FM chip was unnaturally frail.
Even worse, a faster computer didn’t mean less time used by the music player either. The Sound Blaster card was sitting in a dedicated slot inside the PC and this meant that I had to wait for the sound card registers making their way into it before I could send again. For some incomprehensible reason there was no handshake mechanism to optimize this, so I had to call 6 and then 35 input commands that wasted a lot of time waiting around for the card to get ready for the next relevant register output again. Kaare Siesing, the hardcore assembler coder that made the PC games for SilverRock Productions, also told me that I couldn’t rely on calling the player by tagging onto the screen refresh as I had always done on the C64. I had to use a separate timer interrupt instead. The good thing about it was that I could set it to a slower calling speed to make up for all the waiting around.
Later, I came up with my own invention to circumvent the waiting considerably. I simply stored all the registers in my own table too before sending them to the card. Then when I needed to send to a given register again, I first checked my own table to see if it already had the same value from last time. If it did, I skipped it. I called this register bypassing and it cut down the CPU usage quite dramatically.
Not having a music editor on the PC meant back to typing in hexadecimal notes in an assembler listing, just like on the C64 in 1988. I made a rudimentary converter program that could transform a SID file from the C64 into note tables I could adapt on the PC. I converted a few C64 classics in 1992, but it wasn’t just copy and paste and that was it. I had to spread arpeggio chords into real channels since the AdLib had three times as many, and I also had to figure out all new AdLib instruments. For my own part I settled with just creating sound effects on the PC. It was fun and there were plenty of jobs for Danish games. In December 1991, I did the sound effects for the first part of Hugo 2 and converted Drax’s C64 tunes for the toothpaste platform game Harald Hårdtand.
1991 would also be the first year where visiting copy-parties shrunk to just one per year. A more professionally organized type of party began this year that would be repeated the same time in December at almost the the same place, in several big halls in Aars. Modestly just called The Party, there was plenty of room for hundreds and hundreds of nerds from all over Europe, a big screen for all of the competitions, a nice cafeteria, and separate sleeping halls. It wasn’t all perfect to begin with – there were power outages – but it was still a big step in the right direction.
We would return to it again in 1992, 1994, 1997 and 1998.
In one of the first years, my friends and I had rented an auto camper both for driving there with our equipment and also to sleep in. In the later years, I discovered that there was a nice little hotel in Aars where my friends and I could book rooms. The first time I had a room there it wasn’t an entirely good first impression, though. A neon sign just outside of my window made a high-pitched whistling sound all night and I didn’t sleep well at all. Luckily this was gone the subsequent years, and it was a great feeling going back to the party after a good nights sleep and a relaxing shower. Teenagers at the party slept in their own sleeping bags on the floor of a sleeping hall that couldn’t keep out the loud noise of the adjacent halls.
And the toilet facilities? I think it’s best if we don’t get into any details there.
At one point, my friend Henning and I got sleepy after many hours of computing and decided to catch up on some sleep in our hotel rooms. When we left, everything was up and running and people were having fun. We slept about four hours, and when we came back, everything was up and running and people were having fun. Then we were told that as soon as we had left, a transformer station broke down and the entire place had been completely without power. It had only returned a few minutes before we came back.
Talk about magnificent timing.
1992 became the first proper year on PC and I barely touched the C64 anymore, except to check out any snail mail for new demos and such.
At first I continued developing my AdLib music player and convert C64 classics, mostly by Drax and Laxity. In March 1992, I learned how to program the DSP on the Sound Blaster and expanded my AdLib player with one that could also play digital samples in a tenth channel. This was used solely for drums. AdLib and the DSP were kind of secluded which meant that it was difficult to match the volume to make it sound like a greater whole. The drums had a tendency to dominate the sound picture. To make matters worse, some Sound Blaster cards had a built-in mixer for individual volumes, some didn’t. Converting a C64 tune usually also necessitated inventing additional drum notes since the original drum beat was typically mixed in between bass sounds and arpeggio chords.
In other words, a Sound Blaster version usually wasn’t worth the trouble.
After doing the sound effects for the second part of Hugo 2, I started working on a DOS music editor for my AdLib player that would of course use the same sequence editing principle as on the C64. The first prototype was just called Multi-Editor. I quickly found out that it was difficult to fit in nine channels on a DOS text screen. I solved this problem by showing the channels with limited information, only folding out the currently selected channel. More text space also meant luxuries such as a list of hotkeys.
Both the C64 and the Amiga had such vivid scenes with lots of demos, music, swapping and enthusiasm. I was wondering what was happening on the PC. Did it have a great scene too? As I dived in to find an answer, I was severely disappointed. Demos were few and the quality way behind the Amiga. The graphical modes were obviously harder to master because of the modular design of the PC. The few times sound was used, it was merely a MOD player with four voices of samples. Things did improve during the 90’s and there were exceptions such as Triton and Future Crew, but for the most part it felt like the few of us that had made the jump to AdLib – Johannes, JO and I – were pretty much on our own.
Triton was a Swedish demo group that was active from 1992 to 1996. They were known at first for their Crystal Dream demos and later made the outstanding FastTracker II music editor (more about that later). Some of the group members founded Starbreeze Studios and made games such as The Chronicles of Riddick: Escape from Butcher Bay, The Darkness and Brothers: A Tale of Two Sons.
Future Crew was originally a Finnish C64 demo group until they moved to PC in 1988, where they made the dazzling demo Second Reality. Members of Future Crew eventually created Futuremark, Remedy, Bitboys and Recoil Games. Especially Remedy was famous for Max Payne, Alan Wake and Quantum Break.
The missing attention on the PC was affecting me right from the beginning. It felt like I was left on the street without invitations to any of the great clubs. The few times I released something into the PC scene, such as a collection of the AdLib tunes and an informative player, it was as if I just tossed it into a black hole. Eventually I did get a few contacts, but it was still nothing compared to how it was on the C64.
At around August 1992, I started working on something that grabbed me as important and useful, yet turned out to be pretty much a big waste of time. DOS had an unsatisfying text mode for editing and I wanted to code a great graphical user interface in 640×480 that looked awesome like the GUI on Amiga did. I named this project the SirFace System and would include moving buttons, scroll bars, lists, option modes, a nice font drawn by Niels from Channel 42, even a fully fledged dialog box for file operations. There were a lot of things to add and I constantly had to fix bugs and refine the code for improved performance. Some things were definitely done wrong. It ought to have been driver based, but it only supported 640×480 in 16 colors. Yet I would still spend the next four years silently working on this.
Remember the arcade machine I had in the attic? Two of my C64 friends turned out to be great at soldering up electronic gadgets, and they made me a box with the big arcade plug in the back and a joystick on top with a few buttons. The box was about the size of a shoe box and connected directly to an Amiga monitor. It saved some attic space and it was quite cool playing arcade games this way. I think I had about 8 or 9 arcade prints, some of which I had bought directly from arcade machine workshops; Elevator Action, Xain’D Sleena, MagMax, Burnin’ Rubber, Helicopter Scramble, Zippy Race, Tokio, Mr. Do and Knight Boy. Some of them required us to tilt the Amiga monitor on its side as they were vertically aligned. Kim, the C64 swapper I knew back from New Men in 1987, was an ace at some of these games. He even completed Knight Boy. Personally, I was only good at one arcade game – Mr. Do. I once scored over a million points in it.
I have no memory of whatever became of all this. I guess I eventually sold it all.
In November 1992, I started working on sound effects for what would become probably the most satisfying sound development project in my limited career. A few Danes formed Brain Bug and started developing a cute DOS platform game for Rainbow Arts, called Lollypop. Drax’s brother Ole would be the project manager. I concentrated on doing all the AdLib sound effects while Torben (Metal) and Thomas (Drax) did the music. JO and Metal joined Vibrants to keep the credits clean and simple. JO converted all the music to Amiga and Roland MT-32. The game had really beautiful graphics and the team put a lot of effort into it, but it wasn’t without its share of delays and complications. Even so, it was finished and released on PC in 1994 and on the Amiga the following year. Unfortunately it didn’t create quite the stir we were hoping for.
But in spite of all this, we were still proud of our accomplishments. The sound effects fit the action well and the musicians had done a marvelous job creating an atmospheric soundtrack. It certainly also helped our commitment that the game looked like a major entry too. I wish that the game could have its second chance on Steam with a DOSBox wrapper. I bet it would do quite all right in the midst of all the indie platform games of today.
It’s an emulator that simulates a DOS command box of the 90’s, complete with old graphic modes such as CGA, EGA and VGA as well as emulation of AdLib and Sound Blaster. It’s excellent for running those really old DOS games in a window or full screen mode.
I even visited Brain Bug once during development. They had their headquarters in Aarhus, the second-largest city in Denmark, sited in eastern Jutland. It was like visiting a small indie development company and I guess that’s exactly what it really was. JO was coding on his music players and as soon as the work day was over, he warmed up a strategy game. Ole briefly paused his work to put ELO’s excellent “Time” on, a choice of music I absolutely agreed with. A graphics artist was drawing sprites. Not everyone was present – some of the developers were still living in other parts of Denmark – but it was a cozy development environment and I envied them. At that time I was still a postman and it had become tiresome. The good old days where I came home in the early afternoons were gone. The powers that be had introduced a full work day, and our rounds grew bigger for every reorganization.
It’s an acronym for “Electric Light Orchestra” and it’s an English rock band that had its peak in the 70’s and the 80’s with hits such as “Mr. Blue Sky”, “Hold On Tight”, “Xanadu” and “Calling America”.
EdLib and FairPlay
My prototype AdLib music editor eventually evolved into EdLib. It received an overhaul of the text mode user interface to look more inviting, and I added all the auxiliary necessities such as a file menu and the ability to pack tunes for release. Torben was probably the most persistent user, but JO, Drax, MSK and a few others also gave it a few shots. Drax and MSK never really took the big plunge, but JO now discovered (much to his own surprise) how useful it actually was to compose music in this manner instead of the assembler listing method he had always adhered to. The first version of EdLib was done in September 1993, and it was finally released to the public in December 1994. Again it felt like feeding the black hole of the PC scene. It was probably too late to cause any commotion anyway.
All this time coding in Borland Turbo Assembler in DOS mode, I had all of my many source codes in a secret development drive inside my real hard disk. It had a password and some sort of encryption. I still had many visitors and I guess I was paranoid. It wasn’t so much not wanting anyone to see what I did – it was more in the line of trying to avoid practical jokes where someone had changed a few characters to cause trouble while I was away. Having everything on an encrypted drive made sure I wouldn’t have any of that.
Then one day, the secret drive crashed.
It was a total disaster. At first I had trouble getting in, and when I finally did, everything was a garbled mess. Files were missing or trashed. I had lost everything in an instant. All my valuable source codes for my AdLib music players, EdLib, Lollypop, SirFace System, various new projects such as an upcoming MOD player, all gone. My mood immediately dropped. I was depressed like a member of my family had died. Then I got stubborn. I refused to let this be the end of it all. After a bit of research, I found a good disk monitor that could browse chains of disk blocks on the hard disk and save them as contiguous files. All of my data was still there. I used hours and hours meticulously finding disk blocks, recognize what file it was part of, then find the beginning and end. Sometimes I could get the entire file, sometimes just part of it. I also had to figure out what was old and new. It was a trying exercise, but just discovering that the disk monitor could help me immediately brought me out of my funeral mood like a considerable weight off my shoulders.
But I also learned something the hard way that day – always keep backups!
On August 10 in 1993, I bought a Gravis Ultrasound, a new type of sound card that could play no less than 32 channels in 16-bit. I made code that could play MOD music on it, but not a proprietary music player like I used to. I also owned a luxurious Roland SCC-1 sound card that could play magnificent MIDI music, but I didn’t code for it at all. Maybe I was losing my drive for exploring new sound coding possibilities. I wasn’t quite done with composing, though, even though I had only done a few simple test tunes in AdLib.
During 1994, I worked on a MOD project where I combined players for playing standard sample music in four voices for Gravis Ultrasound and various versions of Sound Blaster. I made use of my own GUI, the Sirface System, showing delicious buttons for loading and playing tunes with fancy effects. One thing I really worked hard on was making sure that the MOD player was accurate. I tested all kinds of obscure MOD tunes with weird and rare effects, compared it with the real deal, then made changes to the code to make sure it matched. I was proud of the fact that it adhered so well to the MOD format, and it was also fun to optimize its self-modifying code to work fast. I named it FairPlay, and as always the response was weak when I finally released it into the black hole.
Then finally someone mentioned it in a forum and I was immediately on the ball. What did he think? He wrote that he thought it was totally inaccurate and that he wouldn’t want it to play his MOD tunes, but at least the GUI looked nice.
The last version of the SirFace System was released to the black hole in November 1994. One of my new friends of the time, another Claus, actually used the GUI to make a nifty kind of file manager for DOS that looked a lot like Directory Opus on the Amiga. It looked great and he added a lot of features, but again almost no one noticed. I continued updating the SirFace System until 1996, but it wasn’t used for anything else. Then a new operating system arrived that would render my DOS GUI obsolete. Windows 95.
Windows 95 seemed slow and awkward to me when it arrived. I wanted to stay in DOS. Jesper (Trap) said at one point that he believed Windows 95 would become the next great platform, but I refused to believe him at first. Eventually he was indeed right and I had to float with the current as everyone else. It meant an end to all assembler coding. I couldn’t be bothered to learn a new language for Windows, and besides, I didn’t have anything I wanted to code there anyway. A music editor? Everything was going digital now.
As mentioned in a previous chapter about the Danish games, the final Hugo job earned me enough money to pay the advance for my own apartment. There was some trouble about my sound effects made in assembler objects that wasn’t compatible with the Pascal code that the new programmers was using, but I never heard the end of that story. I guess they eventually figured it out, but how I don’t know. I had done my part, it all worked as intended, and I received the money as stated in the contract.
It’s a high-level programming language that has to be compiled. Borland Turbo Pascal was used for DOS at the time and had its own development environment. It could be fast enough for some games, but if you really had to move a lot of graphics and be cutting edge, you were better off using C++ or assembler.
So I moved in April 1995 to a place called Vangede, just a few kilometers from where I lived before. I was struck with this crazy thought of wanting to move out before I was 30, and I barely made it. I was 29 years at the time. It’s a small flat with just two rooms and 47 m2, but the array of shops in the street is awesome. Present tense? Yes, I actually still live there at the time of posting this, more than 20 years later.
I put up my two PC at the time, the original 33 MHz and a 66 MHz, but in December 1995 I sold them both and bought a 133 MHz PC instead. I’m quite sure I never had any of my old home computers hooked up in this apartment. At that time I only had a Commodore 128, and it was just hidden away in a cardboard box in a small cellar room. I did have a Commodore 1541 disk drive present as you can see – it was used to transfer a few disks to D64 files on PC, but it was boring work and I didn’t transfer much myself.
In the summer of 1995, I discovered a tracker on PC called FastTracker II. It was capable of playing samples in up to 32 channels, using patterns of typically 64 rows each. It used much of the same principle as my own music editors of the past, except the channels did not use separate sequences. A pattern consisted of all channels glued together. This was a typical tracker method that had been used since the first MOD trackers on Amiga. Not wanting to code my own players and editor anymore, I started composing in this tracker instead. A lot of my close composer friends did the same.
The first tune was “Memories” in July 1995, and I eventually created a total of 28 tunes up until the last work tune “Sweet Kettle” in September 1998. 14 of these were finished and released properly, but once again the black hole of the PC scene gave me virtually no feedback. Only my limited circle of tracking friends had any comments – MSK, Drax, Laxity, Metal and Trap. My library of samples was also limited in the beginning and this entailed that I often used too much time browsing through them for my songs. This? No. This? No. This? No. This? No. I even discarded a work tune once because I just couldn’t find a suitable secondary leader sample. Later we were gifted with a CD-ROM with much better samples, but at that time I was already starting to lose interest in FastTracker II. Not getting any of the feedback that I was used to on the C64 was really starting to take its toll on me.
It didn’t help the matter much that a tune I had made called “Little Zig” – which I thought was one of my best yet – wasn’t included in the multi-channel competition at The Party 1997 that December. Drax also made an phenomenal tune for it that was ignored. I guess the selection committee made it clear that we certainly didn’t have the same reputation on the PC as we had on the C64.
JCH? Drax? Who are those? Never heard of them. Next!
The fantastic tune Drax made for the music competition at The Party 1997. It was also ignored.
1996 was the year where I finally stopped coding in Borland Turbo Assembler, accepting that Windows 95 was going to be the next platform of coercion. I also came online on the big internet and created my first web site for the web browser Netscape Navigator.
In 1997, most of us still in Vibrants had a mailing list going and at one point Drax and I got into quite a heated argument. It started with me mentioning a bug in FastTracker II, after which Drax mentioned something about me not composing much and so why did I care anyway? My brain didn’t pick up on a happy smiley in the end of the sentence, making me read it in a sinister tone. It started an angry quarrel like the ones you hear about in real life bands. Drax even called me up, claimed that too few made anything of value in Vibrants, and thus wanted to leave. Luckily, Drax’s brother Ole intervened. He managed to cool us both down and make us apologize to each other.
After another incident with my friend Marc, I learned never to let arguments like this spin out of control in e-mails. If possible, grab the phone and settle it there.
My first experience with 3D accelerated games happened on March 10 where I bought a Matrox Mystique with 4 MB RAM. I enjoyed the first Tomb Raider with it. Four days later, I had my last workday as a Postman. I had finally found a job in IT instead and I started on April 1 in Merlinholm. 1997 was also the year where LAN parties started to become the norm. The first was in November, and we were seven playing network games such as Quake, Redneck Rampage, Moto Racer, Need for Speed II and Shadow Warrior. This phenomenon would repeat itself up until the end of the millennium.
This was a popular phenomenon in the 90’s when the first LAN games arrived for use in close networks. A few friends would gather up together, bring their own PC equipment, and hook up to a router or a switch. All kinds of games were played that offered competitive modes against each other. Since this was treading new ground, there was often a lot of trouble setting up the connections on all computers.
I bought the domain for Vibrants.dk on March 27, 1998, and Morten (MSK) designed the first web site for it. He maintained it until 2006 after which I took over. The domain server for it was killed in March 2016.
Still dreaming of composing music, I tried making MIDI music in both Cakewalk and Cubase in 1997 and 1998, hooking them up with my Korg M1. I recorded both ideas and actual song attempts, but again it was hard to get anywhere without a childhood full of meticulous piano teachings. One thing were my muddled performances and incessant retrying, but it also felt like I hit a wall that I just couldn’t get past.
Both of these programs were MIDI sequencers that could record, edit and play back music. The music itself was presented as horizontal bars on tracks and wasn’t as easy to edit as it was in trackers. Typically these kind of editors appealed to musicians that were used to record and adapt music in real time.
I even started taking lessons from an old lady down the street and I did learn to crawl scales with a spidery hand, but actually learning and performing a tune was hard and my patience was not exemplary. Then one day, one of my newbie lessons ended with a child standing in the doorway. She was next in line and she was – 10 years? Maybe 11? She sat down in front of the piano and immediately played a wonderful tune that was vastly superior to my own level. I must admit that I lost quite some heart that day. Not long after, I quit the training and admitted to myself that it was too late. Maybe I could still compose interesting tunes, but learn how to be Ray Charles on the piano?
Apparently that was not meant to be.
During the summer of 1999, playing on the synthesizer actually got me depressed about my lack of skill on the keyboard. Eventually I just stopped trying anymore.
My days as a composer were over. (Update: But only for 25 years.)
And then year 2000 arrived, and that’s where I will stop this tale. I consider year 2000 and up to present time the modern period of my computer story. I got interested in other things such as making maps for Half-Life and I also started getting really serious about playing a ton of PC games. And that, ladies and gentlemen, is a completely different story.