diff --git a/Source/Core/Core/Src/LuaInterface.cpp b/Source/Core/Core/Src/LuaInterface.cpp index 48aafd6089..05054ee669 100644 --- a/Source/Core/Core/Src/LuaInterface.cpp +++ b/Source/Core/Core/Src/LuaInterface.cpp @@ -2804,6 +2804,7 @@ DEFINE_LUA_FUNCTION(emulua_loadrom, "filename") game_ini.Get("Core", "TLBHack", &StartUp.iTLBHack, StartUp.iTLBHack); game_ini.Get("Core", "VBeam", &StartUp.bVBeam, StartUp.bVBeam); game_ini.Get("Core", "FastDiscSpeed", &StartUp.bFastDiscSpeed, StartUp.bFastDiscSpeed); + game_ini.Get("Core", "DSPHLE", &StartUp.bDSPHLE, StartUp.bDSPHLE); // Wii settings if (StartUp.bWii) { diff --git a/Source/Core/DolphinWX/Src/BootManager.cpp b/Source/Core/DolphinWX/Src/BootManager.cpp index 8fe421eb0a..b18ed8e578 100644 --- a/Source/Core/DolphinWX/Src/BootManager.cpp +++ b/Source/Core/DolphinWX/Src/BootManager.cpp @@ -68,7 +68,7 @@ namespace BootManager struct ConfigCache { bool valid, bCPUThread, bSkipIdle, bEnableFPRF, bMMU, bMMUBAT, - bVBeam, bFastDiscSpeed, bMergeBlocks; + bVBeam, bFastDiscSpeed, bMergeBlocks, bDSPHLE; int iTLBHack; }; static ConfigCache config_cache; @@ -122,6 +122,8 @@ bool BootCore(const std::string& _rFilename) config_cache.bVBeam = StartUp.bVBeam; config_cache.bFastDiscSpeed = StartUp.bFastDiscSpeed; config_cache.bMergeBlocks = StartUp.bMergeBlocks; + config_cache.bDSPHLE = StartUp.bDSPHLE; + // General settings game_ini.Get("Core", "CPUThread", &StartUp.bCPUThread, StartUp.bCPUThread); game_ini.Get("Core", "SkipIdle", &StartUp.bSkipIdle, StartUp.bSkipIdle); @@ -132,6 +134,8 @@ bool BootCore(const std::string& _rFilename) game_ini.Get("Core", "VBeam", &StartUp.bVBeam, StartUp.bVBeam); game_ini.Get("Core", "FastDiscSpeed", &StartUp.bFastDiscSpeed, StartUp.bFastDiscSpeed); game_ini.Get("Core", "BlockMerging", &StartUp.bMergeBlocks, StartUp.bMergeBlocks); + game_ini.Get("Core", "DSPHLE", &StartUp.bDSPHLE, StartUp.bDSPHLE); + // Wii settings if (StartUp.bWii) { @@ -183,6 +187,7 @@ void Stop() StartUp.bVBeam = config_cache.bVBeam; StartUp.bFastDiscSpeed = config_cache.bFastDiscSpeed; StartUp.bMergeBlocks = config_cache.bMergeBlocks; + StartUp.bDSPHLE = config_cache.bDSPHLE; } } diff --git a/Source/Core/DolphinWX/Src/ISOProperties.cpp b/Source/Core/DolphinWX/Src/ISOProperties.cpp index c8be6e0da4..b6c760ecdf 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.cpp +++ b/Source/Core/DolphinWX/Src/ISOProperties.cpp @@ -315,6 +315,7 @@ void CISOProperties::CreateGUIControls(bool IsWad) FastDiscSpeed = new wxCheckBox(m_GameConfig, ID_DISCSPEED, _("Speed up Disc Transfer Rate"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); FastDiscSpeed->SetToolTip(_("Enable fast disc access. Needed for a few games. (ON = Fast, OFF = Compatible)")); BlockMerging = new wxCheckBox(m_GameConfig, ID_MERGEBLOCKS, _("Enable Block Merging"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); + DSPHLE = new wxCheckBox(m_GameConfig, ID_AUDIO_DSP_HLE, _("DSP HLE emulation (fast)"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); // Wii Console sbWiiOverrides = new wxStaticBoxSizer(wxVERTICAL, m_GameConfig, _("Wii Console")); @@ -378,6 +379,7 @@ void CISOProperties::CreateGUIControls(bool IsWad) sbCoreOverrides->Add(VBeam, 0, wxEXPAND|wxLEFT, 5); sbCoreOverrides->Add(FastDiscSpeed, 0, wxEXPAND|wxLEFT, 5); sbCoreOverrides->Add(BlockMerging, 0, wxEXPAND|wxLEFT, 5); + sbCoreOverrides->Add(DSPHLE, 0, wxEXPAND|wxLEFT, 5); sbWiiOverrides->Add(EnableProgressiveScan, 0, wxEXPAND|wxLEFT, 5); sbWiiOverrides->Add(EnableWideScreen, 0, wxEXPAND|wxLEFT, 5); sbVideoOverrides->Add(ForceFiltering, 0, wxEXPAND|wxLEFT, 5); @@ -858,6 +860,11 @@ void CISOProperties::LoadGameConfig() else BlockMerging->Set3StateValue(wxCHK_UNDETERMINED); + if (GameIni.Get("Core", "DSPHLE", &bTemp)) + DSPHLE->Set3StateValue((wxCheckBoxState)bTemp); + else + DSPHLE->Set3StateValue(wxCHK_UNDETERMINED); + if (GameIni.Get("Display", "ProgressiveScan", &bTemp)) EnableProgressiveScan->Set3StateValue((wxCheckBoxState)bTemp); else @@ -974,6 +981,11 @@ bool CISOProperties::SaveGameConfig() else GameIni.Set("Core", "BlockMerging", BlockMerging->Get3StateValue()); + if (DSPHLE->Get3StateValue() == wxCHK_UNDETERMINED) + GameIni.DeleteKey("Core", "DSPHLE"); + else + GameIni.Set("Core", "DSPHLE", DSPHLE->Get3StateValue()); + if (EnableProgressiveScan->Get3StateValue() == wxCHK_UNDETERMINED) GameIni.DeleteKey("Display", "ProgressiveScan"); else diff --git a/Source/Core/DolphinWX/Src/ISOProperties.h b/Source/Core/DolphinWX/Src/ISOProperties.h index 8c57d42b15..5def03fe27 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.h +++ b/Source/Core/DolphinWX/Src/ISOProperties.h @@ -85,7 +85,7 @@ class CISOProperties : public wxDialog wxStaticText *OverrideText; // Core wxCheckBox *CPUThread, *SkipIdle, *MMU, *MMUBAT, *TLBHack; - wxCheckBox *VBeam, *FastDiscSpeed, *BlockMerging; + wxCheckBox *VBeam, *FastDiscSpeed, *BlockMerging, *DSPHLE; // Wii wxCheckBox *EnableProgressiveScan, *EnableWideScreen; // Video @@ -170,6 +170,7 @@ class CISOProperties : public wxDialog ID_VBEAM, ID_DISCSPEED, ID_MERGEBLOCKS, + ID_AUDIO_DSP_HLE, ID_FORCEFILTERING, ID_EFBCOPYENABLE, ID_EFBACCESSENABLE,