First post, by kodi
hi All, I am not sure from where to start this, but let's start from somewhere and without flooding you with too much information for the time being, but only with the essentials ...
So, in CMI8738 datasheet "CMI8738_spec_v06_reg.doc" that is floating around Internet, there seems to be 2 very curious entries:
DMA Slave Configuration Register(R/W) PCI Configuration address 40H
15:4 Slave Base Address 15-4. INTEL VX chipset seleted if Base Address 15:4=000h
Micellaneous Control Register Address 18H Bit(s) R/W Name Description 27 TX/VX Which motherboard to work with 0 VX chi […]
Micellaneous Control Register Address 18H
Bit(s) R/W Name Description
27 TX/VX Which motherboard to work with
0 VX chip sets.
1 TX chip sets.
Why PCI audio chip needs to have setting for selecting between Intel 430VX and 430TX chipset? What was the biggest change regarding PCI (audio) between those 2 chipsets?
the answer of course is "Distributed DMA" (DDMA) - 430VX doesn't have support for it (430VX is the last 430 series chipset without DDMA support) and 430TX was the first Intel 430 series chipset that has DDMA support.
That makes me believe, even it's not advertised anywhere (with one small exception - see below), that CMI8738 most likely (secretly) has DDMA support and it's just matter of setting correctly the above bits to enable it.
The only place I found where CMI8738 and DDMA are mentioned together is "Cobra AW850 Deluxe" sound card PDF - it's CMI8738-based card and AOpen wrote there:
Support Distributed DMA for legacy DMAC (8237) emulation
Honestly, when I saw that first, I thought it's just "copy and paste" leftover from all Yamaha sound cards AOpen made, which support DDMA and its just a mistake. Now, I am not that sure and I am almost convinced CMI8738 supports DDMA, it's just their DOS tool ("setaudio.com") doesn't include the proper support for it, i.e. enable it via the above bits.
Stay tuned... I will try to write small tool that enables DDMA on CMI8738 - hopefully it really supports DDMA and it will work, greatly improving compatibility of CMI8738 in DOS. However, I want to encourage everyone in the mean time to comment and even do such tool before I do it based on the information in the datasheet.
P.S. if you read CMI8738 datasheet, it has both SBPro and SB16 (selectable via configuration bit) plus as it was discussed many times before, old CMI8738 revisions can mix OPL3 with the sound and output it via Digital SPDIF/Coax Output, which bypass low-quality (and old) analog part of the card, which are all quite good features.