VOGONS


CMI8738 DOS drivers like to assign IRQ A

Topic actions

Reply 40 of 58, by Ydee

User metadata
Rank Oldbie
Rank
Oldbie

Well, friends, if this isn't some kind of voodoo magic, then I really don't know what is.I spent the whole morning and part of the afternoon testing, and I'm no wiser than we were yesterday.
The motherboard I have is equipped with the latest VIA chipset (VIA KM890 and VT8237A + A64 X2 2.3GHz + 1GB DDR2), so it's too new for Windows 98 SE, let alone DOS.

With the CMedia CMI8738LX (Genius Sound Maker Value 5.1) , both music and FX audio in DN3D work without any problems after installing the driver ver. 4.06.1096 from 7/25/2001, as long as it is run from the W98SE environment. Doom crashes with an error message; see the attachment.

When restarting into DOS (or booting via F8 “MS-DOS Only”), only the music works in DN3D; the FX sound reports an invalid DMA channel.
Doom, on the other hand, works correctly with the same settings: both music and FX sound.
Blood same result as DN3D (same Build engine).

Even though the DOS driver overwrites AUTOEXEC to run SETAUDIO.COM at boot time—which is supposed to initialize the card with the correct settings for SB (A=220, I=5, D=1, FM=388, and MPU401=330)—the IRQ varies for unknown reasons.
On the same motherboard, another PCI sound card—the Avance Logic ALS300—works correctly in both DOS from W98SE and MS-DOS-only modes in all the games tested. But that one has a hardware FM synthesizer, while the CMI8738 only emulates one.
Even now, we haven't been able to determine whether the VIA VT8237 (A, S, R, R Plus) supports DDMA—I don't know of any utility that could definitively confirm or refute this.

Reply 41 of 58, by aVd

User metadata
Rank Member
Rank
Member

Hi, @Ydee,
Thanks for the shared test results!

I'm not sure, if we have to consider windows 9x "DOS console/command shell" as suitable testing environment for DOS drivers, since there's "another layer" of windows drivers involved. For "working DOS driver" I'll take a DOS driver working in pure DOS environment (in some of m$, PC/IBM, DR/Caldera, PTS, free, Svar, etc. DOS versions).

And one question: Do you know if Avance Logic ALS300 sound card also needs DDMA for legacy DOS audio compatibility?

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 42 of 58, by Ydee

User metadata
Rank Oldbie
Rank
Oldbie

Hi aVd,

Of course, the point was to find out whether the "IRQ=A" message in the SETAUDIO output could be the cause of the CMI8738 not working in DOS applications. The result is inconclusive—some things work, and some don't, regardless of the strange IRQ. I understand that DOS applications run from within the Windows environment use driver emulation (that's the "C-Media PCI Audio Legacy Device" in Device Manager, where you can select the IRQ directly), while pure DOS (even when launched via F8) uses the settings from the SETAUDIO DOS driver.
The setup I have available for testing is too new and fast (AM2) and my more suitable one KM400A, which also used the VT8237 south bridge—I no longer have that one. If I could find something more suitable (s A), I would try to test it in pure DOS.
As for the ALS300, I don't know how to determine whether it uses DDMA for communication. It is a multifunctional, composite device—an audio device, a wave device, an internal OPL3 MIDI device, an external MIDI MPU401, and a joystick. If you know how to figure that out, let me know—I'll give it a try.

Reply 43 of 58, by aVd

User metadata
Rank Member
Rank
Member

Hi, @Ydee,
The CMI8738's DOS compatibility problems come through DOS initializer SETAUDIO.COM and further they vary for windows environment, since the hardware settings could be altered from windows drivers installed. And the DOS initializer SETAUDIO usually fails due to lack of DDMA support in motherboard used, bad BIOS settings for PCI port legacy IRQ mode or both of these reasons. I'm far from thinking, that a correct initialization from DOS will give a 100% working sound in every DOS game or other DOS software in pure DOS environment, but if the card's initialization in DOS fails, then getting some working sound in DOS is a pure coincidence. And that's why I suggested first to test the card only in pure DOS, until you are sure, that it can get IRQ=5 or 7 (some people say even 9 should be Ok) for SB DOS emulation by SETAUDIO (as it is intended to work with these settings) and then switching to windows "command shell" testing.

As for Avance Logic ALS300 sound card, I have no idea how it could be tested for DDMA usage. I don't know any utility, that is able to report DDMA support in hardware. Probably some box or user's manual descriptions could give a clue.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 44 of 58, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie
aVd wrote on Today, 05:54:

