[Bug 46918] Call of Duty: Black Ops crashes when using FAudio

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Apr 4 17:12:07 CDT 2019


https://bugs.winehq.org/show_bug.cgi?id=46918

--- Comment #2 from Ethan Lee <flibitijibibo at gmail.com> ---
This one's really strange - there are lots of submix XAPOs that are fine, with
the crash happening immediately after the first time a source XAPO's parameters
are updated. All the effects are custom implementations made by Treyarch, so no
symbols to be found here.

The part that's weird is the Source DSP (which is what it's called), which has
a SetParameters implementation that behaves roughly like this:

// ParameterByteSize == 64
void SetParameters(void* pParameters, uint32_t ParameterByteSize)
{
    float* src = (float*) pParameters;
    float* dst = (float*) this->m_pParameterBlocks + (0 through 2);

    for (int i = 0; i < 12; i += 1)
    {
        dst[i + 1] = src[i + 4];
    }
}

This... doesn't make a lot of sense. The typical case is to simply copy
pParameters to m_pParameterBlocks with the intended ParameterByteSize, and this
just avoids that entirely. I feel like I'm either misinterpreting the assembly
or missing some huge detail in how this is meant to work, because these values
are what appear to derail the program (IXAPO::Process starts corrupting
things). Avoiding the SetParameters for this one XAPO allows everything to
function correctly.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list