diff --git a/src/engine/platform/amiga.cpp b/src/engine/platform/amiga.cpp index c3883826..5f89102d 100644 --- a/src/engine/platform/amiga.cpp +++ b/src/engine/platform/amiga.cpp @@ -344,13 +344,8 @@ void DivPlatformAmiga::rWrite(unsigned short addr, unsigned short val) { } void DivPlatformAmiga::updateWave(int ch) { - if (chan[ch].useWave) { - for (int i=0; igetIns(chan[c.chan].ins,DIV_INS_AMIGA); @@ -703,6 +707,7 @@ void DivPlatformAmiga::notifyWaveChange(int wave) { for (int i=0; i<4; i++) { if (chan[i].useWave && chan[i].wave==wave) { chan[i].ws.changeWave1(wave); + chan[i].updateWave=true; } } } diff --git a/src/engine/platform/amiga.h b/src/engine/platform/amiga.h index a34feea8..f2f7fe95 100644 --- a/src/engine/platform/amiga.h +++ b/src/engine/platform/amiga.h @@ -31,7 +31,7 @@ class DivPlatformAmiga: public DivDispatch { int audSub; unsigned char volPos; int sample, wave; - bool useWave, setPos, useV, useP, dmaOn, audDatClock, writeVol; + bool useWave, setPos, useV, useP, dmaOn, audDatClock, writeVol, updateWave; DivWaveSynth ws; Channel(): SharedChannel(64), @@ -50,7 +50,8 @@ class DivPlatformAmiga: public DivDispatch { useP(false), dmaOn(false), audDatClock(false), - writeVol(true) {} + writeVol(true), + updateWave(true) {} }; Channel chan[4]; DivDispatchOscBuffer* oscBuf[4];