VOGONS


Ad Lib Gold Tinkering

Topic actions

First post, by 640K!enough

User metadata
Rank Oldbie
Rank
Oldbie

In what may be the beginning of a more substantial effort, I recently decided to start tinkering with the Ad Lib Gold. For a design from 1991, I have to say that it had some interesting design ideas, some of which I don't think were ever adopted anywhere else; not even Creative bothered to steal them.

I'm not offering anything particularly compelling yet, but for anyone who would care to try it, a small application is attached. If it works, it should display some information, then play a simple test clip. It would be interesting to know what you see and/or hear. I don't think it displays one critical detail: press q when you have had enough and want to quit.

It wasn't specifically designed to support them, but it may even partially work on some of the other non-Ad Lib GSS cards of the 1990s. If it does at all, the resources it claims should be nonsensical.

It would also be interesting to know whether the card you are using has a YMZ263 or YMZ263B. I think all genuine, shipping Ad Lib cards of the time used the former. I don't own any hardware with the B chip, but I suspect there are some behavioural differences between the two. At some point, that might be an interesting thing to investigate.

A brief summary of your system configuration would also be appreciated.

It is important to recommend that you not use headphones. Cheap powered speakers with the volume set to a modest level are recommended, just in case the only thing you get out of it is loud noise.

Last edited by 640K!enough on 2026-08-01, 21:16. Edited 1 time in total.

Reply 1 of 15, by Marmes

User metadata
Rank Member
Rank
Member

Isn't YMZ263 a 12bit DAC ADC with adpcm chip with some volume control and uart/joystick? From what I see in ADG it relies very much on filtering for the different sampling/playback frequencies.
It has a mixer for other for other features like mic surround, etc. I tested the OPL3 part which also has some heavy filtering. From what I see, what contributes for its typical sound is not only the filtering , but also its tonal control chip TDA8425. It gives a deep and warm sound. It would be interesting to see if there are any differences between those chips. Hardware wise this card was very good. If it had been a 16bit card, we wouldn't be having this conversation now, nor we would know creative as it is now.
Other good cards are the Mediavision, the first cards before the jazz chipset. More integrated but with the same concept as ADG. I would like to see more stuff about these cards as well.

Reply 2 of 15, by 640K!enough

User metadata
Rank Oldbie
Rank
Oldbie
Marmes wrote on 2026-07-27, 09:44:

Isn't YMZ263 a 12bit DAC ADC with adpcm chip with some volume control and uart/joystick?

Mostly, yes. It also handles MIDI UART duty (but is not MPU-401-compatible), also with FIFO functionality, like they use for PCM/ADPCM recording and playback. All of the Crystal-like CODECs make use of FIFOs to guard against brief interruptions in data transfer, but I am not sure they are quite as flexible.

Marmes wrote on 2026-07-27, 09:44:

If it had been a 16bit card, we wouldn't be having this conversation now, nor we would know creative as it is now.

The interesting thing is that the YMZ263 can play back 16-bit PCM-encoded audio, though it's not entirely clear if it uses all of the sample data, or throws away the "extra" bits and treats the samples as 12-bit. I don't have any Creative audio products any more, but I don't remember their playback, even the "16-bit" cards, sounding better than the Gold. In some ways, because of the many "DSP" defects, they were worse.

I have tests that play back 8- and 16-bit data on the Gold, and the results are very good for a design from 1991. From a technical and sound-quality standpoint, it put the Sound Blaster Pro to shame.

Reply 3 of 15, by vetz

User metadata
Rank l33t
Rank
l33t
640K!enough wrote on 2026-07-29, 05:49:

The interesting thing is that the YMZ263 can play back 16-bit PCM-encoded audio, though it's not entirely clear if it uses all of the sample data, or throws away the "extra" bits and treats the samples as 12-bit.

According to page 237/238 in the Developer toolkit the chip truncates/ignores the lowest four bits on 16-bit PCM playback.

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 4 of 15, by NeoG_

User metadata
Rank Oldbie
Rank
Oldbie
640K!enough wrote on 2026-07-29, 05:49:

