mirror of
https://github.com/stenzek/duckstation.git
synced 2025-06-07 03:55:33 +00:00
Qt: Move async readahead sectors to advanced settings
This commit is contained in:
parent
3ab3e4be06
commit
4afa41b927
@ -4164,11 +4164,6 @@ void FullscreenUI::DrawConsoleSettingsPage()
|
||||
"Speeds up CD-ROM seeks by the specified factor. May improve loading speeds in some games, and break others."),
|
||||
"CDROM", "SeekSpeedup", 1, cdrom_seek_speeds, true, cdrom_read_seek_speed_values);
|
||||
|
||||
DrawIntRangeSetting(
|
||||
bsi, FSUI_ICONSTR(ICON_FA_FAST_FORWARD, "Readahead Sectors"),
|
||||
FSUI_CSTR("Reduces hitches in emulation by reading/decompressing CD data asynchronously on a worker thread."),
|
||||
"CDROM", "ReadaheadSectors", Settings::DEFAULT_CDROM_READAHEAD_SECTORS, 0, 32, FSUI_CSTR("%d sectors"));
|
||||
|
||||
DrawToggleSetting(
|
||||
bsi, FSUI_ICONSTR(ICON_FA_DOWNLOAD, "Preload Images to RAM"),
|
||||
FSUI_CSTR("Loads the game image into RAM. Useful for network paths that may become unreliable during gameplay."),
|
||||
@ -6227,10 +6222,25 @@ void FullscreenUI::DrawAdvancedSettingsPage()
|
||||
|
||||
MenuHeading(FSUI_CSTR("CD-ROM Emulation"));
|
||||
|
||||
DrawIntRangeSetting(
|
||||
bsi, FSUI_CSTR("Readahead Sectors"),
|
||||
FSUI_CSTR("Reduces hitches in emulation by reading/decompressing CD data asynchronously on a worker thread."),
|
||||
"CDROM", "ReadaheadSectors", Settings::DEFAULT_CDROM_READAHEAD_SECTORS, 0, 32, FSUI_CSTR("%d sectors"));
|
||||
|
||||
DrawIntRangeSetting(bsi, FSUI_CSTR("Maximum Speedup Read/Seek Cycles"),
|
||||
FSUI_CSTR("Sets the minimum delay for the 'Maximum' read/seek speedup level."), "CDROM",
|
||||
"MaxSpeedupCycles", Settings::DEFAULT_CDROM_MAX_SPEEDUP_CYCLES, 0, 1000000,
|
||||
FSUI_CSTR("%d cycles"));
|
||||
|
||||
DrawToggleSetting(bsi, FSUI_CSTR("Enable Region Check"),
|
||||
FSUI_CSTR("Simulates the region check present in original, unmodified consoles."), "CDROM",
|
||||
"RegionCheck", false);
|
||||
|
||||
DrawToggleSetting(
|
||||
bsi, FSUI_CSTR("Allow Booting Without SBI File"),
|
||||
FSUI_CSTR("Allows booting to continue even without a required SBI file. These games will not run correctly."),
|
||||
"CDROM", "AllowBootingWithoutSBIFile", false);
|
||||
|
||||
EndMenuButtons();
|
||||
}
|
||||
|
||||
@ -8753,6 +8763,7 @@ void FullscreenUI::CloseLoadingScreen()
|
||||
TRANSLATE_NOOP("FullscreenUI", "%.1f ms");
|
||||
TRANSLATE_NOOP("FullscreenUI", "%.2f Seconds");
|
||||
TRANSLATE_NOOP("FullscreenUI", "%d Frames");
|
||||
TRANSLATE_NOOP("FullscreenUI", "%d cycles");
|
||||
TRANSLATE_NOOP("FullscreenUI", "%d ms");
|
||||
TRANSLATE_NOOP("FullscreenUI", "%d sectors");
|
||||
TRANSLATE_NOOP("FullscreenUI", "-");
|
||||
@ -8843,6 +8854,7 @@ TRANSLATE_NOOP("FullscreenUI", "Advanced");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Advanced Settings");
|
||||
TRANSLATE_NOOP("FullscreenUI", "All Time: {}");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Allow Booting Without SBI File");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Allows booting to continue even without a required SBI file. These games will not run correctly.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Allows loading protected games without subchannel information.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Alpha Blending");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Always Track Uploads");
|
||||
@ -9174,6 +9186,7 @@ TRANSLATE_NOOP("FullscreenUI", "Logs out of RetroAchievements.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Macro Button {}");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Makes games run closer to their console framerate, at a small cost to performance.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Maximum");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Maximum Speedup Read/Seek Cycles");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Memory Card Busy");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Memory Card Directory");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Memory Card Port {}");
|
||||
@ -9363,6 +9376,7 @@ TRANSLATE_NOOP("FullscreenUI", "Set Input Binding");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Sets a threshold for discarding precise values when exceeded. May help with glitches in some games.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Sets a threshold for discarding the emulated depth buffer. May help in some games.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Sets the fast forward speed. It is not guaranteed that this speed will be reached on all systems.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Sets the minimum delay for the 'Maximum' read/seek speedup level.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Sets the target emulation speed. It is not guaranteed that this speed will be reached on all systems.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Sets the turbo speed. It is not guaranteed that this speed will be reached on all systems.");
|
||||
TRANSLATE_NOOP("FullscreenUI", "Sets the verbosity of messages logged. Higher levels will log more messages.");
|
||||
|
@ -45,7 +45,8 @@ static QCheckBox* setBooleanTweakOption(QTableWidget* table, int row, bool value
|
||||
}
|
||||
|
||||
static QSpinBox* addIntRangeTweakOption(SettingsWindow* dialog, QTableWidget* table, QString name, std::string section,
|
||||
std::string key, int min_value, int max_value, int default_value)
|
||||
std::string key, int min_value, int max_value, int default_value,
|
||||
const QString& suffix = QString())
|
||||
{
|
||||
const int row = table->rowCount();
|
||||
|
||||
@ -58,6 +59,9 @@ static QSpinBox* addIntRangeTweakOption(SettingsWindow* dialog, QTableWidget* ta
|
||||
QSpinBox* cb = new QSpinBox(table);
|
||||
cb->setMinimum(min_value);
|
||||
cb->setMaximum(max_value);
|
||||
if (!suffix.isEmpty())
|
||||
cb->setSuffix(suffix);
|
||||
|
||||
if (!section.empty() || !key.empty())
|
||||
{
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(dialog->getSettingsInterface(), cb, std::move(section), std::move(key),
|
||||
@ -254,13 +258,13 @@ void AdvancedSettingsWidget::addTweakOptions()
|
||||
}
|
||||
|
||||
addIntRangeTweakOption(m_dialog, m_ui.tweakOptionTable, tr("DMA Max Slice Ticks"), "Hacks", "DMAMaxSliceTicks", 1,
|
||||
10000, Settings::DEFAULT_DMA_MAX_SLICE_TICKS);
|
||||
10000, Settings::DEFAULT_DMA_MAX_SLICE_TICKS, tr(" cycles"));
|
||||
addIntRangeTweakOption(m_dialog, m_ui.tweakOptionTable, tr("DMA Halt Ticks"), "Hacks", "DMAHaltTicks", 1, 10000,
|
||||
Settings::DEFAULT_DMA_HALT_TICKS);
|
||||
Settings::DEFAULT_DMA_HALT_TICKS, tr(" cycles"));
|
||||
addIntRangeTweakOption(m_dialog, m_ui.tweakOptionTable, tr("GPU FIFO Size"), "Hacks", "GPUFIFOSize", 16, 4096,
|
||||
Settings::DEFAULT_GPU_FIFO_SIZE);
|
||||
Settings::DEFAULT_GPU_FIFO_SIZE, tr(" words"));
|
||||
addIntRangeTweakOption(m_dialog, m_ui.tweakOptionTable, tr("GPU Max Run-Ahead"), "Hacks", "GPUMaxRunAhead", 0, 1000,
|
||||
Settings::DEFAULT_GPU_MAX_RUN_AHEAD);
|
||||
Settings::DEFAULT_GPU_MAX_RUN_AHEAD, tr(" cycles"));
|
||||
|
||||
addBooleanTweakOption(m_dialog, m_ui.tweakOptionTable, tr("Enable Recompiler Memory Exceptions"), "CPU",
|
||||
"RecompilerMemoryExceptions", false);
|
||||
@ -275,8 +279,10 @@ void AdvancedSettingsWidget::addTweakOptions()
|
||||
Settings::ParseCDROMMechVersionName, Settings::GetCDROMMechVersionName,
|
||||
Settings::GetCDROMMechVersionDisplayName, static_cast<u8>(CDROMMechaconVersion::Count),
|
||||
Settings::DEFAULT_CDROM_MECHACON_VERSION);
|
||||
addIntRangeTweakOption(m_dialog, m_ui.tweakOptionTable, tr("CD-ROM Readahead Sectors"), "CDROM", "ReadaheadSectors",
|
||||
0, 32, Settings::DEFAULT_CDROM_READAHEAD_SECTORS, tr(" sectors"));
|
||||
addIntRangeTweakOption(m_dialog, m_ui.tweakOptionTable, tr("CD-ROM Max Speedup Read/Seek Cycles"), "CDROM",
|
||||
"MaxSpeedupCycles", 0, 1000000, Settings::DEFAULT_CDROM_MAX_SPEEDUP_CYCLES);
|
||||
"MaxSpeedupCycles", 0, 1000000, Settings::DEFAULT_CDROM_MAX_SPEEDUP_CYCLES, tr(" cycles"));
|
||||
addBooleanTweakOption(m_dialog, m_ui.tweakOptionTable, tr("CD-ROM Region Check"), "CDROM", "RegionCheck", false);
|
||||
addBooleanTweakOption(m_dialog, m_ui.tweakOptionTable, tr("CD-ROM SubQ Skew"), "CDROM", "SubQSkew", false);
|
||||
addBooleanTweakOption(m_dialog, m_ui.tweakOptionTable, tr("Allow Booting Without SBI File"), "CDROM",
|
||||
@ -319,6 +325,8 @@ void AdvancedSettingsWidget::onResetToDefaultClicked()
|
||||
Settings::DEFAULT_CPU_FASTMEM_MODE); // Recompiler fastmem mode
|
||||
setChoiceTweakOption(m_ui.tweakOptionTable, i++,
|
||||
Settings::DEFAULT_CDROM_MECHACON_VERSION); // CDROM Mechacon Version
|
||||
setIntRangeTweakOption(m_ui.tweakOptionTable, i++,
|
||||
Settings::DEFAULT_CDROM_READAHEAD_SECTORS); // CD-ROM Readahead Sectors
|
||||
setIntRangeTweakOption(m_ui.tweakOptionTable, i++,
|
||||
Settings::DEFAULT_CDROM_MAX_SPEEDUP_CYCLES); // CD-ROM Max Speedup Read/Seek Cycles
|
||||
setBooleanTweakOption(m_ui.tweakOptionTable, i++, false); // CDROM Region Check
|
||||
@ -353,6 +361,7 @@ void AdvancedSettingsWidget::onResetToDefaultClicked()
|
||||
sif->DeleteValue("CPU", "RecompilerBlockLinking");
|
||||
sif->DeleteValue("CPU", "FastmemMode");
|
||||
sif->DeleteValue("CDROM", "MechaconVersion");
|
||||
sif->DeleteValue("CDROM", "ReadaheadSectors");
|
||||
sif->DeleteValue("CDROM", "MaxSpeedupCycles");
|
||||
sif->DeleteValue("CDROM", "RegionCheck");
|
||||
sif->DeleteValue("CDROM", "SubQSkew");
|
||||
|
@ -35,17 +35,6 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(SettingsWindow* dialog, QWidget* pa
|
||||
QString::fromUtf8(Settings::GetCPUExecutionModeDisplayName(static_cast<CPUExecutionMode>(i))));
|
||||
}
|
||||
|
||||
static constexpr float TIME_PER_SECTOR_DOUBLE_SPEED = 1000.0f / 150.0f;
|
||||
m_ui.cdromReadaheadSectors->addItem(tr("Disabled (Synchronous)"));
|
||||
for (u32 i = 1; i <= 32; i++)
|
||||
{
|
||||
m_ui.cdromReadaheadSectors->addItem(tr("%1 sectors (%2 KB / %3 ms)")
|
||||
.arg(i)
|
||||
|
||||
.arg(static_cast<float>(i) * TIME_PER_SECTOR_DOUBLE_SPEED, 0, 'f', 0)
|
||||
.arg(static_cast<float>(i * CDImage::RAW_SECTOR_SIZE) / 1024.0f));
|
||||
}
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.region, "Console", "Region", &Settings::ParseConsoleRegionName,
|
||||
&Settings::GetConsoleRegionName, Settings::DEFAULT_CONSOLE_REGION);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.fastBoot, "BIOS", "PatchFastBoot", false);
|
||||
@ -61,8 +50,6 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(SettingsWindow* dialog, QWidget* pa
|
||||
Settings::DEFAULT_CPU_EXECUTION_MODE);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.enableCPUClockSpeedControl, "CPU", "OverclockEnable", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.recompilerICache, "CPU", "RecompilerICache", false);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.cdromReadaheadSectors, "CDROM", "ReadaheadSectors",
|
||||
Settings::DEFAULT_CDROM_READAHEAD_SECTORS);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.cdromLoadImageToRAM, "CDROM", "LoadImageToRAM", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.cdromLoadImagePatches, "CDROM", "LoadImagePatches", false);
|
||||
|
||||
@ -118,10 +105,6 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(SettingsWindow* dialog, QWidget* pa
|
||||
m_ui.cdromSeekSpeedup, tr("CD-ROM Seek Speedup"), tr("None (Normal Speed)"),
|
||||
tr("Reduces the simulated time for the CD-ROM sled to move to different areas of the disc. Can improve loading "
|
||||
"times, but crash games which do not expect the CD-ROM to operate faster."));
|
||||
dialog->registerWidgetHelp(m_ui.cdromReadaheadSectors, tr("Asynchronous Readahead"), tr("8 Sectors"),
|
||||
tr("Reduces hitches in emulation by reading/decompressing CD data asynchronously on a "
|
||||
"worker thread. Higher sector numbers can reduce spikes when streaming FMVs or audio "
|
||||
"on slower storage or when using compression formats such as CHD."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.cdromLoadImageToRAM, tr("Preload Image to RAM"), tr("Unchecked"),
|
||||
tr("Loads the game image into RAM. Useful for network paths that may become unreliable during gameplay. In some "
|
||||
|
@ -166,17 +166,14 @@
|
||||
<string>CD-ROM Emulation</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_4">
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="cdromReadaheadSectors"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Read Speedup:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="cdromReadSpeedup">
|
||||
<item>
|
||||
<property name="text">
|
||||
@ -235,17 +232,17 @@
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Seek Speedup:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="cdromSeekSpeedup">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
<property name="currentText">
|
||||
<string/>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
@ -304,7 +301,7 @@
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<item row="2" column="0" colspan="2">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="cdromLoadImageToRAM">
|
||||
@ -329,13 +326,6 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>Async Readahead:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
Loading…
x
Reference in New Issue
Block a user