Skip to content
LGB Z edited this page Mar 18, 2015 · 2 revisions

Story of this project

My original idea is about interfacing with ISA cards by 8 bit machines (C64 is just one example), originally to have cheap Ethernet solution for various 8 bit machines (yes, C64 has some, but first: it's expensive compared to the fact that you have spare ISA Ethernet cards at home, and second: there are much more 8 bit machines than only C64). A general-purpose ISA bus solution is not to easy to build, you have to deal with DMA, onboard RAM of some cards and so on (I don't even want to mention too much that the situation is even more complex with 16 bit ISA cards).

So I decided to begin with a really simply card and I try to interace with it. I thought AdLib is simple enough and as a bonus, it has the nice result that you can hear something at least. Using an Ethernet card (what I wanted originally) is much harder as I would need to write some software for it too, which is a more complex task than simply sending out some bytes for the AdLib card.

Still, since I am not so experienced (yet) about building digital circuits, I was at a loss a bit. Then I found this page: http://www.raphnet.net/electronique/adlib/adlib_en.php It's about connecting an AdLib card to the parallel port of a PC. Surely, it's not a C64 solution but it gives nice ideas how can I use AdLib (as a 8bit ISA card) to "drive" without a real ISA bus it's placed onto.

The heart of the AdLib card is a chip called YM3812. At once I tried to search for "c64 ym3812" and surprisingly (for me) I got hits. It turned out that there is an existing solution already which does this: the SFX Sound Expander cartridge. Though those units are equipped with an older chip (does not know OPL2) it can be replaced, and it seems some people did that.

What's the nice thing about this if I don't even have that cartridge and how does it related to my original project? My problem was the lack of emulation software: I would really need to test my software first so I can tell I have to blame my software or hardware if it does not work at all. And the nice thing is here: VICE emulator does emulate this cartridge (note: the stable version seems to have problems, but the development one worked for me - more information on this issue can be found here).

Originally my plan was only test to create some sounds, but since file formats like DRO or IMF seems to be simple enough I've decided to write a player. Later probably more advanced formats too like S3M can be supported too. And I would like to have some loader code, so song does not need to be a compile-time option ...

Clone this wiki locally