diff --git a/src/engine/platform/sound/es550x/es550x_alu.cpp b/src/engine/platform/sound/es550x/es550x_alu.cpp index c00638c2..7e1ec05c 100644 --- a/src/engine/platform/sound/es550x/es550x_alu.cpp +++ b/src/engine/platform/sound/es550x/es550x_alu.cpp @@ -91,7 +91,7 @@ void es550x_shared_core::es550x_alu_t::loop_exec() s32 es550x_shared_core::es550x_alu_t::interpolation() { // SF = S1 + ACCfr * (S2 - S1) - return m_sample[0] + ((bitfield(m_accum, std::min(0, m_fraction - 9), 9) * (m_sample[1] - m_sample[0])) >> 9); + return m_sample[0] + ((bitfield(m_accum, std::max(0, m_fraction - 9), 9) * (m_sample[1] - m_sample[0])) >> 9); } u32 es550x_shared_core::es550x_alu_t::get_accum_integer() diff --git a/src/gui/sampleEdit.cpp b/src/gui/sampleEdit.cpp index 779185af..42f9cb8f 100644 --- a/src/gui/sampleEdit.cpp +++ b/src/gui/sampleEdit.cpp @@ -684,7 +684,7 @@ void FurnaceGUI::drawSampleEdit() { if (endloopStart) { end=sample->loopStart; } - if (end>sample->samples) { + if (end>(int)(sample->samples)) { end=sample->samples; } sample->loopEnd=end; @@ -1203,7 +1203,7 @@ void FurnaceGUI::drawSampleEdit() { for (int i=0; iisLoopable() && ((scaledPos>=sample->loopStart) && (scaledPosloopEnd))) { + if (sample->isLoopable() && ((scaledPos>=sample->loopStart) && (scaledPos<(int)(sample->loopEnd)))) { data[i*availX+j]=bgColorLoop; } else { data[i*availX+j]=bgColor;