VOGONS


CMI8738 DOS drivers like to assign IRQ A

Topic actions

Reply 60 of 79, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie
NeoG_ wrote on 2026-07-06, 22:30:
Stainlesscat wrote on 2026-07-06, 17:51:

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!

Specifically fix it's PCI SB emulation - ISA cards with SB emulation work fine as you say

it's just this specific PCI sound card's ISA resource hardware SB emulation is no good, They should have just stick with software emulation like what Creative did with their cards.

Real ISA style Sound Blaster clone cards don't have to emulate anything unless we're talking about something like the IBM M'WAVE or AMD Interwave based ISA sound cards like the Gravis UltraSound Plug and Play. Gravis's SB emulation works pretty decently but the awful FM Synth makes it pretty unusable. PicoGUS makes this trivial as that emulates different sound cards in hardware on a raspberry PI directly on the ISA bus.

Reply 61 of 79, by aVd

User metadata
Rank Member
Rank
Member

I read the whole thread about the DDMA in CMI8738 chips again. User @kodi disappeared without trace from the forum and his research on DDMA in CMI8738 has been unfinished. He didn't share his experimenatal tool for DDMA initialization on the chipsets with DDMA support. It seams like he used CMI8738-SX (4 channels version) sound card for his tests.

I have two old datasheets "preliminary" versions (1.2 and 1.3) for CMI8738-SX and in ver. 1.3 the part with "DMA Slave Configuration Register(R/W) PCI Configuration address 40H" is missing. But this information appears again in the latest rev. 2.2 datasheet for CMI8738-SX. Very weird situation.

It is possible, that C-Media removed DDMA from later CMI8738-SX chip revisions, because "who will gonna use DOS nowadays (in 2001)?", but it is still there in first chip revisions and that's why they kept the "DMA Slave Configuration Register(R/W) PCI Configuration address 40H" part in the final datasheet revision.

The datasheets for CMI8738-LX/MX, that I have (rev. 1.5. rev. 2.1 and rev. 2.2), do not contain any information about "DMA Slave Configuration Register(R/W) PCI Configuration address 40H". So, it is possible, that 6 channel CMI8738 chips never supported DDMA.

There is also a possibility, that DDMA initialization for the CMI8738 sound cards is badly implemented in SETAUDIO.COM DOS driver, but I don't have the assembly skills and knowledge needed to check this out.

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 62 of 79, by aVd

User metadata
Rank Member
Rank
Member

I checked it and CMI8330 uses different initializer/driver and mixer, even if output and TUI looks same. CMI8330 mixer can not be used on CMI8738 cards.

I also made some tests with CMI8738-LX and MX sound cards in pure DOS. The results revealed, that there is DDMA dependency, since the SETAUDIO.COM shows emulated SB IRQ=5 only when motherboards with DDMA capable chipsets (like i440BX) are used. I'm still not sure, if this IRQ problem is, due to broken SETAUDIO.COM driver, as it reports emulated SB IRQ=5, but after it C3DMIX.COM still reports emulated SB IRQ=A (10) and CMTEST.EXE reports SB IRQ=11 (which matches PCI IRQ, but with correct SB I/O Port=220 and SB DMA=1) with no success in digital audio playback (only FM works fine). This is total mess.

So, I have two theories, which I can not check due to lack of skills in assembly code reading:
1) Software problem: SETAUDIO.COM is broken and reports correct emulated SB IRQ=5 with DDMA motherboards, but in reality it sets emulated SB IRQ=10, which is unusable, or don't set it at all. There is some chance, that C3DMIX.COM is also broken and always reports emulated SB IRQ=A (10);
2) Hardware problem: CMI8738 chips are internally broken by designs and emulated SB IRQ remains always set to 10, no matter what software initialization is applied.

Later (maybe tomorrow) I will make and share here some pictures as a proof for this.

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 63 of 79, by aVd

User metadata
Rank Member
Rank
Member

After some testing with couple of different motherboards and comparing to SB Live! gen. 2 (CT4760 ), I can confirm, that DOS compatibility for CMI8738-LX, CMI8738-MX and CT4760 sound cards is heavily chipset dependent. SB Live! CT4760 ic more DOS compatible, than CMI8738 and also the analog output from SB Live! is better.

