|
||||||||
|
||||||||
| Cette page est aussi disponible en français | ||||||||
| why? | [cacher] |
AdLib sound cards were one of the first sound cards to be produced for IBM
compatibles personal computers. They required a single 8 bit ISA slot, and
were based on Yamaha's YM3812 chips. This chip is a FM (Frequency modulation)
synthesizer, is also known as the OPL2 and has 9 channels.AdLib sound cards have a unique sound (listen to samples) which reminds me of the time where I got my first sound card :) Nowdays, most motherboards do not have no ISA slots, so you cannot use an AdLib card with them. It's also not possible to use an AdLib card on computers which are not PC compatible, such as Macs and Suns. Laptops are out of question too. However, we can still listen to AdLib music by emulating the card. There is an open source AdLib emulator called AdPlug. AdPlug is available on sourceforge: http://adplug.sourceforge.net/ and works as a unix command line player, xmms or winamp plugin, or under dos. Even though emulation is possible, I felt sorry to keep my good old AdLib card collecting dust in a closet. That's why I decided to interface it to the parallel port. In order to be able to listen to adlib music files, I wrote code to make adplug use the card connected to the parallel port to produce sound instead of emulating the card. (This means I did not have to write loaders and interpreters for more than 15 music formats :). I'm now enjoying the sound of my AdLib card again, but using much faster computers than before(Pentium III 800), and on machines that the card was not designed to be used with! (Amd64, Sparc64). I hope this page will help other AdLib music enjoyers to use their card again, as in the good old days. |
| Pictures | [cacher] |
| Schematics | [cacher] |
Here is the main schematic:![]() And here is the crystal oscillator schematic: ![]() This was the first time I built a crystal oscillator. I know there are simpler circuits without a transistor and with only one inverter gate, but I was not able to make it work. I think it would have been easier with 74hct family instead of 74ls family. Feel free to build it differently. |
| Explanations | [cacher] |
First of all, I closely looked at the card to find out which ISA signals were used.
The following tables lists all the used signals, where I connected them and what
they are for:
http://pinouts.ru/data/ISA_pinout.shtml Card addressing:. This AdLib card uses the address 0x388 and 0x389. Those two addresses differ by only one bit, as shown in the following table:
Note 2: Since there still was an output pin available on the parallel port, I decided to connect it to address bit #1. This will allow me to use a card with 4 consecutive ports in the future. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Software | [cacher] |
| I wrote a C++ class which can be used with adplug to play back adlib music
files with this setup. To test, I wrote a simple command line music player based on adplug and my c++ class. Someday I may decide to make a more complex version (xmms plugin?) or I might try to submit my class to the AdPlug maintainers. Meanwhile, here are the sources: paradlib.tar.gz |
| Samples | [cacher] |
Here are a few tunes played back on my AdLib card, in ogg and original formats:
|
| Links | [cacher] |
|
Music: http://chiptunes.back2roots.org/ A huge archive of game music in various AdLib formats. http://adlib.superfighter.com/ RAW music captures of many good games. Other: http://www.iki.fi/jrop/specials/digisnap/ Electronic project to capture the sound coming out from the OPL2 digitally for best quality. http://www.oplx.com/opl2.htm Programming information for the OPL2 chip. |
| Disclaimer | [cacher] |
|
I cannot be held responsible for any damages that could occur to you
or your equipment while following the procedures present on this page.
Also, I GIVE ABSOLUTELY NO WARRANTY on the correctness and usability
of the informations on this page. Please note, however, that the procedures
above have worked in my case without any damages or problems. Now you cannot say that I did not warn you :) |
Coded manually using
|