diff --git a/libsnes/bsnes/nall/dsp/resample/average.hpp b/libsnes/bsnes/nall/dsp/resample/average.hpp index 867b13bfe9..b6567a655d 100644 --- a/libsnes/bsnes/nall/dsp/resample/average.hpp +++ b/libsnes/bsnes/nall/dsp/resample/average.hpp @@ -50,7 +50,7 @@ void ResampleAverage::sample() { void ResampleAverage::sampleLinear() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -1); diff --git a/libsnes/bsnes/nall/dsp/resample/cosine.hpp b/libsnes/bsnes/nall/dsp/resample/cosine.hpp index 3363d5f67b..70e2fae775 100644 --- a/libsnes/bsnes/nall/dsp/resample/cosine.hpp +++ b/libsnes/bsnes/nall/dsp/resample/cosine.hpp @@ -21,7 +21,8 @@ void ResampleCosine::clear() { void ResampleCosine::sample() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); + for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -1); diff --git a/libsnes/bsnes/nall/dsp/resample/cubic.hpp b/libsnes/bsnes/nall/dsp/resample/cubic.hpp index bc4cc95502..ccea1d9591 100644 --- a/libsnes/bsnes/nall/dsp/resample/cubic.hpp +++ b/libsnes/bsnes/nall/dsp/resample/cubic.hpp @@ -21,7 +21,7 @@ void ResampleCubic::clear() { void ResampleCubic::sample() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -3); diff --git a/libsnes/bsnes/nall/dsp/resample/hermite.hpp b/libsnes/bsnes/nall/dsp/resample/hermite.hpp index 0cc9ba0e4d..5d0e267106 100644 --- a/libsnes/bsnes/nall/dsp/resample/hermite.hpp +++ b/libsnes/bsnes/nall/dsp/resample/hermite.hpp @@ -21,7 +21,7 @@ void ResampleHermite::clear() { void ResampleHermite::sample() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -3); diff --git a/libsnes/bsnes/nall/dsp/resample/linear.hpp b/libsnes/bsnes/nall/dsp/resample/linear.hpp index 3c2dc9e6e8..f65575034a 100644 --- a/libsnes/bsnes/nall/dsp/resample/linear.hpp +++ b/libsnes/bsnes/nall/dsp/resample/linear.hpp @@ -21,7 +21,7 @@ void ResampleLinear::clear() { void ResampleLinear::sample() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -1); diff --git a/libsnes/bsnes/nall/dsp/resample/nearest.hpp b/libsnes/bsnes/nall/dsp/resample/nearest.hpp index 14b401ebdb..cd4098f2de 100644 --- a/libsnes/bsnes/nall/dsp/resample/nearest.hpp +++ b/libsnes/bsnes/nall/dsp/resample/nearest.hpp @@ -21,7 +21,7 @@ void ResampleNearest::clear() { void ResampleNearest::sample() { while(fraction <= 1.0) { - real channel[dsp.settings.channels]; + real channel = alloca(dsp.settings.channels * sizeof(real)); for(unsigned n = 0; n < dsp.settings.channels; n++) { real a = dsp.buffer.read(n, -1);