Unsupported Voice Data
Hi, first of all thank you for your great work on CS16Client and the Xash3D-based engine!
I've been playing on some online servers where other players (especially those using the official Steam version of CS 1.6) use in-game voice chat. While this worked in the past on certain servers (possibly due to Speex codec being used), now I’m seeing this error:
Warning: unsupported voice data type: 4
After some digging, I found that this is related to Steam CS 1.6 switching to the OPUS voice codec (type 4 voice packets). It seems CS16Client and the current engine doesn’t support decoding OPUS-based voice data, and therefore any voice communication from Steam clients becomes inaudible.
Suggestion:
Would it be possible to add support for OPUS codec (voice data type 4), or at least provide a fallback/warning system that helps maintain compatibility with modern servers?
I understand this would involve linking to the OPUS library and updating the voice parsing logic. Even a basic implementation that allows decoding voice packets from Steam clients would be a huge improvement for cross-compatibility.
If needed, I’d be happy to help test or assist in any way.
Thanks again for your dedication to the project!
Have you updated to the latest xash3d-fwgs?
Voice data type 4 is SILK codec (https://github.com/FWGS/xash3d-fwgs/blob/cca1732245a6d90a13a14b05859d4132d3fe60ab/engine/client/voice.h#L54)
We don't know yet will we support it or not, because we didn't check are SILK decoder breaks compatibility with non-x86 platforms, also SILK decoder library license is pretty strange and we not sure if it worth to bring it to project.
Have you updated to the latest xash3d-fwgs?
Yes, I am using the latest version of both apps and follow every update.
Thanks for the info about SILK (voice type 4). I understand the licensing and cross-platform concerns.
Still, I’d love to see at least a descriptive warning or an optional plugin system for users who might want to experiment with voice codec support on their own.
Thanks for keeping this project alive — it's deeply appreciated by us retro gaming fans!
Voice data type 4 is SILK codec (https://github.com/FWGS/xash3d-fwgs/blob/cca1732245a6d90a13a14b05859d4132d3fe60ab/engine/client/voice.h#L54)
We don't know yet will we support it or not, because we didn't check are SILK decoder breaks compatibility with non-x86 platforms, also SILK decoder library license is pretty strange and we not sure if it worth to bring it to project.
It shouldn't break compatibility in any way, but licensing is suspicious, yeah. I don't think the official SILK SDK is considered to be free software. OPUS itself has SILK in it, but I'm not sure if it's compatible with the original SILK. Simplified OPUS SILK decoder is also part of FFmpeg, and it's licensed under LGPL.
The more I played the more I realized that this only happens with non-steam players (I play the game on servers with the goldsrc protocol on my android device) steam players don't have this problem and it's getting really annoying because a large community of the game is made up of non-steam users.