MMC5: Reduced square channel volume (to match APU's square channels)

This commit is contained in:
Souryo 2017-04-26 22:24:38 -04:00
parent 211e6354c8
commit 51be9b825d
2 changed files with 4 additions and 2 deletions

View file

@ -76,7 +76,9 @@ protected:
_square2.TickEnvelope();
}
int16_t summedOutput = (_square1.GetOutput() + _square2.GetOutput()) * 4 + _pcmOutput;
//"The sound output of the square channels are equivalent in volume to the corresponding APU channels"
//"The polarity of all MMC5 channels is reversed compared to the APU."
int16_t summedOutput = -(_square1.GetOutput() + _square2.GetOutput() + _pcmOutput);
if(summedOutput != _lastOutput) {
APU::AddExpansionAudioDelta(AudioChannel::MMC5, summedOutput - _lastOutput);
_lastOutput = summedOutput;

View file

@ -206,7 +206,7 @@ int16_t SoundMixer::GetOutputVolume(bool forRightChannel)
return (int16_t)(squareVolume + tndVolume +
GetChannelOutput(AudioChannel::FDS, forRightChannel) * 20 +
GetChannelOutput(AudioChannel::MMC5, forRightChannel) * 40 +
GetChannelOutput(AudioChannel::MMC5, forRightChannel) * 43 +
GetChannelOutput(AudioChannel::Namco163, forRightChannel) * 20 +
GetChannelOutput(AudioChannel::Sunsoft5B, forRightChannel) * 15 +
GetChannelOutput(AudioChannel::VRC6, forRightChannel) * 75 +