aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNadia Holmquist Pedersen <nadia@nhp.sh>2024-01-26 13:06:32 +0100
committerNadia Holmquist Pedersen <nadia@nhp.sh>2024-01-26 13:06:32 +0100
commit7dd4152d6711db76fbe2a2acffcc208a524bb25d (patch)
tree40a8e70a1dcc41f77ef2fd6f4e595fada19203a5
parent890035c688b481d22564b79444855df9e9a5dada (diff)
Add MaxFPS setting
-rw-r--r--src/frontend/qt_sdl/Config.cpp2
-rw-r--r--src/frontend/qt_sdl/Config.h1
-rw-r--r--src/frontend/qt_sdl/EmuThread.cpp2
-rw-r--r--src/frontend/qt_sdl/InterfaceSettingsDialog.cpp2
-rw-r--r--src/frontend/qt_sdl/InterfaceSettingsDialog.ui120
5 files changed, 92 insertions, 35 deletions
diff --git a/src/frontend/qt_sdl/Config.cpp b/src/frontend/qt_sdl/Config.cpp
index b6fca7d..02f43de 100644
--- a/src/frontend/qt_sdl/Config.cpp
+++ b/src/frontend/qt_sdl/Config.cpp
@@ -61,6 +61,7 @@ int GL_ScaleFactor;
bool GL_BetterPolygons;
bool LimitFPS;
+int MaxFPS;
bool AudioSync;
bool ShowOSD;
@@ -251,6 +252,7 @@ ConfigEntry ConfigFile[] =
{"GL_BetterPolygons", 1, &GL_BetterPolygons, false, false},
{"LimitFPS", 1, &LimitFPS, true, false},
+ {"MaxFPS", 0, &MaxFPS, 1000, false},
{"AudioSync", 1, &AudioSync, false},
{"ShowOSD", 1, &ShowOSD, true, false},
diff --git a/src/frontend/qt_sdl/Config.h b/src/frontend/qt_sdl/Config.h
index 5e3db82..11644dc 100644
--- a/src/frontend/qt_sdl/Config.h
+++ b/src/frontend/qt_sdl/Config.h
@@ -105,6 +105,7 @@ extern int GL_ScaleFactor;
extern bool GL_BetterPolygons;
extern bool LimitFPS;
+extern int MaxFPS;
extern bool AudioSync;
extern bool ShowOSD;
diff --git a/src/frontend/qt_sdl/EmuThread.cpp b/src/frontend/qt_sdl/EmuThread.cpp
index 01431a1..0728a08 100644
--- a/src/frontend/qt_sdl/EmuThread.cpp
+++ b/src/frontend/qt_sdl/EmuThread.cpp
@@ -576,7 +576,7 @@ void EmuThread::run()
{
bool limitfps = Config::LimitFPS && !fastforward;
- double practicalFramelimit = limitfps ? frametimeStep : 1.0 / 1000.0;
+ double practicalFramelimit = limitfps ? frametimeStep : 1.0 / Config::MaxFPS;
double curtime = SDL_GetPerformanceCounter() * perfCountsSec;
diff --git a/src/frontend/qt_sdl/InterfaceSettingsDialog.cpp b/src/frontend/qt_sdl/InterfaceSettingsDialog.cpp
index 2f7417f..75497bc 100644
--- a/src/frontend/qt_sdl/InterfaceSettingsDialog.cpp
+++ b/src/frontend/qt_sdl/InterfaceSettingsDialog.cpp
@@ -34,6 +34,7 @@ InterfaceSettingsDialog::InterfaceSettingsDialog(QWidget* parent) : QDialog(pare
ui->spinMouseHideSeconds->setEnabled(Config::MouseHide != 0);
ui->spinMouseHideSeconds->setValue(Config::MouseHideSeconds);
ui->cbPauseLostFocus->setChecked(Config::PauseLostFocus != 0);
+ ui->spinMaxFPS->setValue(Config::MaxFPS);
}
InterfaceSettingsDialog::~InterfaceSettingsDialog()
@@ -60,6 +61,7 @@ void InterfaceSettingsDialog::done(int r)
Config::MouseHide = ui->cbMouseHide->isChecked() ? 1:0;
Config::MouseHideSeconds = ui->spinMouseHideSeconds->value();
Config::PauseLostFocus = ui->cbPauseLostFocus->isChecked() ? 1:0;
+ Config::MaxFPS = ui->spinMaxFPS->value();
Config::Save();
diff --git a/src/frontend/qt_sdl/InterfaceSettingsDialog.ui b/src/frontend/qt_sdl/InterfaceSettingsDialog.ui
index 8ee9fed..01ba4a4 100644
--- a/src/frontend/qt_sdl/InterfaceSettingsDialog.ui
+++ b/src/frontend/qt_sdl/InterfaceSettingsDialog.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>262</width>
- <height>113</height>
+ <width>337</width>
+ <height>233</height>
</rect>
</property>
<property name="sizePolicy">
@@ -19,32 +19,96 @@
<property name="windowTitle">
<string>Interface settings - melonDS</string>
</property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="1" column="0" alignment="Qt::AlignLeft">
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Hide after</string>
+ <layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,0">
+ <item alignment="Qt::AlignTop">
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Main window</string>
</property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QCheckBox" name="cbMouseHide">
+ <property name="text">
+ <string>Hide mouse after inactivity</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0,1">
+ <property name="leftMargin">
+ <number>18</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>After</string>
+ </property>
+ <property name="buddy">
+ <cstring>spinMouseHideSeconds</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinMouseHideSeconds"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>seconds</string>
+ </property>
+ <property name="buddy">
+ <cstring>spinMouseHideSeconds</cstring>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="cbPauseLostFocus">
+ <property name="text">
+ <string>Pause emulation when window is not in focus</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</widget>
</item>
- <item row="2" column="0" colspan="4">
- <widget class="QCheckBox" name="cbPauseLostFocus">
- <property name="text">
- <string>Pause emulation when window is not in focus</string>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Framerate </string>
</property>
+ <layout class="QHBoxLayout" name="horizontalLayout_4" stretch="0,0">
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Fast-forward limit</string>
+ </property>
+ <property name="buddy">
+ <cstring>spinMaxFPS</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinMaxFPS">
+ <property name="suffix">
+ <string> FPS</string>
+ </property>
+ <property name="minimum">
+ <number>60</number>
+ </property>
+ <property name="maximum">
+ <number>1000</number>
+ </property>
+ <property name="value">
+ <number>1000</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
</widget>
</item>
- <item row="0" column="0" colspan="5">
- <widget class="QCheckBox" name="cbMouseHide">
- <property name="text">
- <string>Hide mouse after inactivity</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1" alignment="Qt::AlignLeft">
- <widget class="QSpinBox" name="spinMouseHideSeconds"/>
- </item>
- <item row="3" column="0" colspan="5">
+ <item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -54,20 +118,8 @@
</property>
</widget>
</item>
- <item row="1" column="2">
- <widget class="QLabel" name="label_2">
- <property name="text">
- <string>seconds of inactivity</string>
- </property>
- </widget>
- </item>
</layout>
</widget>
- <tabstops>
- <tabstop>cbMouseHide</tabstop>
- <tabstop>spinMouseHideSeconds</tabstop>
- <tabstop>cbPauseLostFocus</tabstop>
- </tabstops>
<resources/>
<connections>
<connection>