From 8283d46e7d379a3c274eeed6642c4473837c3792 Mon Sep 17 00:00:00 2001 From: cam900 Date: Mon, 2 May 2022 21:19:10 +0900 Subject: [PATCH] Disable reversed playback checkbox when using sample map Clamp per-channel OSC output, Reduce warning --- src/engine/platform/es5506.cpp | 8 ++++---- src/gui/insEdit.cpp | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/engine/platform/es5506.cpp b/src/engine/platform/es5506.cpp index 180c0d3f..5b84c14c 100644 --- a/src/engine/platform/es5506.cpp +++ b/src/engine/platform/es5506.cpp @@ -167,7 +167,7 @@ void DivPlatformES5506::acquire(short* bufL, short* bufR, size_t start, size_t l bufL[h]=es5506.lout(0); bufR[h]=es5506.rout(0); for (int i=0; i<32; i++) { - oscBuf[i]->data[oscBuf[i]->needle++]=chan[i].oscOut; + oscBuf[i]->data[oscBuf[i]->needle++]=(short)(chan[i].oscOut&0xffff); } } } @@ -179,7 +179,7 @@ void DivPlatformES5506::e_pin(bool state) if (es5506.voice_update()) { chan[prevChanCycle].lOut=es5506.voice_lout(prevChanCycle); chan[prevChanCycle].rOut=es5506.voice_rout(prevChanCycle); - chan[prevChanCycle].oscOut=(chan[prevChanCycle].lOut+chan[prevChanCycle].rOut)>>5; + chan[prevChanCycle].oscOut=CLAMP_VAL((chan[prevChanCycle].lOut+chan[prevChanCycle].rOut)>>5,-32768,32767); if (es5506.voice_end()) { if (prevChanCycle<31) { for (int c=31; c>prevChanCycle; c--) { @@ -404,11 +404,11 @@ void DivPlatformES5506::tick(bool sysTick) { } } if (chan[i].std.ex8.had) { - if (chan[i].envelope.k1Slow!=(chan[i].std.ex8.val&1)) { + if (chan[i].envelope.k1Slow!=(bool)(chan[i].std.ex8.val&1)) { chan[i].envelope.k1Slow=chan[i].std.ex8.val&1; chan[i].envChanged.k1Ramp=1; } - if (chan[i].envelope.k2Slow!=(chan[i].std.ex8.val&2)) { + if (chan[i].envelope.k2Slow!=(bool)(chan[i].std.ex8.val&2)) { chan[i].envelope.k2Slow=chan[i].std.ex8.val&2; chan[i].envChanged.k2Ramp=1; } diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index c979093a..0cb74591 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -2499,7 +2499,9 @@ void FurnaceGUI::drawInsEdit() { } ImGui::EndCombo(); } + ImGui::BeginDisabled(ins->amiga.useNoteMap||ins->amiga.useWave); P(ImGui::Checkbox("Reversed playback",&ins->amiga.reversed)); + ImGui::EndDisabled(); P(ImGui::Checkbox("Use wavetable (Amiga only)",&ins->amiga.useWave)); if (ins->amiga.useWave) { int len=ins->amiga.waveLen+1;