Here are the results:
1) VIA Apollo MVP3 (NB: VT82C598MVP; SB: VT82C586B) super socket 7 board:
SB Live! CT4760 - works; CMI8738-LX/MX - works (emulated SB IRQ=5, which is right).

2) i430TX (NB: FW82439TX; SB: FW82371AB) socket 7 board:
SB Live! CT4760 - works; CMI8738-LX/MX - almost works (emulated IRQ initialization is wrong, but sound in WOLF3D.EXE somehow works; TR1 SETUP.EXE hangs).
This motherboard is supposed to have DDMA, but there are initializing problems for CMI8738.

3) VIA Apollo VPX (NB: VT82C585VPX + 2x VT82C587VP; SB: VT82C586B) socket 7 board:
SB Live! CT4760 - does not work; CMI8738-LX/MX - does not work.
Possible explanation for the problems here is, that this board has three chips for NB. @Kodi claims that VIA's DDMA is NB non-dependent, but who knows...

4) VIA Apollo Pro(/BX?) (NB: chip with glued heatsink; SB: VT82C596) slot 1 board:
SB Live! CT4760 - does not work; CMI8738-LX/MX - does not work.
Possible explanation for the problems here is, that this board PCB also comes with pin-compatible intel i440BX or ZX chipset. I don't know exactly what is hidden under the heatsink of the NB chip.

5) i440ZX (NB: 82443ZX; SB: FW82371EB) socket 370 board (it has integrated SB Vibra XV CT2511 sound, disabled from BIOS for tests) :
SB Live! CT4760 - does not work (SB DOS initializer restarts the PC); CMI8738-LX/MX - does not work.
Possible explanation for the problems here is lack of DDMA in this cut-down version of i440BX chipset or the integrated SB Vibra XV CT2511 sound, even if disabled from BIOS for tests still messes-up the things.

I can't figure out any clear DDMA support dependency from these results, but for sure DOS support in CMI8738 cards is more broken, than the one in SB Live! CT4760.

Important note about SB Live! cards: For normal SB Live! DOS initialization the driver must be loaded after MSCDEX and before SMARTDRV.

Conclusion: Don't go with "exotic" chipsets or motherboards with integrated sound chips, if you want pure DOS compatibility with PCI sound cards.

P.S. Almost forgot. CMTEST.EXE from CMI8330's driver package turned out to not work with CMI8738 cards - it always intercepts PCI IRQ as emulated SB IRQ. And I don't have any dedicated sound test utility for CMI8x38 cards.

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 64 of 79, by Ydee

User metadata
Rank Oldbie
Rank
Oldbie

That's a lot of work—thank you for the tests. The whole story surrounding CMI8738 is a real tangled mess: there are plenty of conflicting claims and sources online, as well as conflicting user experiences. According to some sources, the built-in FM synthesizer is found in the MX and LX versions; according to others, it is actually the SX. For some users, only music works in DOS; for others, only SFX; and for still others, nothing at all.

In Windows, the situation is a little better, but not everything works there either (I'm referring to DOS applications run from within the Windows environment - for me, Build games&Doom work as intended, Tomb Raider can't see the card. Same setting at A220, I5 D1 H1 T4, chipset i865&ICH5).

The dependence on the chipset used seems obvious and has been confirmed. We'll see what else we can come up with, but so far it doesn't look like the ideal PCI sound card for DOS.

Reply 65 of 79, by aVd

User metadata
Rank Member
Rank
Member

Hi, @Ydee,
My intention was to take a few pictures with slightly modified drivers, showing that emulated SB IRQ assigned to is mostly wrong, but instead I ended up testing three PCI sound cards (two C-Media CMI8738-MX and LX cards plus SB Live! card) on five different motherboards, which according to @Kodi's thread have to support DDMA. For my surprise with the first board I tested (the one with VIA Apollo MVP3 chipset) all the three sound cards worked just fine, so I proceeded with couple more boards, that were at hand.

