VOGONS


Cmedia CMI8738 - maybe its Biggest Secret

Topic actions

Reply 40 of 60, by kodi

User metadata
Rank Newbie
Rank
Newbie

ok, figured out the discrepancy with VT82C586. So, there are actually 3 versions:

* VT82C586 - what I have and on what I tested. No datahsheet is publicly available, at least one that i can find. However, on my tests it's 100% sure no DDMA.

* VT82C586A - maybe it's the same as "VT82C586", i.e. when they made the "B" version they renamed it, I don't know, but datasheet is publicly available and no DDMA support is present. that explains why "VT82C586" doesn't have it either

* VT82C586B - datasheet is available and DDMA support is present. so, it looks like maybe VT82C586B is the first from VIA with DDMA. Unfortunately, until we can confirm it for sure in practice the datasheet cannot be trusted, but for the time being all of these explains why I have no DDMA on VT82C586.

Reply 41 of 60, by dionb

User metadata
Rank l33t
Rank
l33t
kodi wrote:
dionb wrote:

Out of interest - what is the added value of DDMA if the only chipsets supporting it are ones supporting regular ISA anyway?

that's not true, for example VT82C686 has close to excellent DDMA support and there are many motherboards with that chipset without any ISA slots. also, some PCI cards have interesting features - for example cmi8738 ability to output OPL3 via its digital outputs. all pci cards also have much better sound-to-noise ratio, i.e. are less noisy. last, but not least, because it's probably most important point - SiS chipsets have excellent, really excellent, on par with the benchmark 440bx, DDMA support and they supported that up to SiS963 Sound Bridge. So, there are really countless AthlonXP and Pentium 4 motherboards with SiS chipset that have DDMA.

I started working on this, on this project, exactly to get DDMA on my P4 SiS motherboard (no any vendor tool works on SiS) and today I have huge progress and get it running with 4DWave-NX based card - no any third party tools or tools from the vendors, just my small tool. So, today was a lot of run - running Impulse Tracker on 3+ GHz P4 system plus the sound is really clear, because just analog part of PCI card like 4DWave-NX is much better.

Ah, yes, SiS chipsets. My flagship P3 system has a P3-1400S on an ECS P6S5AT motherboard with SiS 635T chipset (single-chip, so no separate southbridge) and no ISA. And yes, that 4DWave-NX is great, very underrated does-everything-card with A3D support and SPDIF and Wavetable header.

P.S. VIA is hell though. VT82C686 as I mentioned close to excellent, but on VT82C586 I cannot get DDMA working and now I think their datasheet is wrong in fact it's similar problem as what I have with CMI8738 037D - I cannot write to the address in VT82C586 that is supposed to control DDMA. One more time Intel and SiS are equally good for DDMA on my tests, but with Intel you have DDMA only with ancient 430TX and 440BX, while with SiS you have it up to modern times. I mean motherboards with SiS963/SiS962, etc are quite modern compared to 430TX/440BX. However, no vendor tool supports those new SiS chipsets and so tools like the one I made today for 4DWave-NX are needed.

Could you share? Would very much like to see/hear it in action 😀

Reply 42 of 60, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++
kodi wrote:

i am 99.9% sure Kamerat is mistaken, because for FM801 mentioned I don't know (if I can find any datasheets I will check more), but the other one ALS4000 - has emulation mode that works even on later VIA South Bridges like VT8237/9 (tested by me), but that's not DDMA. So, Kamerat is welcomed to jump in and give more details.

Indeed, as with ESS Solo cards and YMF PCI cards, the ALS4000 and FM801 have both DDMA support and software driven legacy modes. I don't have an ALS or Forte card, so just like you I'd like to know what the output from the drivers is. Better yet, a tool to check for software handling would be good. If you can create one, that would be awesome.

The mystery continues...

All hail the Great Capacitor Brand Finder

Reply 43 of 60, by kodi

User metadata
Rank Newbie
Rank
Newbie
dionb wrote:

