Author - Neil Halliday

Missing Link World Map to STE Hardware Scroll Converter

By Neil Halliday

Here’s a quick and dirty routine to convert a Missing Link “World” map into an over-sized image that can be used for STE hardware scrolling.

You need to have the Missing Link & STORM Development extension installed in order to render the map and use the simple STE Hardware scrolling command.

Graphics & map taken from the Missing Link examples disk, which appear to be the graphics from Magic Pockets!

DOWNLOAD

Ultra MOD 2 Sound Tracker Library

By Neil Halliday

I’ve been having a clear out of my home office and came across an old CD library of sound tracker MOD files that I got many years ago. According to the cover there are over 4,500 individual MOD files on it. I thought I would copy them off and upload to the site so you can download and use them for you lovely projects.

The archive is split up alphabetically, and you can download them from the links below. There are a few duplicates in there with different names, but I’ve just done a straight copy of the files off the CD.

Have fun!

UltraMod2 – 0
UltraMod2 – A
UltraMod2 – B
UltraMod2 – C
UltraMod2 – D
UltraMod2 – E
UltraMod2 – F
UltraMod2 – G
UltraMod2 – H
UltraMod2 – I
UltraMod2 – J
UltraMod2 – K
UltraMod2 – L
UltraMod2 – M
UltraMod2 – N
UltraMod2 – O
UltraMod2 – P
UltraMod2 – Q
UltraMod2 – R
UltraMod2 – S
UltraMod2 – T
UltraMod2 – U
UltraMod2 – V
UltraMod2 – W
UltraMod2 – X
UltraMod2 – Y
UltraMod2 – Z

Converting Audio for the STE

By Neil Halliday

As we all know, the STE has far superior sound capabilities than the standard ST, and for many years this has been put to good use in games and demos. However, audio processing technology and software has massively changed since the day of 8 bit sampling, and audio playback quality is now pretty much as good as it is going to get. The question is, can we put the new world of audio processing to use with our beloved Atari STE?  Well, the answer is yes, we can.  We can use our modern devices to create and process our required audio, and then resample it for use on the STE. This post will talk you through the process, and show you the settings you need to use in order to do it.

Audacity

One of my favourite audio programs on the PC (also available on the MAC) is Audacity. Why is it my favourite? Well, it’s free for a start! Not to mention that it also has an abundance of plugins that can be used to further extend it’s features.  I’m quite familiar with Audacity and as a result I can get the results I want quite quickly.  When it comes to sound and music composition, I turn to other applications, but the final results always go through Audacity to convert them into the format that will work on the STE.

If you’ve not got Audacity, you can download it here.

So, what do I need to do?

Well, it’s pretty simple really to convert your audio, but here are the steps to follow.

Load your audio into Audacity

Firstly, you need to get your audio into Audacity. My preferred way is to just open Audacity and drag my audio file into it. Whatever way you do it, you’ll basically end up with your audio in the application and ready to start processing.

Make sure you set the correct Project Rate!

By default, Audacity will choose standard CD quality as it’s project rate. Notice how it says 44100 in the screen shot above. This is the frequency of the audio, which is measured in Hertz (Hz). This represents the number of samples of audio taken each second. When working with audio files, this can also be represented in kilohertz (kHz), so 44100 Hz can also be represented as 44.10 kHz.

The Atari STE’s DMA chip has 8 different modes that it can operate in. These are 6.258 kHz, 12.517 kHz, 25.033 kHz and 50.066 kHz in both monophonic or stereophonic playback. So, the first thing we need to do is set Audacity to recognise the frequency that we want to work in. We do this by setting the Project Rate at the bottom left hand side of the Audacity window. We can simply type over the value that is there by clicking in the box. Remember that Audacity works in Hz, so we need to convert our kilohertz into hertz. To do that, simply multiply the kHz rates listed above by 1000.

Time to resample

Now we need to resample our audio file so that it is in the correct rate to be replayed. This is done by using the Tracks pull down menu at the top of the Audacity window, and selecting Resample.

You will notice that Audacity knows what the project rate should be and therefore recommends to resample at that rate. If we want a different rate, we can simply over-type.

Click OK for Audacity to do it’s stuff.

Time to export the file

This is the most important step, and the one that has to be correct; otherwise the resulting sample will be inaudible when played through the STE hardware.  Go to the File menu at the top of the window and select Export. Then, from the sub-menu that appears, choose Export Audio. It is very important to use this option as it means we can change the export settings to be compatible with the STE.