From the results I've got, I can conclude, that it is possible, that DDMA in VIA chipsets is not only SB dependent, as @Kodi claims. This is confirmed by not s0 popular VIA Apollo VPX chipset with DDMA compatible SB chip and the strange VIA chipset, which is pin compatible to i440BX and i440ZX chipsets, which also has DDMA compatible SB chip. As for i440ZX chipset, being a cost reduced cut-down version of i440BX, it may really lack DDMA.

The most compatible was VIA Apollo MVP3 chipset, which has no problems with all three sound cards tested to be initialized correctly in DOS. And for some reason i430TX was not so compatible for CMI8738 cards, but they still worked with Wolfenstein 3D game, with some glitches. Also on i430TX board CMI8738 FM synthesis works flawlessly.

Now I can say, that if SB Live! card works fine in pure DOS for particular motherboard, there's a chance, that CMI8738 card with its native DOS driver will work too on the same motherboard.

And I also found out, that there's absolutely no reason to manually set in BIOS any "legacy" IRQ or DMA settings. Auto PCI/PnP configuration mode in BIOS works fine.

And I fully agree, that these C-Media CMI9738 PCI sound cards are far from "ideal sound cards" for DOS, but they're dirt-cheap - in price range with SB PCI solutions like CT4810, but C-Media cards has better FM synthesis and sometimes they tend to work 😀

P.S. I never tried FIXEPIC patchef, which comes with CMI8738 DOS drivers. Maybe it could give a better CMI8738 compatibility with some DOS games, if applied. Seems like it is mainly intended for solving problems with games form Epic (Mega)Games. IIRC there was a patch for SB Live! PCI sound cards glitches in Build engine games published by Ken Silverman. Did someone ever tried it, if It may also help with C-Media PCI cards?

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 66 of 79, by aVd

User metadata
Rank Member
Rank
Member

And this is how the things look on VIA Apollo MVP3 motherboard for both CMI8738-LX and MX sound cards.

BIOS reports CMI8738 audio card PCI IRQ was set to 11:

The attachment BIOS.jpg is no longer available

SETAUDIO.COM initialization is proper. PCI IRQ=0x0B (which is decimal 11, same value as the one from BIOS), Base I/O=0xE800 and Emulated SB IRQ=5:

The attachment SETAUDIO.jpg is no longer available

C3DMIX.COM reports correct Base I/O=0xE800 (same value as the one from SETAUDIO) and PCI IRQ=0x0B (which is decimal 11, same value as the one from BIOS and SETAUDIO), but for some unknown reason Emulated SB IRQ is reported as 0x0A (which is decimal 10) instead of 5. Probably there's some bug in C3DMIX SB IRQ detection, because this 0x0A value is not hardcoded in string:

The attachment C3DMIX.jpg is no longer available

"MEM /C /P" DOS command shows that, SETAUDIO.COM is resident in the upper memory and takes about 2 KB of memory, which means, that CMI8738's initialization went fine:

The attachment MEM.jpg is no longer available

And the PCICFG.EXE also shows matching values for vendor IDs, PCI IRQ=0x0B (which is decimal 11, same value as the one from BIOS, SETAUDIO and C3DMIX) and Base I/O=0xE800 (sane value as the one from SETAUDIO and C3DMIX). I joined parts from two pictures due to attachment number limit for post is five:

The attachment PCICFG.jpg is no longer available

I may attach the modified CMI8738 DOS driver files I'm using in another post. I fixed some improper messages, removed string hardcoded values for emulated SB like "I/O=220" and "DMA=1" and also used CMI8738-LX/MX initialization patch from @Stainlesscat.

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 67 of 79, by aVd

User metadata
Rank Member
Rank
Member

Here are the modified CMI8738-LS/MX DOS drivers I use :

The attachment CMI8738 modified drivers.zip is no longer available

And here is the new full CMI8738-LX/MX DOS driver install package with modified drivers and additional utilities (FIXEPIC, PLAY8738 and REMAPCMI):

The attachment CMI8738LX_MX-DOS-V211.zip is no longer available

This is all, that I can provide for C-Media CMI8738-LX/MX PCI sound cards. Disassembly and code analysis of the DOS drivers (both SETAUDIO.COM and C3DMIX.COM) is needed for further improvements.

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 68 of 79, by Ydee

