From 20537d5af01ff4551ec5712c10ec6968fa8da189 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 5 Nov 2023 18:06:01 -0500 Subject: [PATCH] Amiga: one more accuracy fix --- src/engine/platform/amiga.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/engine/platform/amiga.cpp b/src/engine/platform/amiga.cpp index 67853d902..c9fd0e2a2 100644 --- a/src/engine/platform/amiga.cpp +++ b/src/engine/platform/amiga.cpp @@ -168,12 +168,12 @@ void DivPlatformAmiga::acquire(short** buf, size_t len) { // output if (!isMuted[i]) { - if (amiga.audVol[i]>=64) { + if ((amiga.audVol[i]&127)>=64) { output=amiga.nextOut[i]<<6; - } else if (amiga.audVol[i]<=0) { + } else if ((amiga.audVol[i]&127)==0) { output=0; } else { - output=amiga.nextOut[i]*volTable[amiga.audVol[i]][amiga.volPos]; + output=amiga.nextOut[i]*volTable[amiga.audVol[i]&63][amiga.volPos]; } if (i==0 || i==3) { outL+=(output*sep1)>>7; @@ -182,7 +182,7 @@ void DivPlatformAmiga::acquire(short** buf, size_t len) { outL+=(output*sep2)>>7; outR+=(output*sep1)>>7; } - oscBuf[i]->data[oscBuf[i]->needle++]=(amiga.nextOut[i]*MIN(64,amiga.audVol[i]))<<1; + oscBuf[i]->data[oscBuf[i]->needle++]=(amiga.nextOut[i]*MIN(64,amiga.audVol[i]&127))<<1; } else { oscBuf[i]->data[oscBuf[i]->needle++]=0; }