From 70e8c3cf41d9b7042eedf8e1f9ffaf0eb9fb3125 Mon Sep 17 00:00:00 2001 From: "Jake.Stine" Date: Wed, 4 Aug 2010 17:18:40 +0000 Subject: [PATCH] SPU2-X: Communication error. We didn't want to remove the option; just make it a little more clear that *most* of the time it sucks and shouldn't be enabled. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3599 96395faa-99c1-11dd-bbfe-3dabce05a288 --- plugins/spu2-x/src/Windows/SndOut_DSound.cpp | 14 ++++++++------ plugins/spu2-x/src/Windows/Spu2-X.rc | 3 ++- plugins/spu2-x/src/Windows/resource.h | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/spu2-x/src/Windows/SndOut_DSound.cpp b/plugins/spu2-x/src/Windows/SndOut_DSound.cpp index 43a53a8c45..6f97233453 100644 --- a/plugins/spu2-x/src/Windows/SndOut_DSound.cpp +++ b/plugins/spu2-x/src/Windows/SndOut_DSound.cpp @@ -36,6 +36,7 @@ private: wxString m_Device; u8 m_NumBuffers; bool m_DisableGlobalFocus; + bool m_UseHardware; ds_device_data m_devices[32]; int ndevs; @@ -166,23 +167,20 @@ public: // Try a hardware buffer first, and then fall back on a software buffer if // that one fails. - // Edit: - // Due to too many reports of issues with hardware support we drop it totally. - // It never made a good difference on anything anyway (rama) - desc.dwFlags |= /*m_UseHardware ? DSBCAPS_LOCHARDWARE :*/ DSBCAPS_LOCSOFTWARE; + desc.dwFlags |= m_UseHardware ? DSBCAPS_LOCHARDWARE : DSBCAPS_LOCSOFTWARE; desc.dwFlags |= m_DisableGlobalFocus ? DSBCAPS_STICKYFOCUS : DSBCAPS_GLOBALFOCUS; if( FAILED(dsound->CreateSoundBuffer(&desc, &buffer_, 0) ) ) { - /*if( m_UseHardware ) + if( m_UseHardware ) { desc.dwFlags = DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_CTRLPOSITIONNOTIFY | DSBCAPS_LOCSOFTWARE; desc.dwFlags |= m_DisableGlobalFocus ? DSBCAPS_STICKYFOCUS : DSBCAPS_GLOBALFOCUS; if( FAILED(dsound->CreateSoundBuffer(&desc, &buffer_, 0) ) ) throw std::runtime_error( "DirectSound Error: Buffer could not be created." ); - }*/ + } throw std::runtime_error( "DirectSound Error: Buffer could not be created." ); } @@ -313,6 +311,7 @@ private: SetWindowText(GetDlgItem(hWnd,IDC_LATENCY_LABEL),temp); SET_CHECK( IDC_GLOBALFOCUS_DISABLE, m_DisableGlobalFocus ); + SET_CHECK( IDC_USE_HARDWARE, m_UseHardware ); } break; @@ -365,6 +364,7 @@ private: break; HANDLE_CHECK( IDC_GLOBALFOCUS_DISABLE, m_DisableGlobalFocus ); + HANDLE_CHECK( IDC_USE_HARDWARE, m_UseHardware ); default: return FALSE; @@ -458,6 +458,7 @@ public: CfgReadStr( L"DSOUNDOUT", L"Device", m_Device, L"default" ); m_NumBuffers = CfgReadInt( L"DSOUNDOUT", L"Buffer_Count", 5 ); m_DisableGlobalFocus = CfgReadBool( L"DSOUNDOUT", L"Disable_Global_Focus", false ); + m_UseHardware = CfgReadBool( L"DSOUNDOUT", L"Use_Hardware", false ); Clampify( m_NumBuffers, (u8)3, (u8)8 ); } @@ -467,6 +468,7 @@ public: CfgWriteStr( L"DSOUNDOUT", L"Device", m_Device.empty() ? L"default" : m_Device ); CfgWriteInt( L"DSOUNDOUT", L"Buffer_Count", m_NumBuffers ); CfgWriteBool( L"DSOUNDOUT", L"Disable_Global_Focus", m_DisableGlobalFocus ); + CfgWriteBool( L"DSOUNDOUT", L"Use_Hardware", m_UseHardware ); } } static DS; diff --git a/plugins/spu2-x/src/Windows/Spu2-X.rc b/plugins/spu2-x/src/Windows/Spu2-X.rc index e33560c178..9a91136f2f 100644 --- a/plugins/spu2-x/src/Windows/Spu2-X.rc +++ b/plugins/spu2-x/src/Windows/Spu2-X.rc @@ -100,8 +100,9 @@ BEGIN CONTROL "",IDC_BUFFERS_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,38,137,108,10 LTEXT "Increase the buffer count if you are experiencing loopy or studdery audio even when games run at high FPS.",IDC_STATIC,11,157,169,27 CTEXT "8 (80 ms latency)",IDC_LATENCY_LABEL,44,123,95,11 + LTEXT "The options above are useful for compatibility with older and/or buggy sound drivers ONLY, and should not be checked unless you experience sound problems (such as crackly audio or silence).",IDC_STATIC,16,68,175,38 CONTROL "Disable Global Focus",IDC_GLOBALFOCUS_DISABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,4,38,140,10 - LTEXT "If you have audio problems, try checking the option above. It doesn't really affect sound processing, but some drivers are picky and work nicer with different seetings.",IDC_STATIC,16,68,175,38 + CONTROL "Use a crappy alternate buffering mode",IDC_USE_HARDWARE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,53,140,10 GROUPBOX "Output Buffers",IDC_STATIC,4,111,185,79 END diff --git a/plugins/spu2-x/src/Windows/resource.h b/plugins/spu2-x/src/Windows/resource.h index 2fb7bd9791..5d0cbde8c2 100644 --- a/plugins/spu2-x/src/Windows/resource.h +++ b/plugins/spu2-x/src/Windows/resource.h @@ -52,7 +52,7 @@ #define IDC_OPEN_CONFIG_DEBUG 1059 #define IDC_GLOBALFOCUS_DISABLE 1060 #define IDC_GLOBALFOCUS_DISABLE2 1061 -#define IDC_USE_HARDWARE 1062 // not used anymore +#define IDC_USE_HARDWARE 1062 #define IDC_COMBO1 1063 #define IDC_SYNCHMODE 1064