User metadata
Rank Oldbie
Rank
Oldbie

Thank you for sharing your experiences and advice; it's helpful not just to me. We can therefore consider it confirmed that the card is fully functional in DOS applications, regardless of whether the SETAUDIO output lists SB IRQ 5 or 0A.

It's just a shame that this turned out to be the case with a motherboard equipped with an MVP3 chipset—those always have some ISA slots, so it's possible to use a much more suitable (and easier to configure) ISA sound card.
In my case, I need to get sound and music working in DOS applications on much newer chipsets in motherboards with only PCI slots. Because of a lack of space, I can only afford to have one additional computer (besides my daily PC), and I'm trying to use it to cover the period from Windows 98 with DOS all the way to Windows XP, which is more complicated.

I, too, managed to take a small step forward today: using an older driver, version 4.06.1088 (10/05/99), I managed to get the sound working in Tomb Raider as well. So far, it only works when I run the game from the Windows environment, but I can live with that—my goal is to play a working game on real hardware. As long as all my DOS games run properly in Windows, I'll be happy.
Based on a recommendation from a thread here, I originally installed driver version 4.06.1096 from 7/25/01, and I noticed that after installing it in Windows 98, C-Media Soft MIDI—which is included in older drivers—was missing. The MIDI software isn't very good, even though the old drivers include nearly 3 MB of wavetable DLS files. The FM synthesizer emulation (C-Media OPL2/OPL3) is much better; it's not that far off from the original Yamaha OPL3.
You can clearly hear the difference during the dxdiag test.

I'll keep digging into this and see if I can get it to run under pure DOS—that would be the ideal result.
By the way, have you seen this video? https://www.youtube.com/watch?v=dkanu26cKtk

Reply 69 of 79, by wbahnassi

User metadata
Rank Oldbie
Rank
Oldbie

Not sure if you came across my thread here:
My experience with CMI8738 and DOS

I was able to control the IRQs for the CMI8738 by "Reserving" them in the BIOS. Each time I reserve one slot, the IRQ assignment changes between the devices. First I disable COM ports and LPT and any other things I don't need. Then start reserving IRQs one by one and watch the results in both the table shown during boot, as well as what the CMI driver was reporting. My goal was to try and have both its PCI IRQ and SB IRQ to match at 5 or 7, as this was said to give the best compatibility.

BTW I find the FM quality of this chip quite spot on!

Turbo XT 12MHz, EGA, MFM HDD
Intel 386 DX-33, Speedstar 24X, SB 1.5, 1x CD
Intel 486 DX2-66, CL5428 VLB, SBPro 2, 2x CD
IBM BlueLightning 100MHz, CL5428, SB16, 4x CD
Intel Pentium 90, Matrox Millenium 2, SB16, 4x CD
HP Z400, Xeon 3.46GHz, YMF-744, RTX2060

Reply 70 of 79, by aVd

User metadata
Rank Member
Rank
Member

Hi, @Ydee,
I'll make some comments on your post.

Ydee wrote on 2026-07-11, 13:05:

Thank you for sharing your experiences and advice; it's helpful not just to me. We can therefore consider it confirmed that the card is fully functional in DOS applications, regardless of whether the SETAUDIO output lists SB IRQ 5 or 0A.

No, the IRQ for emulated SB should be set to 5 instead of 10 (0x0A) by SETAUDIO.COM. But to me, the mixer C3DMIX.COM always incorrectly reports this value set to 0x0A (10), which I think doesn't matter, since C3DMIX is not responsible for the card's basic initialization (or at least, the thing should work this way).

Ydee wrote on 2026-07-11, 13:05:

It's just a shame that this turned out to be the case with a motherboard equipped with an MVP3 chipset—those always have some ISA slots, so it's possible to use a much more suitable (and easier to configure) ISA sound card.

Yes, my motherboard with VIA Apollo MVP3 chipset has two ISA slots, but ISA sound cards are more expensive, so I see no problem, if PCI audio card could be used instead. And I prefer not to get in details about the working motherboard here, because there's always a "Phil's effect" on ebay prices 😉

Ydee wrote on 2026-07-11, 13:05:

