diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index ad7d0105..bd844b9c 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -550,7 +550,7 @@ NEWSYM KeySlowDown, dd 0 NEWSYM UseCubicSpline, db 1 -NEWSYM LargeSoundBuf, db 0 +NEWSYM ExclusiveSound, db 0 NEWSYM HighPriority, db 0 NEWSYM AlwaysOnTop, db 0 NEWSYM SaveMainWindowPos, db 1 diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index 610fc6e5..2f064979 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -2221,7 +2221,7 @@ DisplayGUISoundClick: %endif ;.win32sound %ifdef __WIN32__ - GUIClickCButton 11,121,byte[LargeSoundBuf] + GUIClickCButton 11,121,byte[ExclusiveSound] %endif GUIClickCButton 11,131,byte[InterSound] GUIClickCButton 11,141,byte[LowPassFilter] diff --git a/zsnes/src/gui/guiwindp.inc b/zsnes/src/gui/guiwindp.inc index fbfe7d99..8f243ab2 100644 --- a/zsnes/src/gui/guiwindp.inc +++ b/zsnes/src/gui/guiwindp.inc @@ -2189,7 +2189,7 @@ DisplayGUISound: .nocheckbox42 %ifdef __WIN32__ mov dword[GUITemp],GUIIconDataCheckBoxUC - cmp byte[LargeSoundBuf],0 + cmp byte[ExclusiveSound],0 je .nocheckbox43 mov dword[GUITemp],GUIIconDataCheckBoxC .nocheckbox43 @@ -2306,7 +2306,7 @@ GUISoundTextCb db '48000HZ',0 GUISoundTextD db '---%',0 GUISoundTextH db 'REVERSE STEREO',0 GUISoundTextI db 'SURROUND SOUND',0 -GUISoundTextIb db 'LARGE SOUND BUFFER',0 +GUISoundTextIb db 'EXCLUSIVE MODE',0 GUISoundTextJ db 'SOUND INTERPOLATION',0 GUISoundTextK db 'LOW PASS FILTER',0 GUISoundTextL db 'SOUND BUFFERING',0 diff --git a/zsnes/src/win/winlink.cpp b/zsnes/src/win/winlink.cpp index df9be92b..d2f81b6b 100644 --- a/zsnes/src/win/winlink.cpp +++ b/zsnes/src/win/winlink.cpp @@ -183,7 +183,7 @@ unsigned char keyboardhit=0; void initwinvideo(); extern BYTE StereoSound; extern DWORD SoundQuality; -extern BYTE LargeSoundBuf; +extern BYTE ExclusiveSound; extern BYTE HighPriority; extern BYTE AlwaysOnTop; extern BYTE SaveMainWindowPos; @@ -475,8 +475,19 @@ InitSound() PrevStereoSound=StereoSound; if(DS_OK == DirectSoundCreate8(NULL, &lpDirectSound,NULL)) - { - if (DS_OK != lpDirectSound->SetCooperativeLevel(hMainWindow, DSSCL_NORMAL)) + { + if (ExclusiveSound == 0) + { + if (DS_OK != lpDirectSound->SetCooperativeLevel(hMainWindow, DSSCL_NORMAL)) + { + if (DS_OK != lpDirectSound->SetCooperativeLevel(hMainWindow, DSSCL_EXCLUSIVE)) + { + SoundEnabled=0; + return FALSE; + } + } + } + else { if (DS_OK != lpDirectSound->SetCooperativeLevel(hMainWindow, DSSCL_EXCLUSIVE)) { @@ -527,11 +538,6 @@ InitSound() SoundBufferSize=1024*2; } - if (LargeSoundBuf == 1) - { - SoundBufferSize*=2; - } - if(StereoSound==1) { wfx.nChannels = 2;