Could you share? Would very much like to see/hear it in action 😀

yes, i will do, it's all experimental mess at the moment, as i mentioned in a previous post maybe in 1-2 weeks or something i will be able to prepare something as proof-of-concept public release.

dionb wrote:

And yes, that 4DWave-NX is great, very underrated does-everything-card with A3D support and SPDIF and Wavetable header.

most interesting feature of 4DWave-NX to me is the Hardware WaveTable with SF2 support. So, 4DWave-NX is like SB Live, but with proper hardware DOS support. I still haven't fully reversed-engineered the SF2 support and don't know what is maximum size of the Sound Font they support, but it's all in hardware. So, 4DWave-NX is really kind of amazing - no OPL3, but it has DDMA and you can put it in SB2/SBPro/SB16 mode, SPDIF Output, Hardware SF2 MIDI. I guess even CMI8738 doesn't have DDMA, then you can connect 4DWave-NX and CMI8738 via their digital INs and OUTs and get everything - need to look more into such possibility.

gdjacobs wrote:

ESS Solo

has its own i8237-style inside the chip, they called that TDMA (Transparent DMA) as it doesn't depend on the i8237 inside the chipset, but more about this will be discussed here:

DDMA and PCPCI for Low IQ Individuals (Me included)

i want to go back to VIA chipsets. So, it seems to me that VT82C586 and VT82C586A are referred as "VIA Viper VP2" - no DDMA and to VT82C586B they refer as "VIA Viper VP3" and in the datasheet not only DDMA support is mentioned, but there is note that DDMA support is one of the differences between VT82C586A and VT82C586B.

So, current status is that VIA as Intel had only 2 chipsets with DDMA (Intel ones are 430TX and 440BX): VT82C586B and VT82C686 (which also has "A" and "B", but they all seems to have DDMA). now VT82C596 is unclear to me at the moment and it's potentially 3rd VIA chipset with DDMA - what 596 has for sure though is PC-PCI, which other seems not to have - if anyone has seen motherboard with VT82C586B or VT82C686 with SBLink header - please, tell us here.

SiS from the other hand released like I don't know - 10, 20 chipsets with DDMA, one more time - SiS DDMA works is on par with benchmark Intel 440BX. Unfortunately, I don't believe even it's that good SiS DDMA support had any use, as none of the vendor tools for the sound cards support it (as far as I can tell). Also, SiS have 2 different DDMA controls, the old chipsets:

SiS 5581/5582
SiS 5591/5595
SiS 530 /5595
SiS 600/5595
SiS 620/5595

use one way, then starting with SiS630 and ending with SiS963 another.

Please, note that SiS963 is where the problems begin - not DDMA problems, but general other one. So, on motherboards with SiS963, no matter if BIOS is AMI or Award, no matter if they are for Intel or AMD CPU, always only 1 PCI slot works for me with SATA PCI card. I think that has something to do with Edge and Level triggered IRQ, because that is how I can cause similar behavior on other motherboards. In any way, there is something very strange with PCI and SiS963 as some vendors even put one PCI slot on the motherboard using different color - not the usual white, but blue or green or yellow, other slots kept with white color. If anyone knows about that - please, tell us.

Additionally, SiS963L (i.e. the one with integrated LAN hence the "L") prevents of using EMM386 - i guess LAN ROM occupies the necessary memory. I even tried to modify a BIOS - unsuccessful, bricked the motherboard. So, I am not particular fan of SiS963 and avoid SiS963L due to the above. However, SiS962 is just perfect - I have not a single complain especially when it comes to use such motherboard with DDMA.

In any way, latest motherboards with DDMA are with SiS963 and Socket 754 for AMD - they are very rare though.

Reply 44 of 60, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++
kodi wrote:
gdjacobs wrote:

ESS Solo

has its own i8237-style inside the chip, they called that TDMA (Transparent DMA) as it doesn't depend on the i8237 inside the chipset, but more about this will be discussed here:

DDMA and PCPCI for Low IQ Individuals (Me included)

