From 56edd4c0b7c54adc9489ca5adcfd77e6433b7928 Mon Sep 17 00:00:00 2001 From: BearOso Date: Mon, 14 Aug 2023 18:00:52 -0500 Subject: [PATCH] Qt: Finish cheats. Add what's this stuff. --- qt/src/CheatsDialog.ui | 4 +- qt/src/DisplayPanel.ui | 71 ++++++++++++++++++++++++++++++------ qt/src/EmuSettingsWindow.cpp | 5 +++ qt/src/EmuSettingsWindow.ui | 7 ++++ 4 files changed, 74 insertions(+), 13 deletions(-) diff --git a/qt/src/CheatsDialog.ui b/qt/src/CheatsDialog.ui index e4da6dec..75e65aac 100644 --- a/qt/src/CheatsDialog.ui +++ b/qt/src/CheatsDialog.ui @@ -6,12 +6,12 @@ 0 0 - 466 + 470 399 - Dialog + Cheats diff --git a/qt/src/DisplayPanel.ui b/qt/src/DisplayPanel.ui index d4278735..500d523f 100644 --- a/qt/src/DisplayPanel.ui +++ b/qt/src/DisplayPanel.ui @@ -40,6 +40,9 @@ Choose a device to render output. If you have no integrated graphics, there will be only one choice. + + <html><head/><body><p>When using <span style=" font-style:italic;">Vulkan</span>, this chooses the GPU you wish to use Snes9x with.</p></body></html> + @@ -53,6 +56,9 @@ Select the output driver. + + <html><head/><body><p>Choose one of <span style=" font-style:italic;">Qt Software, Vulkan, or OpenGL</span>.</p><p>Qt Software will use the CPU to draw the display. Vulkan or OpenGL will use that respective graphics interface to draw the display.</p></body></html> + @@ -71,6 +77,9 @@ Smooth screen output. + + <html><head/><body><p>Turns on a bilinear smoothing filter to smooth out the pixels. This option won't work with a hardware shader enabled.</p></body></html> + Bilinear filter @@ -81,6 +90,9 @@ Prevent the display driver from getting too far ahead in order to reduce lag. + + <html><head/><body><p>This prevents the GPU from queuing up additional frames in advance, reducing the time it takes for the display to react to your input.</p></body></html> + Reduce input lag @@ -91,6 +103,9 @@ When entering fullscreen mode, temporarily change other settings to use VRR (G-Sync or FreeSync) correctly. + + <html><head/><body><p>When entering fullscreen mode, this option temporarily sets a number of other options to values that make variable refresh rate monitors that use FreeSync or GSync smoother.</p><p>Enables vsync.</p><p>Sets synchronization mode to timer and the frame rate to exactly that of the SNES.</p><p>Sets input rate to 32040Hz.</p></body></html> + Adjust settings for VRR in fullscreen mode @@ -101,6 +116,9 @@ Sync the display to vertical retrace to eliminate tearing. + + <html><head/><body><p>This option prevents tearing in the output.</p></body></html> + Enable vsync @@ -117,16 +135,26 @@ .slangp is supported by Vulkan and OpenGL. .glslp is supported by OpenGL. + + <html><head/><body><p>Uses a hardware shader with <span style=" font-style:italic;">Vulkan</span> or <span style=" font-style:italic;">OpenGL</span> drivers. These can be either .glslp or .slangp preset files.</p><p>GLSL shaders (.glslp) can be downloaded from:</p><p><a href="https://github.com/libretro/glsl-shaders"><span style=" text-decoration: underline; color:#2980b9;">https://github.com/libretro/glsl-shaders</span></a></p><p>Slang shaders (.slangp) can be downloaded from:</p><p><a href="https://github.com/libretro/slang-shaders"><span style=" text-decoration: underline; color:#2980b9;">https://github.com/libretro/slang-shaders</span></a></p></body></html> + Use a hardware shader: - + + + <html><head/><body><p>Uses a hardware shader with <span style=" font-style:italic;">Vulkan</span> or <span style=" font-style:italic;">OpenGL</span> drivers. These can be either .glslp or .slangp preset files.</p><p>GLSL shaders (.glslp) can be downloaded from:</p><p><a href="https://github.com/libretro/glsl-shaders"><span style=" text-decoration: underline; color:#2980b9;">https://github.com/libretro/glsl-shaders</span></a></p><p>Slang shaders (.slangp) can be downloaded from:</p><p><a href="https://github.com/libretro/slang-shaders"><span style=" text-decoration: underline; color:#2980b9;">https://github.com/libretro/slang-shaders</span></a></p></body></html> + + + + <html><head/><body><p>Uses a hardware shader with <span style=" font-style:italic;">Vulkan</span> or <span style=" font-style:italic;">OpenGL</span> drivers. These can be either .glslp or .slangp preset files.</p><p>GLSL shaders (.glslp) can be downloaded from:</p><p><a href="https://github.com/libretro/glsl-shaders"><span style=" text-decoration: underline; color:#2980b9;">https://github.com/libretro/glsl-shaders</span></a></p><p>Slang shaders (.slangp) can be downloaded from:</p><p><a href="https://github.com/libretro/slang-shaders"><span style=" text-decoration: underline; color:#2980b9;">https://github.com/libretro/slang-shaders</span></a></p></body></html> + Browse... @@ -150,31 +178,40 @@ Keep the screen at the requested proportions for width and height. + + <html><head/><body><p>This option keeps the proportions of the emulated display the same no matter how you change the size of the window.</p></body></html> + Maintain aspect ratio - - - - When scaling up, only use integer multiples of the original height. - - - Use integer scaling - - - Show the areas on the top and bottom of the screen that are normally black and hidden by the TV. Some games will draw in these areas. + + <html><head/><body><p>On classic CRT televisions, some areas of the screen were covered by the bezel, so weren't used often in games. This option allows you to show that area, but it will usually be just black bars.</p></body></html> + Show overscan area + + + + When scaling up, only use integer multiples of the original height. + + + <html><head/><body><p>This option adapts <span style=" font-style:italic;">maintain aspect ratio</span> and scales the image in steps of integral scale, so game pixels are never spread across the borders of screen pixels.</p></body></html> + + + Use integer scaling + + + @@ -194,6 +231,9 @@ 0 + + <html><head/><body><p>This option affects how <span style=" font-style:italic;">maintain aspect ratio </span>works. </p><p><span style=" font-style:italic;">4:3 </span>will maintain a ratio where the screen is 1.333 times wider than high.</p><p>64:49 presents an idealized ratio where the display output is perfect, but is affected by NTSC compression.</p><p>1:1 Means pixels will be square. This will squeeze the image horizontally.<br/></p><p><br/></p></body></html> + 4:3 - Classic display aspect @@ -232,6 +272,9 @@ For games like Kirby 3 and Jurassic Park, choose the "merge fields" op For games like Seiken Densetsu 3 and Marvelous, choose the "scale up" option. Output directly will cause the screen to change between the two modes and look weird. + + <html><head/><body><p>This option only affects the SNES's high-resolution, 512 pixel wide mode. Few games use this. </p><p><span style=" font-style:italic;">Output directly</span> will use whatever is output directly, but when the game changes modes, the filtering will get sharper or blurrier and may be distracting.</p><p><span style=" font-style:italic;">Merge fields </span>will scale the image down and blend the extra pixels together. This is useful in games like Jurassic Park and Kirby's Dreamland 3, which use it for a transparency effect.</p><p><span style=" font-style:italic;">Scale low resolution </span>will double the width of low-resolution screens, so when the game switches between modes there isn't any distracting changes in filtering. This is useful when a game uses the high resolution mode often, like Seiken Densetsu 3.<br/></p><p><br/></p></body></html> + Output directly @@ -302,6 +345,9 @@ Output directly will cause the screen to change between the two modes and look w 0 + + <html><head/><body><p>This option determines whether messages show up in the game display:</p><p>Onscreen will show a high resolution overlay when using <span style=" font-style:italic;">Vulkan</span> or <span style=" font-style:italic;">OpenGL</span>.</p><p>Inscreen will draw in a pixel font to the ingame display.</p><p>Don't display messages will show nothing.<br/></p></body></html> + Onscreen - High resolution @@ -327,6 +373,9 @@ Output directly will cause the screen to change between the two modes and look w 0 + + <html><head/><body><p>This option only affects the size of the font and the icons shown when display messages are set to the <span style=" font-style:italic;">Onscreen</span> option.</p></body></html> + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter diff --git a/qt/src/EmuSettingsWindow.cpp b/qt/src/EmuSettingsWindow.cpp index ddd1332b..5af7e259 100644 --- a/qt/src/EmuSettingsWindow.cpp +++ b/qt/src/EmuSettingsWindow.cpp @@ -3,6 +3,7 @@ #include "EmuConfig.hpp" #include +#include EmuSettingsWindow::EmuSettingsWindow(QWidget *parent, EmuApplication *app_) : QDialog(parent), app(app_) @@ -61,6 +62,10 @@ EmuSettingsWindow::EmuSettingsWindow(QWidget *parent, EmuApplication *app_) } app->updateSettings(); }); + + connect(pushButton_help, &QPushButton::clicked, [&] { + QWhatsThis::enterWhatsThisMode(); + }); } EmuSettingsWindow::~EmuSettingsWindow() diff --git a/qt/src/EmuSettingsWindow.ui b/qt/src/EmuSettingsWindow.ui index b3ac1303..bc533603 100644 --- a/qt/src/EmuSettingsWindow.ui +++ b/qt/src/EmuSettingsWindow.ui @@ -129,6 +129,13 @@ + + + + Help + + +