forked from Mirror/Ryujinx
Amadeus: Allow out of bound read on empty delay lines (#2223)
This allows to handle an OOB with delay lines when DelayTimeMax = 0. On real hardware, it will end up reading garbage at the given user work buffer address. As we do not use those buffers and allocate them ourself for simplicy, this could possibly cause a crash. Proposed solution here is to only increase the size of _workBuffer by one like what is done in DelayLineReverb3d already. This fixes FEZ. (Ryujinx/Ryujinx-Games-List#3526)
This commit is contained in:
parent
38be18ef2a
commit
d23511c25c
1 changed files with 1 additions and 1 deletions
|
@ -33,7 +33,7 @@ namespace Ryujinx.Audio.Renderer.Dsp.Effect
|
||||||
{
|
{
|
||||||
_sampleRate = sampleRate;
|
_sampleRate = sampleRate;
|
||||||
SampleCountMax = IDelayLine.GetSampleCount(_sampleRate, delayTimeMax);
|
SampleCountMax = IDelayLine.GetSampleCount(_sampleRate, delayTimeMax);
|
||||||
_workBuffer = new float[SampleCountMax];
|
_workBuffer = new float[SampleCountMax + 1];
|
||||||
|
|
||||||
SetDelay(delayTimeMax);
|
SetDelay(delayTimeMax);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue