Building an AdLib Digisnap
Date: 14.05.2002
Author: Janne Ropponen (aka Kuvaweopu)

1. Introduction

AdLib sound card. Click for a close-up.
About two years ago a friend of my pointed me to a wonderful page on the web that had instructions on how to build an AdLib Digisnap - a device capable of extracting digital sound from the nostalgic AdLib sound card. This device, designed by Olli Niemitalo (aka Yehar), was a dream come true for me as I've always wanted to record all those wonderful tunes from classic games such as the Space Quest series, Monkey Island, Dune and more. And because I'm not literate enough in electronics I could never even have imagined of coming up with a device like this myself! However, now I could just build the device according to instructions and record all my favorite musics digitally without sacrificing sound quality at all.

For those who don't know what an AdLib sound card is, I'll be brief: It is the first affordable sound solution for the PC users over the classic 'beeper'. It was introduced in the late '80s and is capable of outputting polyphonic sound using a method known as FM-synthesis. The heart of the card is the Yamaha OPL2 chip. Later the (now world famous) Sound Blaster card added to the popularity of AdLib by being fully backwards compatible with it, adding only a capability to record and play digitized (sampled) sound.

2. Building

2.1 Preparation

It took me one and a half years from the idea to finally building the Digisnap device in February 2002. I had to buy some equipment as I've only done minor solder-this-wire-to-that like jobs before. I needed things like

  • AdLib sound card :-)
  • high-speed miniature drill
  • blank copper-plated circuit boards
  • ferric chloride (for etching the circuit board)
  • acetone (for cleaning).
My workspace. Click the picture to zoom.

I did have the basics like a nice Portasol Professional portable soldering iron (uses butane gas), solder, various wires and a digital camera to document the process. :) I also had to buy the necessary components like logic circuits and connectors as I didn't have that kind of things in my cabinet. Luckily I had some surface-mounted capacitors taken from old x86 hardware in store so I didn't have to buy those. I had also various versions of the Sound Blaster card in my cabinet but none that had external DACs needed in the project from where the digital signal is extracted. Therefore I acquired an old, original AdLib sound card for a modest price of about 3 euros (hail the usenet newsgroups!).

2.2 The circuit board

The drilled circuit board with tracks drawn using a Dalo pen.
The circuit board after etching and cleaning with acetone.
The first part of the building process was making the circuit board. As this was my first ever attempt to make something like that I had some interesting learning lessons ahead. I couldn't spare the money to buy a UV-lamp and photosensitive circuit boards to make a best possible circuit board one can make at home so I decided to try a method suggested by some in the net: print the circuit diagram on a transparent with a laser printer and then transfer it to the circuit board using a hot iron. After several attempts I realized that it wouldn't work, probably because the ink of my laser printer (IBM 4019) just refused to transfer to the circuit board. I then went the alternate route and first attached a circuit diagram printed on a piece of paper to the board with some tape. Then I drilled all the holes in the board through the paper. After removing the paper I drew the circuit diagram to the copper side with a Dalo pen - this was a pretty painstaking job as some of the tracks were pretty close to one another and the Dalo pen isn't very thin. I then double-checked that all the tracks were drawn and scraped the excess markings off from some places with a sharp Stanley blade.

