diff --git a/src/engine/brrUtils.c b/src/engine/brrUtils.c index a147c6ae0..76645de7f 100644 --- a/src/engine/brrUtils.c +++ b/src/engine/brrUtils.c @@ -126,6 +126,8 @@ void brrEncodeBlock(const short* buf, unsigned char* out, unsigned char range, u break; } + if (nextDec>32767) nextDec=32767; + if (nextDec<-32768) nextDec=-32768; nextDec&=0x7fff; if (nextDec&0x4000) nextDec|=0xffff8000; diff --git a/src/engine/platform/sms.cpp b/src/engine/platform/sms.cpp index 0ce4c8361..41ef81ee0 100644 --- a/src/engine/platform/sms.cpp +++ b/src/engine/platform/sms.cpp @@ -498,6 +498,7 @@ void DivPlatformSMS::setFlags(const DivConfig& flags) { easyStartingPeriod=13; break; } + CHECK_CUSTOM_CLOCK; resetPhase=!flags.getBool("noPhaseReset",false); easyNoise=!flags.getBool("noEasyNoise",false); divider=16; @@ -568,7 +569,6 @@ void DivPlatformSMS::setFlags(const DivConfig& flags) { stereo=false; break; } - CHECK_CUSTOM_CLOCK; rate=chipClock/divider; for (int i=0; i<4; i++) { oscBuf[i]->rate=rate;