Commit Graph

131 Commits (ff11fdb07e7264f21b45e23b852bc1c51c870f5c)

Author SHA1 Message Date
german77 bca299e8e0 input_common: Allow keyboard to be backwards compatible 3 years ago
german77 84c58666a4 config: Cleanup and documentation 3 years ago
german77 2b1b0c2a30 kraken: Address comments from review
start lion review
3 years ago
german77 c085e54316 core/hid: Add TAS input 3 years ago
german77 6e2c84042d settings: Cleanup settings 3 years ago
Kewlan 8e3371a5c5 configure_general: Allow framerate cap to be used in custom game configs 3 years ago
Fernando Sahmkow 282e04bffb TextureCache: Add automatic anisotropic filtering and refactor code. 3 years ago
Fernando Sahmkow a96c9c803b Yuzu UI: Add button for Anti Alias 3 years ago
Marshall Mohror 510caeefb3 Settings: Add anti-aliasing method setting 3 years ago
FernandoS27 2eff80b47f QtGUI: Add buttton to toggle the filter. 3 years ago
FernandoS27 9e065b9c7d VideoCore: Add gaussian filtering. 3 years ago
FernandoS27 e7fc60406e VideoCore: Add more rescaling option. 3 years ago
Fernando Sahmkow b60966041c Presentation: add Nearest Neighbor filter. 3 years ago
Marshall Mohror 37cb0377ae vulkan: Implement FidelityFX Super Resolution 3 years ago
Fernando Sahmkow b7ccc58f23 Texture Cahe: Fix downscaling on SMO. 3 years ago
ameerj abd07e4158 video_core: Refactor resolution scale function 3 years ago
Fernando Sahmkow a6b88e85bf Renderer: Implement Bicubic and ScaleForce filters. 3 years ago
ReinUsesLisp 43aa695a04 common/settings: Remove unused scaling options 3 years ago
Fernando Sahmkow 71ca84d829 Settings: eliminate rescaling_factor. 3 years ago
Fernando Sahmkow 37ef9c9130 Settings: Add resolution scaling to settings. 3 years ago
Fernando Sahmkow 22f4b290b6 VideoCore: Initial Setup for the Resolution Scaler. 3 years ago
ameerj ef811c6425 settings: Remove std::chrono usage
Alleviates the dependency on chrono for all files that include settings.h
3 years ago
Morph 8af9f3216e settings: Remove BCAT settings 4 years ago
german77 33a1d790e8 input_common/tas: Document the main class 4 years ago
MonsterDruide1 f078b15565 input_common/tas: Fallback to simple update 4 years ago
MonsterDruide1 4297d2fea2 core: Hacky TAS syncing & load pausing
To keep the TAS inputs synced to the game speed even through lag spikes and loading zones, deeper access is required.

First, the `TAS::UpdateThread` has to be executed exactly once per frame. This is done by connecting it to the service method the game calls to pass parameters to the GPU: `Service::VI::QueueBuffer`.

Second, the loading time of new subareas and/or kingdoms (SMO) can vary. To counteract that, the `CPU_BOOST_MODE` can be detected: In the `APM`-interface, the call to enabling/disabling the boost mode can be caught and forwarded to the TASing system, which can pause the script execution if neccessary and enabled in the settings.
4 years ago
MonsterDruide1 f25d6ebc45 settings: File selector & other settings
First of all, TASing requires a script to play back. The user can select the parent directory at `System -> Filesystem`, next to an option to pause TAS during loads: This requires a "hacky" setup deeper in the code and will be added in the last commit.

Also, Hotkeys are being introduced: CTRL+F5 for playback start/stop, CTRL+F6 for re-reading the script and CTRL+F7 for recording a new script.
4 years ago
MonsterDruide1 b42c3ce21d input_common/tas: Base playback & recording system
The base playback system supports up to 8 controllers (specified by `PLAYER_NUMBER` in `tas_input.h`), which all change their inputs simulataneously when `TAS::UpdateThread` is called.

The recording system uses the controller debugger to read the state of the first controller and forwards that data to the TASing system for recording. Currently, this process sadly is not frame-perfect and pixel-accurate.

Co-authored-by: Naii-the-Baf <sfabian200@gmail.com>
Co-authored-by: Narr-the-Reg <juangerman-13@hotmail.com>
4 years ago
bunnei 35f46fc079
Merge pull request #7020 from Moonlacer/remove_audio_stretching
Remove audio stretching
4 years ago
bunnei 6d7801deb7
Merge pull request #6950 from german77/multiplay
input_common: Add advanced setting for 8 player support
4 years ago
Moonlacer 44135b011f remove-audio-stretching-setting 4 years ago
Fernando S be4e192903
Merge pull request #6846 from ameerj/nvdec-gpu-decode
nvdec: Add GPU video decoding for all capable drivers and platforms
4 years ago
german77 5798537ce4 input_common: Enable steam controllers and 8 player support 4 years ago
Fernando Sahmkow ba82bb359b Garbage Collection: enable as default, eliminate option. 4 years ago
Morph c4a1d3cbf4 settings: Amend language_index maximum setting range
The maximum is now 17 with the addition of Brazilian Portuguese
4 years ago
ameerj cd016d3cb5 configure_graphics: Add GPU nvdec decoding as an option
Some system configurations may see visual regressions or lower performance using GPU decoding compared to CPU decoding. This setting provides the option for users to specify their decoding preference.

