From adb791dd587eb81d2d6a2210d4cdcb1c68600e71 Mon Sep 17 00:00:00 2001 From: "sl1nk3.s" Date: Mon, 27 Apr 2009 23:27:56 +0000 Subject: [PATCH] Fixed a little crash I had in ISOProperties with Mario Kart Wii, it was trying to read a third unknown partition type. Effectively toggling throttle in DSP HLE/LLE when the game is running git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3096 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/DiscIO/Src/FileSystemGCWii.cpp | 2 ++ Source/Core/DolphinWX/Src/ISOProperties.cpp | 8 +++++--- Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.cpp | 3 +++ Source/Plugins/Plugin_DSP_LLE/Src/DSPConfigDlgLLE.cpp | 4 +++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Source/Core/DiscIO/Src/FileSystemGCWii.cpp b/Source/Core/DiscIO/Src/FileSystemGCWii.cpp index 4afdad5a73..370b6881f8 100644 --- a/Source/Core/DiscIO/Src/FileSystemGCWii.cpp +++ b/Source/Core/DiscIO/Src/FileSystemGCWii.cpp @@ -166,6 +166,8 @@ bool CFileSystemGCWii::InitFileSystem() } else { + // Mario Kart Wii gets here on its third partition... + // Does it use a fake partition ? another type we don't know ? return false; } diff --git a/Source/Core/DolphinWX/Src/ISOProperties.cpp b/Source/Core/DolphinWX/Src/ISOProperties.cpp index 59b470f722..6721527042 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.cpp +++ b/Source/Core/DolphinWX/Src/ISOProperties.cpp @@ -71,9 +71,11 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW WiiPartition temp; if ((temp.Partition = DiscIO::CreateVolumeFromFilename(fileName, i)) != NULL) { - temp.FileSystem = DiscIO::CreateFileSystem(temp.Partition); - temp.FileSystem->GetFileList(temp.Files); - WiiDisc.push_back(temp); + if ((temp.FileSystem = DiscIO::CreateFileSystem(temp.Partition)) != NULL) + { + temp.FileSystem->GetFileList(temp.Files); + WiiDisc.push_back(temp); + } } else break; diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.cpp b/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.cpp index a5e3c41f07..586a664c46 100644 --- a/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.cpp +++ b/Source/Plugins/Plugin_DSP_HLE/Src/ConfigDlg.cpp @@ -97,6 +97,9 @@ void ConfigDialog::SettingsChanged(wxCommandEvent& event) g_Config.m_EnableHLEAudio = m_buttonEnableHLEAudio->GetValue(); ac_Config.m_EnableDTKMusic = m_buttonEnableDTKMusic->GetValue(); ac_Config.m_EnableThrottle = m_buttonEnableThrottle->GetValue(); + if (soundStream != NULL) + soundStream->GetMixer()->SetThrottle(ac_Config.m_EnableThrottle); + #ifdef __APPLE__ strncpy(ac_Config.sBackend, m_BackendSelection->GetValue().mb_str(), 128); #else diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/DSPConfigDlgLLE.cpp b/Source/Plugins/Plugin_DSP_LLE/Src/DSPConfigDlgLLE.cpp index 89859a35d7..6f75879ed0 100644 --- a/Source/Plugins/Plugin_DSP_LLE/Src/DSPConfigDlgLLE.cpp +++ b/Source/Plugins/Plugin_DSP_LLE/Src/DSPConfigDlgLLE.cpp @@ -91,6 +91,9 @@ void DSPConfigDialogLLE::SettingsChanged(wxCommandEvent& event) { ac_Config.m_EnableDTKMusic = m_buttonEnableDTKMusic->GetValue(); ac_Config.m_EnableThrottle = m_buttonEnableThrottle->GetValue(); + if (soundStream != NULL) + soundStream->GetMixer()->SetThrottle(ac_Config.m_EnableThrottle); + #ifdef __APPLE__ strncpy(ac_Config.sBackend, m_BackendSelection->GetValue().mb_str(), 128); #else @@ -99,7 +102,6 @@ void DSPConfigDialogLLE::SettingsChanged(wxCommandEvent& event) ac_Config.Update(); g_Config.Save(); - if (event.GetId() == wxID_OK) EndModal(wxID_OK); }