Check out the HIGH VOLTAGE SID COLLECTION were the guys have collated pretty much every tune that was every cranked out on a Commodore 64 in a format that is playable by the superb SIDPLAYER.
Another one of my small claims to fame is music and sound fx drivers for Ocean. I can't take too much credit here as the real "magic" was performed by the musicians - Jonathan Dunn, Matthew Cannon and Peter Clarke. I merely wrote a bunch of code to essentially fiddle around with the SID registers whilst parsing the music data!
Above is a screenshot of the front end that Jon et al would see as they were composing their music on the Commodore 64. It was basically used as a debugging tool for their music showing what was happening with the modulators, how much raster time the driver was taking and most importantly how much memory they had left!
If you hop on over to my DOWNLOADS page you'll find a pre-assembled version of the music driver with front end and embedded music data (this particular one has the the soundtrack from "Daley Thompson's Olympic Challenge" circa 1988. I've tested it on most of the popular C64 emulators and it works like a charm. Mount the file with the emulator, type SYS 16384 on the C64 Basic prompt, and you should see something not too dissimilar to the above picture.
Pressing the keys A, B, C, D, E and F will fire up the various tunes. Pressing SPACE stops the current tune. F1 fast forwards through the music a pre-set amount of bars (you can set the "bars to skip" increment by pressing "+" or "-" on the keyboard)
*NEW* Just added the pre-assembled version on the music driver with the Ocean Loader v5 Music data embedded. Find it in the DOWNLOADS section of the site.
The Ocean Loading Music
- The first few pre "Ocean Loader" games with (very simple) music were done with Novaload playing the default audio tracks that came with the Novaload software.
- The first "official" Ocean Loader was used on Daley Thompson's Decathlon with loading music by Martin Galway (a cover of Rydeen by YMO) using David Dunn's music driver.
- The first "famous" Ocean Loader was used on Hyper Sports composed by Martin Galway (known as Ocean Loader 1 in HVSC)
- Rambo First Blood Part 2 Loading Music (complete with Morse code parser, to "tap out" the development team's names) composed by Martin Galway (my personal favourite).
- Hyper Sports remix composed by Martin Galway (known as Ocean Loader 2 in HVSC)
- Mutants Loader played the Mutants main theme by Fred Grey (used when Martin had left Ocean)
- "Ocean Dries Up" was the remix of the Hyper Sports loader by Peter Clarke, originally composed on Electrosound, and then ported by Pete to Martin's driver (known as Ocean Loader 3 in HVSC)
- Ocean Loader 4 composed by Jonathan Dunn (using my new driver)
- Daley Thompson's Olympic Challenge Loader Music composed by Jonathan Dunn
- Ocean Loader 5, a remix of Jon's previous Ocean Loader 4 composed by Jonathan Dunn
- Ocean's Hit Squad Loader music composed by Matthew Cannon (known as "loader" in HVSC).
Tunes #10 AND #11 were used up until the end of the C64's life cycle at Ocean.
Creating the Music...
Essentially the trick to great sounds on the SID chip was down to post modulation (and a great musician that understood the chip!) Basically once you had the basic ADSR, required waveform, and note frequency that you wanted to play, the code could then, under control of the musician, modify the frequency, the pulse widths and envelope shapings over a period of time in a variety of different ways:-
You could pitch bend - where you added or subtracted a fixed amount to the base frequency over a pre-set period of time, or you could set up an arpeggio table that added on a different controlled note value to the base frequency every frame causing "wibbly" notes that sounded like more than one channel. You could set up vibratos were the base frequency would be pitch bent up and down at a pre-set phase over time, or in the case of drums the driver would mess around with not only the frequencies but the waveforms and envelope shape every 50th of a second.
These are just a few of tricks that were added over time to the driver. Jon, like Martin Galway before him, was an adept 6502 programmer when he came on board at Ocean so over time he added more and more functionality to the player himself to the point were it became his baby and the sound quality just went through the roof.
A Fourth Channel...
As with all new tricks there was a disadvantage - you would generally only ever hear four channel music on title screens or places in the game were nothing was really happening as the sample playback pretty much ate all of the available processor time!
Do It Yourself
dasm DT88MusicSrc_dasm.asm -v1 -omusic.prg
This will build a binary file called "music.prg" that you can then fire up with any C64 emulator.
*NEW* Just replaced the Ocean Loader Music source with a DASM compatible version which also includes the driver front end so you can quickly tinker with it on the emulators.
Grab all the code and pre-built binaries from my DOWNLOAD page.
*NEW* If you'd rather just listen to the C64 music, I've added MP3 versions of some of the Ocean Loading Music for your delectation on my DOWNLOAD page.
TO BE CONTINUED...