The interesting thing is that the YMZ263 can play back 16-bit PCM-encoded audio, though it's not entirely clear if it uses all of the sample data, or throws away the "extra" bits and treats the samples as 12-bit. I don't have any Creative audio products any more, but I don't remember their playback, even the "16-bit" cards, sounding better than the Gold. In some ways, because of the many "DSP" defects, they were worse.

Realistically, the SB16 when orignally released was too noisy to take advantage of a 16-bit signal. You got like 10-bits of depth at most once in a game, running inside an EMI filled computer. It got better with later models. I expect the Gold with 12-bit and a better analog section was objectively better than an original SB16. Personally I don't think 16-bit became truly utilised until the AWE64, that's when noise levels dropped to a level where >12-bit is useful.

98/DOS Rig: BabyAT AladdinV, K6-2+/550, V3 2000, 128MB PC100, 20GB HDD, 128GB SD2IDE, SB Live!, SB16-SCSI, PicoGUS, WP32 McCake, iNFRA CD, ZIP100
XP Rig: Lian Li PC-10 ATX, Gigabyte X38-DQ6, Core2Duo E6850, ATi HD5870, 2GB DDR2, 2TB HDD, X-Fi XtremeGamer

Reply 5 of 15, by 640K!enough

User metadata
Rank Oldbie
Rank
Oldbie
NeoG_ wrote on 2026-07-29, 07:49:

I expect the Gold with 12-bit and a better analog section was objectively better than an original SB16.

That's an interesting claim, though I have always agreed, having owned both cards in the early 90s. I still remember a magazine comparison that said that "we don't know" why anyone would ever want to buy an Ad Lib Gold, given it "only" had 12-bit sampling, among many other complaints and criticisms. In the same feature, they showered the SB16 with praise for its 16-bit playback quality and the "innovative" ASP that, among other things, allowed ADPCM compression/de-compression, taking much less space, while preserving audio quality. They conveniently neglected to mention that many other cards of the time could do the same, without requiring an optional DSP chip. One can only conclude that Creative included a generous cheque with the evaluation unit.

From memory, they weren't overly impressed with the GUS or PAS16, either, both of which handily trounce the SB16 in every respect that matters, including 16-bit playback quality.

Reply 6 of 15, by Marmes

User metadata
Rank Member
Rank
Member

SB16 Chip for 16bit was from AKM for 16bit DAC/ADC, on paper it was good, but it was noisy, don't know if it was a design flaw. The 16bit sound doesn't feel normal. I rather have the 12bit from ADG .
But from what I heard around, usually good 18bit DACs give me a more natural sound. Not 20, 24 or whatever give me the good feeling of 18bit DACs.
I think AKM is an I2S chip controlled by a DSP and a protocol converter. DSP also has the basic functions of a SB2 with a Philips 16bit DAC for 8bit fake stereo sound.
So comparing SB16 to an ADG is like comparing pears with apples. ADG is far superior.

Reply 7 of 15, by carlostex

User metadata
Rank l33t
Rank
l33t
640K!enough wrote on 2026-07-25, 09:04:
In what may be the beginning of a more substantial effort, I recently decided to start tinkering with the Ad Lib Gold. For a de […]
Show full quote

In what may be the beginning of a more substantial effort, I recently decided to start tinkering with the Ad Lib Gold. For a design from 1991, I have to say that it had some interesting design ideas, some of which I don't think were ever adopted anywhere else; not even Creative bothered to steal them.

I'm not offering anything particularly compelling yet, but for anyone who would care to try it, a small application is attached. If it works, it should display some information, then play a simple test clip. It would be interesting to know what you see and/or hear. I don't think it displays one critical detail: press q when you have had enough and want to quit.

It wasn't specifically designed to support them, but it may even partially work on some of the other non-Ad Lib GSS cards of the 1990s. If it does at all, the resources it claims should be nonsensical.

It would also be interesting to know whether the card you are using has a YMZ263 or YMZ263B. I think all genuine, shipping Ad Lib cards of the time used the former. I don't own any hardware with the B chip, but I suspect there are some behavioural differences between the two. At some point, that might be an interesting thing to investigate.