Hi, @Ydee,
The CMI8738's DOS compatibility problems come through DOS initializer SETAUDIO.COM and further they vary for windows environment, since the hardware settings could be altered from windows drivers installed. And the DOS initializer SETAUDIO usually fails due to lack of DDMA support in motherboard used, bad BIOS settings for PCI port legacy IRQ mode or both of these reasons. I'm far from thinking, that a correct initialization from DOS will give a 100% working sound in every DOS game or other DOS software in pure DOS environment, but if the card's initialization in DOS fails, then getting some working sound in DOS is a pure coincidence. And that's why I suggested first to test the card only in pure DOS, until you are sure, that it can get IRQ=5 or 7 (some people say even 9 should be Ok) for SB DOS emulation by SETAUDIO (as it is intended to work with these settings) and then switching to windows "command shell" testing.

As for Avance Logic ALS300 sound card, I have no idea how it could be tested for DDMA usage. I don't know any utility, that is able to report DDMA support in hardware. Probably some box or user's manual descriptions could give a clue.

I think there is a forum post detailing the features of this card, but i can't seem to it find yet.

Anyways. These cards do not utilize DDMA, they never did. From archive.org, the press release of this card states they come equipped with their own hardware Sound Blaster emulation solution without relieing on chipset features such as PC/PCI and DDMA.

Later recounts and reviews of the card's SB hardware emulation shows that it never actually work correctly with very low game compatibility.

Datasheets available for all the variants of these audio chipsets never mention anything DDMA, and actually only include the bits to enable their custom emulation solution.

The old boxes that sold with these cards that often claim DDMA were just recycled from other cards that did support it.

SETAUDIO.COM is just an initilizer/IRQ router tool and TSR, it carrys a set hardware registers for each specific CMI card and each DOS init driver is unique for said card. (CMI8338,CMI8738,SX,LX and MX etc.)

I made post for a custom patched version of the driver some time ago that swapped some initilization bits under it's PCI config space based on the datasheet for the LX and MX models. The compabitilty of these cards rose to about 50% however whatever they are using for their "hardware emulation" solution seems to be very unstable and prone to crashing because of the audio buffer is prone to desyncing often (bad for games with strict auto init style DMA like Tyrian and Epic pinball).

I know it's some kinda of PCI bus mastering technique but it's not as stable as what ESS Audiodrives' approach with their T-DMA tech.

Also, i never did find the proper datasheet for SX variant of this audio chipset, i am aware there is one floating around on the web but it doesn't fully show it's entire PCI config registers aside from basic line audio configuration.

Reply 45 of 58, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie

And if you are wondering about Win9x's DOS box compatibility, C-Media 's VxD driver completely bypasses their own hardware Sound Blaster hardware emulation and just stick to the usual virtualization techiniques like other PCI sound card vendors did at the time.

This solution under Windows DOS gaming usual yelded better compatibility.

Reply 46 of 58, by Ydee

User metadata
Rank Oldbie
Rank
Oldbie

Thank you, Stainlesscat, for explaining, so question (support VIA VT8237 line DDMA or not?) remain unanswered.

Reply 47 of 58, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie
Ydee wrote on Today, 13:08:

Thank you, Stainlesscat, for explaining, so question (support VIA VT8237 line DDMA or not?) remain unanswered.

As far as i read with those later VIA chipsets datasheet, VT8237a does not have any DDMA capabilities.

In fact, none of the later early to mid 2000's VIA chipsets do. (Newer pentium III and early AMD athlon chipsets VIA 8233/8235 to late pentium IV and later AMD Socket 754/939 VIA 8237/8251 southbridges)

Only the older Pentium II class era motherboards with VIA chipsets ever had DDMA. Some super socket 7 chipsets reused those same southbridge chipsets. (E.g. VIA VT82C686A and B variant)

Reply 48 of 58, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie

ALS4000, ESS Solo-1 and other PCI sound cards just happen to work with their proprietary tech because VIA chipsets weren't as restrictive for legacy ISA resources as later Intel I/O hub PCI chipsets such as ICH7. Although the latter would route most but all ISA resources through the LPC bus.

Reply 49 of 58, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie

There is a notiable exception regarding sound cards with their own technology for Sound blaster emulation, Aureal Vortex's hardware sound blaster emulation gets away with some later newer PCI bus restrictions because it's silicon works in tandem with software to get around those restrictions. Hence why a card like this would still run under DOS in a x79 server chipset with native PCI.

It's the only card that i know of which has a TSR driver that does most of the heavy lifting for IRQ and DMA resources without having to resorting to placing DOS in 32 protected mode and use virtualization features of the 386 and later processors.

