diff --git a/Source/Core/DolphinQt/Config/GameConfigEdit.cpp b/Source/Core/DolphinQt/Config/GameConfigEdit.cpp
index d66c8db95e..2d03d396f6 100644
--- a/Source/Core/DolphinQt/Config/GameConfigEdit.cpp
+++ b/Source/Core/DolphinQt/Config/GameConfigEdit.cpp
@@ -38,8 +38,8 @@ GameConfigEdit::GameConfigEdit(QWidget* parent, QString path, bool read_only)
"cause issues. Defaults to True"));
AddDescription(QStringLiteral("FastDiscSpeed"),
- tr("Shortens loading times but may break some games. Can have negative effects on "
- "performance. Defaults to False"));
+ tr("Emulate the disc speed of real hardware. Disabling can cause instability. "
+ "Defaults to True"));
AddDescription(QStringLiteral("MMU"), tr("Controls whether or not the Memory Management Unit "
"should be emulated fully. Few games require it."));
diff --git a/Source/Core/DolphinQt/Config/GameConfigWidget.cpp b/Source/Core/DolphinQt/Config/GameConfigWidget.cpp
index 02f460507b..8fe2355143 100644
--- a/Source/Core/DolphinQt/Config/GameConfigWidget.cpp
+++ b/Source/Core/DolphinQt/Config/GameConfigWidget.cpp
@@ -88,7 +88,7 @@ void GameConfigWidget::CreateWidgets()
m_enable_mmu = new QCheckBox(tr("Enable MMU"));
m_enable_fprf = new QCheckBox(tr("Enable FPRF"));
m_sync_gpu = new QCheckBox(tr("Synchronize GPU thread"));
- m_enable_fast_disc = new QCheckBox(tr("Speed up Disc Transfer Rate"));
+ m_enable_fast_disc = new QCheckBox(tr("Emulate Disc Speed"));
m_use_dsp_hle = new QCheckBox(tr("DSP HLE (fast)"));
m_deterministic_dual_core = new QComboBox;
@@ -102,8 +102,9 @@ void GameConfigWidget::CreateWidgets()
"games. (ON = Compatible, OFF = Fast)"));
m_sync_gpu->setToolTip(tr("Synchronizes the GPU and CPU threads to help prevent random freezes "
"in Dual core mode. (ON = Compatible, OFF = Fast)"));
- m_enable_fast_disc->setToolTip(tr("Enable fast disc access. This can cause crashes and other "
- "problems in some games. (ON = Fast, OFF = Compatible)"));
+ m_enable_fast_disc->setToolTip(tr("Enable emulated disc speed. Disabling this can cause crashes "
+ "and other problems in some games. "
+ "(ON = Compatible, OFF = Unlocked)"));
core_layout->addWidget(m_enable_dual_core, 0, 0);
core_layout->addWidget(m_enable_mmu, 1, 0);
@@ -221,13 +222,22 @@ void GameConfigWidget::LoadCheckBox(QCheckBox* checkbox, const std::string& sect
const std::string& key)
{
bool checked;
+ if (key == "FastDiscSpeed")
+ {
+ if (m_gameini_local.GetOrCreateSection(section)->Get("FastDiscSpeed", &checked))
+ return checkbox->setCheckState(!checked ? Qt::Checked : Qt::Unchecked);
- if (m_gameini_local.GetOrCreateSection(section)->Get(key, &checked))
- return checkbox->setCheckState(checked ? Qt::Checked : Qt::Unchecked);
-
- if (m_gameini_default.GetOrCreateSection(section)->Get(key, &checked))
- return checkbox->setCheckState(checked ? Qt::Checked : Qt::Unchecked);
+ if (m_gameini_default.GetOrCreateSection(section)->Get("FastDiscSpeed", &checked))
+ return checkbox->setCheckState(!checked ? Qt::Checked : Qt::Unchecked);
+ }
+ else
+ {
+ if (m_gameini_local.GetOrCreateSection(section)->Get(key, &checked))
+ return checkbox->setCheckState(checked ? Qt::Checked : Qt::Unchecked);
+ if (m_gameini_default.GetOrCreateSection(section)->Get(key, &checked))
+ return checkbox->setCheckState(checked ? Qt::Checked : Qt::Unchecked);
+ }
checkbox->setCheckState(Qt::PartiallyChecked);
}
@@ -248,6 +258,12 @@ void GameConfigWidget::SaveCheckBox(QCheckBox* checkbox, const std::string& sect
bool checked = checkbox->checkState() == Qt::Checked;
+ if (key == "FastDiscSpeed")
+ {
+ m_gameini_local.GetOrCreateSection(section)->Set(key, !checked);
+ return;
+ }
+
if (m_gameini_default.Exists(section, key))
{
bool default_value;