summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2021-04-20 00:14:27 -0400
committerGitHub <noreply@github.com>2021-04-20 00:14:27 -0400
commita1136ea0f9676981b5be1aa5cfbe4375e2ed5b14 (patch)
tree9c7c92300a79d011c8cd40bea9e716c9d8cb8a60 /src
parent0ea1e7620cc5fea1e651974442052ba9c52cdd13 (diff)
parentf725204e9df76505b59cd925a429fed1faa6ccf3 (diff)
Merge pull request #821 from Kurausukun/M4A_IS_DEAD
FIX CGBMODVOL FAKEMATCHING (WE DID IT REDDIT)
Diffstat (limited to 'src')
-rw-r--r--src/libs/m4a.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/libs/m4a.c b/src/libs/m4a.c
index 778abb268..5cbeb854f 100644
--- a/src/libs/m4a.c
+++ b/src/libs/m4a.c
@@ -846,18 +846,13 @@ void CgbModVol(struct CgbChannel *chan)
if ((soundInfo->mode & 1) || !CgbPan(chan))
{
chan->pan = 0xFF;
- chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4;
+ chan->eg = (u32)(chan->leftVolume + chan->rightVolume);
+ chan->eg /= 16;
}
else
{
- // Force chan->rightVolume and chan->leftVolume to be read from memory again,
- // even though there is no reason to do so.
- // The command line option "-fno-gcse" achieves the same result as this.
- #ifndef NONMATCHING
- asm("" : : : "memory");
- #endif
-
- chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4;
+ chan->eg = (u32)(chan->leftVolume + chan->rightVolume);
+ chan->eg /= 16;
if (chan->eg > 15)
chan->eg = 15;
}