SGB: Mute SGB sound if SPC is muted
This commit is contained in:
parent
a963b5fd61
commit
83ecd8544b
2 changed files with 8 additions and 2 deletions
|
@ -4,6 +4,7 @@
|
|||
#include "MemoryManager.h"
|
||||
#include "EmuSettings.h"
|
||||
#include "BaseCartridge.h"
|
||||
#include "Spc.h"
|
||||
#include "Gameboy.h"
|
||||
#include "GbApu.h"
|
||||
#include "GbPpu.h"
|
||||
|
@ -18,6 +19,7 @@ SuperGameboy::SuperGameboy(Console* console) : BaseCoprocessor(SnesMemoryType::R
|
|||
_console = console;
|
||||
_memoryManager = console->GetMemoryManager().get();
|
||||
_cart = _console->GetCartridge().get();
|
||||
_spc = _console->GetSpc().get();
|
||||
|
||||
_gameboy = _cart->GetGameboy();
|
||||
_ppu = _gameboy->GetPpu();
|
||||
|
@ -273,8 +275,10 @@ void SuperGameboy::MixAudio(uint32_t targetRate, int16_t* soundSamples, uint32_t
|
|||
_mixSampleCount += outCount;
|
||||
|
||||
int32_t copyCount = (int32_t)std::min(_mixSampleCount, sampleCount*2);
|
||||
for(int32_t i = 0; i < copyCount; i++) {
|
||||
soundSamples[i] += _mixBuffer[i];
|
||||
if(!_spc->IsMuted()) {
|
||||
for(int32_t i = 0; i < copyCount; i++) {
|
||||
soundSamples[i] += _mixBuffer[i];
|
||||
}
|
||||
}
|
||||
|
||||
int32_t remainingSamples = (int32_t)_mixSampleCount - copyCount;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
class Console;
|
||||
class MemoryManager;
|
||||
class BaseCartridge;
|
||||
class Spc;
|
||||
class Gameboy;
|
||||
class GbPpu;
|
||||
|
||||
|
@ -15,6 +16,7 @@ private:
|
|||
Console* _console = nullptr;
|
||||
MemoryManager* _memoryManager = nullptr;
|
||||
BaseCartridge* _cart = nullptr;
|
||||
Spc* _spc = nullptr;
|
||||
Gameboy* _gameboy = nullptr;
|
||||
GbPpu* _ppu = nullptr;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue