How to Update Your C-Media CMI8738/C3DX PCI Audio Device with CMI8738 PCI 6CH MX HRTF 3D Audio Driver
i have no idea what this is, so that shouldn't be too much of an issue. failing that, i can always ask around the forum, but i doubt anyone there has experience with the cmi8738. one thing i can tell you is that when i took a look at the correct port on your motherboard (the floppy drive port, assuming of course that this is a real floppy drive), i do not see any command or control bits. if anyone knows for certain what it is, that would be nice to know.
cmi8738 pci 6ch mx hrtf 3d audio driver download
what i'm looking for is a byte-to-word conversion routine. the routine i found references to port 220. the byte-to-word routine is used to convert bytes to words within the cmi8738 itself (e.g. to convert the fm signals to sample values). i think my driver overwrites the 0x42404 byte, which is what triggers the fm hardware.
i haven't tested my driver on an actual cmi card yet. obviously the codebase for the drivers is not the same as the drivers on the internet. maybe you could contribute a patch to the driver in order to get it working? if you did that, i would be more than happy to compile a regular driver.
there is no defined structure for the codec register values. there is a table mapping the codec#3 values (this should match the codec#2 bitmask in the card) to offsets in the builtin 3d positional audio. i don't know if this is correct, as i can't find any documentation about this.
the bits that you need to check are the last 4 bits of the cmp_sample_table array. you can calculate the sample value yourself by masking out the bits you don't need, then bitwise and'ing your 3-byte sample data with the resultant value.