Let’s get down and dirty!

Demo coders, don’t you just love em?

Always pushing the ST to its limits. Dreaming up new ideas and techniques and squeezing that last clock cycle out of the poor Motorola. All well and good for gamers who don’t care what goes on under the bonnet of their fave game. However to me, a music ripper, it’s another matter. Four people stand in the dock, accused of crimes against music ST rippers :

Jochen (Mad Max) Hippel, Tim (Manikin) Moss, Jurgen Piscol and Paul Summers.

Guilty, guilty, guilty, guilty as charged.

Let me explain. You see making SNDH’s isn’t just about extracting the code so it plays in your favourite machine code assembler – genST of course. Nope, that’s the easy part. We also need to ensure the code is memory address independent and system friendly. The former isn’t too hard to do, you just need to change absolute memory addresses to the location that the SNDH file is loaded, a bit faffy but pretty straight forward. The latter can be easy or a pain in the ass. System friendly? You see when we play tunes using JAM or SND-Player the operating system (OS) is still running in the background doing exciting things like updating the system clock, plotting and reading the mouse etc –however most games/demos nuke the system to gain valuable processor time and memory.

Thanks guys, thanks a lot.

Due to these problems I’ve had a number of tunes on the back-burner :- Wings of Death digital, Baal music, Lethal Xcess digital, Turrican 1 & 2 digital, Grand Monster Slam digital , To Be on Top digital, MUDS digital , Z-Out digital, Amberstar digital and Sound-machine digital musics – do you see a pattern?

The two major problems with these musics are :-

  • Routines steal data/address registers to optimise the music driver code (making it run as fast as possible)
  • Routines use practically all the CPU time

Stealing registers means the operating system cannot run in the background. Fixing such tunes often requires lengthy modifications – however this slows the music routine which can affect the sound quality.

Excessive CPU load is even more difficult to fix. It can sometimes entail a complete re-write of the music driver to gain sufficient clock cycles which allows the OS to run. This can be an impossible task as the drivers are already heavily optimised (e.g. Wings of Death by TLB and Lethal Xcess by TEX). The other factor is time – I simply don’t fancy recoding a full routine.

So that leaves us with tunes which play ok but don’t like the OS. That is why I decided to code a non-OS player “Dirty-SNDH”, so you can listen to tunes on native ST hardware. Unfortunately current players – SND-Player & JAM won’t be compatible. However Winjam plays the tunes and SC68 is currently being updated to handle the files as well.

Currently LX, WOD, Baal & Amberstar are fixed and work in the new player.

Grazey. September 2016.


Comments powered by Disqus