Although if the PCI bus in question lacks any legacy range decoding like newer chipset with non native PCI buses, neither any of these PCI sound cards will work under DOS as they will fail to grab the I/O resources needed for a Sound Blaster to work.

Last edited by Stainlesscat on 2026-07-06, 19:40. Edited 3 times in total.

Reply 50 of 58, by aVd

User metadata
Rank Member
Rank
Member

I don't want to argue just for the sports here.

DDMA means "Distributed DMA", just like it is seen in the description of the box of a NOS AOpen CMI8738 sound card here: https://www.youtube.com/watch?v=oHKa-TE-U4Y&t=63s

Also there is a whole thread about CMI8738 and its DDMA dependency: Cmedia CMI8738 - maybe its Biggest Secret

Some useful info from my own experience: If SETAUDIO.COM is not resident in memory (no matter "low" or "high"), this means, that sound card's full initialization has failed, even if SETAUDIO throws some values for ports, IRQs, etc.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 51 of 58, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie
aVd wrote on Today, 14:52:
I don't want to argue just for the sport here. […]
Show full quote

I don't want to argue just for the sport here.

DDMA means "Distributed DMA", just like it is seen in the description of the box for a NOS AOpen CMI8738 sound card here: https://www.youtube.com/watch?v=oHKa-TE-U4Y&t=63s

Also there is a whole thread for CMI8738 DDMA here: Cmedia CMI8738 - maybe its Biggest Secret

Some useful info from my own experience: If SETAUDIO.COM is not resident in memory (no matter "low" or "high"), this means, that sound card's full initialization was failed, even if SETAUDIO throws some values for ports, IRQs, etc.

Yes, this was debunked many years ago as Aopen was one of the many companies that copy and paste features on other box labels haphazardly. It was truly a wild west then.

These same companies will also claim WSS on pci cards that never had this capability from the start.
Which is odd because no PCI card i'm aware of ever had Windows sound system backwards compatibility, which seems counter intuitively because of the 32 bit audio provided by the card natively.

Also no one arguing here, I'm only stating facts that were erected many years ago. Even kodi's post further supports this if you read even further through down his later posts confirming what he would later uncover about the C-Media family chips.

His whole post was about at first was to debunk the whole use of DDMA of any card without those said cards lacking any documentation. Thats why he would later say he wanted to create a DOS application to detect the presence of Distributed DMA (DDMA) on any chipset.

