
I started out by trying to find old information about the card. Overall, it seems the PAS16 NuBus was basically a fly-by-night product, a stark contrast to the original PC version of the card. Media Vision unceremoniously dumped it out in the market sometime in mid-1993, provided little software support, and by the end of 1994 the company was filing for Chapter 11 bankruptcy protection. Unwanted cards flooded the Mac resale market for years, but a number of people picked them up as an upgrade for their aging 68k-based Macs owing to their comically low price at the time - often as low as $20.
Interestingly, not very many people seemed to notice the absence of the OPL3 functionality. It's all over the sales pitches for the card, and it's mentioned on page 35 of the manual but no other details are provided. The only time I can find someone asking how to use it is a Usenet post in comp.sys.mac.hardware from December 1994. The poster, Bob Shuster, claims that Media Vision stated there is "no way to access this capability", and a reply from Thomas G. Kozma backs up this claim by stating that Media Vision "claimed to not know of any product that could access it when installed on a Mac".
So what exactly happened here? Why did they spend money to put this chip on the card, and then not enable it for use? It's possible this was a casualty of the poor software support for the card. Digging further into Usenet posts, I keep finding contemporary comments about the drivers for the card being poor and many games having issues, and my own experience with the card seems to back that up. I ran into issues with incorrect playback rates and sometimes even Mac OS alerts would stop sounding. I mostly use the card as just a mixer board at this point. So, it doesn't look like they ever put much development effort into the drivers.
I found another comp.sys.mac.hardware post, from late 1993 (only months after the card's debut), where W. Charles Simciak claims that "due to technical problems the Yamaha chip is no longer supported" and that "new boards will not have it". I am not exactly sure where he got that information, and this is the only thing I've found calling out any "technical problems". Plus, I haven't seen a single PAS16 NuBus board that doesn't have the OPL3 on it. I suspect "technical problems" is just code for "we decided we're not going to finish writing software to support it"...
Another interesting data point is looking at the few pictures we have of the back of the box. Check out this picture from the Higher Intellect wiki. Isn't it interesting how many stickers have been placed over certain areas of text? Some of these stickers are due to alterations of the bundled software, but I'm pretty sure the changes to the Technical Specifications are to obscure lines regarding the OPL3. Compare what's mentioned in the earlier linked manual scan to what's missing from the back of the box - it's the OPL3 stuff. Obviously, they knew they'd changed their minds on supporting it and needed to strike it out in order to avoid false advertising. Are there earlier boxes that don't have these stickers? Or is someone willing to peel theirs away and see what's underneath? Please contact me if so!
So, at this point I decided that I wasn't going to take "no" for an answer, and that if the chip is there, it has to be hooked up somehow. I initially reached out on the 68kMLA forums to see if anyone had looked into this before. The answer was effectively "nope, you're the first one to ask" but we did find a couple things. Namely, the card had a very barebones DeclROM compared to a native Mac card, and that the OPL3 was definitely connected to the rest of the card - namely, it was electrically connected to the main MVD101-D IC and mixer chips in the same manner as it would be on a PC PAS16 card.
The question, then, is that if it's hooked up, how do you need to access it? Does the NuBus card rearrange the addresses or anything? Do you need to take special considerations due to NuBus being a 32-bit bus, unlike the PC's ISA bus? I decided to assume that everything was the same, and just try writing to it PC-style. NuBus cards are memory-mapped with each slot getting a specific address space. For instance, a card in "Slot D" will get $FD000000-$FDFFFFFF. By that logic, if this is like a PC card, then the OPL3 is probably at $FD000388. So I fired up CodeWarrior and tried this with some standard OPL detection code in C. It didn't work. But spoiler - it should have. The reason it did not was a combination of screwing up pointers (not my strong suit) and assuming that a char with Metrowerks' compiler was going to be the same as a char in Open Watcom on DOS (where I had previously written code for controlling the OPL). Anyway, at the time I thought I was right, even if I actually wasn't. We'll get back to this approach after a little side-quest.
Desperate for some kind of confirmation that I wasn't off the mark, I disassembled the PAS16 extension and despite barely knowing any 68k assembly, I was able to find references to common I/O addresses defined in the development kit for the PC version of the card. However, this investigation also led me down a rabbit hole. I found functions named FM_Bd_Status and FM_Bd_Control and this made me think I could perhaps call into these functions from outside the extension. After wasting a very long time on this, I found they're basically stubs. There were also more direct RdByte and WrtByte functions referenced. I got this idea in my head that they'd be exposed via Device Manager calls and spent a lot of time learning how to interact with the driver that way, but it was completely fruitless due to the lack of documentation. I am pretty sure Media Vision did distribute an SDK for the Mac card, and I remember reading of its existence at once point, but no copy of it has ever turned up.
Going back to a more simple approach, I decided to just bang at the memory addresses of the card again until something happened. Except this time, I actually wrote the code correctly! (It helps to just use actual MacTypes.h definitions like UInt8...) Sure enough, the standard OPL detection method worked.

Except I couldn't hear my test note. So close!
This turned out to be because the driver mutes it in the mixer - probably because they knew they weren't planning to use it. I needed to understand how to write to the mixer and re-enable the OPL3's mixer channel - assuming it was still present. The good news? It was. I ended up figuring out how to do this by studying PAS16 code in the old Linux sound system, OSS. The mixer sits at 0xB88 and you have to write to it first to specify which channel you want to modify, and then write to it again to send the value. This has to be done for both the left and right channels.
After that? It just worked. I felt really accomplished hearing my little test note. It turned out to be simple, but for the first time in over 30 years, the unused and purportedly inaccessible OPL3 on the card was making sound. A whole new world of possibilities has been opened.
Instead of reading all about my misadventures to find this info, here's what you need to know:
- The PAS16 NuBus is basically just the original PC ISA card, modified to function on a Mac.
- The memory addresses seem to match the PC card, just mapped into the NuBus memory space. This means the OPL3 is at (NuBus Slot Base Address)+0x388.
- The OPL3 is muted in the mixer by default, and you can't control it in the Mac drivers. You need to manually unmute the FM channels by writing to the mixer at (NuBus Slot Base Address)+0xB88. This is done the exactly same way you would on the PC card.
My test program, with source (CodeWarrior Pro 4 project), is available here and can help you through the specifics:
What I've created is very barebones. I don't think it would be appropriate for a polished application. One major problem is that you have to know what slot the card is in before you start writing to the address space. Currently, if you have this wrong, there seems to be a very high possibility of crashing the system. Obviously, the card's official drivers have a way of safely querying the slots and determining where to direct writes to the MVD101-D and the mixer. I do not yet have enough understanding of assembly to know what the extension is doing, nor do I have enough knowledge of the Macintosh Toolbox's Slot Manager to create the functionality myself.
I would be very interested in seeing the OPL3 getting wider use going forward. Maybe we could make it easier for developers by creating an OPL3 extension? This could work in tandem with the PAS16 extension and perform some of the boilerplate like unmuting the mixer and safely detecting the OPL3, and provide hooks to write the chip with less hassle. If I pursue this, it would be quite a ways down the road, I imagine. Classic Mac programming is very different than I am used to, and definitely quite a temperamental environment. But, it's an idea!
To show there's more to this than just playing a note, I did slap together a little VGM player called "LazyVGM" so you can try out some music on your card. This is not polished software! It is barely Mac native - consisting of a console window and code ripped out of my DOS player VGMSlap, and ties up the whole system while it's playing. It probably isn't even using timers the way you're supposed to on the Mac. But it does what it says it does - play VGMs. The source code is included.
The compiled application is hardcoded to look for the PAS16 in Slot D, which is where I have the card installed in my Quadra 800. If that doesn't match your setup, you will need to take the included source code, change NUBUS_SLOT_NUMBER in LazyVGM.h, and recompile.
I still want to look into the various bundled software for this card. Media Vision seems to have been rapidly swapping what they threw in the box with it, and perhaps something here actually uses the synth. The reason I think that is this odd statement on page 4 of the manual scan I linked earlier:
"LucasArts Indiana Jones and the Fate of Atlantis is a challenging adventure game that has been especially modified to take advantage of the sound synthesis available on your PAS 16 Mac equipment."
Sound synthesis? Maybe that's the OPL3? It would be a very sensible use of it, as LucasArts adventure games use iMUSE for dynamic music. That is a perfect fit for a synthesizer chip - real time manipulation of the music. Of course, this very well could also mean nothing. Maybe it's just a version of the game with higher quality samples to take advantage of the PAS16's higher sample rate. Or maybe it's like the bundled version of Out of This World (aka Another World), which is versioned "v1.0mv" implying a special Media Vision edition, but appears to sound completely the same as the normal version of the game.
This bundled version of Fate of Atlantis has not surfaced, though, so I can't verify anything. Maybe it never existed in the first place, after they decided not to finish the OPL3 support for the card, but the manuals never got reprinted.
I dunno.
The LC PDS version of the Mac PAS16 seems to be incredibly rare. It may have come out slightly later than the NuBus version. I haven't even found a high-resolution picture of it to tell if the OPL3 is present on it. Maybe this is the "new board" that W. Charles Simciak claimed would not have the chip? If you have one of these, please get in touch, cause I'm curious!