A brief summary of your system configuration would also be appreciated.

It is important to recommend that you not use headphones. Cheap powered speakers with the volume set to a modest level are recommended, just in case the only thing you get out of it is loud noise.

The PCM data on the sample clip is signed right? From my experience when i developed the MSS3 driver everything unsigned results in distorted playback on the Adlib Gold. Simon the Sorcerer, Return of the Phantom are 2 game examples that have the distorted sound on the Gold. Something i would like to fix but hard to.

640K!enough wrote on 2026-07-29, 05:49:

The interesting thing is that the YMZ263 can play back 16-bit PCM-encoded audio, though it's not entirely clear if it uses all of the sample data, or throws away the "extra" bits and treats the samples as 12-bit. I don't have any Creative audio products any more, but I don't remember their playback, even the "16-bit" cards, sounding better than the Gold. In some ways, because of the many "DSP" defects, they were worse.

I have tests that play back 8- and 16-bit data on the Gold, and the results are very good for a design from 1991. From a technical and sound-quality standpoint, it put the Sound Blaster Pro to shame.

As Tiido noted MMA set to format 2 should be ideal to play 16 bit samples on the Gold.

Reply 8 of 15, by 640K!enough

User metadata
Rank Oldbie
Rank
Oldbie
carlostex wrote on 2026-07-30, 12:19:

The PCM data on the sample clip is signed right?

If you're referring to the sample data embedded in the test application, yes; it's 8-bit signed, at 11025 Hz stereo. Have you tried? Are you getting distorted sound?

The test is targeting a specific aspect of the playback, and I am trying to see if anyone complains about it. Between apathy and the Gold being a rather uncommon piece of hardware, no one has yelled yet.

If you have access to the complete audio buffer, it is a simple matter of converting the 8-bit samples to signed format before they are sent to MMA. The simplest method is probably to XOR each with 80H. I was using a more involved (slower) method, but borrowed that from Ad Lib's documentation, and found that it works just as well.

carlostex wrote on 2026-07-30, 12:19:

As Tiido noted MMA set to format 2 should be ideal to play 16 bit samples on the Gold.

That is exactly what I have been doing, and it works perfectly. So far, I have only been toying with straight programmed I/O and interrupt-driven playback (no DMA, no timers). While it works quite well, the timing can be rather tight.

I'll focus on DMA-based playback and refining my detection methods (distinguishing between Ad Lib and non-Ad Lib — meaning typically Level 1 — cards) later. Since I only have one real Gold, figuring out what Cardinal or others did is not exactly simple. Support for those will likely be on a best-effort basis, and nothing more.

Reply 9 of 15, by carlostex

User metadata
Rank l33t
Rank
l33t
640K!enough wrote on 2026-07-30, 14:03:

If you're referring to the sample data embedded in the test application, yes; it's 8-bit signed, at 11025 Hz stereo. Have you tried? Are you getting distorted sound?

No i haven't tried yet, hoping to do that this weekend. It was just something that crossed my mind because i had learned about it when developing the MSS3 / AIL3 driver.

I'm also interested in the MMA differences between YMZ263 and YMZ263B, apparently the GoldLib clones do use the 'B' version, which is what i have. I would also like to have some feedback on the AIL3 driver i developed on a real AdLib Gold. On the GoldLib and 86box emulation seems to be OK, but until extensive testing can be done including more GoldLib / Adlib Gold cards with different configurations i can't guarantee the driver is working 100%. But yeah, this card availability is scarce so i understand the difficulties.

Reply 10 of 15, by 640K!enough

User metadata
Rank Oldbie
Rank
Oldbie
carlostex wrote on 2026-07-31, 06:46:

I'm also interested in the MMA differences between YMZ263 and YMZ263B

