Qt: Compilation fix. Help updates.

This commit is contained in:
BearOso 2023-08-15 17:57:45 -05:00
parent 942f4ae971
commit d18cfb1e77
6 changed files with 103 additions and 4 deletions

View file

@ -25,6 +25,9 @@
</item>
<item>
<widget class="QComboBox" name="controllerComboBox">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The enumerated controller as seen by the SNES. Controller 1 will always be &amp;quot;Player 1&amp;quot; and so on, no matter what device is assigned to the controller ports.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>SNES Controller 1</string>
@ -76,6 +79,9 @@
<property name="toolTip">
<string>Swap or clear groups of bindings</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Clear or swap sets of bindings between controllers.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Edit</string>
</property>
@ -101,6 +107,9 @@
<property name="toolTip">
<string>Automatically assign a controller's buttons to a slot</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Use this to automatically assign the default keyboard mapping or a detected controller to a set of bindings.&lt;/p&gt;&lt;p&gt;This uses the XInput controller protocol and maps it as close as possible to a SNES controller.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Auto-Assign</string>
</property>
@ -123,6 +132,9 @@
</item>
<item>
<widget class="QTableWidget" name="tableWidget_controller">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This box lists keyboard keys and gamepad buttons mapped to the SNES controller. There are 4 slots, so you can assign 4 different keys or buttons to one SNES button.&lt;/p&gt;&lt;p&gt;To set a binding, click a box or highlight it with the keyboard and press Enter/Return. The box will show three dots &amp;quot;...&amp;quot;. Press the desired key or gamepad button to assign it to that box. The Escape key will clear the box.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>

View file

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>862</width>
<height>756</height>
<height>763</height>
</rect>
</property>
<property name="windowTitle">
@ -31,6 +31,9 @@
</item>
<item>
<widget class="QComboBox" name="comboBox_speed_control_method">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This controls how the program runs the emulated content at the correct speed.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Timer&lt;/span&gt;: This sets a literal timer and shows emulated frames at the exact frame rate specified, or automatically matches the emulated system. It may not match your display's frame rate, which can cause judders.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Timer with Frameskipping&lt;/span&gt;: The same as timer, except if your display has a lower refresh rate than the emulated system it will skip frames to keep up.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Sound Synchronization: &lt;/span&gt;Assume the sound engine is outputting the sound at the correct speed and match the video output rate with it. This assumes your refresh rate is fairly close to the emulated system and you have vsync turned on.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;None:&lt;/span&gt; Don't attempt to slow emulation down. If you turn off vsync, this will run as fast as possible. If your display matches the emulated system's refresh rate closely, this with vsync enabled is generally the smoothest option aside from variable refresh rates with a timer.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>Timer - Match the frame rate configured below</string>
@ -79,6 +82,9 @@
</item>
<item>
<widget class="QDoubleSpinBox" name="doubleSpinBox_frame_rate">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Override the frame rate of the emulated system. This can be used to run slightly faster or slower than usual, or to match the timer to your exact refresh rate.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Set this to 0 to use whatever the emulated system uses.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="suffix">
<string> fps</string>
</property>
@ -135,6 +141,9 @@
</item>
<item>
<widget class="QSpinBox" name="spinBox_fast_forward_skip_frames">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Skips rendering the specified amount of frames when using the fast-forward function. The higher this amount, the faster it goes.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="suffix">
<string> frames</string>
</property>
@ -180,7 +189,11 @@
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBox_rewind_frames"/>
<widget class="QSpinBox" name="spinBox_rewind_frames">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The number of frames between each rewind snapshot. More frames mean rewind can go back further and will rewind faster. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
@ -191,6 +204,9 @@
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="spinBox_rewind_buffer_size">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Amount of memory to use to enable the rewind function. The amount of time each MB gets you varies based on the complexity of the game. Set to 0 to disable rewind altogether and use less processor time.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="suffix">
<string> MB</string>
</property>
@ -224,6 +240,9 @@
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QCheckBox" name="checkBox_allow_invalid_vram_access">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;A hack option. Only use this if you are running a third-party hack of a game that was designed for emulators and needs this.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Allow invalid VRAM access</string>
</property>
@ -231,6 +250,9 @@
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox_overclock">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Decrease the time it takes for the CPU to perform operations, making it faster. This can remove slowdown, but can also cause glitches in many games.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Overclock the CPU</string>
</property>
@ -238,6 +260,9 @@
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="checkBox_use_shadow_echo_buffer">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This option is explicitly for old AddMusic hacks. If you know you have one of those, you can enable this. Otherwise, leave it unchecked.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Use a shadow echo buffer</string>
</property>
@ -245,6 +270,9 @@
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="checkBox_allow_opposing_dpad_directions">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Original controllers may have had a small pin in the dpad preventing left and right or up and down from being pressed at the same time. This will allow that behavior if you're using a keyboard or device that can press those buttons at the same time. Some games will glitch when this is done.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Allow opposite D-pad directions simultaneously</string>
</property>
@ -252,6 +280,9 @@
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="checkBox_remove_sprite_limit">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows more sprites to be displayed on the screen in an attempt to remove flickering.&lt;/p&gt;&lt;p&gt;Some games take advantage of this limit and use it to hide glitches, and removing the limit will make those visible.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Remove the sprite limit</string>
</property>
@ -270,6 +301,9 @@
</item>
<item>
<widget class="QSpinBox" name="spinBox_superfx_clock_speed">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Change the speed of the SuperFX chip. The SuperFX had some notoriously slow games, and this can be used to attempt to speed them up.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="suffix">
<string>%</string>
</property>
@ -313,6 +347,9 @@
</item>
<item>
<widget class="QComboBox" name="comboBox_sound_filter">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Alternate sound filters can make the audio more crisp than the authentic gaussian filter.&lt;/p&gt;&lt;p&gt;The Cubic and Sinc filters provide the best improvement, but they can reveal some noise that would normally be hidden by the hardware.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>Nearest</string>

