CNA-GAP-047: XACT wave-bank entries compressed as XMA/XMA2 or WMA produce no sound
Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.
WaveBank::GetSoundEffect returns null for XMA and WMA entries after printing a diagnostic to stderr, so cues using them are silent.
- Identifier
CNA-GAP-047- Category
- Functional gap
- Subsystem
- Audio & media
- Status
- Open
- Verified against
- CNA
009d40f5(009d40f5dd085c4e674d3479675fac84b12b3e0a) - Evidence basis
- Source-verified: read at TARGET, not executed
- Tests touching this area
- Yes: see Current tests
- Affected contract
- WaveBank loading and playback of XMA/XMA2 and WMA (xWMA) wave entries
Expected behaviour
XACT wave banks may carry PCM, ADPCM, xWMA (Windows) or XMA (Xbox 360) entries; XNA on Windows plays xWMA.
Actual behaviour at TARGET
WaveBank::GetSoundEffect in WaveBank.cpp (AUD-11-010/011) has no decoder for XMA/XMA2 or WMA and returns nullptr after writing “sound will be missing” to std::cerr; the comment calls it a permanent capability gap recorded as an accepted deviation in CHECKLIST.md.
Source locations
modules/audio/src/Xna/WaveBank.cpp— WaveBank::GetSoundEffect: XMA/WMA branch returns nullptr
Evidence
Checked by reading at 009d40f5; not executed.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
WaveBankTests.cpp pins the null result (GetSoundEffectForXmaEntryReturnsNullCleanly).
Regression test
If a decoder is added, a fixture per format.
Blast radius
XACT projects built with xWMA compression for Windows, or Xbox 360 banks with XMA; affected cues are silent with only a stderr line.
Workaround
Rebuild the wave banks with PCM or ADPCM compression.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- User guide
- Audio: XACT
- Deep dives
- XACT runtime: categories and limits
- Known issues
- Functional gap index