This is one of the things I think should be explored, just for the sake of documenting findings, and maybe improving support for the hardware, if any new drivers are developed (which I have on the to-do list, though I don't want to make any claims until I can deliver something). There is also the matter of whether the developers of emulation platforms got all of the details right. I think some testing and comparison would be a good thing.

I am willing to bet that there will be some behavioural differences, in at least a few respects. Specifically, I will offer a hypothesis that Yamaha fixed some lingering problems with the YMZ263, possibly adding some improvements, and behaviour will differ at least slightly. The ideal situation would be to have a design with both of these chips, and I have even given some thought to designing a bare-bones level 1 board that would use the B chip for experimentation. Then, I could re-locate the real Gold, and test and compare just by changing a few environment variables. The problem with that idea is that costs have a tendency to escalate quickly, and there isn't much to spare in the budget.

carlostex wrote on 2026-07-31, 06:46:

I would also like to have some feedback on the AIL3 driver i developed on a real AdLib Gold.

If, in looking through what I have available, I find a title that can use it, I might get to that at some point. I can't think of any off-hand, though.

Reply 11 of 15, by carlostex

User metadata
Rank l33t
Rank
l33t

I tried your program on my GoldLib and here's the results:

first time i ran the program it played fine, the sample i hear is: "Right..." "Right..." etc... I thought... that's weird, i was expecting to hear "Left" and "Right" with the channels alternating.

So i tried loading the Adlib Gold wave driver and playing the "Get ready for sound so rich...it has to be called Gold!" file and this did play in Stereo. After this ran your program again and there was no sound coming out from your program anymore.

Next step, i rebooted (Hard reset) and ran your program again. Result was "Right..." "Right..." and so on. So i tried running a game with my MSS3 driver, i chose Little Big Adventure 2, and it played in Stereo 16bit fine. So i went back to try your program again and now i heard: "Left","Right","Left","Right". So i guess that my boot config stored in my card is not setting the left channel properly and my driver fixes that.

I haven't looked at my code in months, but i do remember making sure both channels sampling gain and volume registers being properly set.

Through the control chip, on register 08 you can select how channels are mixed for final output. For this register you use bits 0, 1 and 2. A value of 6 will give Left and Right, 4 will give Right only and 2 will give Left only. There's also MMA register 09, where bits 5 and 6 control L and R output respectively and i think this is actually the source of my problem, not so much the control chip. But i need to check the status of both my registers on boot, but i'll need to code a tool for this, or maybe just use debug if i can.

So that isn't your programs fault, its just the config of my card. However, running AdLibs driver does make the playback on your program stop.

As far as MSS3 games here's a few ones from my main PC install:

  • - Fade to Black;
    - GTA;
    - Little Big Adventure 2;
    - Magic Carpet 2;
    - Mechwarrior 2;
    - Terra Nova;
    - Callahan's Crosstime Saloon;
    - Death Gate;
    - Discworld;
    - Discworld 2;
    - The Gene Machine;
    - Sherlock Holmes "Case of the Rose Tatoo";
    - Mission Critical;
    - I Have no Mouth and I Must Scream;
    - Broken Sword;
    - Bud Tucker;
    - Destruction Derby;
    - Hi Octane;
    - Rally Championship: International Off-Road Racing;
    - Mortal Kombat 3;
    - Mortal Kombat 1 (CD version);
    - Mortal Kombat Trilogy;
    - Super Street Fighter 2;
    - System Shock;
    - Alien Trilogy;
    - Theme Hospital;
    - EF2000;
    - Mega Man X;
    - Albion;
    - Jagged Alliance;
    - Warcraft 1;
    - Warcraft 2;
    - Z;
    - Master of Orion 2;
    - Sea Legends;

Reply 12 of 15, by 640K!enough

User metadata
Rank Oldbie
Rank
Oldbie
carlostex wrote on 2026-08-01, 12:30:

I tried your program on my GoldLib and here's the results:

first time i ran the program it played fine, the sample i hear is: "Right..." "Right..." etc... I thought... that's weird, i was expecting to hear "Left" and "Right" with the channels alternating.

That was one possibility that I expected, though the behaviour on my system is different. I also think the solution was simple. I have replaced the test application attached to the first post with one that should fix both of those problems.

Before you try that, it would be interesting if you would try the small utility attached here, right after a cold boot. Do not load any software that manipulates the Gold beforehand, re-direct its output to a file and attach it here. I'm sure the results will be useful and interesting for future discussions.

If you're curious, you can also try again after running any title that successfully uses your driver, so that we can see the differences. What I suspect we'll see is that your card is in a different state following a cold boot than mine. Specifically, the two least significant bits of control register 11H are likely 10 on your card, whereas they are 00 on mine (register 11H comes up as 20H).

So, if you're not entirely fed up with me yet, you can try the replaced MMATEST.EXE, which properly sets control register 11H before trying to produce sound. From a cold boot, it should produce sound on both channels (as long as your volume levels are high enough in the EEPROM configuration).

Then, there is the matter of interactions with the Ad Lib TSRs. I think this one is my fault. This was likely a register setting that allowed the wave driver to be activated after the first few samples. So, it may have played the first few samples (a few ms worth; not enough to hear more than a pop or click, if even that), then the wave driver would have assumed control, and no more sound. The attached version should fix that as well.

There should be another problem, I think. When you're confident that the test application won't produce loud noises, maybe trying with headphones at a safe volume level would be worthwhile. Do you notice anything wrong?

Reply 13 of 15, by carlostex

User metadata
Rank l33t
Rank
l33t

Here's the CTRL register dump from my clone.

The attachment ctrldump.txt is no longer available

Would you mind doing the same and uploading? It would be fascinating to compare one against the other.

BTW, whatever change you did to MMATEST it now plays on both channels after a cold boot just fine.

Reply 14 of 15, by 640K!enough

User metadata
Rank Oldbie
Rank
Oldbie
carlostex wrote on 2026-08-06, 10:20:

BTW, whatever change you did to MMATEST it now plays on both channels after a cold boot just fine.

This is somewhat strange. I made those changes, and I will leave them there, since that's really how it should have been done. However, looking at the contents of your control registers, register 11H does have the two least-significant bits clear. If that's the usual state at start-up, it leads me to wonder what was going on the first time that caused it to not work (unless you did the register dump after running MMATEST).

carlostex wrote on 2026-08-06, 10:20:

Would you mind doing the same and uploading? It would be fascinating to compare one against the other.

I was planning on it, but I wanted to build a more feature-rich control register manipulation tool first. When I have time to finish that, I will share the tool and we will be able to compare and discuss.

The last thing worth mentioning is that I have none of the titles you listed. I thought I remembered having something that would work, but maybe those were built with a previous generation of the audio middleware. I am not in the mood for a mad hunt through piles of floppies and CDs to try finding one, but if you know of a suitable title that is still available in trial or demo form, I wouldn't mind taking a look.

Reply 15 of 15, by carlostex

User metadata
Rank l33t
Rank
l33t
640K!enough wrote on Yesterday, 08:18:

This is somewhat strange. I made those changes, and I will leave them there, since that's really how it should have been done. However, looking at the contents of your control registers, register 11H does have the two least-significant bits clear. If that's the usual state at start-up, it leads me to wonder what was going on the first time that caused it to not work (unless you did the register dump after running MMATEST).

Register #11 isn't the be all end all. The bits in question, FLT0 and FLT1, set if the antialiasing filter are set for sampling or playback. Having FLT0 set, could certainly affect playback on the left channel as it would be set for sampling instead of playback. But this seems not to be related to my issue. And no, i did not run any software prior to using CTRLDUMP.

I'm more convinced that bit 5 of register 09 of YMZ263B is not set, thus disabling output on the left channel.

640K!enough wrote on Yesterday, 08:18:

I was planning on it, but I wanted to build a more feature-rich control register manipulation tool first. When I have time to finish that, I will share the tool and we will be able to compare and discuss.

The last thing worth mentioning is that I have none of the titles you listed. I thought I remembered having something that would work, but maybe those were built with a previous generation of the audio middleware. I am not in the mood for a mad hunt through piles of floppies and CDs to try finding one, but if you know of a suitable title that is still available in trial or demo form, I wouldn't mind taking a look.

You could still post your ctrldump here, i can read the registers just fine, i've got the Adlib Gold's documentation always at arm's length. Would be interesting for me to check the differences.

BTW, you can get the Warcraft 1 Demo here:

https://archive.org/details/WarcraftOrcsHumansDemo