View file

@ -22,6 +22,9 @@
<layout class="QGridLayout" name="gridLayout">
<item row="5" column="2">
<widget class="QComboBox" name="comboBox_export">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Determines where to save these files.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;ROM Folder&lt;/span&gt; will always save to the same folder as the ROM.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Config Folder&lt;/span&gt; will save to a subfolder of the config folder that is shown. If there is a snes9x.conf file next to your executable, Snes9x will operate in portable mode and the config folder will be the folder the executable is in.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Custom&lt;/span&gt; allows you to specify exactly where to save these files.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>ROM Folder</string>
@ -41,6 +44,9 @@
</item>
<item row="1" column="2">
<widget class="QComboBox" name="comboBox_state">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Determines where to save these files.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;ROM Folder&lt;/span&gt; will always save to the same folder as the ROM.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Config Folder&lt;/span&gt; will save to a subfolder of the config folder that is shown. If there is a snes9x.conf file next to your executable, Snes9x will operate in portable mode and the config folder will be the folder the executable is in.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Custom&lt;/span&gt; allows you to specify exactly where to save these files.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>ROM Folder</string>
@ -60,6 +66,9 @@
</item>
<item row="0" column="2">
<widget class="QComboBox" name="comboBox_sram">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Determines where to save these files.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;ROM Folder&lt;/span&gt; will always save to the same folder as the ROM.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Config Folder&lt;/span&gt; will save to a subfolder of the config folder that is shown. If there is a snes9x.conf file next to your executable, Snes9x will operate in portable mode and the config folder will be the folder the executable is in.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Custom&lt;/span&gt; allows you to specify exactly where to save these files.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>ROM Folder</string>
@ -107,6 +116,9 @@
</item>
<item row="4" column="2">
<widget class="QComboBox" name="comboBox_patch">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Determines where to save these files.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;ROM Folder&lt;/span&gt; will always save to the same folder as the ROM.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Config Folder&lt;/span&gt; will save to a subfolder of the config folder that is shown. If there is a snes9x.conf file next to your executable, Snes9x will operate in portable mode and the config folder will be the folder the executable is in.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Custom&lt;/span&gt; allows you to specify exactly where to save these files.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>ROM Folder</string>
@ -126,6 +138,9 @@
</item>
<item row="3" column="2">
<widget class="QComboBox" name="comboBox_cheat">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Determines where to save these files.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;ROM Folder&lt;/span&gt; will always save to the same folder as the ROM.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Config Folder&lt;/span&gt; will save to a subfolder of the config folder that is shown. If there is a snes9x.conf file next to your executable, Snes9x will operate in portable mode and the config folder will be the folder the executable is in.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Custom&lt;/span&gt; allows you to specify exactly where to save these files.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>ROM Folder</string>
@ -238,6 +253,9 @@
</item>
<item>
<widget class="QSpinBox" name="spinBox_sram_interval">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Setting this to anything other than 0 will save the SRAM (internal game saves) file regularly. If it is set to to 0, it will only save when exiting Snes9x or changing games, and you will lose any progress since the last save if your device crashes.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="suffix">
<string> seconds</string>
</property>

