Win32 - better sound bypassing during turbo while muteturbo is checked.

This commit is contained in:
adelikat 2008-12-19 05:51:34 +00:00
parent 982facdad7
commit dde6132ded
3 changed files with 18 additions and 6 deletions

View File

@ -1,4 +1,5 @@
---version 2.0.4 yet to be released---
18-dec-2008 - adelikat - win32 - turbo bypasses sound better if muteturbo is checked
18-dec-2008 - shinydoofy - sdl - fixed compiling errors for SDL due to r1037
18-dec-2008 - adelikat - win32 - fullscreen mode fixed (both enters and returns to fullscreen just fine)
16-dec-2008 - adelikat - win32 - debugger - added "Restore original window size" button

View File

@ -692,7 +692,8 @@ doloopy:
else
{
frameSkipCounter--;
skippy = 1;
if (muteTurbo) skippy = 2; //If mute turbo is on, we want to bypass sound too, so set it to 2
skippy = 1; //Else set it to 1 to just frameskip
}
}

View File

@ -544,6 +544,8 @@ void UpdateAutosave(void);
///Skip may be passed in, if FRAMESKIP is #defined, to cause this to emulate more than one frame
void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int skip)
{
//skip initiates frame skip if 1, or frame skip and sound skip if 2
int r,ssize;
JustFrameAdvanced = false;
@ -581,8 +583,8 @@ void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int ski
if(geniestage!=1) FCEU_ApplyPeriodicCheats();
r = FCEUPPU_Loop(skip);
ssize=FlushEmulateSound();
if (skip != 2) ssize=FlushEmulateSound(); //If skip = 2 we are skipping sound processing
#ifdef WIN32
UpdateCheatList();
UpdateTextHooker();
@ -594,9 +596,17 @@ void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int ski
timestamp = 0;
*pXBuf=skip?0:XBuf;
*SoundBuf=WaveFinal;
*SoundBufSize=ssize;
if (skip == 2) //If skip = 2, then bypass sound
{
*SoundBuf=0;
*SoundBufSize=0;
}
else
{
*SoundBuf=WaveFinal;
*SoundBufSize=ssize;
}
if (EmulationPaused&2 && ( !frameAdvanceLagSkip || !lagFlag) )
//Lots of conditions here. EmulationPaused&2 must be true. In addition frameAdvanceLagSkip or lagFlag must be false
{