In my case, I need to get sound and music working in DOS applications on much newer chipsets in motherboards with only PCI slots. Because of a lack of space, I can only afford to have one additional computer (besides my daily PC), and I'm trying to use it to cover the period from Windows 98 with DOS all the way to Windows XP, which is more complicated.

I fully, understand your case. Unfortunately, we do not have a reliable information which newer chipsets support DDMA. I can try s0ke tests with i81x Solano chipsets, if I found some spare time. I'm still not sure, if intel dropped DDMA support entirely right after the i440BX chipset was released.

Ydee wrote on 2026-07-11, 13:05:

I, too, managed to take a small step forward today: using an older driver, version 4.06.1088 (10/05/99), I managed to get the sound working in Tomb Raider as well. So far, it only works when I run the game from the Windows environment, but I can live with that—my goal is to play a working game on real hardware. As long as all my DOS games run properly in Windows, I'll be happy.
Based on a recommendation from a thread here, I originally installed driver version 4.06.1096 from 7/25/01, and I noticed that after installing it in Windows 98, C-Media Soft MIDI—which is included in older drivers—was missing. The MIDI software isn't very good, even though the old drivers include nearly 3 MB of wavetable DLS files. The FM synthesizer emulation (C-Media OPL2/OPL3) is much better; it's not that far off from the original Yamaha OPL3.
You can clearly hear the difference during the dxdiag test.

I started to look at the SETAUDIO.COM disassembled code and based on @kodi's and @Stretch's finding for what should be initialized, I think I found something wrong in the original CMI8738 DOS driver ver. 1.98 code. But I have to comment on this with @Stainlesscat, if he's willing to join the discussion again. Or I can publish here my concerns with hope for someone with better assembly skills to join. I know only three users here with good knowledge and skills in assembly reading/coding, but I don't want to bother them with this driver problems, since they're interested mostly in DOS software writing or BIOS modifications.

Could you share this older driver for me (use PM, if you prefer)? I'm using modified SETAUDIO.COM version 1.98 as a base and I want to compare some things in the initializer's code for older versions.

Ydee wrote on 2026-07-11, 13:05:

I'll keep digging into this and see if I can get it to run under pure DOS—that would be the ideal result.
By the way, have you seen this video? https://www.youtube.com/watch?v=dkanu26cKtk

Yes, I think I've watched this video a couple days ago and it's mostly about the SETAUDIO.COM patched by @Stainlesscat for LX/MX audio chips versions. I also use same patch for my modified driver. Thank you!

EDIT: Some small corrections in text and typos.

Last edited by aVd on 2026-07-12, 06:55. Edited 3 times in total.

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 71 of 79, by aVd

User metadata
Rank Member
Rank
Member
wbahnassi wrote on 2026-07-11, 13:38:
Not sure if you came across my thread here: My experience with CMI8738 and DOS […]
Show full quote

Not sure if you came across my thread here:
My experience with CMI8738 and DOS

I was able to control the IRQs for the CMI8738 by "Reserving" them in the BIOS. Each time I reserve one slot, the IRQ assignment changes between the devices. First I disable COM ports and LPT and any other things I don't need. Then start reserving IRQs one by one and watch the results in both the table shown during boot, as well as what the CMI driver was reporting. My goal was to try and have both its PCI IRQ and SB IRQ to match at 5 or 7, as this was said to give the best compatibility.

BTW I find the FM quality of this chip quite spot on!

Hi, @wbahnassi,
I know, that we can manually reserve PCI IRQs form the BIOS, but it is not always a must, like I thought before. And still there are cases in which even the manual BIOS setting doesn't work with CMI8738 DOS driver, but sometimes (like in my case with Apollo MVP3 board) it works with "auto" IRQ setting mode in the BIOS, when BIOS hits IRQ=5 without any manual settings.