That sounds like a rather clever solution, although it did tend to work more favourably with VIA chipsets for whatever reason. Anyway, I'd still like to know if drivers for some of the cards are lying or if they have a quirky way to perform DMA sideband purely in hardware with chipsets that don't seem to support it (thus claiming DDMA support).

All hail the Great Capacitor Brand Finder

Reply 45 of 60, by yawetaG

User metadata
Rank Oldbie
Rank
Oldbie
kodi wrote:

Please, note that SiS963 is where the problems begin - not DDMA problems, but general other one. So, on motherboards with SiS963, no matter if BIOS is AMI or Award, no matter if they are for Intel or AMD CPU, always only 1 PCI slot works for me with SATA PCI card. I think that has something to do with Edge and Level triggered IRQ, because that is how I can cause similar behavior on other motherboards. In any way, there is something very strange with PCI and SiS963 as some vendors even put one PCI slot on the motherboard using different color - not the usual white, but blue or green or yellow, other slots kept with white color. If anyone knows about that - please, tell us.

On the motherboard with integrated CMI8738 I mentioned, which uses the SiS630E chipset, only one of the PCI slots (#3) can be used for any card because interrupt requests are shared between PCI slots and other system devices. PCI slot 3 shares its interrupt with the AMR slot (and this is set up as a physically shared slot, too), while PCI slots 1 and 2 share it with the on-board VGA and USB, respectively.

Reply 46 of 60, by The Serpent Rider

User metadata
Rank l33t
Rank
l33t

Intel had only 2 chipsets with DDMA (Intel ones are 430TX and 440BX)

That doesn't make sense. 430TX and 440BX use the same south bridge.

Get up, come on get down with the sickness
Open up your hate, and let it flow into me

Reply 47 of 60, by zyga64

User metadata
Rank Member
Rank
Member

Well, according to wikipedia BX uses PIIX4E while TX uses PIIX4.
So almost the same.

1) VLSI SCAMP /286@20 /4MB /CL-GD5422 /CMI8330
2) i420EX /486DX33 /16MB /TGUI9440 /YMF718+GUS
3) i440BX /P!!!750 /256MB /MX440 /SBLive!+Vibra16s

Reply 48 of 60, by Stretch

User metadata
Rank Member
Rank
Member

Kodi, I found a reference to a CMI8738 sound-card which supports TDMA TYPHOON ACOUSTIC SIX 5+1 SOUND CARD Do you think it has extra chips that provide TDMA?

Win11 - AMD Ryzen 9 3900 - 16 GB - GeForce RTX 2060S - Sound BlasterX AE5-Plus
Win98SE - ASRock 775i65G R3.0 - Celeron 2.2 GHz - 2 GB - GeForce FX5700 - Ensoniq 1373
Win98SE - Via Apollo Pro Mobo - Pentium II 233 - 256 MB - Voodoo 3 1000 - ESS Solo-1 1938

Reply 49 of 60, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie
gdjacobs wrote:

For some reason, Kamerat was able to initialize and use some cards on a vt8233 south bridge with DDMA mode. VIA may not test it, they don't advertise it, but they may not have deleted DDMA functionality from the ASIC, at least in the early V-Link south bridges.
PCI sound cards and Chipsets from various manufacturers...

I might also have been wrong about the ALS4000 running in DDMA mode on the VT8233. According to the datasheet (page 39 and 40) the ALS4000 should support four DMA emulation modes: DDMA, Legacy-DMA read, WB-DMA and "Burst mode for playback". Perhaps somtime I will retest and read out the PCI registers for DMA mode to get things right.

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 50 of 60, by Stretch

User metadata
Rank Member
Rank
Member

I replaced the processor on my P2 motherboard and can boot properly now. However, on my CMI8738 model 33, I was unable to write to PCI config register 0x40 using PT.EXE from PeriTool. The tool says it wrote 0x01 but if I read it again, it shows 0x00.