Then he would later uncover some unspecified feature within CMI8738 datasheet regarding intel's TX vs VX chipset. (I already discover this years ago via C-Media's internal ASIC documents that it had more so to do how the chipsets handle PCI bus mastering and IRQ routing logic and not so anything to do with DDMA. Coincidentally though the TX chipset does have DDMA and the VX does not but this is irrelvent here.) (If you mess the bit register like i did and run SETAUDIO under DOS, you'll get the same error i did with "PCI BUS MASTER ERROR!")

And yes i know... Distributed DMA is a type of PCI bus mastering feature but it's relegated mostly to specific chipsets that included it and only as host operator. "DDMA master"

C-Media themselves said they don't include any DDMA slave logic in their products brief unlike how Yamaha and their DS-XG did.

Last edited by Stainlesscat on 2026-07-06, 19:34. Edited 1 time in total.

Reply 52 of 58, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie
aVd wrote on Today, 14:52:
I don't want to argue just for the sports here. […]
Show full quote

I don't want to argue just for the sports here.

DDMA means "Distributed DMA", just like it is seen in the description of the box of a NOS AOpen CMI8738 sound card here: https://www.youtube.com/watch?v=oHKa-TE-U4Y&t=63s

Also there is a whole thread about CMI8738 and its DDMA dependency: Cmedia CMI8738 - maybe its Biggest Secret

Some useful info from my own experience: If SETAUDIO.COM is not resident in memory (no matter "low" or "high"), this means, that sound card's full initialization has failed, even if SETAUDIO throws some values for ports, IRQs, etc.

You should really check the product briefs when they released this sound card. It's on archive.org under their same domain they use today.

Reply 53 of 58, by aVd

User metadata
Rank Member
Rank
Member

Ok, AOpen lied about DDMA. Other companies lied too. We were mislead. Then why this C-Media sound card's SB emulation "does not like" some motherboards or chipsets?

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 54 of 58, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie
aVd wrote on Today, 16:01:

Ok, AOpen lied about DDMA. Other companies lied too. We were mislead. Then why this C-Media sound card's SB emulation "does not like" some motherboards or chipsets?

I apolgise if this might sound confusing, but i never said it "does not like" some chipsets or any at all.

I only mentioned that their custom hardware solution for Sound Blaster emulation does not work very well at all even if the DOS driver are fixed up.

As for compatibility for different chipsets?
It should just work out of the box but as said earlier, their solution is highly unstable and buggy.

Don't forget the slight variations of this card have. different feature sets from some supporting SB16 to some only having SBPRO with or without an FM Synthsizer.

Under linux PCItools, apparently the original cmi8738 and SX models are identical chips, whils't the LX and MX versions aren't remotely the same as the originals which would later explain the different ASIC datasheets.

I also forgot about the cmi8338, the precursor to the cmi8738 and their first ever PCI sound card. i have one and it also has the same hardware Sound Blaster emulation with the same quirks. I'm guessing they copy and pasted the silicon block and reused it for their later 8738 cards but never fully iron out the bugs. Just like before i had to patch the driver to get it fully functional and avoid setting the wrong bits for the CMI8338A as there is an CMI8338B with different PCI config registers. I own the "A" version of the card.

Reply 55 of 58, by aVd

User metadata
Rank Member
Rank
Member

I still have one PCChips motherboard with integrated CMI8330 audio chip (this one is very similar ISA variant) and IIRC it uses, if not the same, very similar DOS driver compared to CMI8738 one. I don't recall any sound bugs or problems with it in pure DOS back in the time, but more than a quarter of century passed since I lastly used it for DOS and win9x games, so I'll have to set it up and check, if CMI8330 is more stable compared to CMI8x38 audio cards. Maybe you're right and there's something wrong at hardware level with PCI variant's SB emulation.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 56 of 58, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie
aVd wrote on Today, 16:55:

I still have one PCChips motherboard with integrated CMI8330 audio chip (this one is very similar ISA variant) and IIRC it uses, if not the same, very similar DOS driver compared to CMI8738 one. I don't recall any sound bugs or problems with it in pure DOS back in the time, but more than a quarter of century passed since I lastly used it for DOS and win9x games, so I'll have to set it up and check, if CMI8330 is more stable compared to CMI8x38 audio cards. Maybe you're right and there's something wrong at hardware level with PCI variant's SB emulation.

C-Media CMI8330 chip is native ISA sound chip. It is one of the best Sound Blaster 16 clones, this card should also have WSS compatibility. CMI8338 and CMI8738 are PCI only and are the subject to this thread.

I recall that for some reason Soundpro, one of the tawianese manafacturers of chinese sound card makers; etched the word "PCI" on some of their ISA sound chip solutions in order to decieve customers that thought they were getting an integrated PCI sound card on their motherboard while in reality Soundpro lacked any PCI sound devices cheap enough to integrate to various PCchips computer until the release of CMI8338 in 1998.

Reply 57 of 58, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie

As for the OP answer, i would really just stick to VSBHDA or SBEMU with this sound card and use the FM synth passthrough mode to better use the onboard card's OPL clone. No driver patches or fixes will ever fix C-Media's Sound Blaster emulation. Just like others have said in the past. It's half-baked but even worst, it's half baken even in hardware silicon!

Reply 58 of 58, by aVd

User metadata
Rank Member
Rank
Member
Stainlesscat wrote on Today, 17:45:

C-Media CMI8330 chip is native ISA sound chip. It is one of the best Sound Blaster 16 clones, this card should also have WSS compatibility. CMI8338 and CMI8738 are PCI only and are the subject to this thread.

I recall that for some reason Soundpro, one of the tawianese manafacturers of chinese sound card makers; etched the word "PCI" on some of their ISA sound chip solutions in order to decieve customers that thought they were getting an integrated PCI sound card on their motherboard while in reality Soundpro lacked any PCI sound devices cheap enough to integrate to various PCchips computer until the release of CMI8338 in 1998.

Yes, it is SoundPro HT1869V+ marked chip, which is a copy or rebrand of CMI8330 and I know it is not PCI, but ISA sound solution. I will not call it a "SB clone", since it also emulates SB by using similar DOS drivers. And I want to see, if these DOS drivers are similar to ones for CMI8x37. I'm sure that the output from CMI8330 "mixer" looks very similar, if not the same, as the one for the CMI8738. Probably the initializer is very similar too.

What if CMI8738 driver/initializer SETAUDIO.COM is even more broken, than just two wrong bytes for proper CMI8738-LX/MX chips initialization? Do you read assembly code well? I'm very bad at this and I can't do much with disassembled code from SETAUDIO.COM and C3DMIX.COM.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!