Co-Authored-By: yzct12345 <87620833+yzct12345@users.noreply.github.com>
4 years ago
spholz 78a8249593
Merge branch 'yuzu-emu:master' into fix-lan-play 4 years ago
spholz 1e98e73828 configuration: add option to select network interface
This commit renames the "Services" tab to "Network" and adds a combobox that allows the user to select the network interface that yuzu should use. This new setting is now used to get the local IP address in Network::GetHostIPv4Address. This prevents yuzu from selecting the wrong network interface and thus using the wrong IP address. The return type of Network::GetHostIPv4Adress has also been changed.
4 years ago
lat9nq 5be2d6fd28 settings: Fix MSVC issues
According to https://stackoverflow.com/questions/469508, we run into a
MSVC bug (since VS 2005) when using diamond inheritance for
RangedSetting.

This explicitly implements those functions in RangedSetting. GetValue is
implemented as just calling the inherited version. The explicit
converson operator is reimplemented. I opted for this over ignoring the
warning with a pragma since this specifies the inherited behavior, and I
have now less faith in MSVC to pick the right one.

In addition, we mark destructors as virtual to silence what I believe is
a fair MSVC compilation error.
4 years ago
bunnei e6b80c2cf8
Merge pull request #6776 from lat9nq/ranged-settings
settings: Implement settings ranges
4 years ago
lat9nq 3862511a9a settings: Use std::clamp where possible
Addresses PR review

Co-authored-by: PixelyIon <pixelyion@protonmail.com>
4 years ago
lat9nq e9cf08c241 settings: Remove unnecessary std::move usages
Addresses review feedback.

Co-authored-by: Mai M. <mathew1800@gmail.com>
4 years ago
bunnei 7530594602
Merge pull request #6759 from ReinUsesLisp/pipeline-statistics
renderer_vulkan: Add setting to log pipeline statistics
4 years ago
lat9nq 7737bdfd1a settings: Fix function virtualization
Fixes a theoretical scenario where a Setting is using the BasicSetting's
GetValue function. In practice this probably only happens on yuzu-cmd,
where there is no need for a Setting's additional features. Need to fix
regardless.
4 years ago
lat9nq a1f19b61f8 settings: Implement setting ranges
Clamps the setting's values against the specified minimum and maximum
values.
4 years ago
bunnei d05e6003f0
Merge pull request #6700 from lat9nq/fullscreen-enum
general: Implement FullscreenMode enumeration
4 years ago
ReinUsesLisp 3b006f4fe2 renderer_vulkan: Add setting to log pipeline statistics
Use VK_KHR_pipeline_executable_properties when enabled and available to
log statistics about the pipeline cache in a game.

For example, this is on Turing GPUs when generating a pipeline cache
from Super Smash Bros. Ultimate:

Average pipeline statistics
==========================================
Code size:       6433.167
Register count:    32.939

More advanced results could be presented, at the moment it's just an
average of all 3D and compute pipelines.
4 years ago
bunnei d6c799494c
Merge pull request #6696 from ameerj/speed-limit-rename
general: Rename "Frame Limit" references to "Speed Limit"
4 years ago
bunnei c09557acd8
Merge pull request #6697 from ameerj/fps-cap
config, nvflinger: Add FPS cap setting
4 years ago
lat9nq 09d6cc9943
Merge branch 'master' into fullscreen-enum 4 years ago
ameerj 9dfbc9bdce general: Rename "Frame Limit" references to "Speed Limit"
This setting is best referred to as a speed limit, as it involves the limits of all timing based aspects of the emulator, not only framerate.
This allows us to differentiate it from the fps unlocker setting.
4 years ago
ameerj 2c6e274b39 config, nvflinger: Add FPS cap setting
Allows finer tuning of the FPS limit.
4 years ago
lat9nq b11c81cc13 general: Implement FullscreenMode enumeration
Prevents us from using an unclear 0 or 1 to describe the fullscreen
mode.
4 years ago
lat9nq 1152d66ddd general: Add setting shader_backend
GLASM is getting good enough that we can move it out of advanced
graphics settings. This removes the setting `use_assembly_shaders`,
opting for a enum class `shader_backend`. This comes with the benefits
that it is extensible for additional shader backends besides GLSL and
GLASM, and this will work better with a QComboBox.

Qt removes the related assembly shader setting from the Advanced
Graphics section and places it as a new QComboBox in the API Settings
group. This will replace the Vulkan device selector when OpenGL is
selected.