Win11 - AMD Ryzen 9 3900 - 16 GB - GeForce RTX 2060S - Sound BlasterX AE5-Plus
Win98SE - ASRock 775i65G R3.0 - Celeron 2.2 GHz - 2 GB - GeForce FX5700 - Ensoniq 1373
Win98SE - Via Apollo Pro Mobo - Pentium II 233 - 256 MB - Voodoo 3 1000 - ESS Solo-1 1938

Reply 51 of 60, by Stretch

User metadata
Rank Member
Rank
Member

I compared the memory before and after loading the driver for the CMI8738 in MS-DOS. I am able to get FM playback from a cold boot with no audio driver loaded in autoexec.bat after I poke the mem addresses, but no proper SFX playback. The driver configured for TX by itself it seems.

Sound effects in Wolf3d are glitchy and Duke3d and Doom report a conflict with my IRQ settings, so I get no sound effects at all. I tried ymfirq to move the sound card to IRQ 5 but the program failed because it can't find a Yamaha sound card.

I see that 0x83 was written to base address + 0x18 and 0x08 was written to base address + 0x22.

Observed mem difference when driver was loaded. I poke these addresses with the values with PeriTool because I don't remember how to do it with the debug command.

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)
Last edited by Stretch on 2019-11-21, 12:41. Edited 1 time in total.

Win11 - AMD Ryzen 9 3900 - 16 GB - GeForce RTX 2060S - Sound BlasterX AE5-Plus
Win98SE - ASRock 775i65G R3.0 - Celeron 2.2 GHz - 2 GB - GeForce FX5700 - Ensoniq 1373
Win98SE - Via Apollo Pro Mobo - Pentium II 233 - 256 MB - Voodoo 3 1000 - ESS Solo-1 1938

Reply 52 of 60, by appiah4

User metadata
Rank l33t++
Rank
l33t++

I can buy this CMI8738 card for very cheap, should I go ahead and do it for science?

5706c827992355f669ea28eb1de3f212.jpeg

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 53 of 60, by kodi

User metadata
Rank Newbie
Rank
Newbie

busy week, but let me post quick update. so, please, do not buy CMedia cards, because at least CMI8738 rev037 (i have) - DDMA doesn't work for me. Maybe, rev033 supports DDMA, but at least one forum member reported has such and let me first make small test tool and we get feedback.

So, currently, I had DDMA running (including on very powerful P4 system with SiS962 chipset motherboard) with "S3 Sound Vibes" sound card and with 4DWave-NX.

So, while S3 card has nothing interesting as features: no Digital Outs, S3FM, fixed wavetable by S3, but at least HW WaveTable - if someone reverse engineer the format, maybe I do it, potentially it can be replaced with something better, build-in S3 DAC. One very positive thing I can say for it is that S3 implementation of DDMA is the first one that I experienced without any weirdness - by "weirdness" I mean it does everything regarding DDMA as I expect from programing point of view. Also, it sound very nice (even S3 DAC is a little noisy) in Impulse Tracker, which I use to test if DDMA is working. I will release "s3ddma" tool soon. Last, but not least in DDMA mode, S3 reports itself as "SB DSP 3.02", which is SBPro card.

