diff --git a/pcsx2/SPU2/SndOut.cpp b/pcsx2/SPU2/SndOut.cpp
index cae84413ef..4a1b70cd8e 100644
--- a/pcsx2/SPU2/SndOut.cpp
+++ b/pcsx2/SPU2/SndOut.cpp
@@ -84,7 +84,6 @@ SndOutModule* mods[] =
&NullOut,
#ifdef _MSC_VER
XAudio2Out,
- DSoundOut,
WaveOut,
#endif
#if defined(SPU2X_PORTAUDIO)
diff --git a/pcsx2/SPU2/SndOut.h b/pcsx2/SPU2/SndOut.h
index 2b5c9e79ea..ebc7accf37 100644
--- a/pcsx2/SPU2/SndOut.h
+++ b/pcsx2/SPU2/SndOut.h
@@ -667,7 +667,6 @@ public:
#ifdef _MSC_VER
//internal
extern SndOutModule* WaveOut;
-extern SndOutModule* DSoundOut;
extern SndOutModule* XAudio2Out;
#endif
#if defined(SPU2X_PORTAUDIO)
diff --git a/pcsx2/SPU2/Windows/CfgHelpers.cpp b/pcsx2/SPU2/Windows/CfgHelpers.cpp
index 1776aa3a7f..29d1a508c1 100644
--- a/pcsx2/SPU2/Windows/CfgHelpers.cpp
+++ b/pcsx2/SPU2/Windows/CfgHelpers.cpp
@@ -66,7 +66,6 @@ void initIni()
void CfgSetSettingsDir(const char* dir)
{
initIni();
- CfgFile = Path::Combine((dir == nullptr) ? wxString(L"inis") : wxString::FromUTF8(dir), L"SPU2.ini");
}
diff --git a/pcsx2/SPU2/Windows/Config.cpp b/pcsx2/SPU2/Windows/Config.cpp
index 74729bc91a..4bdb8f9d03 100644
--- a/pcsx2/SPU2/Windows/Config.cpp
+++ b/pcsx2/SPU2/Windows/Config.cpp
@@ -136,11 +136,10 @@ void ReadSettings()
dspPluginModule = CfgReadInt(L"DSP PLUGIN", L"ModuleNum", 0);
dspPluginEnabled = CfgReadBool(L"DSP PLUGIN", L"Enabled", false);
- // Read DSOUNDOUT and WAVEOUT configs:
+ // Read WAVEOUT configs:
CfgReadStr(L"WAVEOUT", L"Device", Config_WaveOut.Device, L"default");
Config_WaveOut.NumBuffers = CfgReadInt(L"WAVEOUT", L"Buffer_Count", 4);
- DSoundOut->ReadSettings();
PortaudioOut->ReadSettings();
SoundtouchCfg::ReadSettings();
@@ -155,8 +154,6 @@ void ReadSettings()
{
// Unsupported or legacy module.
fwprintf(stderr, L"* SPU2: Unknown output module '%s' specified in configuration file.\n", omodid);
- fprintf(stderr, "* SPU2: Defaulting to DirectSound (%S).\n", DSoundOut->GetIdent());
- OutputModule = FindOutputModuleById(DSoundOut->GetIdent());
}
}
@@ -197,7 +194,6 @@ void WriteSettings()
CfgWriteBool(L"DSP PLUGIN", L"Enabled", dspPluginEnabled);
PortaudioOut->WriteSettings();
- DSoundOut->WriteSettings();
SoundtouchCfg::WriteSettings();
DebugConfig::WriteSettings();
}
@@ -207,8 +203,7 @@ void CheckOutputModule(HWND window)
OutputModule = SendMessage(GetDlgItem(window, IDC_OUTPUT), CB_GETCURSEL, 0, 0);
const bool IsConfigurable =
mods[OutputModule] == PortaudioOut ||
- mods[OutputModule] == WaveOut ||
- mods[OutputModule] == DSoundOut;
+ mods[OutputModule] == WaveOut;
const bool AudioExpansion =
mods[OutputModule] == XAudio2Out ||
diff --git a/pcsx2/SPU2/Windows/Dialogs.h b/pcsx2/SPU2/Windows/Dialogs.h
index c99f07b17d..faa32d3a4f 100644
--- a/pcsx2/SPU2/Windows/Dialogs.h
+++ b/pcsx2/SPU2/Windows/Dialogs.h
@@ -61,11 +61,6 @@ extern int CfgReadInt(const TCHAR* Section, const TCHAR* Name, int Default);
extern float CfgReadFloat(const TCHAR* Section, const TCHAR* Name, float Default);
// Items Specific to DirectSound
-#define STRFY(x) #x
-#define verifyc(x) Verifyc(x, STRFY(x))
-
-extern void Verifyc(HRESULT hr, const char* fn);
-
struct ds_device_data
{
wxString name;
diff --git a/pcsx2/SPU2/Windows/SPU2.rc b/pcsx2/SPU2/Windows/SPU2.rc
index 6975f547e0..11c2d4a31d 100644
--- a/pcsx2/SPU2/Windows/SPU2.rc
+++ b/pcsx2/SPU2/Windows/SPU2.rc
@@ -67,25 +67,6 @@ BEGIN
DEFPUSHBUTTON "Close",IDOK,246,451,50,14
END
-IDD_DSOUND DIALOGEX 0, 0, 196, 218
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "DirectSound Output Module Settings"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,45,196,50,14
- PUSHBUTTON "Cancel",IDCANCEL,102,196,50,14
- COMBOBOX IDC_DS_DEVICE,8,13,180,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "DirectSound Device:",IDC_STATIC,6,3,65,8
- CONTROL "",IDC_BUFFERS_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,40,137,108,10
- LTEXT "Increase the buffer count if you are experiencing loopy or stuttery audio even when games run at high FPS.",IDC_STATIC,13,157,169,27
- CTEXT "8 (80 ms latency)",IDC_LATENCY_LABEL,46,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,18,68,172,38
- CONTROL "Disable Global Focus",IDC_GLOBALFOCUS_DISABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,6,38,140,10
- CONTROL "Use a crappy alternate buffering mode",IDC_USE_HARDWARE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,53,140,10
- GROUPBOX "Output Buffers",IDC_STATIC,6,111,183,77
-END
-
IDD_WAVEOUT DIALOGEX 0, 0, 170, 122
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "WaveOut Output Module Settings"
@@ -179,14 +160,6 @@ BEGIN
BOTTOMMARGIN, 465
END
- IDD_DSOUND, DIALOG
- BEGIN
- LEFTMARGIN, 4
- RIGHTMARGIN, 191
- TOPMARGIN, 3
- BOTTOMMARGIN, 214
- END
-
IDD_WAVEOUT, DIALOG
BEGIN
LEFTMARGIN, 4
diff --git a/pcsx2/SPU2/Windows/SndOut_DSound.cpp b/pcsx2/SPU2/Windows/SndOut_DSound.cpp
deleted file mode 100644
index e640a7c50d..0000000000
--- a/pcsx2/SPU2/Windows/SndOut_DSound.cpp
+++ /dev/null
@@ -1,488 +0,0 @@
-/* PCSX2 - PS2 Emulator for PCs
- * Copyright (C) 2002-2020 PCSX2 Dev Team
- *
- * PCSX2 is free software: you can redistribute it and/or modify it under the terms
- * of the GNU Lesser General Public License as published by the Free Software Found-
- * ation, either version 3 of the License, or (at your option) any later version.
- *
- * PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with PCSX2.
- * If not, see .
- */
-
-#include "PrecompiledHeader.h"
-#include "../Global.h"
-
-#define _WIN32_DCOM
-#include "Dialogs.h"
-
-#define DIRECTSOUND_VERSION 0x1000
-#include
-
-class DSound : public SndOutModule
-{
-private:
- static const uint MAX_BUFFER_COUNT = 8;
- static const int PacketsPerBuffer = 8;
- static const int BufferSize = SndOutPacketSize * PacketsPerBuffer;
-
- //////////////////////////////////////////////////////////////////////////////////////////
- // Configuration Vars
-
- wxString m_Device;
- u8 m_NumBuffers;
- bool m_DisableGlobalFocus;
- bool m_UseHardware;
-
- ds_device_data m_devices[32];
- int ndevs;
- GUID DevGuid; // currently employed GUID.
- bool haveGuid;
-
- //////////////////////////////////////////////////////////////////////////////////////////
- // Instance vars
-
- int channel;
- int myLastWrite; // last write position, in bytes
-
- bool dsound_running;
- HANDLE thread;
- DWORD tid;
-
- IDirectSound8* dsound;
- IDirectSoundBuffer8* buffer;
- IDirectSoundNotify8* buffer_notify;
- HANDLE buffer_events[MAX_BUFFER_COUNT];
-
- WAVEFORMATEX wfx;
-
- HANDLE waitEvent;
-
- template
- static DWORD CALLBACK RThread(DSound* obj)
- {
- return obj->Thread();
- }
-
- template
- DWORD CALLBACK Thread()
- {
- static const int BufferSizeBytes = BufferSize * sizeof(T);
-
- while (dsound_running)
- {
- u32 rv = WaitForMultipleObjects(m_NumBuffers, buffer_events, FALSE, 200);
-
- T *p1, *oldp1;
- LPVOID p2;
- DWORD s1, s2;
-
- u32 poffset = BufferSizeBytes * rv;
-
- if (FAILED(buffer->Lock(poffset, BufferSizeBytes, (LPVOID*)&p1, &s1, &p2, &s2, 0)))
- {
- assert(0);
- fputs("* SPU2: Directsound Warning > Buffer lock failure. You may need to increase\n\tyour configured DSound buffer count.\n", stderr);
- continue;
- }
- oldp1 = p1;
-
- for (int p = 0; p < PacketsPerBuffer; p++, p1 += SndOutPacketSize)
- SndBuffer::ReadSamples(p1);
-
- buffer->Unlock(oldp1, s1, p2, s2);
-
- // Set the write pointer to the beginning of the next block.
- myLastWrite = (poffset + BufferSizeBytes) & ~BufferSizeBytes;
- }
- return 0;
- }
-
-public:
- s32 Init()
- {
- CoInitializeEx(nullptr, COINIT_MULTITHREADED);
-
- //
- // Initialize DSound
- //
- GUID cGuid;
-
- try
- {
- if (m_Device.empty())
- throw std::runtime_error("screw it");
-
- if ((FAILED(IIDFromString(m_Device, &cGuid))) ||
- FAILED(DirectSoundCreate8(&cGuid, &dsound, nullptr)))
- throw std::runtime_error("try again?");
- }
- catch (std::runtime_error&)
- {
- // if the GUID failed, just open up the default dsound driver:
- if (FAILED(DirectSoundCreate8(nullptr, &dsound, nullptr)))
- throw std::runtime_error("DirectSound failed to initialize!");
- }
-
- if (FAILED(dsound->SetCooperativeLevel(GetDesktopWindow(), DSSCL_PRIORITY)))
- throw std::runtime_error("DirectSound Error: Cooperative level could not be set.");
-
- // Determine the user's speaker configuration, and select an expansion option as needed.
- // FAIL : Directsound doesn't appear to support audio expansion >_<
-
- DWORD speakerConfig = 2;
- //dsound->GetSpeakerConfig( &speakerConfig );
-
- IDirectSoundBuffer* buffer_;
- DSBUFFERDESC desc;
-
- // Set up WAV format structure.
-
- memset(&wfx, 0, sizeof(WAVEFORMATEX));
- wfx.wFormatTag = WAVE_FORMAT_PCM;
- wfx.nSamplesPerSec = SampleRate;
- wfx.nChannels = (WORD)speakerConfig;
- wfx.wBitsPerSample = 16;
- wfx.nBlockAlign = 2 * (WORD)speakerConfig;
- wfx.nAvgBytesPerSec = SampleRate * wfx.nBlockAlign;
- wfx.cbSize = 0;
-
- uint BufferSizeBytes = BufferSize * wfx.nBlockAlign;
-
- // Set up DSBUFFERDESC structure.
-
- memset(&desc, 0, sizeof(DSBUFFERDESC));
- desc.dwSize = sizeof(DSBUFFERDESC);
- desc.dwFlags = DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_CTRLPOSITIONNOTIFY;
- desc.dwBufferBytes = BufferSizeBytes * m_NumBuffers;
- desc.lpwfxFormat = &wfx;
-
- // Try a hardware buffer first, and then fall back on a software buffer if
- // that one fails.
-
- 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)
- {
- 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.");
- }
- if (FAILED(buffer_->QueryInterface(IID_IDirectSoundBuffer8, (void**)&buffer)) || buffer == nullptr)
- throw std::runtime_error("DirectSound Error: Interface could not be queried.");
-
- buffer_->Release();
- verifyc(buffer->QueryInterface(IID_IDirectSoundNotify8, (void**)&buffer_notify));
-
- DSBPOSITIONNOTIFY not[MAX_BUFFER_COUNT];
-
- for (uint i = 0; i < m_NumBuffers; i++)
- {
- buffer_events[i] = CreateEvent(nullptr, FALSE, FALSE, nullptr);
- not[i].dwOffset = (wfx.nBlockAlign + BufferSizeBytes * (i + 1)) % desc.dwBufferBytes;
- not[i].hEventNotify = buffer_events[i];
- }
-
- buffer_notify->SetNotificationPositions(m_NumBuffers, not);
-
- LPVOID p1 = 0, p2 = 0;
- DWORD s1 = 0, s2 = 0;
-
- verifyc(buffer->Lock(0, desc.dwBufferBytes, &p1, &s1, &p2, &s2, 0));
- assert(p2 == 0);
- memset(p1, 0, s1);
- verifyc(buffer->Unlock(p1, s1, p2, s2));
-
- //Play the buffer !
- verifyc(buffer->Play(0, 0, DSBPLAY_LOOPING));
-
- // Start Thread
- myLastWrite = 0;
- dsound_running = true;
- thread = CreateThread(nullptr, 0, (LPTHREAD_START_ROUTINE)RThread, this, 0, &tid);
- SetThreadPriority(thread, THREAD_PRIORITY_ABOVE_NORMAL);
-
- return 0;
- }
-
- void Close()
- {
- // Stop Thread
- fprintf(stderr, "* SPU2: Waiting for DSound thread to finish...");
- dsound_running = false;
-
- WaitForSingleObject(thread, INFINITE);
- CloseHandle(thread);
-
- fprintf(stderr, " Done.\n");
-
- //
- // Clean up
- //
- if (buffer != nullptr)
- {
- buffer->Stop();
-
- for (u32 i = 0; i < m_NumBuffers; i++)
- {
- if (buffer_events[i] != nullptr)
- CloseHandle(buffer_events[i]);
- buffer_events[i] = nullptr;
- }
-
- safe_release(buffer_notify);
- safe_release(buffer);
- }
-
- safe_release(dsound);
- CoUninitialize();
- }
-
-private:
- bool _DSEnumCallback(LPGUID lpGuid, LPCTSTR lpcstrDescription, LPCTSTR lpcstrModule, LPVOID lpContext)
- {
- m_devices[ndevs].name = lpcstrDescription;
-
- if (lpGuid)
- {
- m_devices[ndevs].guid = *lpGuid;
- m_devices[ndevs].hasGuid = true;
- }
- else
- {
- m_devices[ndevs].hasGuid = false;
- }
- ndevs++;
-
- if (ndevs < 32)
- return TRUE;
- return FALSE;
- }
-
- bool _ConfigProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
- {
- int wmId, wmEvent;
- int tSel = 0;
-
- switch (uMsg)
- {
- case WM_INITDIALOG:
- {
- wchar_t temp[128];
-
- haveGuid = !FAILED(IIDFromString(m_Device, &DevGuid));
- SendMessage(GetDlgItem(hWnd, IDC_DS_DEVICE), CB_RESETCONTENT, 0, 0);
-
- ndevs = 0;
- DirectSoundEnumerate(DSEnumCallback, nullptr);
-
- tSel = -1;
- for (int i = 0; i < ndevs; i++)
- {
- SendMessage(GetDlgItem(hWnd, IDC_DS_DEVICE), CB_ADDSTRING, 0, (LPARAM)m_devices[i].name.wc_str());
- if (haveGuid && IsEqualGUID(m_devices[i].guid, DevGuid) || tSel < 0 && !m_devices[i].hasGuid)
- tSel = i;
- }
-
- if (tSel >= 0)
- SendMessage(GetDlgItem(hWnd, IDC_DS_DEVICE), CB_SETCURSEL, tSel, 0);
-
- INIT_SLIDER(IDC_BUFFERS_SLIDER, 2, MAX_BUFFER_COUNT, 2, 1, 1);
- SendMessage(GetDlgItem(hWnd, IDC_BUFFERS_SLIDER), TBM_SETPOS, TRUE, m_NumBuffers);
- swprintf_s(temp, L"%d (%d ms latency)", m_NumBuffers, 1000 / (96000 / (m_NumBuffers * BufferSize)));
- SetWindowText(GetDlgItem(hWnd, IDC_LATENCY_LABEL), temp);
-
- SET_CHECK(IDC_GLOBALFOCUS_DISABLE, m_DisableGlobalFocus);
- SET_CHECK(IDC_USE_HARDWARE, m_UseHardware);
- }
- break;
-
- case WM_COMMAND:
- {
- wchar_t temp[128];
-
- wmId = LOWORD(wParam);
- wmEvent = HIWORD(wParam);
- // Parse the menu selections:
- switch (wmId)
- {
- case IDOK:
- {
- int i = (int)SendMessage(GetDlgItem(hWnd, IDC_DS_DEVICE), CB_GETCURSEL, 0, 0);
-
- if (!m_devices[i].hasGuid)
- {
- m_Device[0] = 0; // clear device name to ""
- }
- else
- {
- swprintf_s(temp, L"{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
- m_devices[i].guid.Data1,
- m_devices[i].guid.Data2,
- m_devices[i].guid.Data3,
- m_devices[i].guid.Data4[0],
- m_devices[i].guid.Data4[1],
- m_devices[i].guid.Data4[2],
- m_devices[i].guid.Data4[3],
- m_devices[i].guid.Data4[4],
- m_devices[i].guid.Data4[5],
- m_devices[i].guid.Data4[6],
- m_devices[i].guid.Data4[7]);
- m_Device = temp;
- }
-
- m_NumBuffers = (int)SendMessage(GetDlgItem(hWnd, IDC_BUFFERS_SLIDER), TBM_GETPOS, 0, 0);
-
- if (m_NumBuffers < 2)
- m_NumBuffers = 2;
- if (m_NumBuffers > MAX_BUFFER_COUNT)
- m_NumBuffers = MAX_BUFFER_COUNT;
-
- EndDialog(hWnd, 0);
- }
- break;
-
- case IDCANCEL:
- EndDialog(hWnd, 0);
- break;
-
- HANDLE_CHECK(IDC_GLOBALFOCUS_DISABLE, m_DisableGlobalFocus);
- HANDLE_CHECK(IDC_USE_HARDWARE, m_UseHardware);
-
- default:
- return FALSE;
- }
- }
- break;
-
- case WM_HSCROLL:
- {
- wmId = LOWORD(wParam);
- wmEvent = HIWORD(wParam);
- switch (wmId)
- {
- case TB_LINEUP:
- case TB_LINEDOWN:
- case TB_PAGEUP:
- case TB_PAGEDOWN:
- case TB_TOP:
- case TB_BOTTOM:
- wmEvent = (int)SendMessage((HWND)lParam, TBM_GETPOS, 0, 0);
- case TB_THUMBPOSITION:
- case TB_THUMBTRACK:
- {
- wchar_t temp[128];
- if (wmEvent < 2)
- wmEvent = 2;
- if (wmEvent > MAX_BUFFER_COUNT)
- wmEvent = MAX_BUFFER_COUNT;
- SendMessage((HWND)lParam, TBM_SETPOS, TRUE, wmEvent);
- swprintf_s(temp, L"%d (%d ms latency)", wmEvent, 1000 / (96000 / (wmEvent * BufferSize)));
- SetWindowText(GetDlgItem(hWnd, IDC_LATENCY_LABEL), temp);
- break;
- }
- default:
- return FALSE;
- }
- }
- break;
-
- default:
- return FALSE;
- }
- return TRUE;
- }
-
- static BOOL CALLBACK ConfigProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
- static BOOL CALLBACK DSEnumCallback(LPGUID lpGuid, LPCTSTR lpcstrDescription, LPCTSTR lpcstrModule, LPVOID lpContext);
-
-public:
- virtual void Configure(uptr parent)
- {
- INT_PTR ret;
- ret = DialogBoxParam(nullptr, MAKEINTRESOURCE(IDD_DSOUND), (HWND)parent, (DLGPROC)ConfigProc, 1);
- if (ret == -1)
- {
- MessageBox((HWND)parent, L"Error Opening the config dialog.", L"OMG ERROR!", MB_OK | MB_SETFOREGROUND);
- return;
- }
- }
-
- s32 Test() const
- {
- return 0;
- }
-
- int GetEmptySampleCount()
- {
- DWORD play, write;
- if (buffer == nullptr)
- return 0;
- buffer->GetCurrentPosition(&play, &write);
-
- // Note: Dsound's write cursor is bogus. Use our own instead:
-
- int empty = play - myLastWrite;
- if (empty < 0)
- empty = -empty;
-
- return empty / 2;
- }
-
- const wchar_t* GetIdent() const
- {
- return L"dsound";
- }
-
- const wchar_t* GetLongName() const
- {
- return L"DirectSound (Nice)";
- }
-
- void ReadSettings()
- {
- 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);
- }
-
- void SetApiSettings(wxString api)
- {
- }
-
- void WriteSettings() const
- {
- 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;
-
-BOOL CALLBACK DSound::ConfigProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
- return DS._ConfigProc(hWnd, uMsg, wParam, lParam);
-}
-
-BOOL CALLBACK DSound::DSEnumCallback(LPGUID lpGuid, LPCTSTR lpcstrDescription, LPCTSTR lpcstrModule, LPVOID lpContext)
-{
- pxAssume(DSoundOut != nullptr);
- return DS._DSEnumCallback(lpGuid, lpcstrDescription, lpcstrModule, lpContext);
-}
-
-SndOutModule* DSoundOut = &DS;
diff --git a/pcsx2/SPU2/Windows/UIHelpers.cpp b/pcsx2/SPU2/Windows/UIHelpers.cpp
index 592b8ded68..5a69407944 100644
--- a/pcsx2/SPU2/Windows/UIHelpers.cpp
+++ b/pcsx2/SPU2/Windows/UIHelpers.cpp
@@ -22,15 +22,6 @@ int SendDialogMsg(HWND hwnd, int dlgId, UINT code, WPARAM wParam, LPARAM lParam)
return SendMessage(GetDlgItem(hwnd, dlgId), code, wParam, lParam);
}
-__forceinline void Verifyc(HRESULT hr, const char* fn)
-{
- if (FAILED(hr))
- {
- assert(0);
- throw std::runtime_error("DirectSound returned an error from %s");
- }
-}
-
void AssignSliderValue(HWND idcwnd, HWND hwndDisplay, int value)
{
value = std::min(std::max(value, 0), 512);
diff --git a/pcsx2/SPU2/Windows/resource.h b/pcsx2/SPU2/Windows/resource.h
index 141c372e1f..74a5c8c5c1 100644
--- a/pcsx2/SPU2/Windows/resource.h
+++ b/pcsx2/SPU2/Windows/resource.h
@@ -3,7 +3,6 @@
// Used by SPU2.rc
#define IDD_CONFIG 9
#define IDD_DEBUG 105
-#define IDD_DSOUND 106
#define IDD_WAVEOUT 109
#define IDD_CONFIG_SOUNDTOUCH 117
#define IDD_CONFIG_DEBUG 118
diff --git a/pcsx2/SPU2/spu2.cpp b/pcsx2/SPU2/spu2.cpp
index f1103f9398..d1e87e7bca 100644
--- a/pcsx2/SPU2/spu2.cpp
+++ b/pcsx2/SPU2/spu2.cpp
@@ -225,10 +225,7 @@ s32 SPU2init()
assert(regtable[0x400] == nullptr);
if (IsInitialized)
- {
- printf(" * SPU2: Already initialized - Ignoring SPU2init signal.");
return 0;
- }
IsInitialized = true;
SPU2_dummy_callback = false;
diff --git a/pcsx2/windows/VCprojects/pcsx2.vcxproj b/pcsx2/windows/VCprojects/pcsx2.vcxproj
index 8e4dd1c6aa..f4606e17ec 100644
--- a/pcsx2/windows/VCprojects/pcsx2.vcxproj
+++ b/pcsx2/windows/VCprojects/pcsx2.vcxproj
@@ -288,7 +288,6 @@
-
@@ -781,4 +780,4 @@
-
\ No newline at end of file
+
diff --git a/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters b/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters
index eddf75dbfa..7a6c22da59 100644
--- a/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters
+++ b/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters
@@ -985,9 +985,6 @@
System\Ps2\SPU2
-
- System\Ps2\SPU2
-
System\Ps2\SPU2
@@ -1605,4 +1602,4 @@
AppHost\Resources
-
\ No newline at end of file
+