From ad55e6f7289ca6be9c570a66af6c90b9031c3039 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 17 Oct 2023 18:11:12 -0500 Subject: [PATCH] ES5506: fix getPan --- src/engine/platform/es5506.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/engine/platform/es5506.cpp b/src/engine/platform/es5506.cpp index b93f0c163..64aca0be5 100644 --- a/src/engine/platform/es5506.cpp +++ b/src/engine/platform/es5506.cpp @@ -1057,7 +1057,11 @@ DivMacroInt* DivPlatformES5506::getChanMacroInt(int ch) { } unsigned short DivPlatformES5506::getPan(int ch) { - return ((chan[ch].lVol>>4)<<8)|(chan[ch].rVol>>4); + float expL=255.0f*pow(((float)(chan[ch].resLVol>>4))/4095.0f,4.0f); + float expR=255.0f*pow(((float)(chan[ch].resRVol>>4))/4095.0f,4.0f); + if (expL>255.0f) expL=255.0f; + if (expR>255.0f) expR=255.0f; + return (((unsigned int)expL)<<8)|((unsigned int)expR); } void DivPlatformES5506::reset() {