Homebrew CMI 8738 drivers
Homebrew CMI 8738 drivers
Oct 16 2006, 16:50
Joined: 17-November 05
Member No.: 25818
I'm currently working on WDM drivers for soundcards based on the C-Media 8738/8768 chip. I plan to release the entire source code under a BSD-like license sometime in the future. I'm mainly interested in the S/PDIF connectivity because the DAC of the card sucks.
For testing, you need:
- a CMI 8738-MX/8768 based soundcard with S/PDIF (which are available for around 10-15 USD)
- Windows 2000/XP
Some of the features are:
- bitperfect S/PDIF output for 16bit 44.1/48/88.2/96kHz stereo signals through kernel streaming / dsound / waveout
- bitperfect AC3/DTS passthrough
- multi-channel output (that disables the S/PDIF output port unfortunately)
- recording support
- basic mixer support
- UART support (but disabled for now)
Apparently, the C-Media chip supports only 16 bit contrary to the claims in their specs. I haven't been able to get 24bit output even with the official drivers. But 96kHz output seems to work fine on the newer 8738 chips.
You can help me by posting your chip version and configuration, and testing whether 16bit/96kHz and 24bit/48kHz output through kernel streaming works (foobar2000, winamp have the necessary plugins). I'm specifically looking for people who have means to tell a 16bit S/PDIF stream from a 24bit stream.
When the driver loads, it prints the version of your chip to the kernel debugger. You need a running instance of DebugView (http://www.sysinternals.com/Utilities/DebugView.html) to catch the strings. In other words: open DebugView before updating the drivers.
Note that the drivers aren't signed, so you have to install them manually (Update Driver => Install from a list or specific location => Don't search. I will choose the driver to install => Continue anyway).
A 64-bit build has been successfully tested, and I'll probably release a build sometime soon.
Here are the download links for the latest version:
This post has been edited by d0gbert: Mar 14 2008, 20:30
Jan 2 2007, 01:29
Joined: 15-January 03
Member No.: 4586
Thanks for the advice! It's finally working again.
That c-media mixer had slipped in (probably signed driver preference of XP as you wrote) and then a lot of cleaning up with sysinternals autostarts.
Next, the Terratec card could not be recognized anymore as an 8738 device, but putting it in another PCI slot "fixed" this....
Winamp started playing then, still no sound, so disabling a lot of programs at startup and it was working (I'll find out later which was one of them was responsible).
Now I'm using an 8768 card which seems to work at 24bit, but the dac reports no sample rate... The winamp kernal log reports that a 24bits pin is created at the second attempt:
Attempting to CreateRenderPin with the following WaveFormat (2nd attempt):
Format.nChannels = 2
Format.nSamplesPerSec = 44100
Format.wBitsPerSample = 24
Format.nBlockAlign = 6
Format.nAvgBytesPerSec = 264600
Format.cbSize = 0
Samples.wValidBitsPerSample = 0
dwChannelMask = 00000000
OpenOutput: Successfully Created Pin, Format - BPS: 24 FREQ: 44100 NCHANNELS: 2 VALIDBPS: 0
Foobar also plays at 24bits and again the dac remains silent.
|Lo-Fi Version||Time is now: 10th March 2014 - 02:41|