View file

@ -53,6 +53,9 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This box lists application shortcuts. There are 4 slots, so you can assign 4 different keys or buttons to one function.&lt;/p&gt;&lt;p&gt;To set a binding, click a box or highlight it with the keyboard and press Enter/Return. The box will show three dots &amp;quot;...&amp;quot;. Press the desired key or gamepad button to assign it to that box. The Escape key will clear the box.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<row>
<property name="text">
<string>Open ROM</string>

View file

@ -30,6 +30,9 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The buffer size for the emulator side of sound playback. Ideally, it should be about two frames worth of audio, or about 32ms at 60Hz. Latency will be half this value.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="suffix">
<string> ms</string>
</property>
@ -52,6 +55,9 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The output playback rate on your computer. This is &lt;span style=&quot; font-weight:700;&quot;&gt;not&lt;/span&gt; the playback rate of the emulated system.&lt;/p&gt;&lt;p&gt;You should set this to match your operating system's sound server. It should almost always be 48000Hz.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>48000 Hz</string>
@ -87,7 +93,7 @@
</sizepolicy>
</property>
<property name="toolTip">
<string>Choose a device to render output. If you have no integrated graphics, there will be only one choice.</string>
<string/>
</property>
</widget>
</item>
@ -122,6 +128,9 @@
<property name="toolTip">
<string>Select the output driver.</string>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Selects the driver to output sound with.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Cubeb: &lt;/span&gt;The recommended option.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;SDL&lt;/span&gt;: If Cubeb doesn't work.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;PulseAudio:&lt;/span&gt; Unix only. May have less latency.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="2" column="0">
@ -146,6 +155,9 @@
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QCheckBox" name="checkBox_dynamic_rate_control">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This option causes the audio to be slightly stretched to keep the latency even and to prevent underruns and overruns, which will cause pops and cracks in the audio.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Dynamic rate control</string>
</property>
@ -153,6 +165,9 @@
</item>
<item>
<widget class="QCheckBox" name="checkBox_adjust_input_rate">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This option stretches the emulated audio output to coincide exactly with your display's refresh rate. It automatically handles the &lt;span style=&quot; font-style:italic;&quot;&gt;Input Rate&lt;/span&gt; option.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Adjust input rate to display rate automatically</string>
</property>
@ -183,6 +198,9 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QSlider" name="horizontalSlider_input_rate">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Control how much the audio is stretched initially.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Unless you know what you're doing, it's best to use the option above this to adjust it automatically.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="minimum">
<number>31800</number>
</property>
@ -227,6 +245,9 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;If after everything, you're still getting pops and crackles in audio, you can increase this value. However, it may cause noticeable distortion.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="decimals">
<number>3</number>
</property>
@ -267,6 +288,9 @@
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QCheckBox" name="checkBox_mute_sound">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Erases all emulated sound output and just sends out silence.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Mute all sound</string>
</property>
@ -274,6 +298,9 @@
</item>
<item>
<widget class="QCheckBox" name="checkBox_mute_during_alt_speed">
<property name="whatsThis">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Mutes sound when using the turbo and rewind functions, which might be annoying to some users.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Mute sound during turbo or rewind</string>
</property>

View file

@ -13,7 +13,9 @@
#include "shader_helpers.h"
#include "../vulkan/slang_helpers.hpp"
#include "shader_platform.h"
#ifndef _MSC_VER
#include <unistd.h>
#endif
static const GLfloat tex_coords[16] = { 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f,
0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f };