I also like C-Media's FM synthesis. It is better than SB Live!'s software solution (I don't want to mention their own hardware CQM "solution"), which was taken from from Ensoniq, and that's why I want more reliable DOS driver for CMI8738 cards 😉

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 72 of 79, by aVd

User metadata
Rank Member
Rank
Member

It seems like no one is interested in further DOS driver improvement. But I will share what I found.

In the thread about CMI8738's DDMA "secret" both @kodi and @Stretch revealed what values have to be written to some control register addresses for proper sound card initialization under DOS:

kodi wrote on 2019-11-12, 12:46:
[…]
Show full quote
write 0x0e to (base address + 0x04)
write 0x08 to (base address + 0x1a)
write 0x03 to (base address + 0x18)
write 0x10 to (base address + 0x16)
write 0x05 to (base address + 0x21)
write 0x01 to (base address + 0x27)
Stretch wrote on 2019-11-21, 12:15:
[…]
Show full quote
write 0x0e to (base address + 0x04)
write 0x08 to (base address + 0x1a)
write 0x83 to (base address + 0x18)
write 0x10 to (base address + 0x16)
write 0x05 to (base address + 0x21)
write 0x08 to (base address + 0x22)
write 0x01 to (base address + 0x27)

With my basic assembly skills I found, that in CMI8738 driver version 1.98 the value for register 0x21 is not 5, but 4. This is what my disassembler shows as code (comment on first three lines are added by me):

mov	dh,cs:data_20	; data_20 seems like BASE ADDRESS var.
mov dl,21h ; seems like BASE ADDRESS + 21h
mov al,4 ; IS THIS WRONG VALUE???
out dx,al ; port 21h, 8259-1 int comands

Seems like nobody (including me) was bothered to check the code according to the CMI8738 documentation. The driver's assembly code needs full review.

Is there anyone around, who's better than me at reading assembly code and is willing to help?

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 73 of 79, by Ydee

User metadata
Rank Oldbie
Rank
Oldbie

Hi aVd and wbahnassi,

thank you very much for your interest and for trying to help, I appreciate it. Of course, I can share older versions of the drivers that I managed to dig up online; they're attached below.

When it comes to programming and editing code, that's completely beyond me—I'm just a BFU.

I read through wbahnassi's entire thread. In the BIOS, I always disable the COM and LPT ports because I don't use them, and if possible, I assign IRQ 5 to the PCI sound card. That's also the case here on the Gigabyte 8i775GME-RH motherboard with i865 & ICH5 (which, according to online sources, should support DDMA).
SETAUDIO returns the correct A220 I5 D1 T4 output, and the PCI IRQ is set to 5 (I also tried different values to avoid conflicts with legacy devices—this was mentioned in the bug fixes for some driver versions), but I still can't get SFX to run in DN3D (and others) in pure DOS. An error message about a missing or conflicting DMA always appears. FM works. When I run the same games from Windows, everything works perfectly.

To make matters even more confusing, both SFX and FM worked flawlessly in Doom on a board with a VIA VT8237A southbridge in pure DOS, even though, according to some sources, this southbridge does not support DDMA. In Build games, the same DMA conflict message appears.

I know, for DOS, I’d need a slower PC, ideally with ISA slots for sound; for Windows 98, a faster one; and for XP, the fastest one available—I’m trying to combine all of this into a single machine, so it’ll come at the cost of many compromises, but I’d like to get authentic DOS sound from a PCI card. I couldn’t find an ESS Solo or a Yamaha here, so I’m trying what I have on hand: Live!, Audigy, ESS Maestro, ALS300, and CMI8738—of these, only the last two seem to be suitable for my purpose.
The Creative SB16 emu isn't all that bad, but it sounds a little too artificial to me. The FM sound of the CMI8738 and ALS300 seems more authentic, rawer, and closer to the Yamaha OPL.

Reply 74 of 79, by aVd

User metadata
Rank Member
Rank
Member

Hi, @Ydee,
And thank you very much for the old version drivers! These will help me with code analysis in the part with registers settings.

And one note: Mind, that the PCI IRQ for these sound cards (with emulated SB compatibility) is not the same as the IRQ needed for SB emulation. So, it's not a good practice to assign IRQ 5 as PCI sound card's iIRQ. The best scenario is IRQ 5 to be free for emulated SB assignment by the sound card's driver/initializer. See the picture, I published in my previous post about working combination of hardware and settings (PCI IRQ is 11 and emulated SB is set by the driver to 5 and this was achieved without any manual settings in the BIOS, just "auto" PCI/PnP configuration):

file.php?id=245394&mode=view

Now I have to disassemble these older drivers to see if I could find any major differences in card's initialization code...

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 75 of 79, by Ydee

User metadata
Rank Oldbie
Rank
Oldbie

@aVd,

no way, during testing, I tried many different combinations, and none of them were 100% successful. The driver bugfix list mentions

ver 4.06.1071 07/15/99
1. Prevent conflict when an audio device shares the same IRQ with a legacy device.

So even if the PCI audio and SBemu have the same IRQ, it shouldn't be a problem.

Reply 76 of 79, by aVd

User metadata
Rank Member
Rank
Member

Ok, @Ydee, on your pictures the IRQs are set as follows:
1) PCI IRQ=10, SB IRQ=10;
2) PCI IRQ=11, SB IRQ=5;
3) PCI IRQ=5, SB IRQ=5;
4) PCI IRQ=9, SB IRQ=9.