Then it was time to etch the circuit board using ferric chloride. I dissolved as much of the stuff in a couple of desiliters of water as I could (keeping it in a plastic container). Then I make "lifters" using some plastic tape so that I could lower and raise the circuit board to the solution. At this point I had to be extra careful with the ferric chloride as the thing is pretty messy and sticks to everything it is spilled on. Then I put the board in the acid and went to watch some MacGyver from the TV (fits the theme, doesn't it! :). Raising and lowering the board a few times during the etching (to speed up the process and make it more uniform) I waited for about a twenty minutes and then took the board out of the solvent. It was pretty nice job at that point. I carefully washed the board under running water and then cleaned the Dalo pen tracks with a piece of clean cloth and acetone.


2.3 Putting it together

The fun part was up: soldering! I started with the surface mount capacitors, then the IC sockets and jump wires and finally proceeded to solder the D-connector. At this point I took a closer look of the AdLib sound card and noticed that the DAC is soldered directly to the board. So I desoldered the DAC, soldered an IC socket in place of it and put the DAC back. Surprisingly, the card actually still worked after this operation! I made the soundcard end connector by soldering the cable wires directly to the pins of an empty IC socket which could then be inserted to the DAC socket on the AdLib card, and the DAC put topmost to the new socket. The wires were then soldered to the otherwise finished Digisnap device. I made the cable about two meters long and strapped the individual wires together with plastics straps. At this point I double and triple checked all the solder points and connections for shorts using a digital multimeter. Everything was looking good!

Finished product (short of the cable wires) - solder side. AdLib Digisnap fully assembled!

3. Testing and using

Now it was time to connect the digisnap to my computer to test it. I downloaded the digisnapping software and installed the device on a Epox MVP3G2 mainboard which had a K6-III processor and 128 MB memory. Of course in DOS only 32 MB could be used. The AdLib sound card was in a 486/150 MHz (overclocked AMD 5x86/133 MHz) machine. I installed the digisnap to the printer port, the other end to the AdLib card, crossed my fingers and turned on both computers.... No smoke anywhere and both booted up. Whoa! Now it was time to try digisnapping something. I put some music playing on the AdLib card and fired up READER.EXE, the program used for recording digital music from the digisnap hardware. But - nothing happened. :( After some thinking I played around with the BIOS settings for the printer port (ECP/EPP) and started up a clean MS-DOS 6.2 (F5 at boot). After this the reader program apparently worked as I got beautiful oscilloscope picture moving to the beat of the music! At this point I was quite ecstatic and congratulated myself for a job well done.

The two computers used for playing and recording.

The reader program can record about 9 minutes of digital music at a time which it then saves to the hard drive in raw signed, 16 bit, little-endian, mono, 49716 Hz format. The frequency is approximate and determined by the clock on the AdLib card. I had a 6 GB hard disk connected to the recording computer so I could save quite a lot of music with it. I then proceeded to recording musics from my all time favorites like Dune, Sierra games, Continuum, Loom, Bubble Bobble, Whale's Voyage, Wolfenstein 3D and more. In the end I came up with about 1.5 GB of raw recordings which still needed to be edited and converted into some comprehensible format.

4. Converting and listening

I copied all the digisnapped files to my primary Duron 750 MHz computer with enough (60 GB) HDD space for processing the raw audio files. I mainly used the excellent program Goldwave for all processing, this truly is a very usable, fast and feature-rich audio editing program. First I clipped the excess data from the beginning and end of each digisnapped file and in some cases added fade-in and fade-out to the files. After all this I had 1.3 GB of "original" audio data from the digisnap. I burned all these files to CD-R dics in the case I need them again in the future. The rest of the editing was easy, all that needed to be done was to normalize the audio and convert the data to 44100 Hz, 16-bit for easy post-processing to mp3s and such. I don't know if Goldwave's sample-rate conversion is very advanced but I couldn't hear any difference compared to the original (though my SB Live forcefully converts everything to 48kHz thus degrading quality). Here is a sample of digisnapped music (the F1 GP main title) in OGG format.

5. Final words

Building and using the digisnap was an extremely fun project for me. Now I finally have the best musics of the AdLib world saved with the best possible quality and I can listen to those nice pieces over and over again easily with modern hardware and even my CD-player. I also learned quite a lot about making circuit boards and will be a lot more confident when making the next one. Very, very much thanks to Olli Niemitalo for making this possible by designing the wonderful Digisnap device. Now, if we only could get a stereo version for the SB Pro... ;-)

Links

Olli Niemitalo's home page with Digisnap instructions
Yamaha OPL2 chip (YM3812)
Making a circuit board
Goldwave


This page has been accessed ? times.

The URL of this page is http://www.iki.fi/jrop/specials/digisnap/