Additionally, mark all of the custom anisotropic filtering settings as
"WILL BREAK THINGS", as that is the case with a select few games.
4 years ago
lat9nq 373f75d944 shader: Add shader loop safety check settings
Also add a setting for enable Nsight Aftermath.
4 years ago
german77 14d5202da6 input_common: Fix mouse panning behaivour 4 years ago
bunnei 3cd3230295
Merge pull request #6579 from ameerj/float-settings
settings: Eliminate usage of float-point setting values
4 years ago
Morph 1bfe950acb
Merge pull request #6576 from ameerj/unlock-fps-setting
settings: Disable FPS unlimit setting between title launches
4 years ago
ameerj 58219d1f36 settings: Disable FPS unlimit setting between title launches
Some titles crash if the FPS limit is disabled when launching. This change ensures that titles launch with the limit in-place to avoid issues.
In order to simplify the change, the UI toggle was removed as it will always be overridden at launch to be disabled.
The setting can still be toggled during gameplay with the hotkey, and indicated by the fps label in the status bar.
4 years ago
ameerj 0ed1077763 configure_input: Use u8 for mouse sensitivity 4 years ago
ameerj 8284658bac configure_graphics: Use u8 for bg_color values 4 years ago
ameerj 386cd45f07 configure_audio: Use u8 for volume value 4 years ago
lat9nq dc06e11a7b settings, arm_dynarmic, yuzu qt: Move CPU debugging option
Decouples the CPU debugging mode from the enumeration to its own
boolean. After this, it moves the CPU Debugging tab over to a sub tab
underneath the Debug tab in the configuration UI.
4 years ago
lat9nq c8b8674ffc settings, yuzu qt: Add migration code for CPU accuracy
Old CPU Accuracy setting won't translate well into since we're adding
one at the beginning of the list. On first boot with the new setting,
just use the default setting.
4 years ago
lat9nq 7ab5767157 core,common,yuzu qt: Add CPU accuracy option 'Auto'
The current CPU accuracy settings in yuzu are fairly polarized and
require more than common knowledge to know what the optimal settings for
yuzu would be. This adds a curated option called 'Auto' that applies a
few at the moment known-good unsafe optimizations to Dynarmic.
4 years ago
lat9nq a949ee0410 general: Code formatting improvements
Slight improvements to readability.

Dropped suggestions for string_view (settings.h:101), pass by value
(settings.h:82), reverting double to a float (config.cpp:316), and other
smaller ones, some out of scope.

Addresses review feedback.

Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
4 years ago
lat9nq cf1cd3321d settings: Set resolution_factor default to 1
Fixes Disgaea 6 Demo issues.
4 years ago
lat9nq b91b76df4f general: Make most settings a BasicSetting
Creates a new BasicSettings class in common/settings, and forces setting
a default and label for each setting that uses it in common/settings.
Moves defaults and labels from both frontends into common settings.
Creates a helper function in each frontend to facillitate reading the
settings now with the new default and label properties.

Settings::Setting is also now a subclass of Settings::BasicSetting. Also
adds documentation for both Setting and BasicSetting.
4 years ago
lat9nq 20e51402b0 common: Force defaults for Settings::Setting's
Requires a default value when creating each per-game setting.
4 years ago
Mai M 17fff10e06
Merge pull request #6465 from FernandoS27/sex-on-the-beach
GPU: Implement a garbage collector for GPU Caches (project Reaper+)
4 years ago
bunnei 0485b8e84b
Merge pull request #6499 from FernandoS27/we-were-on-a-break
Update dynarmic and add new unsafe CPU option.
4 years ago
Fernando Sahmkow 2298508465 Update dynarmic and add new unsafe CPU option. 4 years ago
ameerj 3522fc019c nvflinger: Add toggle to disable buffer swap interval limits
Enabling this setting will allow some titles to present more frames to
the screen as they become available in the nvflinger buffer queue.
4 years ago
Fernando Sahmkow 954ad2a61e Reaper: Setup settings and final tuning. 4 years ago
bunnei 973bf306ed
Merge pull request #6464 from ameerj/disable-astc
textures: Add a toggle for GPU Accelerated ASTC decoder
4 years ago
Morph 0f48292de1 fsp_srv: Fix filesystem access logging
This introduces a new setting Enable FS Access Log which saves the filesystem access log to sdmc:/FsAccessLog.txt

If this setting is not enabled, this will indicate to FS to not call OutputAccessLogToSdCard.

Fixes softlocks during loading in Xenoblade Chronicles 2 when certain DLC is enabled.
4 years ago
ameerj b2955479e5 configure_graphics: Add Accelerate ASTC decoding setting 4 years ago
FernandoS27 5ba28325b2 General: Add settings for fastmem and disabling adress space check. 4 years ago
lat9nq 339dc4f806 general: Demote custom_rtc to regular setting 4 years ago
lat9nq e169fdad4f general: Make CPU accuracy and related a Settings::Setting
Required to make CPU accuracy and unsafe settings available to use as a
per-game setting.
4 years ago
bunnei a4c6712a4b common: Move settings to common from core.
- Removes a dependency on core and input_common from common.
4 years ago