You will now be presented with the standard file selector, but with some configurable options. Make sure you have the following set:

Save as type = Other Uncompressed Files

Header = RAW (Header-less)

Encoding = Signed 8-bit PCM

Click Save to save your converted file.

Well done!

Congratulations, you have now converted the audio to a format that will work with the STE. The file can be loaded into a standard STOS bank, and be replayed using the “e play” function from my GBP extension. You will notice that because of processing the audio via a PC/MAC that the result is much better than simply doing it via the STE. I much prefer doing it this way, but would be interested to hear how you get your digital samples into the STE.

Have fun!

SNDH Replay and Archive

By Neil Halliday

The SNDH file format was created in the mid 90’s by BDC of Aura Crew to unify replay routines for the multiple sound players that existed at the time. This meant hundreds of music files could be played using a single consistent interface.  The files themselves contain the original reply source code, but with an SNDH wrapper around them to not only make replay simpler, but to contain meta data about the file too.

Load the SNDHPLAY.BAS file from the _STOS directory in the archive and follow the below text.

100 erase 12 : reserve as work 12,40960 : bload “verminat.snd”,12 : S12 = START(12)

So here we create 40kb of working space in bank 12. This is just me being really lazy and not bothering to find out the uncompressed size of the file and copying it to a different bank etc. most music files come in around 20kb or so, with the odd one being large, so 40kb will cover most files.  We then load the SNDH file into bank 12 using the bload command, and set the S12 variable to the memory address of the start of bank 12.

110 d crunch S12

Now we d crunch the file using the GBP Extension. The extension will determine the packer that was used, and automatically decompress using the appropriate code. As GBP uses A0->A0 decompression, it means the uncompressed data overwrites the compressed data. Make sure that the memory bank has sufficient space reserved, otherwise you will be overwriting memory!

140 dreg(0)=1 : Call S12 : loke $4D2,S12+8

For those that don’t know, the DREG & AREG commands within STOS let you interact directly with the registers of the CPU. D standing for data and A standing for address. Here we are setting data register 0 to 1. This is because the replay routine uses the contents of D0 to hold the tune number that we want to play (a single SNDH file can have multiple pieces of music in it).

We then CALL S12. This is a direct call to the code at the beginning of bank 12. In this instance, it relates to the init_music_driver call which initialises the replay routine.

Once the driver is initialised, we install the VBL replay routine. This can be done actually in STOS code if we want. To do this we would just use CALL S12+8 after each WAITVBL command, but if our program isn’t running in 1 VBL, then neither will the music – it will slow down!  Therefore the best way to call the music is to put it on the VBL List. The VBL list is a series of addresses that are executed every VBL, with priority over everything else. Therefore, we can guarantee that this code is executed every VBL and maintain it’s proper speed. There are a number of VBL list addresses, I’ve chosen $4D2.  Once the address is loked to the VBL list, we can forget about it, and let it tinkle away whilst we get on with other things.

350 loke $4D2,0 : silence : call S12+4

Once we are done with our routine, we need to clear the VBL List. We do that by resetting the $4D2 address with 0. We use the SILENCE command from STOS to clear the sound registers, although we could do that manually if we wanted. The final CALL S12+4 calls the exit_music_driver routine provided by SNDH. This will clean everything up for us.

And that’s all there is to it!

The SNDH Format

All the files are generally compressed. I’ve found the ones that I’ve looked at so far have all been compressed using the Ice Packer. It doesn’t really matter which packer they are compressed with, my GBP Extension can cope with it. So, first of all we need to reserve some space for the uncompressed file.

In the zip file, you will find the current SNDH archive that was last updated in January 2018. Along with all the files is a _STOS directory where I have written a quick and dirty replay routine used in the above tutorial. This works with pretty much all the files in the archive, but there are a few drivers that don’t seem to work (the Spaz Crikey Wot a Scorcher for example don’t seem to work). If and when I figure these out, I’ll repost. Note that some of the sampled replay routines don’t conform properly to the specs, leaving the interrupts active. As I said, this is a quick and dirty replay routine, so I’ve not dealt with that!

Have fun listening to all the classic tunes, and enjoy the trip down memory lane using all the files in your STOS productions!

For more SNDH updates, visit the SNDH Archive Web Site.

DOWNLOAD