diff --git a/src/engine/platform/nes.cpp b/src/engine/platform/nes.cpp index a91f7827e..a2cb58abb 100644 --- a/src/engine/platform/nes.cpp +++ b/src/engine/platform/nes.cpp @@ -145,7 +145,9 @@ void DivPlatformNES::tick() { if ((chan[i].prevFreq>>8)!=(chan[i].freq>>8) || i==2) { apu_wr_reg(0x4003+i*4,0xf8|(chan[i].freq>>8)); } - chan[i].prevFreq=chan[i].freq; + if (chan[i].freq!=65535 && chan[i].freq!=0) { + chan[i].prevFreq=chan[i].freq; + } } if (chan[i].keyOn) chan[i].keyOn=false; if (chan[i].keyOff) chan[i].keyOff=false; diff --git a/src/engine/platform/nes.h b/src/engine/platform/nes.h index 490971c2b..5d61b9b81 100644 --- a/src/engine/platform/nes.h +++ b/src/engine/platform/nes.h @@ -28,6 +28,7 @@ class DivPlatformNES: public DivDispatch { keyOff(false), inPorta(false), vol(15), + outVol(15), wave(-1) {} }; Channel chan[5]; diff --git a/src/engine/platform/sms.h b/src/engine/platform/sms.h index eeaed1217..85af8dbfb 100644 --- a/src/engine/platform/sms.h +++ b/src/engine/platform/sms.h @@ -23,7 +23,8 @@ class DivPlatformSMS: public DivDispatch { freqChanged(false), keyOn(false), keyOff(false), - vol(15) {} + vol(15), + outVol(15) {} }; Channel chan[4]; unsigned char snNoiseMode;