Now, 4DWave-NX is simply amazing feature-wise. As someone mentioned in this thread - probably most underrated audio chipset. It has HW SoundFont 2 support (I will definitively work on reverse-engineer it and be able to load 3rd party SF2 banks), external AC97 codec, Digital Output, 26-bit mixer (yes, 26-bit, it's not a typo), Waveblaster header. Basically, only missing thing is FM, but you can use for example Yamaha PCI card for FM and connect it to 4DWave-NX and that way even take use of that 26-bit mixer in 4DWave-NX. That way with 2 PCI cards you have everything and assuming its all DDMA probably close to 100% compatibility.

So, 4DWave-NX conforms to "DDMA Specification 6.0" - I don't know what that means, there is no information I can find about DDMA revisions and it's a little bit different than other DDMA for example S3. there are weirdness, but by that i mean aspects I don't understand. I made DDMA works perfect even not fully understand.

last, but not least, in DDMA mode 4DWave-NX is all-in-one PCI solution, because it can be set to works as "SB DSP 1.01" (SoundBlaster 1), "SB DSP 2.05" (SoundBlaster 2), "SB DSP 3.02" (SoundBlaster Pro) and "SB DPS 4.05", which is SoundBlaster 16. I believe that makes it the only DDMA card that can do SB16.

Again, soon I will release something as "nxddma" tool. Currently, still working on the chipset-side of the DDMA tools. Made VT82C686A working (VT82C686B is working out-of-the-box) and that turned out to be the same fix that makes VT82C596 working. So, that's new information at least to me - indeed VT82C596 has DDMA support.

The Serpent Rider wrote:

Intel had only 2 chipsets with DDMA (Intel ones are 430TX and 440BX)

That doesn't make sense. 430TX and 440BX use the same south bridge.

Intel chipsets are the only chipset, where DDMA is spread between North and South Bridge. That's why 440LX doesn't have DDMA support, even its South Bridge is also the same and has DDMA. I hope that makes sense now for you. Also, it's comprehensively documented in Intel datasheets. I will add more on this, when have time, here:
DDMA and PCPCI for Low IQ Individuals (Me included)

So, in short, that's why contrary to others with Intel, when we're talking about DDMA, we're talking about the North, not the South Bridge, because the North Bridge is what determines the DDMA support for Intel chipsets.

Kamerat wrote:
gdjacobs wrote:

For some reason, Kamerat was able to initialize and use some cards on a vt8233 south bridge with DDMA mode. VIA may not test it, they don't advertise it, but they may not have deleted DDMA functionality from the ASIC, at least in the early V-Link south bridges.
PCI sound cards and Chipsets from various manufacturers...

I might also have been wrong about the ALS4000 running in DDMA mode on the VT8233. According to the datasheet (page 39 and 40) the ALS4000 should support four DMA emulation modes: DDMA, Legacy-DMA read, WB-DMA and "Burst mode for playback". Perhaps somtime I will retest and read out the PCI registers for DMA mode to get things right.

most probably it was in "Legacy-DMA read", because that mode I tested on VT8239A and it's working. Anyway, I will try to make as I said "Swiss-army-knife" set of tools including tool to ask the sound card to tell you the exact mode it's using. besides clear out the situation with CMI8738, which is currently unclear and the audio chips I mentioned above, ALS4000 is my next in line.

Stretch wrote:

I compared the memory before and after loading the driver for the CMI8738 in MS-DOS. I am able to get FM playback from a cold boot with no audio driver loaded in autoexec.bat after I poke the mem addresses, but no proper SFX...

at the end I think CMI8738 will be usable only for FM, I kind of doubt even rev033 has DDMA even the cryptic texts of their datasheet i cited here are suggesting otherwise. anyway, let's test on rev033 and then we make final conclusion.

Reply 54 of 60, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++
kodi wrote:

most probably it was in "Legacy-DMA read", because that mode I tested on VT8239A and it's working. Anyway, I will try to make as I said "Swiss-army-knife" set of tools including tool to ask the sound card to tell you the exact mode it's using. besides clear out the situation with CMI8738, which is currently unclear and the audio chips I mentioned above, ALS4000 is my next in line.

Hmm... that's either a very weird and rare south bridge or a typo. 😲

Pretty sure the V-Link compatible SBs include the VT8231 (uncommon), VT8233, VT8235, VT8237, and VT8251 (including their various revisions).

All hail the Great Capacitor Brand Finder

Reply 55 of 60, by kodi

User metadata
Rank Newbie
Rank
Newbie
gdjacobs wrote:
kodi wrote:

VT8239A

Hmm... that's either a very weird and rare south bridge or a typo. 😲

of course a typo, i meant VT8237A

gdjacobs wrote:

Pretty sure the V-Link compatible SBs include the VT8231 (uncommon), VT8233, VT8235, VT8237, and VT8251 (including their various revisions).

i don't know what you understand by "compatible SBs", because none of the listed has neither DDMA, nor PC-PCI. So, from my perspective neither of them is really compatible. if you mean compatible with ALS4000 Legacy DMA Emulation - VT8251 is not compatible with ALS4000 Legacy DMA emulation - i have tested it before, but still have the motherboard and I can retest (in case i missed something). Also, I have the uncommon VT8231 on VIA C3 Epia board, not that uncommon to me.

Reply 56 of 60, by kodi

User metadata
Rank Newbie
Rank
Newbie

after huge few hours fight, i got "S3 Sonic Vibes" working in DDMA mode on VT82C586B.

So, yes, VT82C586 has no DDMA (double confirmed based on the datasheet and test in practice i've done), but VT82C586B has DDMA. There is no datasheet for VT82C586A and I have no access to motherboard with it. So, VT82C586A is unclear, but based on a note in VT82C586B datasheet most likely VT82C586A has no DDMA (i.e. it's like VT82C586 in that regard rather than like VT82C586B) and that means VT82C586B is VIA first chipset with DDMA.

It's amazing though, because S3 vendor tool "s3legacy.com" reports DDMA on VT82C586B, but set it wrongly, that's why it's not really working. So, at least with "S3 Sonic Vibes" it had never worked in DDMA on VT82C586B until now with my tool or unless there is not some newer "s3legacy.com" version that I don't have that fixes DDMA for VT82C586B. It really baffles my mind that S3 engineers added support for VT82C586B in "s3legacy.com", but it's like they have never tested it. I cannot imagine confusion from user side back in the day, when "s3legacy.com" tells you DDMA is up and running and in reality nothing works (that even today made me confused for 30 minutes or so and what was for average user 20 years ago, it's really unimaginable). I guess things like this made good technology like DDMA unpopular and everyone stick to ISA sound cards.