I'm guessing, that only 2) and 3) are working combinations. And 3) confirms your claim, that there's no problem if PCI IRQ = SB IRQ = 5. But the main problem remains: the buggy DOS initializer/driver SETAUDIO.COM.

Which of your attachments contains the driver version version 4.06.1096 - Dosdrv.7z or DOS.7z?

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 77 of 79, by wbahnassi

User metadata
Rank Oldbie
Rank
Oldbie

I have both ICH4 and ICH5-based motherboards. I will say that ICH4 has DDMA and ICH5 doesn't. I say that because I wanted to get an Audigy2 ZS card working under DOS on both machines.. it worked on the ICH4 and failed on ICH5.

Turbo XT 12MHz, EGA, MFM HDD
Intel 386 DX-33, Speedstar 24X, SB 1.5, 1x CD
Intel 486 DX2-66, CL5428 VLB, SBPro 2, 2x CD
IBM BlueLightning 100MHz, CL5428, SB16, 4x CD
Intel Pentium 90, Matrox Millenium 2, SB16, 4x CD
HP Z400, Xeon 3.46GHz, YMF-744, RTX2060

Reply 78 of 79, by Ydee

User metadata
Rank Oldbie
Rank
Oldbie

@aVd:

None, as 4-06.1096 is from 2001 and those two DOS drivers are from 1999 and 2000. Want you even this from 2001? See attachement.

@wbahnassi:

Jesus, no! I'm trying what's probably my sixth or seventh config in the hope that it'll work this time, and this isn't good news: I was hoping that the ICH5 supports DDMA and that sound might work in DOS. Although we don’t have confirmation that the CMI8738 uses DDMA to function properly in DOS, based on @aVd’s findings with a chipset that has confirmed DDMA support, it looks that way.
I have an nForce3 250 motherboard (s.754) here that doesn’t support DDMA or NMI (according to online sources), and yet I managed to get functional SB16 emulation running on it under W98SE for both Live! and Audigy 1/2, so DOS games ran correctly with sound (again, launched from the Windows environment). So I was kind of hoping we could crack this here too, and that sound on the CMI would eventually work even in pure DOS. But that's okay—as long as it works when I run it in WinDosBox, I'll be happy.

Reply 79 of 79, by aVd

User metadata
Rank Member
Rank
Member
wbahnassi wrote on 2026-07-12, 13:26:

I have both ICH4 and ICH5-based motherboards. I will say that ICH4 has DDMA and ICH5 doesn't. I say that because I wanted to get an Audigy2 ZS card working under DOS on both machines.. it worked on the ICH4 and failed on ICH5.

Hi, @wbahnassi,
This is a good clue. But can you test ICH4 and ICH5 motherboards with CMI8738 sound card too? Just in case, to be sure.

Ydee wrote on 2026-07-12, 14:34:

None, as 4-06.1096 is from 2001 and those two DOS drivers are from 1999 and 2000. Want you even this from 2001? See attachment.

Thanks! I'll see, if this is not the same latest DOS driver version 1.98, which I use as a base for my experiments.

P.S. Just checked the driver from your Dosdrv2001.7z attachment and it contains SETAUDIO version 1.97, which is also slightly older than the one I use (version 1.98 patched). I think, I don't have this one, thank you!

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!