Currently, "S3 Sonic Vibes" is my benchmark card for DDMA, because I already made it working on all Intel, all VIA and all SiS chipsets with DDMA support. that means 430TX, 440BX, VT82C586B, VT82C596, VT82C596A, VT82C596B, VT82C686A, VT82C686B and SiS - SiS are so many I cannot even count or list them, but basically every SiS chipset starting with SiS5582 and ending with SiS963. Actually, that means for SiS is basically easier to list the chipset without DDMA, because they are only SiS551x, SiS5571, SiS964, SiS965, SiS966, SiS968 (I don't know if there is SiS967, but if there is then it's in the list too). Another amazing fact - SiS made almost no PCI chipset without DDMA, while other like Intel and VIA made almost no chipset with DDMA.

Reply 57 of 60, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++
kodi wrote:

i don't know what you understand by "compatible SBs", because none of the listed has neither DDMA, nor PC-PCI. So, from my perspective neither of them is really compatible. if you mean compatible with ALS4000 Legacy DMA Emulation - VT8251 is not compatible with ALS4000 Legacy DMA emulation - i have tested it before, but still have the motherboard and I can retest (in case i missed something). Also, I have the uncommon VT8231 on VIA C3 Epia board, not that uncommon to me.

V-Link was the point to point interconnect VIA used to link their north bridge and south bridge options once they grew beyond PCI. It retained pin compatibility but ramped in data transfer rate as time went on.

All hail the Great Capacitor Brand Finder

Reply 58 of 60, by Stainlesscat

User metadata
Rank Newbie
Rank
Newbie

Edit; here's the pdfs for reference of the technical datasheet i found awhile back. i hope they will come in use to this thread.

Attachments

  • Filename
    cmi8738 revisions datasheets.zip
    File size
    3.09 MiB
    Downloads
    69 downloads
    File comment
    updated zip archive for all datasheets to various revisions of cmi8738
    File license
    Public domain
Last edited by Stainlesscat on 2020-12-12, 00:45. Edited 9 times in total.