| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
yuzu: Add volume hotkeys
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Various fixes to HLE service thread management
|
| | |
| | |
| | |
| | | |
- This will be used to ensure that we do not schedule dummy threads.
|
|/ /
| |
| |
| |
| |
| | |
On OSes with system-wide theming this allows yuzu to follow system style, regardless of its exact coloration, working well with both light and dark system themes. Dark /Colorful, on the other hand, forces dark theme regardless of user preferences set in system settings, making for a poor default.
Use Colorful variation to keep in line with icon style of patron-voted Dark Colorful.
|
|\ \
| | |
| | | |
input_common: Reintroduce motion from mouse and use button names
|
| |/ |
|
| |
| |
| |
| | |
Eliminates the usage of a magic number to indicate the default index of the themes array,
|
|/ |
|
|\
| |
| | |
yuzu: main: Increase the open file limit on Windows to 8192
|
| |
| |
| |
| | |
This is a temporary solution for now to accommodate for mods containing more than 4096 files.
|
|\ \
| |/
|/| |
yuzu: Add controller hotkeys
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
Changes tab initialization to happen after the configuration is loaded,
which means that it no longer happens as member initializers in the
ConfigurePerGame constructor. Removes the cluster of
??_tab->SetConfiguration's that I added earlier to get around this issue
initially.
Fixes a regression in #6774
|
|\
| |
| | |
ShaderDecompiler: Add a debug option to dump the game's shaders.
|
| | |
|
|\ \
| | |
| | | |
yuzu: Fix UI elements not updating correctly
|
| |/ |
|
|/ |
|
| |
|
| |
|
|
|
|
| |
... by using the XDP system
|
|\
| |
| | |
main: Make separate render window fullscreen toggle on the monitor it resides in
|
| | |
|
| |
| |
| |
| |
| |
| | |
Toggling borderless fullscreen on the separate render window made it fullscreen on the monitor which the main yuzu window resided in.
This change allows the render window to go fullscreen on the monitor it resides in, independent of the main window location.
|
|\ \
| |/
|/| |
core: hle: Remove global HLE lock.
|
| |
| |
| |
| |
| | |
- This was added early on as a hack to protect against some concurrency issues.
- It's not clear that this serves any purpose anymore, and if it does, individual components should be fixed rather than using a global recursive mutex.
|
|\ \
| |/
|/| |
game_list: Add persistent setting for the favorites row expanded state
|
| |
| |
| |
| | |
Previously, the favorites row was always expanded on launch. This change introduces a persistent setting that allows the favorites row's expanded state to be remembered between launches.
|
|\ \
| | |
| | | |
Update video core popup
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Old version had formatting issues, and I want to provide an answer to the most common reason this pops up in the first place, outdated drivers.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I have `134850146304` bytes of ram and Yuzu was saying that I had `125.59 GB`
of ram. But `125.59` is actually the amount of gi**bi**bytes I have. In
gi**ga**bytes I would have `134.9`.
Additionally, I changed the `1024 / 1024 / 1024` here into the `_GiB`
user-literals that I added a while ago(#6519).
https://www.wolframalpha.com/input/?i=134850146304+bytes
|
| |/
|/|
| |
| | |
We were unconditionally accessing the keyboard_buttons array, even if the bottom_osk_index was for the numberpad, leading to an out of bounds array access. Fix this by accessing the proper array for the current button when the index is for the numberpad.
|
| |
| |
| |
| | |
QWheelEvent::pos() is deprecated. Make use of position().toPoint() instead.
|
|\ \
| |/
|/| |
Fixed #7502
|
| | |
|
|/ |
|
|\
| |
| | |
general: Replace high_resolution_clock with steady_clock
|
| |
| |
| |
| | |
On some OSes, high_resolution_clock is an alias to system_clock and is not monotonic in nature. Replace this with steady_clock.
|
|/ |
|
|
|
|
| |
This also moves the use of DisableConfiguration to the destructor.
|
| |
|
| |
|
| |
|
|\
| |
| | |
Project Kraken: Input rewrite
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Fix compiler bug
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Set top margin to 6 on Right Stick, LeftStick, Face Buttons, D-Pad.
Change property on Input Device QComboBox from minimumSize to minimumContentsLength.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
start lion review
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
|/| |
Replace "Light" theme by "Default"
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reflects the current behavior: Light = System default. If your
system is set to dark theme, then Light = Dark, which is a bit confusing
for the end user.
In this PR, I propose to change "Light" with "Default". This way, the
user has "Default" and "Default Colorful", which will apply the system
theme. Now that the Flatpak respects the system theme, I think this
makes much more sense.
I also simplified the theme update. Before the code was branching
between the default theme and the others, but I think we can have
something simpler by forcing the default theme if no theme is defined in
the settings, or if the selected theme doesn't exist. And if there's an
error, tell the theme name in the error message.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Refactor menu states and shortcuts in GMainWindow.
- Removed "Start", since it was always disabled unless it was "Continue"
which has now been moved to "Pause".
- Allow hotkeys to be used while in fullscreen.
- Removed the load amiibo hotkey.
|
|\ \
| | |
| | | |
configure_general: Allow framerate cap to be used in custom game configs
|
| | | |
|
| | | |
|
| | | |
|
|/ / |
|
| |
| |
| |
| |
| |
| |
| | |
This was regressed by ART.
Prior to ART, the screenshots were saved at the title's framebuffer resolution. A misunderstanding of the existing logic led to screenshot dimensions becoming dependent on the host render window size.
This changes the behavior to match how it was prior to ART at 1x, with screenshots now always being the title's framebuffer dimensions scaled by the resolution scaling factor.
|
|\ \
| | |
| | | |
main: Shorten AMD FSR status bar text
|
| | |
| | |
| | |
| | | |
By default, no AA is applied, not FXAA
|
| | |
| | |
| | |
| | | |
AMD officially markets FSR as AMD FidelityFX™️ Super Resolution
|
| | |
| | |
| | |
| | | |
AMD'S FIDELITYFX SR -> FSR
|
|\ \ \
| |/ /
|/| | |
Replace keys error pop up
|
| |/
| |
| | |
Fight me.
|
|\ \
| | |
| | | |
Prevent window flickering when holding Esc
|
| |/
| |
| | |
Reported on discord by Levlight. Don't try to exit fullscreen if it's already off.
|
|\ \
| | |
| | | |
hotkeys: Don't allow hotkeys to spam
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
This only needs to happen once per game boot, so we can just call it
during CreateGPU and be done with it, avoiding the need to call it in
the frontends.
|
| | |
| | |
| | |
| | | |
Fixes screenshots at non integer scaling
|
| | | |
|
| | |
| | |
| | |
| | | |
Shows the resolution scale as "Scale: {}x" in the status bar, where {} is a floating point value representing the current resolution scaling factor.
|
| | | |
|
| |/
|/| |
|
|\ \
| |/
|/| |
Logging: Impl refactor
|
| |
| |
| |
| |
| |
| |
| | |
Loop on stop_token and remove final_entry in Entry.
Move Backend thread out of Impl Constructor to its own function.
Add Start function for backend thread.
Use stop token in PopWait and check if entry filename is nullptr before logging.
|
| |
| |
| |
| |
| |
| |
| | |
Confirm means that the text has already been checked by the application to be correct, but is asking the user for confirmation.
The confirmation text itself seems to be corrupted though, this needs to be investigated.
Fixes the software keyboard in Famicom Detective Club: The Missing Heir
|
| |
| |
| |
| | |
This allows us to avoid including KProcess' header file in files that only need to get the current process' program id.
|
|/ |
|
|\
| |
| | |
profile_manager: Resize any image bigger than 256p
|
| | |
|
|\ \
| | |
| | | |
yuzu_cmd, yuzu qt: Use SDL to disable the screen saver
|
| | |
| | |
| | |
| | |
| | | |
Disables the screen saver when a game boots using SDL2 so that it works
on any supported platform.
|
|\ \ \
| |/ /
|/| | |
per_game_ui: Geometry Property Removal and Minor Rewording to the Per Game UI
|
| |/ |
|
|\ \
| |/
|/| |
ui: fix crash when closing configure window
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This crash happens 100% of the time (on Linux at least), you just need
to open the configure window and click OK.
It seems to happen when the tabs are destroyed and once all the tabs are
destroyed, a final signal is sent with `index == -1`. So `debug_tab_tab`
doesn't exist anymore when this happens, so the crash.
|
|\ \
| | |
| | | |
tas_ui: Add a Help Link to the TAS Page on the yuzu Website, Along with Minor Grammar Changes
|
| | |
| | |
| | |
| | |
| | |
| | | |
remove_accident
fix_whoopsie
|
|\ \ \
| | | |
| | | | |
settings: Remove std::chrono usage
|
| |/ /
| | |
| | |
| | | |
Alleviates the dependency on chrono for all files that include settings.h
|
|\ \ \
| |/ /
|/| | |
main: fix typo in warning message
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Allows it to be a forward declaration in other header files.
|
|\ \
| | |
| | | |
Check "Hide mouse on inactivity" by default
|
| |/ |
|
|\ \
| | |
| | | |
yuzu: Use make_unique instead of operator new for constructing ui
|
| | | |
|
| |/ |
|
|/
|
|
|
| |
* main: Slightly refactor NCA entry installation in InstallNCA
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* better_description
* Revert "better_description"
This reverts commit 3a152a6ba6f2d6e02530b69a8194e4db302c8acd.
* better_nvdec_wording
* best_performance
* update_word_stuff
* another_update
|
|\
| |
| | |
yuzu qt: Remove global system instances
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
main: Add option to reset window size to 900p
|
| | | |
|
|\ \ \
| | | |
| | | | |
Update configure_tas.ui
|
| |/ /
| | |
| | | |
Remove the geometry property again(7045) after 7090 re-added.
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- configure_input_player_widget.cpp: always better to use `const auto &`
whenever possible
- profiler.cpp: `ev->pos()` is deprecated, replace with
`ev->position()`, which returns floats, thus the addition of
`.toPoint()` (same as what's happening in `pos()`)
- game_list.cpp: `QString::SplitBehavior` is deprecate, use `Qt::`
namespace instead
|
|/ |
|
|\
| |
| | |
(Minor Change) Hint (?) Button Removal and Spacing Change to the TAS Window
|
| | |
|
| |
| |
| |
| |
| | |
Previously, the dialog buttons would be floating in-place when the dialog is stretched downwards.
This change ensures that the dialog buttons always stay at the bottom of the window.
|
|\ \
| | |
| | | |
main: Don't add an extra separator when the title version is absent
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some titles, such as homebrew, do not have any version string. Because
yuzu hard codes the title bar string assuming a version string is
preset, booting homebrew causes yuzu to add an extra separator with no
content between.
This uses a lambda expression to prevent that from happening.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Remove Boxcat BCAT backend
|
| | | | |
|
| | | | |
|
| | |/
| |/| |
|
|\ \ \
| |_|/
|/| | |
applets: Use subdirectory of main data directory for QtWebEngine storage
|
| | |
| | |
| | |
| | | |
Previously, an unrelated directory was used for this. Keep everything together for consistency.
|
| |/
|/| |
|
|\ \
| | |
| | | |
Hide XInput bypass on non-Windows OSes
|
| | |
| | |
| | | |
This way, if someone copies their Windows config to other OS, they won't be stuck without web applet for no apparent reason.
|
| | |
| | |
| | | |
Follow-up to #6950. This option is a no-op on other OSes and only serves to spread confusion there.
|
|\ \ \
| |_|/
|/| | |
Debug Config Ui: Clean-up and nits
|
| | |
| | |
| | |
| | | |
Remove redundent label, rearange checkboxs to keep same 3 per column layout, remove unneeded properties.
|
| | |
| | |
| | |
| | | |
Numerize names, remove unneeded properties and spacer.
|
|/ /
| |
| | |
Text looked cramped on my pc (Ubuntu 21.04). Re-flowed text as well for nicer read.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
During script playback/recording, the user has to see what happens currently. For that, a new label has been added to the bottom-left corner, always displaying the current state of the TASing system.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
|/| |
Remove audio stretching
|
| | |
|
| | |
|
|\ \
| |/
|/| |
input_common: Add advanced setting for 8 player support
|
| | |
|
| |
| |
| |
| |
| | |
Some titles set an exit lock through HLE, which prompts an exit confirmation when stopping emulation if the system is locked.
This change allows bypassing this confirmation if the setting to confirm exits has been disabled by the user.
|
|\ \
| | |
| | | |
nvdec: Add GPU video decoding for all capable drivers and platforms
|
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|\ \ \
| | | |
| | | | |
Second part of Golden's PR #6976
|
| | |/
| |/| |
|
|/ /
| |
| | |
After Hades, both OpenGL and Vulkan use a pipeline cache instead of single stages of the graphics pipeline. Renamed the Remove menu entries to match.
|
| | |
|
| |
| |
| |
| |
| |
| | |
The log filter was being ignored on initialization due to the logging instance being initialized before the config instance, so the log filter was set to its default value.
This fixes that oversight, along with using descriptive exceptions instead of abort() calls.
|
|\ \
| | |
| | | |
CMakeLists: Ensure proper numerusform tags are generated for pluralized translations
|
| | |
| | |
| | |
| | |
| | |
| | | |
If we don't set an explicit source and target language for the base
english translation, then we'll generate an incorrect number of
<numerusform> tags (which Transifex doesn't like).
|
|\ \ \
| | | |
| | | | |
logging: Simplify and make thread-safe
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This simplifies the logging system.
This also fixes some lost messages on startup.
The simplification is simple. I removed unused functions and moved most things in the .h to the .cpp. I replaced the unnecessary linked list with its contents laid out as three member variables. Anything that went through the linked list now directly accesses the backends. Generic functions are replaced with those for each specific use case and there aren't many. This change increases coupling but we gain back more KISS and encapsulation.
With those changes it was easy to make it thread-safe. I just removed the mutex and turned a boolean atomic. I was planning to use this thread-safety in my next PR about stacktraces. It was actually async-signal-safety at first but I ended up using a different approach. Anyway getting rid of the linked list is important for that because have the list of backends constantly changing complicates things.
|
| | |
| | |
| | |
| | | |
Previously, floats were implicitly cast to integers
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
network interface combobox
|
|\| | |
|
| |\ \
| | | |
| | | | |
main: Avoid stopping emulation when taking a screenshot
|
| | | | |
|
| |\ \ \
| | | | |
| | | | | |
configure_general: Swap positions of speed limit and frame limit options
|
| | |/ / |
|
| |\ \ \
| | | | |
| | | | | |
input_common: Improve SDL joystick and hide toggle option
|
| | |/ / |
|
| |\ \ \
| | |/ /
| |/| | |
Add description to fast gpu time option
|
| | | |
| | | |
| | | | |
add description too fast gpu time
|
| |\ \ \
| | |/ /
| |/| | |
settings_ui: Add emulated joystick position dot to controller preview
|
| | | | |
|
|/ / /
| | |
| | |
| | | |
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.
|
| | | |
|
| | |
| | |
| | | |
Makes the default game list folder icons 48x48 by default instead of 64x64, and allows for selecting small (24x24) and large (72x72) icon sizes.
|
|\ \ \
| | | |
| | | | |
renderer_vulkan: Implement screenshots
|
| | |/
| |/|
| | |
| | | |
OpenGL and Vulkan images render in different coordinate systems. This allows us to specify the coordinate system of the screenshot within each renderer
|
|\ \ \
| | | |
| | | | |
service: ns, set: Add PT_BR (Brazilian Portuguese)
|
| | |/
| |/| |
|
|\ \ \
| |/ /
|/| | |
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.
|
|\ \
| | |
| | | |
general: Implement FullscreenMode enumeration
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
We don't need to manually apply this setting now that a template can do
this for us.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Prevents us from using an unclear 0 or 1 to describe the fullscreen
mode.
|
| | | | |
|
| |_|/
|/| |
| | |
| | | |
Focusing on the first link element fixes element navigation upon loading the web applet in games such as Super Mario Odyssey
|
|\ \ \
| | | |
| | | | |
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.
|
| | |
| | |
| | | |
Change wording to explain that GLASM is actually short for Assembly Shaders
|
|\ \ \
| |_|/
|/| | |
config, nvflinger: Add FPS cap setting
|
| |/
| |
| |
| | |
Allows finer tuning of the FPS limit.
|
|\ \
| | |
| | | |
Settings: Eliminate ASYNC & MULTICORE Toggles and add GPU Accuracy to status bar
|
| | |
| | |
| | | |
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
|
| | | |
|
|\ \ \
| | | |
| | | | |
main: Fix screenshot filepath construction
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
The screenshot directory path returned does not have a trailing directory separator character. This caused screenshots to be saved in the parent directory of the configured screenshot directory.
This fixes that behavior
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This change adds two new context menu items to remove either the OpenGL or the Vulkan shader caches individually, and the provides the option to remove all caches for the selected title.
This also changes the behavior of the open shader cache option. Now it creates the shader cache directory for the title if it does not yet exist.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | | |
Also add a setting for enable Nsight Aftermath.
|
| | |
| | |
| | |
| | | |
Opens the new shader cache directory location for the specified title, if it exists.
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
input_common: Make button threshold customizable
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
input_common: Support SDL toggle buttons
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
This ensures that Qt positions the render window at the correct position on initializing the respective render backends.
|
| | | |
| | | |
| | | | |
Adds support for loading games with multiple programs embedded within such as the Dragon Quest 1+2+3 Collection
|
|\ \ \ \
| | | | |
| | | | | |
input_common: Fix mouse panning behaivour
|
| | |/ /
| |/| | |
|
|/ / / |
|
|\ \ \
| |/ /
|/| | |
settings: Eliminate usage of float-point setting values
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
| | |
|
|\ \
| | |
| | | |
qt/main: Make title string more i18n-friendly
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently, whether or not the title is 32-bit or 64-bit was being
appended as a suffix to the title, which is fine for left-to-right
languages, but may not always fly so smoothly with some right-to-left
languages.
We also weren't marking that portion of the string as translatable,
which prevents translators from translating part of the title string.
|
|\ \
| | |
| | | |
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.
|
|\ \
| | |
| | | |
core,common,yuzu qt: Add CPU accuracy option 'Auto'
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |/
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
| |
This is a bug fix. Enabling graphics debug mode, then saving a custom
configuration causes graphics debugging to be saved and read from the
custom configuration.
Isolate it the same way we isolate the CPU settings.
|
|\
| |
| | |
general: Move most settings' defaults and labels into their definition
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| | |
I must have been asleep or something. These need to be read with the new
ReadBasicSetting function.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For simple primitive settings, moves their defaults and labels to
definition time.
Also fixes typo and clang-format
yuzu qt: config: Fix rng_seed
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
Avoids double-setting defaults, and avoids potential accidents when
inconsistently setting the default on new settings.
|
| | |
|
|\ \
| | |
| | | |
yuzu qt, core: Support LayeredFS mods from SDMC directory
|
| | |
| | |
| | |
| | | |
We should not apply any mods when dumping a game's RomFS.
|
| | |
| | |
| | |
| | |
| | | |
Enables dumping the RomFS to SDMC directory, specifically '[yuzu data
directory]/sdmc/atmosphere/contents/[title_id]/romfs'.
|
|\ \ \
| |/ /
|/| | |
main: Add GPU Vendor name to running title bar
|
| | | |
|
| |/
|/|
| |
| | |
Displays whether the currently running title uses 64-bit instructions or only 32-bit instructions.
|
|\ \
| | |
| | | |
externals: Update fmt to 8.0.0
|
| | |
| | |
| | |
| | | |
Also removes some deprecated API usages.
|
|\ \ \
| |/ /
|/| | |
GPU: Implement a garbage collector for GPU Caches (project Reaper+)
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
|\ \
| | |
| | | |
bootmanager: Use std::stop_source for stopping emulation
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use its std::stop_token to abort shader cache loading.
Using std::stop_token instead of std::atomic_bool allows the usage of
other utilities like std::stop_callback.
|
| | | |
|
|/ /
| |
| |
| |
| |
| | |
There are a lot of scenarios where we don't particularly care whether or not the removal operation and just simply attempt a removal.
As such, removing the [[nodiscard]] attribute is best for these functions.
|
|\ \
| | |
| | | |
Update dynarmic and add new unsafe CPU option.
|
| |/ |
|
| | |
|
|/
|
|
|
| |
Enabling this setting will allow some titles to present more frames to
the screen as they become available in the nvflinger buffer queue.
|
|\
| |
| | |
textures: Add a toggle for GPU Accelerated ASTC decoder
|
| | |
|
|/
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
This makes it clear that the disabled settings only take effect when CPU Accuracy is set to Debug Mode.
|
|\
| |
| | |
yuzu: main: Ensure enough space is available for RomFS dumping
|
| |
| |
| |
| | |
This warns the user if there isn't enough free space to dump the entire RomFS to disk. It requires at least the size of the extracted RomFS + 1 GiB as a buffer of free space.
|
|/ |
|
|\
| |
| | |
limitable_input_dialog: Implement character limiter
|
| |
| |
| |
| | |
When using GetText() you can now choose what set of characters the user can't enter.
|
| |
| |
| |
| | |
Allows for these strings to show up in the translation files.
|
|/
|
|
|
| |
This connects the BootGame function to the context menu. In addition,
there is an option to boot without using the custom configuration.
|
|\
| |
| | |
yuzu qt: Add settings reset button to general configuration
|
| |
| |
| |
| |
| |
| |
| |
| | |
Also makes use of std::move, and performs a clang-format cleanup.
This addresses review comments.
Co-authored-by: LC <mathew1800@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Builds on german77's work to reset all settings back to their defaults.
This include UISettings and Settings values structs, but does not affect
save profiles, input profiles, and game directories.
This works from a button input in configure_general. When activated, it
calls a callback to close the whole configure dialog, then GMainWindow
deletes the old configuration, both on disk and in memory, and
reinitalizes a new one. It also resets a portion of the UI and calls the
telemetry window prompt.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit does not compile.
Initial work to add and connect a Reset to Defaults button to the
configure_general tab.
Co-authored-by: german77 <juangerman-13@hotmail.com>
|
|\ \
| | |
| | | |
settings: Disable controller preview if controller is not active
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Correct light theme loading
The setLayout call in game list instantiation will call resizing signals with default values in light theme, which was then being erroneously saved. setLayout doesn't seem to call resizing for any other theme, so I'm not sure why that happens.
|
|\ \ \
| | | |
| | | | |
game_list: Stop the columns resizing on NAND install
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
yuzu qt: Revert some usages of string_view
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Causes a heap-use-after free reported by AddressSanitizer. This makes
use of std::filesystem::path, but due to that we have to use their
string() function which may not work for all characters.
|
|\ \ \ \
| |/ / /
|/| | | |
game_list: Minor for loop optimizations
|
| | |/
| |/|
| | |
| | |
| | | |
There's no need to check the first and last rows since they'll always be the Favorites and AddDir rows.
Also change the name of the clear_all variable for consistency.
|
|\ \ \
| |/ /
|/| | |
yuzu qt: Handle per-game configs for title id 0
|
| | |
| | |
| | |
| | |
| | |
| | | |
This addresses review comments.
Co-authored-by: LC <mathew1800@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently with programs that have a 0 title id, yuzu loads the custom
configuration 0000000000000000.ini for per-game configs. This is not
ideal since many homebrews share this id. Instead for these programs, we
load a config that is simply the file name and `.ini` appended to it.
|
| |/
|/|
| |
| | |
Avoids redundant string copies
|
|\ \
| | |
| | | |
yuzu qt: Add an Apply button to configuration dialogs
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Most of the code already exists to do this, but the Apply button itself
was never added. This adds a button and boolean that tells yuzu to save
the configuration after applying settings, even if close/Cancel is
pressed on the dialog. Changes after applying will not be saved when
Cancel is pressed, though.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the local version of Qt is older than the minimum version required by
yuzu, download a pre-built binary package from yuzu-emu/ext-linux-bin
and build yuzu with it, instead.
This also requires linking yuzu to the correct libraries after building
it, and copying over the required binaries when building yuzu.
This sets the Qt requirement to 5.12, which is intentionally behind the
versions used by our toolchains since they are not all updated yet to
5.15.
|
|\ \ \
| |_|/
|/| | |
applets/swkbd: Make use of QueuedConnection in returnPressed signal
|
| | |
| | |
| | |
| | |
| | |
| | | |
Some users have reported rare crashes when pressing the Enter key on the keyboard to confirm input in the normal software keyboard, particularly in Super Smash Bros. Ultimate while entering the name of a ruleset or controller layout.
It is suspected that the QLineEdit::returnPressed signal is causing a race condition as confirming input through other means does not produce the crash. Since Qt::QueuedConnection posts an event to the event queue of the callee's thread instead of executing it directly on the caller's thread, this eliminates any potential race conditions from occurring in this scenario.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* common: fs: fs_types: Create filesystem types
Contains various filesystem types used by the Common::FS library
* common: fs: fs_util: Add std::string to std::u8string conversion utility
* common: fs: path_util: Add utlity functions for paths
Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library
* common: fs: file: Rewrite the IOFile implementation
* common: fs: Reimplement Common::FS library using std::filesystem
* common: fs: fs_paths: Add fs_paths to replace common_paths
* common: fs: path_util: Add the rest of the path functions
* common: Remove the previous Common::FS implementation
* general: Remove unused fs includes
* string_util: Remove unused function and include
* nvidia_flags: Migrate to the new Common::FS library
* settings: Migrate to the new Common::FS library
* logging: backend: Migrate to the new Common::FS library
* core: Migrate to the new Common::FS library
* perf_stats: Migrate to the new Common::FS library
* reporter: Migrate to the new Common::FS library
* telemetry_session: Migrate to the new Common::FS library
* key_manager: Migrate to the new Common::FS library
* bis_factory: Migrate to the new Common::FS library
* registered_cache: Migrate to the new Common::FS library
* xts_archive: Migrate to the new Common::FS library
* service: acc: Migrate to the new Common::FS library
* applets/profile: Migrate to the new Common::FS library
* applets/web: Migrate to the new Common::FS library
* service: filesystem: Migrate to the new Common::FS library
* loader: Migrate to the new Common::FS library
* gl_shader_disk_cache: Migrate to the new Common::FS library
* nsight_aftermath_tracker: Migrate to the new Common::FS library
* vulkan_library: Migrate to the new Common::FS library
* configure_debug: Migrate to the new Common::FS library
* game_list_worker: Migrate to the new Common::FS library
* config: Migrate to the new Common::FS library
* configure_filesystem: Migrate to the new Common::FS library
* configure_per_game_addons: Migrate to the new Common::FS library
* configure_profile_manager: Migrate to the new Common::FS library
* configure_ui: Migrate to the new Common::FS library
* input_profiles: Migrate to the new Common::FS library
* yuzu_cmd: config: Migrate to the new Common::FS library
* yuzu_cmd: Migrate to the new Common::FS library
* vfs_real: Migrate to the new Common::FS library
* vfs: Migrate to the new Common::FS library
* vfs_libzip: Migrate to the new Common::FS library
* service: bcat: Migrate to the new Common::FS library
* yuzu: main: Migrate to the new Common::FS library
* vfs_real: Delete the contents of an existing file in CreateFile
Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now.
* input_profiles: Don't iterate the input profile dir if it does not exist
Silences an error produced in the log if the directory does not exist.
* game_list_worker: Skip parsing file if the returned VfsFile is nullptr
Prevents crashes in GetLoader when the virtual file is nullptr
* common: fs: Validate paths for path length
* service: filesystem: Open the mod load directory as read only
|
|\ \ \
| | | |
| | | | |
settings: Suppress duplicate label name warning
|
| |/ / |
|
|/ / |
|
|\ \
| |/
|/| |
applets/swkbd: Send the correct text string on TextCheck::Confirm
|
| |
| |
| |
| | |
Previously the text string for the inline software keyboard was being sent instead of the normal software keyboard, leading to empty text being sent all the time.
|
|\ \
| |/
|/| |
configuration: Add CPU tab to game properties and slight per-game settings rework
|
| |
| |
| | |
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
|
| |
| |
| |
| |
| |
| |
| | |
Drops an unused variant of ApplyPerGameSetting, and turns the QComboBox
variants of SetPerGameSetting into a template.
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
|
| | |
|
| |
| |
| |
| |
| |
| | |
Allows setting CPU accuracy to Accurate or Unsafe per-game, as well as
the accuracy options for Unsafe. Debug is not allowed here as a per-game
CPU accuracy.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Originally, every time we add a per-game setting, we'd have to guard for
it when setting it on the global config, and use a specific function to
do it for the per-game config.
This moves the global check into the ApplyPerGameSetting function so
that we can use it for changing both the global and per-game states.
Less work for the programmer.
|
| |
| |
| |
| | |
Monke brain can't remember what all of these does a year later.
|
| |
| |
| |
| |
| | |
Required to make CPU accuracy and unsafe settings available to use as a
per-game setting.
|
|\ \
| | |
| | | |
perf_stats: Rework FPS counter to be more accurate
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
The FPS counter was based on metrics in the nvdisp swapbuffers call. This metric would be accurate if the gpu thread/renderer were synchronous with the nvdisp service, but that's no longer the case.
This commit moves the frame counting responsibility onto the concrete renderers after their frame draw calls. Resulting in more meaningful metrics.
The displayed FPS is now made up of the average framerate between the previous and most recent update, in order to avoid distracting FPS counter updates when framerate is oscillating between close values.
The status bar update frequency was also changed from 2 seconds to 500ms.
|
| |
| |
| |
| | |
Duplicate labels were unintentionally introduced due to copy-paste. This silences the compilation warning produced by the presence of these duplicates.
|
| | |
|
| |
| |
| |
| | |
Many users have been installing their base titles into NAND instead of adding them into the games list. This prevents users from installing any base titles and warns the user about the action.
|
|\ \
| | |
| | | |
main: Add running title's version to window name on EA/mainline
|
| |/
| |
| |
| | |
Fixes the missing title version number on EA/mainline builds which override the title bar string.
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
game_list: Fix dir move up/down expand state
|
| | |
|
|\ \
| | |
| | | |
game_list: Update filter results when removing directories
|
| | | |
|
|\ \ \
| |_|/
|/| | |
applets/web: Fix a use-after-free when passing in the URL string
|
| | |
| | |
| | |
| | |
| | |
| | | |
The URL string was being deleted before being used, leading to a use-after-free occurring when it is used afterwards.
Fix this by taking the string by const ref to extend its lifetime, ensuring it doesn't get deleted before use.
|
| |/
|/| |
|
|/ |
|
|\
| |
| | |
applets/swkbd: Fix software keyboard button hint scaling
|
| |
| |
| |
| | |
Fixes the scaling of the button hints using background images. Now they scale like the rest of the elements.
|
|\ \
| | |
| | | |
game_list: Mark games as favorite to make them appear at the top.
|
| | |
| | |
| | |
| | | |
Icons are from Icons8.
|
| |/
|/|
| |
| | |
Changes the keyboard bindings to be based on RPCS3's tried and true keyboard bindings.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Qt Software Keyboard frontend attempts to mimic the software keyboard rendered by the Nintendo Switch.
This frontend implements multiple keyboard types, such as the normal software keyboard, the numeric pad software keyboard and the inline software keyboard.
Keyboard and controller input is also supported in this frontend.
Keyboard input is handled as native keyboard input, and so the on-screen keyboard cannot be navigated with the keyboard arrow keys as the arrow keys are used to move the text cursor.
Controller input is translated into mouse hover movements on the onscreen keyboard or their respective button actions (B for backspace, A for entering the selected button, L/R for moving the text cursor, etc).
The text check dialogs can also be confirmed with controller input through the use of the OverlayDialog
Massive thanks to Rei for creating all the UI for the various keyboards and OverlayDialog. This would not have been possible without his excellent work.
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
| |
| |
| |
| | |
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An OverlayDialog is an interactive dialog that accepts controller input (while a game is running)
This dialog attempts to replicate the look and feel of the Nintendo Switch's overlay dialogs and
provide some extra features such as embedding HTML/Rich Text content in a QTextBrowser.
The OverlayDialog provides 2 modes: one to embed regular text into a QLabel and another to embed
HTML/Rich Text content into a QTextBrowser.
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
| |
| |
| |
| |
| | |
Moves the existing meta type registration into its own function and adds registration of common integral, floating point and string types.
This function is also now called in the constructor of the GMainWindow instead of on starting a game.
|
| | |
|
|\ \
| | |
| | | |
common/log: Move Log namespace into the Common namespace
|
| | |
| | |
| | |
| | |
| | | |
Forgot to move this over when I moved the rest of the source files with
lacking namespaces over.
|
|\ \ \
| |_|/
|/| | |
core: settings: Add setting for debug assertions and disable by default.
|
| | |
| | |
| | |
| | | |
- Removes a dependency on core and input_common from common.
|
| |/
| |
| |
| |
| |
| | |
- This is a developer-only setting and no longer needs to be enabled by default.
- Also adds "use_auto_stub" setting to SDL frontend while we are here.
- Supersedes #1340.
|
|/
|
|
| |
I forgot to hook this up during the development of the controller applet, this PR amends that.
|
|\
| |
| | |
configure_graphics: Add Borderless Windowed fullscreen mode
|
| |
| |
| |
| | |
Several issues have been reported with the borderless windowed fullscreen mode on *nix platforms. Default to exclusive fullscreen mode on these platforms for now.
|
| |
| |
| |
| |
| |
| | |
The borderless windowed fullscreen mode solves several issues with the presentation of the overlay dialogs and on-screen keyboard in exclusive fullscreen mode, and also has other benefits such as smoother gameplay, lower latency and a significant reduction in screen tearing.
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
|\ \
| |/
|/| |
service: Add a toggle for auto stub fallback
|
| |
| |
| |
| | |
Auto-stub is an experimental debugging feature that may cause unforseen bugs. This adds a toggle to only allow auto-stubbing unimplemented functions when explicitly enabled when yuzu is launched.
|
| |
| |
| |
| |
| |
| |
| | |
Address Sanitizer reports stack-use-after-scope on line 231
`vulkan_devices.push_back(QString::fromStdString(name));`. Instead of
using a pointer, copy the string into a std::string and use that,
instead.
|
| | |
|
|/ |
|
| |
|
|\
| |
| | |
qt: Set DISPLAY env var when not present
|
| |
| |
| |
| |
| | |
Fixes web browser opening (Help > Open Mods Page, Help > Open Quickstart
Guide)
|
|\ \
| | |
| | | |
Enable toggle buttons for keyboard and mouse
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
|/| | |
InputCommon: Mouse fixes
|
| | | |
|
|\ \ \
| | | |
| | | | |
InputCommon: Use an unique client id for each udp socket instance
|
| |/ / |
|
|/ / |
|
|\ \
| | |
| | | |
yuzu/configure_filesystem: Remove "Select Cache Directory" option
|
| | |
| | |
| | |
| | |
| | | |
This tab of the settings is already extremely bloated and the setting itself is quite useless.
With a gamelist of almost 30 games, the cache directory is smaller than 1MB for me and therefore I don't see why it needs to be configurable.
|
|\ \ \
| | | |
| | | | |
HID: Implement GC controller in game
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Adds the access key to the Controller P1 selection at View -> Debugger
-> Controller P1. Avoids using the windowTitle as that would add a
literal & to the beginning of the window title.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
yuzu: Create screenshot path before capture
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Allows screenshots in cases where the screenshots path doesn't already
exist.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is a better default for most games, yielding better performance and
less graphical issues.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Due to BindBufferRangeNV limitations and poor quality code emission from
our side, assembly shaders are currently slower than GLSL. Their build
time and feature advantages are still relevant, but they are outweighted
by their runtime performance.
|
| | | | | |
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of using a two step initialization to report errors, initialize
the GPU renderer and rasterizer on the constructor and report errors
through std::runtime_error.
|
|\ \ \ \
| | | | |
| | | | | |
input_common: Add mouse panning
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
configure_input_player_widget: Minor cleanup
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Reduces the amount of code to read in expressions a little bit by
separating constituents out a little.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Previously a function was copying an array of 20 std::string instances
by value.
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | | |
Prevents clang 11 from throwing an error since these variables are
unused.
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* Add some depth to ProJoysticks
* address comments
* clang
* address nits
* fix wrong inner_offset when offset.x was 0
|
|\ \ \ \
| | | | |
| | | | | |
Settings: Make settings controller image change with controller input
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |/ / / |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
HID: Update the HID service to match more closely to switchbrew part 1
|
| | | | |
|
| | | | |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Avoid overwriting username
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Rewrite KThread to be more accurate
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |/ / / |
|
|\ \ \ \
| |/ / /
|/| | | |
Fix connect and disconnect controller events
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
renderer_opengl: Avoid precompiled cache and force NV GL cache directory
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Setting __GL_SHADER_DISK_CACHE_PATH we can force the cache directory to
be in yuzu's user directory to stop commonly distributed malware from
deleting our driver shader cache. And by setting
__GL_SHADER_DISK_CACHE_SKIP_CLEANUP we can have an unbounded shader
cache size.
This has only been implemented on Windows, mostly because previous tests
didn't seem to work on Linux.
Disable the precompiled cache on Nvidia's driver. There's no need to
hide information the driver already has in its own cache.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
HID: Add multitouch support
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | / / /
| | |/ / /
| |/| | | |
Fix player 1 turning on handheld and not updating handheld settings
|
| | | | | |
|
| |/ / / |
|
|\ \ \ \
| | | | |
| | | | | |
Port citra-emu/citra#5344: "game_list: Fix folder reordering"
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The bug(s) happened because we swapped the contents on values.game_dirs, but the pointer each item had to their respective game_dir wasn't updated. This made it so that the item had the wrong game_dir associated with it after a "move up" or "move down" operation. It can be observed by choosing "open directory location" after such operation.
Changed from raw pointer to an index because it's equivalent but a bit clearer, but the change is not essential.
Co-Authored-By: Vitor K <29167336+vitor-k@users.noreply.github.com>
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The function is unused if YUZU_ENABLE_BOXCAT is disabled, causing a
-Wunused-funciton error when compiled.
Wrapping it with `#ifdef YUZU_ENABLE_BOXCAT` to prevent compiling the
function when the variable is disabled. Opting to not use [[maybe
unused]] in case the function is totally unused in the future.
|
|/ / /
| | |
| | |
| | |
| | | |
This requires making several types trivial and properly initialize
them whenever they are called.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Removes two unused variables in out Qt code. In this case the removal of
these two results in less allocations, given std::map allocates on the
heap.
|
|\ \ \
| | | |
| | | | |
configure_motion_touch: Migrate off QRegExp to QRegularExpression
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QRegularExpression was introduced in Qt 5 as a better replacement for
QRegExp. In Qt 6.0 QRegExp is removed entirely.
To remain forward compatible with Qt 6.0, we can transition over to
using QRegularExpression.
|
|/ / /
| | |
| | |
| | |
| | | |
touch_engine was being compared against after being moved into the
setter for the engine, so this comparison wouldn't behave properly.
|
|\ \ \
| | | |
| | | | |
Fix IP validator error
|
| | |/
| |/| |
|
| | |
| | |
| | |
| | |
| | |
| | | |
setMargin() has been deprecated since Qt 5, and replaced with
setContentsMargins(). We can move over to setContentsMargins() to stay
forward-compatible with Qt 6.0.
|
| | |
| | |
| | |
| | | |
- This is decoupled from core functionality and used for debugging only.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
- This is how the real kernel works, and is more accurate and simpler.
|
| | | |
|
|\ \ \
| | | |
| | | | |
yuzu/main: Add basic command line arguments
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The following command line arguments are supported:
yuzu.exe "path_to_game" - Launches a game at "path_to_game"
yuzu.exe -f - Launches the next game in fullscreen
yuzu.exe -g "path_to_game" - Launches a game at "path_to_game"
yuzu.exe -f -g "path_to_game" - Launches a game at "path_to_game" in fullscreen
|
| |/ /
|/| | |
|
| | | |
|
|\ \ \
| |_|/
|/| | |
yuzu/main: Fix 'Hide mouse on inactivity' and port citra-emu/citra#5476
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
During the transition to make the error dialog translatable, I
accidentally got rid of the conversion to ResultStatus, which prevented
operator<< from being invoked during formatting.
This adds a function to directly retrieve the result status string
instead so that it displays again.
|
|\ \ \
| | | |
| | | | |
dynarmic: Add Unsafe_InaccurateNaN optimization
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
main: Make the loader error dialog fully translatable
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Makes the dialog fully localizable and also adds disambiguation comments
to help translators understand what the formatting specifiers indicate.
|
| | |/ /
| |/| |
| | | |
| | | |
| | | | |
enum classes are comparable with one another, so these casts aren't
necessary.
|
| |/ /
|/| | |
|
|\ \ \
| | | |
| | | | |
configure_input: Modify controller connection delay
|
| |/ /
| | |
| | |
| | | |
Increases the controller connection delay to 60ms and refactors it to attempt to disconnect all controllers prior to connecting all controllers in HID.
|
|/ /
| |
| |
| | |
- Now that GPU is always threaded, we can support multicore with synchronous GPU.
|
|/ |
|
|
|
|
|
| |
Removes the unnecesary burden of maintaining separate #ifdef paths and
allows us sharing generic Vulkan code across APIs.
|
|\
| |
| | |
yuzu/main: Save settings when starting guest
|
| |
| |
| |
| |
| |
| | |
Saves UISettings and Settings when booting a guest. Moves updating
UISettings::values from GMainWindow::closeEvent into its own function,
then reuses it in GMainWindow::BootGame.
|
| |
| |
| |
| |
| | |
Adds a unique access key to each action within each menu. A few actions
already had their own access key, so those were untouched.
|
| | |
|
|\ \
| |/
|/| |
Project Aether: Reimplementation of the Web Browser Applet
|
| | |
|
| | |
|
| |
| |
| |
| | |
This should only be used for Super Mario 3D All-Stars. This is a temporary solution until it can be implemented properly.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Rewrite Kernel scheduler based on Atmosphere
|
| | | |
|
| | | |
|
| |/
|/|
| |
| |
| | |
The gdbstub itself was removed with https://github.com/yuzu-emu/yuzu/pull/5028.
This PR just removes the remaining gdb configuration code from the emulator and the UI.
|
|\ \
| | |
| | | |
fsp_srv: Implement OpenDataStorageWithProgramIndex
|
| | | |
|
|\ \ \
| | | |
| | | | |
applets: Resolve variable shadowing
|
| | |/
| |/| |
|
|\ \ \
| |_|/
|/| | |
configure_motion_touch: Fix unescaped backslash in regex
|
| | |
| | |
| | |
| | |
| | |
| | | |
Since this is inside a string literal, backslashes that are part of
regex syntax have to be escaped. But that's ugly, so convert to a raw
string instead.
|
|\ \ \
| |/ /
|/| | |
Disable analog joystick from buttons by default
|
| | | |
|
| |/
|/|
| |
| |
| | |
This is designated as obsolete in Qt's docs (see:
https://doc.qt.io/qt-5/qvariant-obsolete.html#operator-lt)
|
|\ \
| | |
| | | |
Kernel: Refactor to use 4-instances of Dynarmic & various cleanups and improvements
|
| | | |
|
|\ \ \
| | | |
| | | | |
InputCommon: Add multiple udp server support
|
| | |/
| |/| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
yuzu's web applet does not or barely reacts to user input while open in
Linux. It can be closed via 'Exit Web Applet' on the menubar, however if
yuzu is in fullscreen, this is effectively a softlock as the menubar
cannot be accessed.
This disables building yuzu with the web applet on the Linux CI target.
In addition, this disables the QMessageBox warning about not having
compiled yuzu with the web applet.
|
|\ \ \
| |_|/
|/| | |
InputCommon: Implement full mouse support
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Removes all remaining usages of the global system instance. After this,
migration can begin to migrate to being constructed and managed entirely
by the various frontends.
|
| |/
|/|
| |
| | |
Now there's only two meaningful instances left in core.
|
|\ \
| | |
| | | |
Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main thread
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
EmuWindow::PollEvents was called from the GPU thread (or the CPU thread
in sync-GPU mode) when swapping buffers. It had three implementations:
- In GRenderWindow, it didn't actually poll events, just set a flag and
emit a signal to indicate that a frame was displayed.
- In EmuWindow_SDL2_Hide, it did nothing.
- In EmuWindow_SDL2, it did call SDL_PollEvents, but this is wrong
because SDL_PollEvents is supposed to be called on the thread that set
up video - in this case, the main thread, which was sleeping in a
busyloop (regardless of whether sync-GPU was enabled). On macOS this
causes a crash.
To fix this:
- Rename EmuWindow::PollEvents to OnFrameDisplayed, and give it a
default implementation that does nothing.
- In EmuWindow_SDL2, do not override OnFrameDisplayed, but instead have
the main thread call SDL_WaitEvent in a loop.
|
|\ \ \
| | | |
| | | | |
configure_input_player: Use the NpadStyleSet to limit the available controllers shown
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
This will reduce the likelihood of an invalid controller type to be set within a game
|
| |/ /
|/| | |
|
|\ \ \
| | | |
| | | | |
logging/settings: Increase maximum log size to 100 MB and add extended logging option
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The extended logging option is automatically disabled on boot but can be enabled afterwards, allowing the log file to go up to 1 GB during that session.
This commit also fixes a few errors that are present in the general debug menu.
|
|\ \ \ \
| |_|/ /
|/| | | |
patch_manager: Remove usages of the global system instance
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
With this, only 19 usages of the global system instance remain within
the core library.
We're almost there.
|
|/ /
| |
| |
| |
| | |
This is a static member function, so we don't need use an existing
instance to call this function.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Not all controllers have a SDL_GameController binding. This caused controllers not present in the SDL GameController database to have buttons mapped instead of axes.
Furthermore, it was not possible to invert the axes when it could be useful such as emulating a horizontal single joycon or other potential cases. This allows us to invert the axes by reversing the order of mapping (vertical, then horizontal).
|
| |
| |
| |
| | |
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
| |
| |
| |
| |
| |
| | |
Some games do not respond to a change in controller type if 1) The controller is not disconnected prior to being reconnected and/or 2) The controller is reconnected instantly after being disconnected.
Since it is not possible to change controllers instantly on hardware and requiring a disconnect prior to connecting a new one, we should emulate this as well with a small delay, fixing the aforementioned issue.
|
| |
| |
| |
| |
| |
| | |
A vibration device is an input device that returns an unsigned byte as status.
It represents whether the vibration device supports vibration or not.
If the status returns 1, it supports vibration. Otherwise, it does not support vibration.
|
| |
| |
| |
| |
| |
| |
| | |
Allows for enabling and modifying vibration and vibration strength per player.
Also adds a toggle for enabling/disabling accurate vibrations.
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
| |
| |
| |
| | |
This will be replaced in favor of per-player vibration strength modifiers.
|
| |
| |
| |
| |
| | |
This allows setting the vibration strength percentage anywhere from 1% to 100%.
Also hooks up the remaining motion button and checkbox in the Controller Applet.
|
| |
| |
| |
| |
| | |
RestoreDefaults() now restores the selected devices' mappings using UpdateMappingWithDefaults().
This allows us to move the keyboard mapping from RestoreDefaults() to UpdateMappingWithDefaults().
|
| | |
|
| |
| |
| |
| | |
Co-authored-by: lat9nq <lat9nq@virginia.edu>
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Previously mouse clicks will not register when touch is disabled.
This rectifies that and allows mouse clicks to be mapped to other buttons if the touchscreen is disabled.
|
| | |
|
| |
| |
| |
| | |
With this, the "Input Devices" combobox should accurately reflect the input device being used and disallows inputs from other input devices unless the input device is set to "Any".
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Changes QMessageBox usages to warnings, as the problems they bring to
light are being safely handled by the application and do not warrant
something of the "critical" level.
Changes LOG_CRITICAL to LOG_ERROR for the same reason. Preferring ERROR
to WARNING as yuzu is denying loading of any guest applications after
checking for these conditions.
Moved logging the GL_RENDERER string into GetUnsupportedGLExtensions()
to make more clear that unsupported extensions were already being
logged. Makes placement of the logs easier to understand later, as well.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Changes the first message to not include the OpenGL version, as the
error is caused by OpenGL failing to load.
Adds a new check for OpenGL version 4.3. This will display a message
with a similar error as well as the GL_RENDERER string. Adds a CRITICAL
log message when triggered. This prevents a crash with yuzu trying to
use older OpenGL versions.
Modifies the unsupported extension message to output the GL_RENDERER
string in the message, as well as logging the string.
|
|\ \
| | |
| | | |
core: Remove usage of unicorn
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Unicorn long-since lost most of its use, due to dynarmic gaining support
for handling most instructions. At this point any further issues
encountered should be used to make dynarmic better.
This also allows us to remove our dependency on Python.
|
|/ /
| |
| |
| |
| |
| | |
Rather than have directly modified global state here, we can make it an
implementation detail and have an interface that changes are queried
through.
|
| |
| |
| |
| |
| |
| |
| | |
- In general, this is now the preferred settings for most games.
# Conflicts:
# src/yuzu/configuration/config.cpp
|
|\ \
| | |
| | | |
video_core: NVDEC Implementation
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library.
The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data.
To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library.
Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header.
Async GPU is not properly implemented at the moment.
Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
|
|\ \ \
| |/ /
|/| | |
controller: Pass ControllerParameters by reference in ReconfigureControllers()
|
| | |
| | |
| | |
| | | |
Prevents unnecessary copies and heap reallocations from occurring.
|
|\ \ \
| | | |
| | | | |
controller: Convert led_patterns integer literals to bool literals
|
| | | |
| | | |
| | | |
| | | |
| | | | |
'bool' isn't always guaranteed to be the same size as an int, so this
can technically cause truncation warnings if we support other platforms.
|
|\ \ \ \
| | |/ /
| |/| | |
general: Use template deduction guides for lock_guard
|
| |/ /
| | |
| | |
| | | |
Same behavior, less code.
|
| | |
| | |
| | |
| | | |
Resolves a warning where not all control paths return a value.
|
|\ \ \
| | | |
| | | | |
main/profile_select: Don't ask for profile when there's only one.
|
| |/ / |
|
|\ \ \
| |/ /
|/| | |
service: time: Update current time with changes to RTC setting.
|
| | |
| | |
| | |
| | | |
- This can be used to advance time, e.g. for Pokemon Sword/Shield pokejobs.
|
| | |
| | |
| | |
| | | |
Fix them for real this time, now they finally work.
|
|/ /
| |
| |
| |
| | |
Makes the input_common code warnings consistent with the rest of the
codebase.
|
|\ \
| | |
| | | |
qt/game_list: Give GameListSearchField::KeyReleaseEater a parent
|
| | |
| | |
| | |
| | |
| | | |
This fixes a memory leak as KeyReleaseEater's destructor was never
called.
|
|/ /
| |
| |
| | |
Using the Qt::WindowStaysOnTopHint flag allows these dialogs to show up on top while running in fullscreen. However, if yuzu goes out of focus (by alt-tabbing or otherwise), this flag does not seem to have an effect.
|
|\ \
| | |
| | | |
install_dialog: Remove unused function prototype
|
| | |
| | |
| | |
| | |
| | | |
Allows the compiler to warn against cases where the return value isn't
used (which would be a bug).
|
| | |
| | |
| | |
| | |
| | | |
This function doesn't have an implementation, so it can be removed to
prevent others from unintentionally using it.
|
| | |
| | |
| | |
| | |
| | | |
Makes the naming consistent with the rest of the functions that are
present.
|
|/ /
| |
| |
| | |
Several functions can be taken by const reference to avoid copies
|
| |
| |
| |
| |
| | |
Emulated mailbox presentation was causing performance issues on
Nvidia's OpenGL driver. Remove it.
|
| | |
|
| |
| |
| |
| |
| | |
The context menu was removed in Mjölnir Part 1 as part of the input rewrite as we were unaware of it's usage statistics.
However, as this was the only way to clear the inputs of individual buttons, this PR will re-add it back in.
|
|\ \
| | |
| | | |
hid/configuration: Implement motion controls to HID
|
| | |
| | |
| | |
| | |
| | | |
This allows toggling motion on or off, and allows access to the motion configuration.
Also changes the [waiting] text for motion buttons to Shake! as this is how motion is connected to a player.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
We can supply the content provider as an argument instead of hardcoding
a global accessor in the implementation.
|
|\ \ \
| | | |
| | | | |
Project Mjölnir: Part 2 - Controller Applet
|
| | | |
| | | |
| | | |
| | | | |
Resolves -Wsign-compare and -Wunused-variable
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
This avoids unintentionally changing the states of elements while loading them in.
|
| | | |
| | | |
| | | |
| | | | |
Avoids repetitive usages of the int literal '8' or calls to player_widgets.size()
|
| | | |
| | | |
| | | |
| | | | |
"Explain Text" is additional text that is shown for each player in the controller applet.
|
| |/ /
| | |
| | |
| | | |
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
|\ \ \
| | | |
| | | | |
configure_input_player: Resolve sign conversion warnings in UpdateMappingWithDefaults()
|
| | | |
| | | |
| | | |
| | | | |
Prevents sign mismatch warnings in the loop conditionals.
|
|\ \ \ \
| | | | |
| | | | | |
video_core: Remove all Core::System references in renderer
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now that the GPU is initialized when video backends are initialized,
it's no longer needed to query components once the game is running: it
can be done when yuzu is booting.
This allows us to pass components between constructors and in the
process remove all Core::System references in the video backend.
|
|\ \ \ \
| |/ / /
|/| | | |
game_list_p: Mark some constants as constexpr
|
| | | | |
|
| |/ /
| | |
| | |
| | |
| | | |
Consistency change with how we mark constants in the rest of the
codebase.
|
| | |
| | |
| | |
| | | |
Fixes a typo in the UI file. An ellipsis has 3 dots.
|
|\ \ \
| | | |
| | | | |
yuzu: Add motion and touch configuration from Citra
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
bootmanager: Prevent unnecessary copies in TouchUpdateEvent()
|
| |/ /
| | |
| | |
| | |
| | | |
The list of points is returned by const reference, so we don't need to
make a copy of every element in the list.
|
|\ \ \
| | | |
| | | | |
yuzu/main: Amend lifetime issues with InputSubsystem
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
Due to the way Qt performs destruction of parent/child widgets, we need
to make the lifetime of the input subsystem shared across the main
window and the render window.
|
|/ / |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Abstracts most of the input mechanisms under an InputSubsystem class
that is managed by the frontends, eliminating any static constructors
and destructors. This gets rid of global accessor functions and also
allows the frontends to have a more fine-grained control over the
lifecycle of the input subsystem.
This also makes it explicit which interfaces rely on the input subsystem
instead of making it opaque in the interface functions. All that remains
to migrate over is the factories, which can be done in a separate
change.
|
| | |
|
| |
| |
| |
| | |
Supports the Left, Right, Middle, Backward and Forward mouse buttons.
|
| | |
|
|/
|
|
|
| |
Co-authored-by: James Rowe <jroweboy@gmail.com>
Co-authored-by: Its-Rei <kupfel@gmail.com>
|
|\
| |
| | |
dynarmic: Add unsafe optimizations
|
| | |
|
| |
| |
| |
| |
| | |
Migrates the Telemetry namespace into the Common namespace to make the
code consistent with the rest of our common code.
|
|\ \
| | |
| | | |
main: Fix Open Save/Mod Locations for installed titles
|
| | |
| | |
| | |
| | | |
In some rare instances, the patch manager is not able to find a control nca, fallback to the previous method of parsing a control nca through the loader if this occurs.
|
| | |
| | |
| | |
| | | |
Previously NAND/SDMC installed titles would open device saves when they are supposed to be user saves. This is due to the control nca not being read and thus returns 0 for both GetDefaultNormalSaveSize() and GetDeviceSaveDataSize(). Fix this by utilizing the patch manager to read the control nca.
|
|\ \ \
| | | |
| | | | |
configuration_shared: Simplify name lookup in highlighting functions
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
We can query the given object name directly from the widget itself. This
removes any potential for forgetting to change the name if the widget
gets renamed and makes the API much simpler (just pass in the widget,
and not worry about its name).
|
|\ \ \
| | | |
| | | | |
common/fileutil: Convert namespace to Common::FS
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Migrates a remaining common file over to the Common namespace, making it
consistent with the rest of common files.
This also allows for high-traffic FS related code to alias the
filesystem function namespace as
namespace FS = Common::FS;
for more concise typing.
|
|\ \ \
| | | |
| | | | |
configure_hotkeys: Don't translate empty strings
|
| |/ /
| | |
| | |
| | |
| | | |
There's no need to translate an empty string. This just gives
translators unnecessary work.
|
|\ \ \
| | | |
| | | | |
yuzu: Make use of qOverload where applicable
|
| |/ /
| | |
| | |
| | | |
Eliminates a verbose function cast.
|
|\ \ \
| | | |
| | | | |
vulkan_renderer: Async shader/graphics pipeline compilation
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
main: Add an option to modify the currrent game's configuration
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
Creates a new entry in the Emulation menu called "Configure Current Game..." that is only available if a game is currently being executed in yuzu. When selected, it opens the game properties dialog for the current game.
Thanks to @BSoDGamingYT for reminding me to do this.
|
|/ /
| |
| |
| |
| | |
While we're in the same area, we can ensure GameDir member variables are
always initialized to consistent values.
|
| | |
|
|/
|
|
| |
Previously the map of entries was being cleared while looping through each game directory, this resulted into all game directories except the last game dir to lose content metadata information. Fix this by clearing the entries only once.
|
|\
| |
| | |
game_list_worker: Fix game list subdirectory scanning
|
| |
| |
| |
| |
| |
| |
| |
| | |
Oddly enough the scan that feeds the manual content provider is hardcoded to scan 2 nested directories deep.
This effectively rendered the scan subdirectories setting useless as the manual content provider cannot find any games located more than 2 nested directories deep.
Furthermore, this behavior causes game files to be picked up by the manual content provider even if scan subdirectories is disabled.
FIx this by utilizing the behavior described when populating the game list for populating the content provider.
|
| |
| |
| |
| |
| | |
C++20 deprecates capturing the this pointer via the '=' capture.
Instead, we replace it or extend the capture specification.
|
|\ \
| | |
| | | |
screenshots: Option to save screenshots immediately in a specified directory + Linux workaround
|
| | |
| | |
| | |
| | | |
Solves an issue with restoring the value upon reloading program.
|
| | | |
|
| | |
| | |
| | |
| | | |
If the user had cancelled, it would clear the text box. That behavior was sanitized underneath, but may anyways cause inconveniences.
|
| | |
| | |
| | |
| | | |
Co-Authored-By: LC <lioncash@users.noreply.github.com>
|
| | |
| | |
| | |
| | | |
This picks a default directory and file name. If on Windows and save-as screenshot saving is enabled, it asks the user, first defaulting to the default screenshot path, and with a default filename in the format `[title_id]_[year-mt-dy_hr-mn-sc-msc].png`. Otherwise, or on Linux for now, it simply saves a file in that directory with that file name.
|
| | |
| | |
| | |
| | | |
This adds two options to the General -> UI tab. The first disables picking a place to save the file. The second chooses a default directory for saving screenshots.
|
|\ \ \
| | | |
| | | | |
yuzu/main: Remove redundant usages of QStringLiteral("")
|
| | | |
| | | |
| | | |
| | | |
| | | | |
An empty QStringLiteral can more efficiently be replaced with an empty
QString.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Hides the following options when the title id is 0:
- Open Save Location
- Open Mod Data Location
- Open Transferable Shader Cache
- All removal options except Remove Custom Configuration
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Adds the following actions:
- Remove Installed Update
- Remove All Installed DLC
- Remove Shader Cache
- Remove Custom Configuration
- Remove All Installed Contents
|
|/ /
| |
| |
| |
| |
| | |
The introduction of multicore rendered this setting non-functional as timing code was changed.
This removes the setting entirely.
|
| |
| |
| |
| |
| | |
Those are already found in the Filesystem tab.
They were added back to the Debug tab by mistake in the Vulkan PR.
|
|\ \
| | |
| | | |
qt-themes: Add Midnight Blue qdarkstyle theme (2.8.1)
|
| | | |
|
| |/
| |
| |
| | |
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
|
| | |
|
| | |
|
| |
| |
| |
| | |
These were only kept for compatibility with old code during testing.
|
| | |
|
| |
| |
| |
| | |
Also gets rid of unnecessary explicit namespace usage.
|
| | |
|
| |
| |
| |
| | |
One less global variable.
|
| |
| |
| |
| |
| |
| | |
Makes the code more readable
Co-Authored-By: LC <lioncash@users.noreply.github.com>
|
| | |
|
| |
| |
| |
| | |
whoops
|
| |
| |
| |
| | |
Fixes a regression where the global config takes up a lot of extra space.
|
| |
| |
| |
| | |
The way the configurations are set up, it is not trivial to do this. I'll leave it as is, but the API selection, and the background color and volume slider selectors are kind of not following the style.
|
| | |
|
| |
| |
| |
| | |
Not a catch-all, but helps clean up the code for when I do this a lot. Also fixes some bugs caught in configure_graphics.
|
| |
| |
| |
| | |
I noticed some of the code could be reduced to just passing the function an int, since I was doing the same thing over and over. Also clang-formats configure_graphics
|
| | |
|
| |
| |
| |
| | |
Let's see if I make up my mind.
|
| |
| |
| |
| | |
Also adds trackers for graphics and advanced graphics
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Prevents mass-coloring of elements later on
|
| |
| |
| |
| | |
Fixes visibility in the built-in dark theme
|
| | |
|
|/
|
|
| |
Sets up initial support for implementing colored tristate functions. These functions color a QWidget blue when it's overriding a global setting, and discolor it when not. The lack of color indicates it uses the global state, replacing the Qt::CheckState::PartiallyChecked state with the global state.
|
|\
| |
| | |
frontend: Improve wait tree readability for dark themes
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
| |
Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
|
| |
|
| |
|
| |
|
|\
| |
| | |
main: Set async gpu properly after loading per-game setting
|
| |
| |
| |
| | |
Creates a new function that can be expanded later to fix other settings that are known to cause emulation errors across executables.
|
| |
| |
| |
| | |
Another error that got pass me and only noticed when I was doing the per-game settings UI rework. This prevents asynchronous GPU emulation from being disabled while multi core is enabled as a result of a poorly put together per-game config.
|
|\ \
| | |
| | | |
main/profile_select: Don't prompt for profile selection when only one is available
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
configuration: Add settings to enable/disable specific CPU optimizations
|
| | | | |
|
| | | | |
|
| | | | |
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
filesystem: Set various NAND partition sizes to their defaults
|
| | | | |
|
| |_|/
|/| |
| | |
| | | |
This is likely an oversight during a rebase. Guards use_multi_core to be only set when the global value is in use. It should not make a difference given the current code base, but makes the code sensible.
|
|\ \ \
| | | |
| | | | |
CMakeLists: Make use of /std:c++latest on MSVC
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
Provides the buildbot with one builder that is always tracking the
latest version of the C++ standard, allowing us to progressively rectify
our code and amend any differences between standards over time instead
of waiting for a complete standard change, potentially breaking a lot of
code all at once.
|
|\ \ \
| |/ /
|/| | |
frontend: Add support to batch install files to NAND
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
- Remove the overwrite files checkbox, it will always overwrite
- The progressbar now reflects the progress in terms of data transferred.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Key issues fixed:
- Progress dialog showing up as white/hanging/getting stuck/unresponsive.
Key changes:
- Progress dialog now shows progress as a function of all files instead of per nca within a file.
- Overwrite existing files will overwrite all files in the selection.
|
| |/
| |
| |
| | |
This adds support to batch install files to NAND
|
|\ \
| |/
|/| |
cmake: drop dependency on QtOpenGL
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Switch game settings to use a pointer
In order to add full per-game settings, we need to be able to tell yuzu to switch
to using either the global or game configuration. Using a pointer makes it easier
to switch.
* configuration: add new UI without changing existing funcitonality
The new UI also adds General, System, Graphics, Advanced Graphics,
and Audio tabs, but as yet they do nothing. This commit keeps yuzu
to the same functionality as originally branched.
* configuration: Rename files
These weren't included in the last commit. Now they are.
* configuration: setup global configuration checkbox
Global config checkbox now enables/disables the appropriate tabs in the game
properties dialog. The use global configuration setting is now saved to the
config, defaulting to true. This also addresses some changes requested in the PR.
* configuration: swap to per-game config memory for properties dialog
Does not set memory going in-game. Swaps to game values when opening the
properties dialog, then swaps back when closing it. Uses a `memcpy` to swap.
Also implements saving config files, limited to certain groups of configurations
so as to not risk setting unsafe configurations.
* configuration: change config interfaces to use config-specific pointers
When a game is booted, we need to be able to open the configuration dialogs
without changing the settings pointer in the game's emualtion. A new pointer
specific to just the configuration dialogs can be used to separate changes
to just those config dialogs without affecting the emulation.
* configuration: boot a game using per-game settings
Swaps values where needed to boot a game.
* configuration: user correct config during emulation
Creates a new pointer specifically for modifying the configuration while
emulation is in progress. Both the regular configuration dialog and the game
properties dialog now use the pointer Settings::config_values to focus edits to
the correct struct.
* settings: split Settings::values into two different structs
By splitting the settings into two mutually exclusive structs, it becomes easier,
as a developer, to determine how to use the Settings structs after per-game
configurations is merged. Other benefits include only duplicating the required
settings in memory.
* settings: move use_docked_mode to Controls group
`use_docked_mode` is set in the input settings and cannot be accessed from the
system settings. Grouping it with system settings causes it to be saved with
per-game settings, which may make transferring configs more difficult later on,
especially since docked mode cannot be set from within the game properties
dialog.
* configuration: Fix the other yuzu executables and a regression
In main.cpp, we have to get the title ID before the ROM is loaded, else the
renderer will reflect only the global settings and now the user's game specific
settings.
* settings: use a template to duplicate memory for each setting
Replaces the type of each variable in the Settings::Values struct with a new
class that allows basic data reading and writing. The new struct
Settings::Setting duplicates the data in memory and can manage global overrides
per each setting.
* configuration: correct add-ons config and swap settings when apropriate
Any add-ons interaction happens directly through the global values struct.
Swapping bewteen structs now also includes copying the necessary global configs
that cannot be changed nor saved in per-game settings. General and System config
menus now update based on whether it is viewing the global or per-game settings.
* settings: restore old values struct
No longer needed with the Settings::Setting class template.
* configuration: implement hierarchical game properties dialog
This sets the apropriate global or local data in each setting.
* clang format
* clang format take 2
can the docker container save this?
* address comments and style issues
* config: read and write settings with global awareness
Adds new functions to read and write settings while keeping the global state in
focus. Files now generated per-game are much smaller since often they only need
address the global state.
* settings: restore global state when necessary
Upon closing a game or the game properties dialog, we need to restore all global
settings to the original global state so that we can properly open the
configuration dialog or boot a different game.
* configuration: guard setting values incorrectly
This disables setting values while a game is running if the setting is
overwritten by a per game setting.
* config: don't write local settings in the global config
Simple guards to prevent writing the wrong settings in the wrong files.
* configuration: add comments, assume less, and clang format
No longer assumes that a disabled UI element means the global state is turned
off, instead opting to directly answer that question. Still however assumes a
game is running if it is in that state.
* configuration: fix a logic error
Should not be negated
* restore settings' global state regardless of accept/cancel
Fixes loading a properties dialog and causing the global config dialog to show
local settings.
* fix more logic errors
Fixed the frame limit would set the global setting from the game properties
dialog. Also strengthened the Settings::Setting member variables and simplified
the logic in config reading (ReadSettingGlobal).
* fix another logic error
In my efforts to guard RestoreGlobalState, I accidentally negated the IsPowered
condition.
* configure_audio: set toggle_stretched_audio to tristate
* fixed custom rtc and rng seed overwriting the global value
* clang format
* rebased
* clang format take 4
* address my own review
Basically revert unintended changes
* settings: literal instead of casting
"No need to cast, use 1U instead"
Thanks, Morph!
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
* Revert "settings: literal instead of casting
"
This reverts commit 95e992a87c898f3e882ffdb415bb0ef9f80f613f.
* main: fix status buttons reporting wrong settings after stop emulation
* settings: Log UseDockedMode in the Controls group
This should have happened when use_docked_mode was moved over to the controls group
internally. This just reflects this in the log.
* main: load settings if the file has a title id
In other words, don't exit if the loader has trouble getting a title id.
* use a zero
* settings: initalize resolution factor with constructor instead of casting
* Revert "settings: initalize resolution factor with constructor instead of casting"
This reverts commit 54c35ecb46a29953842614620f9b7de1aa9d5dc8.
* configure_graphics: guard device selector when Vulkan is global
Prevents the user from editing the device selector if Vulkan is the global
renderer backend. Also resets the vulkan_device variable when the users
switches back-and-forth between global and Vulkan.
* address reviewer concerns
Changes function variables to const wherever they don't need to be changed. Sets Settings::Setting to final as it should not be inherited from. Sets ConfigurationShared::use_global_text to static.
Co-Authored-By: VolcaEM <volcaem@users.noreply.github.com>
* main: load per-game settings after LoadROM
This prevents `Restart Emulation` from restoring the global settings *after* the per-game settings were applied. Thanks to BSoDGamingYT for finding this bug.
* Revert "main: load per-game settings after LoadROM"
This reverts commit 9d0d48c52d2dcf3bfb1806cc8fa7d5a271a8a804.
* main: only restore global settings when necessary
Loading the per-game settings cannot happen after the ROM is loaded, so we have to specify when to restore the global state. Again thanks to BSoD for finding the bug.
* configuration_shared: address reviewer concerns except operator overrides
Dropping operator override usage in next commit.
Co-Authored-By: LC <lioncash@users.noreply.github.com>
* settings: Drop operator overrides from Setting template
Requires using GetValue and SetValue explicitly. Also reverts a change that broke title ID formatting in the game properties dialog.
* complete rebase
* configuration_shared: translate "Use global configuration"
Uses ConfigurePerGame to do so, since its usage, at least as of now, corresponds with ConfigurationShared.
* configure_per_game: address reviewer concern
As far as I understand, it prevents the program from unnecessarily copying strings.
Co-Authored-By: LC <lioncash@users.noreply.github.com>
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
Co-authored-by: VolcaEM <volcaem@users.noreply.github.com>
Co-authored-by: LC <lioncash@users.noreply.github.com>
|
|\ \
| | |
| | | |
configure_graphics: Prevent unnecessary string copies in UpdateDeviceComboBox()
|
| | |
| | |
| | |
| | |
| | | |
While we're in the same area, we can make use of qOverload to tidy up
some function pointer casts.
|
| | |
| | |
| | |
| | |
| | | |
Unlikely to impact performance at all, but this is essentially a "free"
transformation, so why not?
|
| | | |
|
|/ / |
|
|\| |
|
| |
| |
| |
| | |
Our codebase uppercases member function names.
|
| |\
| | |
| | | |
crypto: Make KeyManager a singleton class
|
| | |
| | |
| | |
| | |
| | |
| | | |
Previously, we were reading the keys everytime a KeyManager object was created, causing yuzu to reread the keys file multiple hundreds of times when loading the game list.
With this change, it is only loaded once.
On my system, this decreased game list loading times by a factor of 20.
|
| |\ \
| | | |
| | | | |
Add game version to window title
|
| | | | |
|
| | | | |
|
| |\ \ \
| | | | |
| | | | | |
Add "Open Quickstart Guide" and "FAQ" buttons to the Help menu
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | |\ \ \ |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | | |
While we're at it, also refactor the function used by OnOpenModsPage to be compatible with other URLs
|
| |\ \ \ \ \
| | | | | | |
| | | | | | | |
hotkeys: Fix issues caused when changing the fullscreen hotkey
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host
Timing, Reworks the Kernel's Scheduler, Introduce Idle State and
Suspended State, Recreates the bootmanager, Initializes Multicore
system.
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix framebuffer size on fractional scaling display
|
| | | | | | | | |
|
| |\ \ \ \ \ \ \
| | |_|_|_|/ / /
| |/| | | | | | |
hotkeys: Add a "Mute Audio" hotkey
|
| | | |/ / / /
| | |/| | | | |
|
| |\ \ \ \ \ \
| | |/ / / / /
| |/| | | | | |
Add a "Open Mods Page" button to the GUI
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | | |
Co-authored-by: LC <mathew1800@gmail.com>
|
| | | |/ / /
| | |/| | | |
|
| |\ \ \ \ \
| | | | | | |
| | | | | | | |
main/common: Log/append AVX/FMA to the Host CPU string if available and add AVX512 detection
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Append AVX and FMA instructions to cpu string if the host cpu supports them
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Occurs when doing a local compile in MSVC build. The compiler I'm using is as below:
Microsoft Visual Studio Community 2019 Preview
Version 16.6.0 Preview 5.0
Fixes this error:
CVTRES : fatal error CVT1100: duplicate resource. type:MANIFEST, name:1, language:0x0409
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
I have put 0 since previous name was 1. If have other names in mind, please let me know.
Co-Authored-By: dragios <dragios@users.noreply.github.com>
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Fix clang formatting
Manual fix for configure_input_player formatting
Add missing lib usb cmake command
|
| | | | | | |
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix compilation on macOS
|
| | |/ / /
| |/| | |
| | | | |
| | | | | |
OpenGL macOS headers definitions clash heavily with each other
|
| | | | | |
|
|/ / / /
| | | |
| | | |
| | | | |
Fixes compilation when trying to build without boxcat enabled
|
|\ \ \ \
| | | | |
| | | | | |
gl_arb_decompiler: Implement an assembly shader decompiler
|
| | |/ /
| |/| | |
|
|\ \ \ \
| |/ / /
|/| | | |
yuzu/frontend: Remove internal resolution option
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
video_core: Implement Macro JIT
|
| |/ / |
|
| | |
| | |
| | |
| | | |
Co-Authored-By: xperia64 <xperiancedapps@gmail.com>
|
|\ \ \
| |/ /
|/| | |
OpenGL: Enable Debug Context and Synchronous debugging when graphics debugging is enabled
|
| | |
| | |
| | |
| | |
| | | |
This commit aims to help easing debugging of driver crashes without
having to modify existing code.
|
|\ \ \
| | | |
| | | | |
main: Log host system memory parameters
|
| | | | |
|
| |/ /
| | |
| | |
| | | |
Logs both physical memory and swapfile sizes, this is useful for support.
|
|\ \ \
| | | |
| | | | |
renderer_opengl: Add assembly program code paths
|
| |/ /
| | |
| | |
| | |
| | | |
Add settings for assembly shaders. Currently hidden to avoid users from
accidentally enabled them.
|
|/ / |
|
|\ \
| | |
| | | |
FS: Improve emulation of device saves
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Frontend: Remove tracking for context wrapper
|
| |/ / |
|
|/ / |
|
|/
|
|
| |
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
|
|\
| |
| | |
Port citra-emu/citra#5094: "yuzu: Option to hide mouse on inactivity"
|
| |
| |
| |
| | |
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
|
|\ \
| | |
| | | |
Dump RomFS command to include Updates
|
| | |
| | |
| | | |
Co-Authored-By: Mat M. <mathew1800@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Patch the RomFS with the selected updates before dumping. Previously the resulting RomFS only contained data from the original title.
To dump the RomFS without updates the user can disable the update under Properties before choosing Dump RomFS.
|
|\ \ \
| | | |
| | | | |
Optimize GPU Command Lists and Introduce Fast GPU Time Option
|
| | | | |
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
Fix "Port citra-emu/citra#4956: "Fixes to game list sorting" #3611"
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
configuration: Add Restore Default and Clear options to hotkeys
|
| | | | | |
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
configure_input_player: Use slider to edit modifier scale
|
| |/ / / |
|
|\ \ \ \
| |_|/ /
|/| | | |
frontend/filesystem: Add a trailing separator to the string path
|
| |/ /
| | |
| | |
| | | |
Fixes #3643
|
|\ \ \
| | | |
| | | | |
CMakeLists: Enable -Wmissing-declarations on Linux builds
|
| | | | |
|
| | | | |
|
| |/ /
|/| | |
|
| |/
|/| |
|
|\ \
| |/
|/| |
yuzu/main: Add better popup texts and remove duplicated actions
|
| |
| |
| |
| |
| | |
Makes popup texts more compact and clear and also links our quickstart guide now.
Also removes OnMenuSelectEmulatedDirectory from the File dropdown, as the action already exists in the Filesystem tab and provides better visual feedback there.
|
|/
|
|
|
|
|
|
|
|
|
| |
Allows reporting more cases where logic errors may exist, such as
implicit fallthrough cases, etc.
We currently ignore unused parameters, since we currently have many
cases where this is intentional (virtual interfaces).
While we're at it, we can also tidy up any existing code that causes
warnings. This also uncovered a few bugs as well.
|
|\
| |
| | |
Port citra-emu/citra#4956: "Fixes to game list sorting"
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Should fix citra-emu/citra#4593.
As the issue might not be entirely clear, I'll offer a short explanation from what I understood from it and found from experimentation.
Currently yuzu offers the user the option to change the text that's displayed in the "Name" column in the game list. Generally, it is expected that the items are sorted based on the displayed text, but yuzu would sort them by title instead.
Made it so that an access to SortRole returns the same as DisplayRole.
There shouldn't be any UI changes, only change in behaviour.
Also fixes a bug with directory sorting, where having the directories out of order would enable you to try to "move up" to the addDirectory button, which would crash the emulator.
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
|
|\ \
| | |
| | | |
yuzu: Drop SDL2 and Qt frontend Vulkan requirements
|
| | |
| | |
| | |
| | | |
Create Vulkan instances and surfaces from the Vulkan backend.
|
| |/ |
|
|\ \
| | |
| | | |
yuzu/configuration: Fix input profiles and a wrong assert
|
| | |
| | |
| | |
| | | |
This fixes failed assertions that were present in yuzu master code for 18 months.
|
| |/
| |
| |
| | |
This was incorrectly using PlayerIndex 1 when calling the ConfigureDialog.
|
|\ \
| | |
| | | |
qt/bootmanager: Remove unnecessary glBindFramebuffer
|
| |/
| |
| |
| |
| |
| |
| |
| | |
Presentation context always has GL_DRAW_FRAMEBUFFER_BINDING as zero.
There is no need to bind the default framebuffer constantly.
According to Nsight this was using ~0.7ms per frame and it broke
renderdoc captures.
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
configuration: Reorder shoulder buttons
|
| | |
|
|\ \
| |/
|/| |
Refactor Context management (Fixes renderdoc on opengl issues)
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Changes the GraphicsContext to be managed by the GPU core. This
eliminates the need for the frontends to fool around with tricky
MakeCurrent/DoneCurrent calls that are dependent on the settings (such
as async gpu option).
This also refactors out the need to use QWidget::fromWindowContainer as
that caused issues with focus and input handling. Now we use a regular
QWidget and just access the native windowHandle() directly.
Another change is removing the debug tool setting in FrameMailbox.
Instead of trying to block the frontend until a new frame is ready, the
core will now take over presentation and draw directly to the window if
the renderer detects that its hooked by NSight or RenderDoc
Lastly, since it was in the way, I removed ScopeAcquireWindowContext and
replaced it with a simple subclass in GraphicsContext that achieves the
same result
|
|\ \
| | |
| | | |
Port citra-emu/citra#5089: "Set render window's focus policy to Qt::StrongFocus"
|
| | | |
|
|/ /
| |
| |
| | |
Co-Authored-By: Valentin Vanelslande <vvanelslandedev@gmail.com>
|
|\ \
| |/
|/| |
yuzu: Remove exit lock for game pausing
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This removes the "exit lock" popup from yuzu when pausing a game.
Motivation
The exit lock feature is broken in many ways and doesn't work properly in a lot of games, causing it to appear every time you want to pause the game or stop it, even in places where it wouldn't on Switch.
Additionally, the feature of pausing a game doesn't exist like this on Switch and yuzu should be guaranteed to be deterministic anyway, so pausing the emulation shouldn't be able to interrupt any critical processes in any way.
|
|\ \
| | |
| | | |
set: implement GetRegionCode
|
| | | |
|
|\ \ \
| |/ /
|/| | |
bcat: Disable Boxcat backend by default
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit disables the Boxcat backend by default for new users of yuzu.
There's several reasons as to why this is done:
1. Boxcat currently only actually has an impact on 3 games and doesn't influence any core mechanics of them
2. It causes a plethora of issues when enabled such as games like Crash Team Racing, Diablo 3 and Tales of Vesperia not booting at all or hanging
3. It causes https://github.com/yuzu-emu/yuzu/issues/2957 to happen. This makes the configuration menu totally unusable for many Linux users of yuzu
I think those points show that currently the negative impact of Boxcat outweighs its benefits and should therefore be disabled by default.
For users who are eager to use the extra features provided by it, they can still just turn it on in the settings.
|
|/ / |
|
| | |
|
|\ \
| | |
| | | |
frontend/Graphics: Add "Advanced" graphics tab and experimental Anisotropic Filtering support
|
| | | |
|
|/ / |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
GUI: Add aspect ratio dropdown
|
| | |
|
| |
| |
| |
| | |
Available as a drop down within the configure graphics tab.
|
|/ |
|
|\
| |
| | |
Remove option "Show files with type 'Unknown'"
|
| | |
|
|\ \
| | |
| | | |
GUI: Togglable graphics settings buttons in status bar
|
| | | |
|
| | | |
|
| |/ |
|
|\ \
| | |
| | | |
yuzu: Implement Vulkan frontend
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing
bits on Vulkan initialization.
|
| |/ |
|
|\ \
| |/
|/| |
GUI: Deadzone controls for sdl engine at configuration input
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
yuzu/configuration: create UI tab and move gamelist settings there
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
An implementation of the cemuhook motion/touch protocol, this adds the
ability for users to connect several different devices to citra to send
direct motion and touch data to citra.
Co-Authored-By: jroweboy <jroweboy@gmail.com>
|
| |
| |
| |
| | |
GUI: rename and reorder themes
|
| |
| |
| |
| | |
- We have some important audio settings, makes them more discoverable.
|
| |
| |
| |
| |
| |
| | |
* GUI/gamelist: add "None" as an option for second row and remove duplicated row options
* fix clang-format warnings
|
|\ \
| | |
| | | |
GUI: add few missing hotkeys to main menu
|
| | | |
|
| | | |
|
|/ / |
|
| |
| |
| |
| |
| |
| |
| |
| | |
MakeCurrent is a costly (according to Nsight's profiler it takes a tenth
of a millisecond to complete), and we don't have a reason to call it
because:
- Qt no longer signals a warning if it's not called
- yuzu no longer supports macOS
|
|/
|
|
|
| |
This was carried from Citra and wasn't really used on yuzu. It also adds
some runtime overhead. This commit removes it from yuzu's codebase.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With all of the trivial parts of the memory interface moved over, we can
get right into moving over the bits that are used.
Note that this does require the use of GetInstance from the global
system instance to be used within hle_ipc.cpp and the gdbstub. This is
fine for the time being, as they both already rely on the global system
instance in other functions. These will be removed in a change directed
at both of these respectively.
For now, it's sufficient, as it still accomplishes the goal of
de-globalizing the memory code.
|
|
|
|
|
|
| |
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects.
- See https://github.com/citra-emu/citra/pull/4710 for details.
|
|\
| |
| | |
Port citra-emu/citra#4953: "citra_qt/main.ui: remove unused actions "Load Symbol Map..." and "Select Game Directory...""
|
| |
| |
| |
| |
| | |
..."Select Game Directory..."
Co-authored-by: vvanelslande <vvanelslandedev@gmail.com>
|
|\ \
| | |
| | | |
gl_rasterizer: Emulate viewport flipping with ARB_clip_control
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Emulates negative y viewports with ARB_clip_control. This allows us to
more easily emulated pipelines with tessellation and/or geometry shader
stages. It also avoids corrupting games with transform feedbacks and
negative viewports (gl_Position.y was being modified).
|
|/ / |
|
| |
| |
| |
| |
| |
| |
| |
| | |
- This does not actually seem to exist in the real kernel - games reset these automatically.
# Conflicts:
# src/core/hle/service/am/applets/applets.cpp
# src/core/hle/service/filesystem/fsp_srv.cpp
|
| |
| |
| |
| | |
Co-Authored-By: Valentin Vanelslande <vvanelslandedev@gmail.com>
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Port citra-emu/citra#4930: "Pause when in background"
|
| |/
| |
| |
| | |
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
|
| | |
|
|\ \
| | |
| | | |
Silence miscellaneous warnings
|
| | | |
|
| | | |
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
Port citra-emu/citra#4004: "qt_themes: add two colorful themes"
|
| | |
| | |
| | |
| | |
| | |
| | | |
These two colorful themes are based on the Default and Dark themes, and contain icons that are colored rather than black and white. These icons come from icons8.com and they have been slightly revised by me. I'm pretty sure I was licensed to use them for Citra.
Co-Authored-By: Pengfei Zhu <zhupengfei321@sina.cn>
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Also displays current events if boxcat is selected.
|
| |/
|/| |
|
|\ \
| | |
| | | |
am: Implement exit locking and self exit commands
|
| | | |
|
| |/ |
|
|/ |
|
|\
| |
| | |
core: Implement FileSystemController to deglobalize FS services
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
|/| |
Log the current title id and game name which is booting
|
| | |
|
| |
| |
| |
| | |
Spit out a LOG_INFO of the current game name and it's title id in the log. This helps to read log files and figure out which games have which issues
|
|\ \
| | |
| | | |
Port citra-emu/citra#4944: "Added Host CPU and OS to log"
|
| |/ |
|
|\ \
| | |
| | | |
Port citra-emu/citra#4882: "Add frametime logging for tracking performance over time"
|
| |/
| |
| |
| | |
Co-Authored-By: jroweboy <jroweboy@gmail.com>
|
|/ |
|
|\
| |
| | |
Port citra-emu/citra#4877: "citra_qt: on osx chdir to bundle dir to allow detection of user folder"
|
| | |
|
| |
| |
| |
| |
| | |
Fix compile error on Windows caused by #4877
Weird, I thought I saw this guard during the code review...
|
| | |
|
|\ \
| | |
| | | |
Port citra-emu/citra#4866: "configure_dialog: reverse tab map to avoid logic based on user-facing/translatable text"
|
| |/
| |
| |
| | |
Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
|
| |
| |
| |
| |
| |
| | |
The speed limiter being a frame limiter is an implmentation detail and can be changed in the future. What user care about is that it limit the emulation speed in genenral (not just graphics but also audio+input)
Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
|
|\ \
| | |
| | | |
Port citra-emu/citra#4911: "Add cancel option to analog stick configuration"
|
| |/
| |
| |
| | |
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Ported from https://github.com/citra-emu/citra/pull/3617.
|
|\ \
| | |
| | | |
Port citra-emu/citra#4914: "Fix to Windows sleep issues"
|
| |/
| |
| |
| | |
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
|
|/
|
|
| |
I missed this in my original PR (https://github.com/yuzu-emu/yuzu/pull/1886).
|
| |
|
|\
| |
| | |
Port citra-emu/citra#4849: "Qt: Fixed behaviour of buttons by connecting functors to correct signals"
|
| |
| |
| |
| |
| |
| | |
Following screens got fixes:
- Configure/Debug
- Configure/Input
|
|\ \
| | |
| | | |
yuzu/CMakeLists: Remove qt5_wrap_ui macro usage
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We can simply enable CMAKE_AUTOUIC and let CMake take care of handling
the UI code generation for targets.
As part of letting CMake automatically handle the header file parsing,
we must not name includes with "ui_*" unless they're related to the
output of the Qt UIC compiler. Because of this, we need to rename
ui_settings, given it would conflict with this restriction.
|
|\ \
| |/
|/| |
yuzu/main: Make error messages within OnCoreError more localization-friendly
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, a translated string was being appended onto another string
in a manner that doesn't allow the translator to control where the
appended text is placed. This can be a nuisance for languages where
grammar and text ordering differs from English.
We now append the strings via the format strings themselves, which
allows translators to reorder where the text will be placed.
|
|/
|
|
|
|
|
|
|
|
| |
The JIT is mature enough that this setting can be removed, falling back
to Unicorn only on unsupported architectures. Any missing features from
Unicorn (of which there are extremely few), are mostly
developer-oriented, which most users don't care about.
Features should be coordinated with the JIT, not the interpreter,
anyhow.
|
|\
| |
| | |
Implement a new Texture Cache
|
| | |
|
|\ \
| | |
| | | |
yuzu: Move CPU Jit setting to Debug tab
|
| | |
| | |
| | |
| | | |
A normal user shouldn't change this, as it will slow down the emulation and can lead to bugs or crashes. The renaming is done in order to prevent users from leaving this on without a way to turn it off from the UI.
|
|/ / |
|
| | |
|
| | |
|
| |
| |
| | |
This is more representative of what actually occurs, as web does support remote URLs which wouldn't need a romfs callback. This paves for easy future support of this with a call like 'OpenPageRemote' or similar.
|
|\ \
| | |
| | | |
loader, file_sys: Add support for parsing and loading KIP (Kernel Internal Process) files
|
| | | |
|
|\ \ \
| |_|/
|/| | |
core: Add detailed local reporting feature for development
|
| | |
| | |
| | | |
Also cleanup of general stuff
|
| | |
| | |
| | |
| | | |
Reports are unnecessary for normal users and this is to prevent 'power' users from enabling the feature by accident.
|
| | |
| | |
| | |
| | | |
Full enable/disable for all reports.
|
|\ \ \
| | | |
| | | | |
yuzu/configure_input: Add missing space in window title
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | | |
Added missing whitespace character between two words in the "Warning Missing Derivation Components" warning message box.
|
|\ \ \ \
| | | | |
| | | | | |
yuzu/configuration: Make all widgets and dialogs aware of language changes
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
To prepare for translation support, this makes all of the widgets
cognizant of the language change event that occurs whenever
installTranslator() is called and automatically retranslates their text
where necessary.
This is important as calling the backing UI's retranslateUi() is often
not enough, particularly in cases where we add our own strings that
aren't controlled by it. In that case we need to manually refresh the
strings ourselves.
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
video_core: Drop OpenGL core in favor of OpenGL compatibility
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
yuzu/CMakeLists: Pass compilation flags that make it more difficult to cause bugs in Qt code
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Enforces the use of the proper URL resolution functions. e.g.
url = some_local_path_string;
should actually be:
url = QUrl::fromLocalPath(some_local_path_string);
etc.
This makes it harder to cause bugs when operating with both strings and
URLs at the same time.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Other overloads of start() are considerably much safer to use if we ever
need this in the future and need to pass arguments to the program, given
it contains separate parameters for the program path and the arguments
themselves, whereas this unsafe overload contains both as a single
string.
Given the alternatives are much safer, we can disable this.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Prevents hard-to-diagnose bugs from potentially occurring and requires
any type narrowing to be explicitly performed by our code.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
yuzu/configuration: Make function naming consistent
|
| |/ / / / / |
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
core/telemetry_session: Remove usages of the global system accessor
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This is a hold-over from Citra and doesn't apply to yuzu.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
yuzu/{profile_select, software_keyboard}: Tidy up interface
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Like with the profile selection dialog, we can just use the result of
QDialog's exec() function to determine whether or not a dialog was
accepted.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This behavior is already provided by the built-in exec() function. We
just need to check the return value of it.
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Qt uses a signed value to represent indices. We should follow this
convention where applicable to avoid unnecessary sign-conversion
warnings, as well as making it easier to interoperate with other aspects
of Qt.
While we're at it, we can also make a sign-conversion explicit.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
qt: Silence name collision warnings
|
| |/ / / / / |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
yuzu/configuration/configure_graphics: Eliminate type narrowing in a connect call
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
A checkbox is able to be tri-state, giving it three possible activity
types, so in the connect call here, it would actually be truncating an
int into a bool.
Instead, we can just listen on the toggled() signal, which passes along
a bool, not an int.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
game_list_worker: Use QFile over our own IOFile instance or std streams for the game list cache
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Stays consistent in our code with using Qt's provided mechanisms, and
also properly handles Unicode paths (which file streams on Windows don't
do very well).
|
| | |_|_|_|_|/
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This is equivalent to specifying two separate functions, so we can just
do that.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
yuzu/bootmanager: Minor interface tidying
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
We can make this message more meaningful by indicating the location the
screenshot has been saved to. We can also log out whenever a screenshot
could not be saved (e.g. due to filesystem permissions or some other
reason).
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Treating it as a u16 can result in a sign-conversion warning when
performing arithmetic with it, as u16 promotes to an int when aritmetic
is performed on it, not unsigned int.
This also makes the interface more uniform, as the layout interface now
operates on u32 across the board.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
This class contains non-trivial members, so we should default the
destructor's definition within the cpp file.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Same thing (for platforms we support), less reading.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
This function is defined as taking an int, not a bool.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
We can just pass a pointer to GMainWindow directly and make it a
requirement of the interface. This makes the interface a little safer,
since this would technically otherwise allow any random QWidget to be
the parent of a render window, downcasting it to GMainWindow (which is
undefined behavior).
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
We can just invoke these functions by qualifying the object name before
the function.
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
yuzu: Remove unused birthday setting
|
| | |/ / / /
| |/| | | |
| | | | | |
| | | | | | |
Fixes #2522.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
mii: Implement MiiManager backend and several mii service commands
|
| | | | | | | |
|
|\ \ \ \ \ \ \
| |_|_|_|/ / /
|/| | | | | | |
yuzu: Implement a caching mechanism for the game list
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | | |
Preserves list of add ons and the icon, which are the two costliest parts of game list population.
|
| | |/ / / /
| |/| | | | |
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
yuzu_cmd: Split emu_window OpenGL implementation into its own file
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
There's no performance improvement in passing an unsigned pair by
reference.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Nothing from the hotkeys dialog relies on this call occurring, and is
already called from the dialog that calls applyConfiguration().
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Avoids mentioning the user and formalizes the error itself.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
critical() is intended for critical/fatal errors that threaten the
overall stability of an application. A user entering a conflicting key
sequence is neither of those.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
We don't need to extract the entire set of hotkeys into a list and then
iterate through it. We can traverse the list and early-exit if we're
able to.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
1. This is something that should be solely emitted by the hotkey dialog
itself
2. This is functionally unused, given there's nothing listening for the
signal.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The previous code was all "smushed" together wasn't really grouped
together that well.
This spaces things out and separates them by relation to one another,
making it easier to visually parse the individual sections of code that
make up the constructor.
|
| |_|_|_|/
|/| | | |
| | | | |
| | | | | |
QDialogButtonBoxes are horizontal by default.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
yuzu/main: Specify string conversions explicitly
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Now that all of our code is compilable with implicit QString
conversions, we can enforce it at compile-time by disabling them.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This isn't actually used anywhere, so it can be removed.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Given the std::optional can contain an object type that heap allocates,
we can use std::move to avoid an unnecessary copy/allocation from
occurring.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Qt uses a signed value to represent container sizes, so this was causing
a sign mismatch warning.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Allows the software keyboard applet code to compile with implicit string
conversions disabled.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Allows the error applet to build successfully with implicit string
conversions disabled.
|
| | |_|/ /
| |/| | | |
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
gl_shader_cache: Use shared contexts to build shaders in parallel at boot
|
| |/ / / |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Given the array is a private static array, we can just make it
internally linked to hide it from external code. This also allows us to
remove an inclusion within the header.
|
|/ / /
| | |
| | |
| | |
| | | |
Allows the configuration code to build successfully with implicit string
conversions disabled.
|
|\ \ \
| | | |
| | | | |
configuration/config: Move config loading and saving to functions based off groups
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Over time our config values have grown quite numerous in size.
Unfortunately it also makes the single functions we have for loading and
saving values more error prone.
For example, we were loading the core settings twice when they only
should have been loaded once. In another section, a variable was
shadowing another variable used to load settings from a completely
different section.
Finally, in one other case, there was an extraneous endGroup() call used
that didn't need to be done. This was essentially dead code and also a
bug waiting to happen.
This separates the section loading code into its own separate functions.
This keeps variables only visible to the code that actually needs it,
and makes it much easier to visually see the end of each individual
configuration group. It also makes it much easier to visually catch bugs
during code review.
While we're at it, this also uses QStringLiteral instead of raw string
literals, which both avoids constructing a lot of QString instances, but
also makes it much easier to disable implicit ASCII to QString and
vice-versa in the future via setting QT_NO_CAST_FROM_ASCII and
QT_NO_CAST_TO_ASCII as compilation flags.
|
| | |
| | |
| | |
| | |
| | | |
Allows the game list code to compile successfully with implicit string
conversions disabled.
|
| | |
| | |
| | |
| | |
| | | |
Allows the game list worker code to compile successfully with implicit
string conversions disabled.
|
| | |
| | |
| | |
| | |
| | |
| | | |
SMDH is a metadata format used in some executable formats for the
Nintendo 3DS. Switch executables don't utilize this metadata format, so
this just a holdover from Citra and can be corrected.
|
| | |
| | |
| | |
| | |
| | | |
Allows the game list item code to build with implicit string conversions
disabled.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Allows the loading screen code to compile with implicit string
conversions disabled.
While we're at it remove unnecessary const usages, and add it to nearby
variables where appropriate.
|
| | |
| | |
| | |
| | |
| | | |
Allows the bootmanager code to compile with implicit string conversions
disabled.
|
| | |
| | |
| | |
| | | |
Allows the util code to build with implicit string conversions disabled.
|
| | |
| | |
| | |
| | |
| | | |
Allows the web config code to compile with implicit string conversions
disabled. We can also deduplicate the calls to create the pixmap.
|
| | |
| | |
| | |
| | |
| | | |
Allows the system config code to build successfully with implicit string
conversions disabled.
|
| | |
| | |
| | |
| | | |
This is a user-facing string, so it should be marked as translatable.
|
| | |
| | |
| | |
| | |
| | | |
Allows the per-game configuration to be successfully built with implicit
string conversions disabled.
|
| | |
| | |
| | |
| | | |
Deduplicates array accesses and uses a named variable where appropriate.
|
| | |
| | |
| | |
| | |
| | | |
Allows the advanced mouse configuration code to build with implicit
string conversions disabled.
|
| | |
| | |
| | |
| | |
| | | |
Rather than repeatedly index arrays that have quite a large array index,
we can just use a named variable instead.
|
| | |
| | |
| | |
| | |
| | | |
Allows the player input configuration code to compile with implicit
string conversions disabled.
|
| | |
| | |
| | |
| | | |
These are user-facing strings, so they should be localizable.
|
| | |
| | |
| | |
| | |
| | | |
Allows the general configuration code to successfully compile with
implicit string conversions disabled.
|
| | |
| | |
| | |
| | |
| | | |
Allows the gamelist configuration code to compile with implicit string
conversions disabled.
|
| | |
| | |
| | |
| | |
| | | |
Avoids using the system accessor more than necessary, and ensures that
both dialog boxes see the same power on state.
|
| | |
| | |
| | |
| | | |
We can just use qOverload here to tidy up the function cast.
|
| | |
| | |
| | |
| | |
| | | |
Allows the audio configuration code to build with implicit string
conversions disabled.
|
|\ \ \
| | | |
| | | | |
yuzu: Remove explicit types from locks where applicable
|
| | | |
| | | |
| | | |
| | | |
| | | | |
With C++17's deduction guides, the type doesn't need to be explicitly
specified within locking primitives anymore.
|
|\ \ \ \
| | | | |
| | | | | |
yuzu/debugger: Specify string conversions explicitly
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Allows the graphics breakpoints to compile with implicit string
conversions disabled.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This allows the microprofile widget to compile with implicit string
conversions disabled.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Allows compiling the wait tree widget with implicit string conversions
disabled.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
core/kernel/object: Rename ResetType enum members for clarity
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Renames the members to more accurately indicate what they signify.
"OneShot" and "Sticky" are kind of ambiguous identifiers for the reset
types, and can be kind of misleading. Automatic and Manual communicate
the kind of reset type in a clearer manner. Either the event is
automatically reset, or it isn't and must be manually cleared.
The "OneShot" and "Sticky" terminology is just a hold-over from Citra
where the kernel had a third type of event reset type known as "Pulse".
Given the Switch kernel only has two forms of event reset types, we
don't need to keep the old terminology around anymore.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
yuzu/applets/profile_select: Mark header string as translatable
|
| | |/ / /
| |/| | |
| | | | |
| | | | | |
This is a user-facing string, so it should be marked as translatable.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
yuzu/bootmanager: Explicitly enable deprecated OpenGL features on compat
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Nvidia's proprietary driver creates a real OpenGL compatibility profile
without this option, meanwhile Intel (and probably AMD, I haven't tested
it) require that QSurfaceFormat::FormatOption::DeprecatedFunctions is
explicitly enabled.
|
| |/ / /
|/| | |
| | | |
| | | |
| | | | |
This has been left unused since the removal of the vestigial surface
viewer. Given it has no uses left, this can be removed as well.
|
|\ \ \ \
| | | | |
| | | | | |
yuzu/{about_dialog, main}: Specify string conversions explicitly for SCM-related info
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
For similar reasons to the previous change, we move this to a single
function, so we don't need to duplicate the conversion logic in several
places within main.cpp.
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Specifies the conversions explicitly to avoid implicit conversions from
const char* to QString. This makes it easier to disable implicit QString
conversions in the future.
In this case, the implicit conversion was technically wrong as well. The
implicit conversion treats the input strings as ASCII characters. This
would result in an incorrect conversion being performed in the rare case
a branch name was created with a non-ASCII Unicode character, likely
resulting in junk being displayed.
|
| |/ /
|/| |
| | |
| | |
| | |
| | | |
Compatibility profile and the disk shader cache settings shouldn't
be changed at runtime. This aims to address that shadowing those
options.
|
|\ \ \
| | | |
| | | | |
yuzu/hotkeys: Remove unnecessary constructor
|
| |/ /
| | |
| | |
| | |
| | | |
The behavior of the Hotkey constructor is already accomplished via in-class member
initializers, so the constructor is superfluous here.
|
|\ \ \
| | | |
| | | | |
yuzu/compatdb: Remove unnecessary qualifiers
|
| |/ /
| | |
| | |
| | | |
Keeps the code consistent in regards to how the buttons are referred to.
|
|/ / |
|
|\ \
| | |
| | | |
kernel/svc: Clean up wait synchronization related functionality
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a holdover from Citra, where the 3DS has both
WaitSynchronization1 and WaitSynchronizationN. The switch only has one
form of wait synchronizing (literally WaitSynchonization). This allows
us to throw out code that doesn't apply at all to the Switch kernel.
Because of this unnecessary dichotomy within the wait synchronization
utilities, we were also neglecting to properly handle waiting on
multiple objects.
While we're at it, we can also scrub out any lingering references to
WaitSynchronization1/WaitSynchronizationN in comments, and change them
to WaitSynchronization (or remove them if the mention no longer
applies).
|
|\ \ \
| | | |
| | | | |
Allow picking a Compatibility Profile for OpenGL.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This option allows picking the compatibility profile since a lot of bugs
are fixed in it. We devs will use this option to easierly debug current
problems in our Core implementation.:wq
|
|\ \ \ \
| |/ / /
|/| | | |
applets: Add AppletManager and implement PhotoViewer and Error applets
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| |/ / |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The default constructor will always run, even when not specified, so
this is redundant.
However, the context member can indeed be initialized in the constructor
initializer list.
|
| | |
| | |
| | |
| | | |
This include isn't used anymore so it can be removed.
|
|/ /
| |
| |
| |
| | |
Resolves -Wreorder warnings. These will automatically be initialized to
nullptr anyways, so these were redundant.
|
|\ \
| | |
| | | |
CMakeLists: Define QT_USE_QSTRINGBUILDER for the Qt target
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a compile definition introduced in Qt 4.8 for reducing the total
potential number of strings created when performing string
concatenation. This allows for less memory churn.
This can be read about here:
https://blog.qt.io/blog/2011/06/13/string-concatenation-with-qstringbuilder/
For a change that isn't source-compatible, we only had one occurrence
that actually need to have its type clarified, which is pretty good, as
far as transitioning goes.
|
|\ \ \
| |/ /
|/| | |
yuzu/configure_hotkey: Minor changes
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Without passing in a parent, this can result in focus being stolen from
the dialog in certain cases.
Example:
On Windows, if the logging window is left open, the logging Window will
potentially get focus over the hotkey dialog itself, since it brings all
open windows for the application into view. By specifying a parent, we
only bring windows for the parent into view (of which there are none,
aside from the hotkey dialog).
|
| | |
| | |
| | |
| | |
| | | |
Without a parent, this dialog won't have its memory freed when it
happens to get destroyed.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This is checking if an index is valid or not and returning early if it
isn't.
|
| | |
| | |
| | |
| | | |
Avoids a -Wreorder compiler warning.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Avoids dumping all of the core settings machinery into whatever files
include this header. Nothing inside the header itself actually made use
of anything in settings.h anyways.
|
| | |
| | |
| | |
| | |
| | | |
This doesn't actually modify instance state of the dialog, so this can
be made const.
|
|\ \ \
| | | |
| | | | |
Add a toggle to force 30FPS mode
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Frontend: Migrate to QOpenGLWindow and support shared contexts
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
While we are at it, remove nullptr checks for deletion, since the C++
standard defines that delete does it by its own
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
With the loading screen merged, we don't want to actually show at this
point, but it still needs to be shown to actually create the context.
Turns out you can just show and hide it immediately and it'll work.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
yuzu/debugger: Remove graphics surface viewer
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | | |
This doesn't actually work anymore, and given how long it's been left in
that state, it's unlikely anyone actually seriously used it.
Generally it's preferable to use RenderDoc or Nsight to view surfaces.
|
|\ \ \ \
| | | | |
| | | | | |
file_sys: Provide generic interface for accessing game data
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Port citra-emu/citra#4437: "citra-qt: Make hotkeys configurable via the GUI (Attempt 2)"
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* Adds a new Hotkeys tab in the Controls group.
* Double-click a Hotkey to rebind it.
|
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In our error console, when loading a game, the strings:
QString::arg: Argument missing: "Loading...", 0
QString::arg: Argument missing: "Launching...", 0
would occasionally pop up when the loading screen was running. This was
due to the strings being assumed to have formatting indicators in them,
however only two out of the four strings actually have them.
This only applies the arguments to the strings that have formatting
specifiers provided, which avoids these warnings from occurring.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Use QStringLiteral where applicable.
- Use const where applicable
- Remove unnecessary precondition check (we already assert the pixbuf
being non null)
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We can utilize qOverload with the signal connections to make the
function deducing a little less ugly.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Fills in the missing surface types that were marked as unknown. The
order corresponds with the TextureFormat enum within
video_core/texture.h.
We also don't need to all of these strings as translatable (only the
first string, as it's an English word).
|
|\ \ \ \ \
| | | | | |
| | | | | | |
yuzu/main: Minor adjustments to OnTransferableShaderCacheOpenFile()
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Allows these strings to have no allocation cost when used at runtime.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Rather than scream that the file doesn't exist, we can clearly state
what specifically doesn't exist, to avoid ambiguity, and make it easier
to understand for non-primary English speakers/readers.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
We can just make the trailing portion of the string part of the
formatting, getting rid of the need to make another temporary string.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Simplifies the amount of string conversions necessary. We also don't
need to log out what occurs here.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
There's no need to construct a QFile instance just to check for its
existence.
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | | |
While we're at it, don't use <QtGui> and <QtWidgets> and instead include
exactly which headers we actually need.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
frontend: Open transferable shader cache for a selected game in the gamelist
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | | |
Co-Authored-By: FreddyFunk <frederic.laing.development@gmail.com>
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
yuzu/debugger/profiler: Remove unnecessary includes
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Moves includes into the cpp file where necessary. This way,
microprofile-related stuff isn't dumped into other UI-related code when
the dialog header gets included.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Like the previous change, this allows Qt to handle proper translations
of the UI buttons, rather than us needing to handle it.
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Makes for shorter code, while also not requiring the buttons to be
directly translated, they'll be handled by Qt itself.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
core/yuzu: Remove enable_nfc setting
|
| | |_|/ / /
| |/| | | |
| | | | | |
| | | | | | |
This was initially added to prevent problems from stubbed/not implemented NFC services, but as we never encountered such and as it's only used in a deprecated function anyway, I guess we can just remove it to prevent more clutter of the settings.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Since C++17, the introduction of deduction guides for locking facilities
means that we no longer need to hardcode the mutex type into the locks
themselves, making it easier to switch mutex types, should it ever be
necessary in the future.
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Kernel: Fixes to Arbitration and SignalProcessWideKey Management
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Port citra-emu/citra#4684: "frontend: qt: fix a freeze where if you click on entry in the game list too fast, citra will hang"
|
| | | | | | |
|
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
# Conflicts:
# src/video_core/engines/kepler_memory.cpp
# src/video_core/engines/maxwell_3d.cpp
# src/video_core/morton.cpp
# src/video_core/morton.h
# src/video_core/renderer_opengl/gl_global_cache.cpp
# src/video_core/renderer_opengl/gl_global_cache.h
# src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
|
|\ \ \ \ \
| |/ / / /
|/| | | /
| | |_|/
| |/| | |
Port citra-emu/citra#3924: "citra_qt: Settings (configuration) rework"
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Port various Citra changes to input_common, including deadzone support
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Changes the interface as well to remove any unique methods that
frontends needed to call such as StartJoystickEventHandler by
conditionally starting the polling thread only if the frontend hasn't
started it already. Additionally, moves all global state into a single
SDLState class in order to guarantee that the destructors are called in
the proper order
|
|\ \ \ \ \
| | | | | |
| | | | | | |
web_browser: Add shortcut to Enter key to exit applet
|
| | | | | |
| | | | | |
| | | | | | |
Addresses issues where a user in fullscreen could not exit some web applets without leaving fullscreen.
|
|\ \ \ \ \ \
| |_|_|/ / /
|/| | | | | |
yuzu: add a hotkey to switch between undocked and docked mode
|
| |/ / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Asynchronous GPU command processing
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
core: Remove the global telemetry accessor function
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
In these cases the system object is nearby, and in the other, the
long-form of accessing the telemetry instance is already used, so we can
get rid of the use of the global accessor.
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | | |
We already have the thread instance that was created under the current
process, so we can just pass the handle table of it along to retrieve
the owner of the mutex.
|
|\ \ \ \
| |/ / /
|/| | | |
Port citra-emu/citra#4647: "citra_qt/main: make SPEED_LIMIT_STEP static constexpr"
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
MSVC does not seem to like using constexpr values in a lambda that were declared outside of it.
Previously on MSVC build the hotkeys to inc-/decrease the speed limit were not working correctly because in the lambda the SPEED_LIMIT_STEP had garbage values.
After googling around a bit I found: https://github.com/codeplaysoftware/computecpp-sdk/issues/95 which seems to be a similar issue.
Trying the suggested fix to make the variable static constexpr also fixes the bug here.
|
| | |
| | |
| | |
| | | |
Silences a compiler warning with clang.
|
|/ /
| |
| |
| |
| | |
These types are within the common library, so they should be using the
Common namespace.
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Port citra-emu/citra#4586: "Use QPixmap/QIcon for background color selection button"
|
| | | |
|
|\ \ \
| | | |
| | | | |
Port citra-emu/citra#4583: "citra_qt: Fix saving screenshot when no file extension is provided"
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
QT: Fix the loading screen 'H' switch logo to not glitch out
|
| |/ / |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A holdover from citra, the Horizon kernel on the switch has no
prominent kernel object that functions as a timer. At least not
to the degree of sophistication that this class provided.
As such, this can be removed entirely. This class also wasn't used at
all in any meaningful way within the core, so this was just code sitting
around doing nothing. This also allows removing a few things from the
main KernelCore class that allows it to use slightly less resources
overall (though very minor and not anything really noticeable).
|
|\ \
| | |
| | | |
frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl.
|
| | | |
|
|/ / |
|
|\ \
| |/
|/| |
yuzu/configuration: Remove unnecessary inclusions where applicable
|
| |
| |
| |
| |
| | |
Allows removing the inclusion of the main input common header from the
UI config header.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
QT Frontend: Add a Loading screen with progressbar
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
With shader caches on the horizon, one requirement is to provide visible
feedback for the progress. The shader cache reportedly takes several
minutes to load for large caches that were invalidated, and as such we
should provide a loading screen with progress.
Adds a loading screen widget that will be shown until the first frame of
the game is swapped. This was chosen in case shader caches are not being
used, several games still take more than a few seconds to launch and
could benefit from a loading screen.
|
|\ \ \
| |/ /
|/| | |
yuzu/configuration/configure_web: Amend verification string
|
| | |
| | |
| | |
| | |
| | |
| | | |
'this' isn't actually used within the lambda, since what we need
from the class is already assigned within the capture section of
the lambda.
|
| |/
| |
| |
| |
| | |
It's a common UI pattern to use an ellipsis to indicate an ongoing
action, rather than just specifying the word by itself.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is a function that definitely doesn't always have a non-modifying
behavior across all implementations, so this should be made non-const.
This gets rid of the need to mark data members as mutable to work around
the fact mutating data members needs to occur.
|
| |
| |
| |
| | |
Avoids the need to potentially reallocate the contained callbacks.
|
|/
|
|
|
| |
These currently aren't used by anything other than the QtWebBrowser
class itself, and can be made private.
|
|\
| |
| | |
game_list: Remove a reference of a reference
|
| | |
|
|\ \
| | |
| | | |
settings: Add support for setting the RTC manually
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | | |
Stored as signed seconds since epoch.
|
|\ \ \
| |/ /
|/| | |
applets: Implement HLE web browser applet (LibAppletOff)
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Using a custom reimplementation of QWebEngineView and an injector script.
|
| | | |
|
| | |
| | |
| | |
| | | |
Pulse is considered a hack and nothing should be using it. We should completely remove it
|
|\ \ \
| | | |
| | | | |
qt: Add setting to prompt for user on game boot
|
| | | |
| | | |
| | | | |
Using the QtProfileSelectorDialog, this implementation is trivial. This mimics the real switch behavior of asking which user on every game boot, but it is default disabled as that might get inconvenient.
|
|\ \ \ \
| | | | |
| | | | | |
qt: Use ProfileSelectionDialog when selecting user for save data
|
| |/ / /
| | | |
| | | | |
This allows us to present a much nicer UI to the user over a simple combo box and is made easy with the modular nature of the profile-selection applet frontend.
|
|\ \ \ \
| | | | |
| | | | | |
Port citra-emu/citra#4187: "Qt/Configure: Use sidebar to divide tabs into smaller groups"
|
| |/ / / |
|
| | | |
| | | |
| | | |
| | | | |
The QPixmap API expects an unsigned int.
|
| | | | |
|
| |/ /
|/| |
| | |
| | |
| | |
| | | |
This makes the naming more closely match its meaning. It's just a
preferred core, not a required default core. This also makes the usages
of this term consistent across the thread and process implementations.
|
| | |
| | |
| | | |
These functions come in a pair and are needed by Smash Ultimate, Minecraft, and Skyrim, amongst others.
|
|\ \ \
| | | |
| | | | |
configure_per_general: Mark UI strings as translatable in the constructor
|
| | | |
| | | |
| | | |
| | | | |
These are user-facing strings, so they should be translatable.
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Calling tr() from a file-scope array isn't advisable, since it can be
executed before the Qt libraries are even fully initialized, which can
lead to crashes.
Instead, the translatable strings should be annotated, and the tr()
function should be called at the string's usage site.
|
|\ \ \
| |/ /
|/| | |
svc: Implement SetThreadActivity (thread suspension)
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Port citra-emu/citra#4164: "citra_qt, video_core: Screenshot functionality"
|
| | | |
| | | |
| | | |
| | | | |
Allows capturing screenshot at the current internal resolution (native for software renderer), but a setting is available to capture it in other resolutions. The screenshot is saved to a single PNG in the current layout.
|
|\ \ \ \
| | | | |
| | | | | |
am: Implement HLE profile selector applet
|
| | | | |
| | | | |
| | | | |
| | | | | |
Fixes bugs relating to signalling in software keyboard.
|
| | | | |
| | | | |
| | | | | |
Presents profiles in a list, similar to switch.
|
| | |/ /
| |/| | |
|
|\ \ \ \
| | | | |
| | | | | |
configure_input: Add Controller Setup Profiles and simplify input UI
|
| | | | | |
|
| | | | |
| | | | |
| | | | | |
Greatly simplifies the current input UI, while still allowing power users to tweak advanced settings. Adds 'input profiles', which are easy autoconfigurations to make getting started easy and fast. Also has a custom option which brings up the current, full UI.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
audio_core: Make g_sink_details internally linked
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
We can hide the direct array from external view and instead provide
functions to retrieve the necessary info. This has the benefit of
completely hiding the makeup of the SinkDetails structure from the rest
of the code.
Given that this makes the array hidden, we can also make the array
constexpr by altering the members slightly. This gets rid of several
static constructor calls related to std::vector and std::function.
Now we don't have heap allocations here that need to occur before the
program can even enter main(). It also has the benefit of saving a
little bit of heap space, but this doesn't matter too much, since the
savings in that regard are pretty tiny.
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
yuzu/wait_tree: Pass QString by value and std::move in the initializer list for WaitTreeText
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
Just a trivial modernization that potentially avoids copying strings in certain scenarios.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
patch_manager: Add support for disabling patches
|
| | | | | | |
|
| | | | | | |
|
| | |/ / /
| |/| | | |
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
loaders: Make GetFileType() a const qualified member function
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Similarly, here we can avoid doing unnecessary work twice by retrieving
the file type only once and comparing it against relevant operands,
avoiding potential unnecessary object construction/destruction.
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | | |
While GetFileType() is indeed a getter function, that doesn't mean it's
a trivial function, given some case require reading from the data or
constructing other objects in the background. Instead, only do necessary
work once.
|
|/ / /
| | |
| | |
| | | |
Avoids typing the same long accessor just to retrieve player attributes.
|
|\ \ \
| | | |
| | | | |
yuzu/game_list_worker: Minor cleanup and code deduplication
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Avoids potentially allocating a std::string instance when it isn't
needed.
|
| | | |
| | | |
| | | |
| | | | |
Avoids duplicating the same code twice verbatim.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We don't need to call out to our own file handling functions when we're
going to construct a QFileInfo instance right after it. We also don't
need to convert to a std::string again just to compare the file
extension.
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Two kernel object should absolutely never have the same handle ID type.
This can cause incorrect behavior when it comes to retrieving object
types from the handle table. In this case it allows converting a
WritableEvent into a ReadableEvent and vice-versa, which is undefined
behavior, since the object types are not the same.
This also corrects ClearEvent() to check both kernel types like the
kernel itself does.
|
|\ \ \
| | | |
| | | | |
yuzu/configuration: Minor clean-up related changes
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These slots are only ever attached to event handling mechanisms within
the class itself, they're never used externally. Because of this, we can
make the functions private.
This also removes redundant usages of the private access specifier.
|
| | | |
| | | |
| | | |
| | | | |
Resolves trivial compiler warnings.
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The previous code could potentially be a compilation issue waiting to
occur, given we forward declare the type for a std::unique_ptr. If the
complete definition of the forward declared type isn't visible in a
translation unit that the class is used in, then it would fail to
compile.
Defaulting the destructor in a cpp file ensures the std::unique_ptr's
destructor is only invoked where its complete type is known.
|
|\ \ \
| | | |
| | | | |
filesystem: De-globalize registered_cache_union
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We can just return a new instance of this when it's requested. This only
ever holds pointers to the existing registed caches, so it's not a large
object. Plus, this also gets rid of the need to keep around a separate
member function just to properly clear out the union.
Gets rid of one of five globals in the filesystem code.
|
|\ \ \
| |_|/
|/| | |
kernel: Divide Event into ReadableEvent and WritableEvent
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
video_core: Minor style changes
|
| | | | |
|
| |_|/
|/| | |
|
| |/
|/| |
|
|\ \
| |/
|/| |
Uncheck automatically joycons docked when docked mode is enable
|
| | |
|
| |
| |
| | |
when docked mode is enable
|
|\ \
| | |
| | | |
file_sys/registered_cache: Use regular const references instead of std::shared_ptr for InstallEntry()
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
These parameters don't need to utilize a shared lifecycle directly in
the interface. Instead, the caller should provide a regular reference
for the function to use. This also allows the type system to flag
attempts to pass nullptr and makes it more generic, since it can now be
used in contexts where a shared_ptr isn't being used (in other words, we
don't constrain the usage of the interface to a particular mode of
memory management).
|
| | |
| | |
| | |
| | |
| | |
| | | |
Prevents compiler warnings related to truncation when invoking the
dialog. It's also extremely suspect to use a u8 value here instead of a
more general type to begin with.
|
| | |
| | |
| | |
| | |
| | | |
This doesn't depend on any part of the private interface, so it can be
made a non-member internal function.
|
| | |
| | |
| | |
| | | |
std::bind is the pre-C++11 way of doing this.
|
| | |
| | |
| | |
| | |
| | | |
Orders the elements the way they would actually be initialized in.
Resolves compiler warnings with gcc and clang
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
The common pattern is to put the data members after the function
interface where applicable.
|
|/ / |
|
|\ \
| | |
| | | |
Update OpenGL's backend version from 3.3 to 4.3
|
| | | |
|
| |/ |
|
|\ \
| | |
| | | |
Report resolution scaling support for vi and am
|
| | |
| | |
| | |
| | | |
Specifying an internal resolution in yuzu now will report the scaled changes to vi and am.
|
|\ \ \
| | | |
| | | | |
patch_manager: Add support for applying LayeredFS patches to ExeFS
|
| | | |
| | | |
| | | | |
The decision was made to name them LayeredExeFS instead of just LayeredFS to differentiate from normal RomFS-based mods. The name may be long/unweildy, but conveys the meaning well.
|
| | | |
| | | |
| | | |
| | | | |
When enabled, all exefs(es) will be copied to yuzu/dump/<title_id>/exefs.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Uses Qt's built-in interface instead of rolling our own separate one on
top of it. This also fixes a bug in reject() where we were calling
accept() instead of reject().
|
| | | |
| | | |
| | | |
| | | |
| | | | |
std::function instances can potentially allocate. std::moveing them
prevents an avoidable allocation in that case.
|
| |_|/
|/| |
| | |
| | | |
These aren't required to be public.
|
|\ \ \
| | | |
| | | | |
am: Implement HLE software keyboard applet
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
a
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Allows the game to verify and send a message to the frontend.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Allows using Qt provider over default.
|
| |/ /
| | |
| | | |
Implements all of the features of the keyboard, including length, default text, character validation, and UTF-16 character support.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Handles button configuration for all controller layouts and debug pads. Configurable at construction.
|
| | |
| | |
| | |
| | | |
This allows adjusting the finger, diameter, and angle of the emulated touchscreen. It also provides a warning to the user about what changing these parameters can do.
|
| | |
| | |
| | |
| | | |
Supports setting the five mouse buttons to any valid controller button/keyboard key (Left, Right, Middle, Foward, Back)
|
| | |
| | |
| | |
| | | |
This moves the actual button configuration to a separate dialog and only has the enabled and type controls in the tab.
|
| | |
| | |
| | |
| | | |
Defaults to full keyboard for keyboard -- It did not seem to be necessary to make the keyboard configurable (besides enabled/disabled).
|
|\ \ \
| |/ /
|/| | |
game_list: Only reload game list after relevant settings changed
|
| | |
| | |
| | | |
Prevents unnecessary reloads on every configuration operation.
|
|\ \ \
| | | |
| | | | |
Port citra-emu/citra#4387: "yuzu: Add hotkey for Amiibo loading"
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
game_list: Optimize game list refresh
|
| | | | |
| | | | |
| | | | |
| | | | | |
As the add-ons column takes the most processing time out of any (as it needs to search registration for updates/dlc, patch control NCAs, search for mods, etc.), an option was added to disable it. This does not affect the application of add-ons. In large game collections, this decreases game list refresh time by as much as 70%.
|
| |_|_|/
|/| | |
| | | |
| | | | |
The service manager seems to be a nullptr before a game boots
|
|\ \ \ \
| | | | |
| | | | | |
patch_manager: Add support for dumping uncompressed NSOs
|
| | | | |
| | | | |
| | | | |
| | | | | |
Also adds UI option in Debug > Dump section, with the idea later things to be dumped (i.e. other game data or textures, etc) will use the same group box.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
There's no need for translators to concern themselves with the
validation mask used by the entry field.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
svc: Use proper random entropy generation algorithm
|
| | | | | | |
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
csrng: Add config option to set RNG seed
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|_|_|/ /
|/| | | | | |
yuzu/main: Fix compiler warning
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
yuzu: Add a missing "!" to fix the stuck-in-fullscreen bug
|
| | |/ / /
| |/| | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
configure_system: Fix compiler warning
|
| | |/ / /
| |/| | | |
|
| | | | | |
|
| | | | | |
|
|/ / / /
| | | |
| | | |
| | | | |
Started implementation of the AM message queue mainly used in state getters. Added the ability to switch docked mode whilst in game without stopping emulation. Also removed some things which shouldn't be labelled as stubs as they're implemented correctly
|
|\ \ \ \
| | | | |
| | | | | |
logging: Add DebuggerBackend for logging to Visual Studio
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
qt: Add help option to open yuzu folder
|
| | |_|_|/
| |/| | |
| | | | |
| | | | | |
Opens a new file manager window at the UserDir.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Implement ASTC Textures 5x5 and fix a bunch of ASTC texture problems
|
| | | | | | |
|
| | | | | | |
|
| |/ / / /
|/| | | | |
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
configure_system: Contrain profile usernames to 32 characters
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously, we would let a user enter an unbounded name and then
silently truncate away characters that went over the 32-character limit.
This is kind of bad from the UX point of view, because we're essentially
not doing what the user intended in certain scenarios.
Instead, we clamp it to 32 characters and make that visually apparent in
the dialog box to provide a name for a user.
|
|\ \ \ \
| |_|_|/
|/| | | |
Port citra-emu/citra#4369: "compatdb: Use a seperate endpoint for testcase submission"
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
general: Remove unused boost inclusions where applicable
|
| | | | |
| | | | |
| | | | |
| | | | | |
Cleans up unused includes and trims off some dependencies on externals.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
configure_system: Fix compiler warning
|
| | |/ /
| |/| | |
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* get rid of boost::optional
* Remove optional references
* Use std::reference_wrapper for optional references
* Fix clang format
* Fix clang format part 2
* Adressed feedback
* Fix clang format and MacOS build
|
| | |
| | |
| | |
| | |
| | |
| | | |
Avoids the need to put the scaling parameters all over the place for the
common case. The only other time scaling is done is to generate the
smaller 48x48 image, so this is fine.
|
| | |
| | |
| | |
| | |
| | | |
Avoids the need to duplicate this all over the place, and makes it
translator-friendly across the board.
|
|/ /
| |
| |
| |
| | |
We should display an error to the user if setting a user image for an
account fails, rather than continuing onwards.
|
|\ \
| | |
| | | |
yuzu/main: Notify user of loading errors with Amiibo data
|
| | |
| | |
| | |
| | |
| | | |
We shouldn't silently continue if loading failed, since the general
assumption is that no messages showing up implicitly indicates success.
|
| | |
| | |
| | |
| | | |
This should be localizable, since it's user-facing text.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We can just make the function accept an arbitrary ProfileManager
reference and operate on that instead of tying the function to the class
itself. This allows us to keep the function internal to the cpp file and
removes the need to forward declare the UUID struct.
|
| | |
| | |
| | |
| | |
| | |
| | | |
These should be initialized to deterministic values so it's easier to
catch improper behavior, as it'll always be reproducable, instead of
performing uninitialized reads.
|
| | |
| | |
| | |
| | | |
This is a static function so we can just perform an assignment directly.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
These are only used within this class, so we can make them private to
keep their use contained. This also gets rid of the pre-Qt5 'slot'
identifier, since Qt 5's connection syntax doesn't require a function to
be declared a slot anymore.
|
|\ \ \
| | | |
| | | | |
game_list_worker: Use QString's formatting instead of fmt in FormatPatchNameVersions()
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Using fmt here requires unnecessary string conversions back into
QString. Instead, we can just use QString's formatting and get the end
result of the formatting operation in the proper type.
|
|\ \ \ \
| | | | |
| | | | | |
profile_manager: Use std::optional instead of boost::optional
|
| |/ / /
| | | |
| | | |
| | | |
| | | | |
Now that we can actually use std::optional on macOS, we don't need to
continue using boost::optional here.
|
|\ \ \ \
| | | | |
| | | | | |
yuzu/configuration/config: Use a std::unique_ptr for qt_config instead of a raw pointer
|
| | | | |
| | | | |
| | | | |
| | | | | |
Same behavior, less code.
|
| | |/ /
| |/| |
| | | |
| | | | |
Makes the class layout consistent with the others.
|
|\ \ \ \
| | | | |
| | | | | |
graphic_breakpoints: Correct translation of strings in BreakpointModel's data() function
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
tr() will not function properly on static/global data like this, as the
object is only ever constructed once, so the strings won't translate if
the language is changed without restarting the program, which is
undesirable. Instead we can just turn the map into a plain old function
that maps the values to their equivalent strings. This is also lessens
the memory allocated, since it's only allocating memory for the strings
themselves, and not an encompassing map as well.
|
|\ \ \ \
| | | | |
| | | | | |
game_list: Use QFileInfo instead of common's file functions
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We can just use the facilities that Qt provides instead of pulling in
stuff from common. While we're at it, we can also simplify the nearby
logging statement's argument by just calling .toStdString()
|
|\ \ \ \ \
| | | | | |
| | | | | | |
game_list: Make game list column headers translatable
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
These are user-facing strings, so they should be marked as translatable
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
bootmanager: Use QStringLiteral instead of std::string to represent the window title.
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This gets rid of an unnecessary type conversion. We can just use the
regular QStringLiteral to already format the string as the type
setWindowTitle accepts instead of converting from a std::string
instance.
|
| | | |
| | | |
| | | |
| | | | |
Prevents bug where old username would remain if the new username was shorter in length.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Fixed conflict with nfp
* Few fixups for nfc
* Conflict 2
* Fixed AttachAvailabilityChangeEvent
* Conflict 3
* Fixed byte padding
* Refactored amiibo to not reside in "System"
* Removed remaining references of nfc from system
* used enum for Nfc GetStateOld
* Added missing newline
* Moved file operations to front end
* Conflict 4
* Amiibos now use structs and added mutexes
* Removed amiibo_path
|
|\ \ \
| | | |
| | | | |
patch_manager: Add support for LayeredFS on DLC RomFS
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
CMakeLists: Use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is more localized to what we want to enforce directory-wise with
the project. CMAKE_SOURCE_DIR indicates the root of the source tree, but
this would cause the wrong behavior if someone included yuzu as part of
a larger buildsystem (for whatever reason). Instead, we want to use the
directory where the "project(yuzu)" command was declared as the root
path reference.
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
kernel/process: Make the handle table per-process
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In the kernel, there isn't a singular handle table that everything gets
tossed into or used, rather, each process gets its own handle table that
it uses. This currently isn't an issue for us, since we only execute one
process at the moment, but we may as well get this out of the way so
it's not a headache later on.
|
|\ \ \ \
| | | | |
| | | | | |
CMakeLists: Use target_compile_definitions instead of add_definitions to define YUZU_ENABLE_COMPATIBILITY_REPORTING
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Keeps the definition constrained to the yuzu target and prevents
polluting anything else in the same directory (should that ever happen).
It also keeps it consistent with how the USE_DISCORD_PRESENCE definition
is introduced below it.
|
|/ / / |
|
|/ /
| |
| |
| | |
- This will be used as a catch-all for slow-but-accurate GPU emulation paths.
|
|\ \
| | |
| | | |
core: Convert shared_ptr instances into unique_ptr instances where applicable for System and Cpu
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The data retrieved in these cases are ultimately chiefly owned by either
the RegisteredCache instance itself, or the filesystem factories. Both
these should live throughout the use of their contained data. If they
don't, it should be considered an interface/design issue, and using
shared_ptr instances here would mask that, as the data would always be
prolonged after the main owner's lifetime ended.
This makes the lifetime of the data explicit and makes it harder to
accidentally create cyclic references. It also makes the interface
slightly more flexible than the previous API, as a shared_ptr can be
created from a unique_ptr, but not the other way around, so this allows
for that use-case if it ever becomes necessary in some form.
|
|\ \ \
| | | |
| | | | |
yuzu/main: Apply the [[maybe_unused]] attribute to the parameter of SetDiscordEnabled
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Depending on whether or not USE_DISCORD_PRESENCE is defined, the "state"
parameter can be used or unused. If USE_DISCORD_PRESENCE is not defined,
the parameter will be considered unused, which can lead to compiler
warnings. So, we can explicitly mark it with [[maybe_unused]] to inform
the compiler that this is intentional.
|
| |/ /
|/| | |
|
|\ \ \
| | | |
| | | | |
yuzu/main: Simplify OnMenuLoadFile()
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We can utilize QStringList's join() function to perform all of the
appending in a single function call.
While we're at it, make the extension list a single translatable string
and add a disambiguation comment to explain to translators what %1
actually is.
|
|\ \ \
| | | |
| | | | |
filesystem: Make CreateFactories() and InstallInterface() take a VfsFilesystem by reference
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
Neither of these functions alter the ownership of the provided pointer,
so we can simply make the parameters a reference rather than a direct
shared pointer alias. This way we also disallow passing incorrect memory values like
nullptr.
|
|/ / |
|
|\ \
| | |
| | | |
crypto: Add support for full key derivation
|
| | |
| | |
| | |
| | | |
x
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Neither of these functions require the use of shared ownership of the
returned pointer. This makes it more difficult to create reference
cycles with, and makes the interface more generic, as std::shared_ptr
instances can be created from a std::unique_ptr, but the vice-versa
isn't possible. This also alters relevant functions to take NCA
arguments by const reference rather than a const reference to a
std::shared_ptr. These functions don't alter the ownership of the memory
used by the NCA instance, so we can make the interface more generic by
not assuming anything about the type of smart pointer the NCA is
contained within and make it the caller's responsibility to ensure the
supplied NCA is valid.
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
change TouchToPixelPos to return std::pair<int, int>
static_cast (SDL)
various minor style and code improvements
style - PascalCase for function names
made touch events private
const pointer arg in touch events
make TouchToPixelPos a const member function
did I do this right?
braces on barely-multiline if
remove question comment (confirmed in Discord)
fixed consts
remove unused parameter from TouchEndEvent
DRY - High-DPI scaled touch put in separate function
also fixes a bug where if you start touching (with either mouse or touchscreen) and drag the mouse to the LEFT of the emulator window, the touch point jumps to the RIGHT side of the touchscreen; draggin to above the window would make it jump to the bottom.
implicit conversion from QPoint to QPointF, apparently
I have no idea what const even means but I'll put it here anyway
remove unused or used-once variables
make touch scaling functions const, and put their implementations together
removed unused FingerID parameters
QTouchEvent forward declaration; add comment to TouchBegin that was lost in an edit
better DRY in SDL
To do -> TODO(NeatNit)
remove unused include
|
|/ / |
|
|\ \
| | |
| | | |
loader: Add support for packed updates
|
| | | |
|
| | |
| | |
| | |
| | | |
Reads as Update (NSP) in add-ons
|
| | | |
|
|\ \ \
| | | |
| | | | |
gl_rasterizer: Implement accelerated Fermi2D copies.
|
| | |/
| |/| |
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
* Added a context menu on the buttons including Clear & Restore Default
* Allow clearing (unsetting) inputs. Added a Clear All button
* Allow restoring a single input to default (instead of all)
|
| |
| |
| |
| | |
These were pointing to a non-existent webpage.
|
|\ \
| | |
| | | |
Port web_service from Citra
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
ui_settings: Place definition of the theme array within the cpp file
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Placing the array wholesale into the header places a copy of the whole
array into every translation unit that uses the data, which is wasteful.
Particularly given that this array is referenced from three different
translation units.
This also changes the array to contain pairs of const char*, rather than
QString instances. This way, the string data is able to be fixed into
the read-only segment of the program, as well as eliminate static
constructors/heap allocation immediately on program start.
|
|\ \ \
| |_|/
|/| | |
kernel/thread: Make all instance variables private
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Many of the member variables of the thread class aren't even used
outside of the class itself, so there's no need to make those variables
public. This change follows in the steps of the previous changes that
made other kernel types' members private.
The main motivation behind this is that the Thread class will likely
change in the future as emulation becomes more accurate, and letting
random bits of the emulator access data members of the Thread class
directly makes it a pain to shuffle around and/or modify internals.
Having all data members public like this also makes it difficult to
reason about certain bits of behavior without first verifying what parts
of the core actually use them.
Everything being public also generally follows the tendency for changes
to be introduced in completely different translation units that would
otherwise be better introduced as an addition to the Thread class'
public interface.
|
|\ \
| | |
| | | |
file_sys: Add support for loading IPS patches
|
| |/ |
|
|\ \
| | |
| | | |
configure_graphics: Make functions internally linked where applicable
|
| |/
| |
| |
| |
| | |
These aren't used outside of this translation unit, so they can be
internally linked.
|
|\ \
| | |
| | | |
configure_audio: Minor cleanup-related changes
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Keeps the individual behaviors in their own functions, and cleanly
separate. We can also do a little better by converting the relevant IDs
within the core to a QString only once, instead of converting every
string into a std::string.
|
| | |
| | |
| | |
| | |
| | | |
This ensures that the proper codec will always be used no matter what.
It also avoids relying on ASCII conversions.
|
| |/
| |
| |
| |
| |
| |
| | |
Disambiguates what the string represents to help translators more easily
understand what it is that they're translating. While we're at it, we
can move the code to its own function, so that we don't need to specify
the same string twice.
|
|/
|
|
|
| |
These strings are user-facing, so they should be specified as
translatable with tr().
|
|\
| |
| | |
qt: Install System TitleTypes to System NAND
|
| |
| |
| | |
Fixes an issue where installed system archive NCAs would be installed to user NAND and not recognized by games.
|
| |
| |
| |
| |
| |
| |
| | |
Makes the public interface consistent in terms of how accesses are done
on a process object. It also makes it slightly nicer to reason about the
logic of the process class, as we don't want to expose everything to
external code.
|
|\ \
| | |
| | | |
Port citra-emu/citra#3979 game_list: move SearchField to game_list_p.h and fix untranslated text
|
| | |
| | |
| | |
| | | |
I have tested and made sure the text is translatable, but this would require a translation update to take effect.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Ternary operators have a lower precedence than arithmetic operators, so
what was actually occurring here is "return (out + full) ? x : y" which most
definitely isn't intended, given we calculate out recursively above. We
were essentially doing a lot of work for nothing.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This can cause warnings about static constructors, and is also not ideal
performance-wise due to the indirection through std::function. This also
keeps the behavior itself separate from the surrounding code, which can
make it nicer to read, due to the size of the code.
|
| |/
|/|
| |
| |
| | |
Given we just recently had a patch backport this from citra, let's try
and keep the convention uniform.
|
|\ \
| | |
| | | |
file_sys: Add support for LayeredFS mods
|
| | | |
|
| |/ |
|
|/ |
|
|\
| |
| | |
arm_interface: Replace kernel vm_manager include with a forward declaration
|
| |
| |
| |
| |
| |
| | |
Avoids an unnecessary inclusion and also uncovers three places where
indirect inclusions were relied upon, which allows us to also resolve
those.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt provides an overload of tr() that operates on quantities in relation
to pluralization. This also allows the translation to adapt based on the
target language rules better.
For example, the previous code would result in an incorrect translation
for the French language (which doesn't use the pluralized version of
"result" in the case of a total of zero. While in English it's
correct to use the pluralized version of "result", that is, "results"
---
For example:
English: "0 results"
French: "0 résultat" (uses the singular form)
In French, the noun being counted is singular if the quantity is 0 or 1.
In English, on the other hand, if the noun being counted has a quantity
of 0 or N > 1, then the noun is pluralized.
---
For another example in a language that has different counting methods
than the above, consider English and Irish. Irish has a special form of
of a grammatical number called a dual. Which alters how a word is
written when N of something is 2. This won't appear in this case with a
direct number "2", but it would change if we ever used "Two" to refer to
two of something. For example:
English: "Zero results"
Irish: "Toradh ar bith"
English: "One result"
Irish: "Toradh amháin"
English: "Two results"
Irish: "Dhá thorthaí" <- Dual case
Which is an important distinction to make between singular and plural,
because in other situations, "two" on its own would be written as "dó"
in Irish. There's also a few other cases where the order the words are
placed *and* whether or not the plural or singular variant of the word
is used *and* whether or not the word is placed after or between a set
of numbers can vary. Counting in Irish also differs depending on whether or not
you're counting things (like above) or counting people, in which case an
entirely different set of numbers are used.
It's not important for this case, but it's provided as an example as to why one
should never assume the placement of values in text will be like that of
English or other languages. Some languages have very different ways to
represent counting, and breaking up the translated string like this
isn't advisable because it makes it extremely difficult to get right
depending on what language a translator is translating text into due to
the ambiguity of the strings being presented for translation.
In this case a translator would see three fragmented strings on
Transifex (and not necessarily grouped beside one another, but even
then, it would still be annoying to decipher):
- "of"
- "result"
- "results"
There is no way a translator is going to know what those sets of words
are actually used for unless they look at the code to see what is being
done with them (which they shouldn't have to do).
|
|\
| |
| | |
Port #4182 from Citra: "Prefix all size_t with std::"
|
| | |
|
|\ \
| | |
| | | |
game_list_p: Take map iterator contents by const reference
|
| | |
| | |
| | |
| | | |
Adds a missing 'i' character that was missing in compatibility.
|
| | |
| | |
| | |
| | |
| | | |
We don't need to copy the whole struct in this instance, we can just
utilize a reference instead.
|
|\ \ \
| |_|/
|/| | |
yuzu/util: Antialias game list compatibility pixmaps
|
| |/
| |
| |
| |
| |
| | |
We pass a hint to the QPainter instance that we want anti-aliasing on
the compatibility icons, which prevents the circles from looking fairly
jagged, and actually makes them look circular.
|
|/
|
|
|
|
| |
Previously, these were sitting outside of the Kernel namespace, which
doesn't really make sense, given they're related to the Thread class
which is within the Kernel namespace.
|
|
|
|
|
|
| |
* gl_rasterizer: use ARB_multi_bind for uniform buffers
* address feedback
|
|\
| |
| | |
yuzu/configure_gamelist: Mark combo-box strings as translatable
|
| |
| |
| |
| |
| |
| |
| |
| | |
Given these are shown to the user, they should be translatable.
While we're at it, also set up the dialog to automatically retranslate
the dialog along with the combo boxes if it receives a LanguageChange
event.
|
| |
| |
| |
| |
| | |
We don't need to use an allocating container for these, given we know
the fixed amount of strings being used. This is just a waste of memory.
|
| |
| |
| |
| |
| |
| | |
Keeps the individual initialization of the combo boxes logically separate.
We also shouldn't be dumping this sort of thing in the constructor
directly.
|
|\ \
| | |
| | | |
audio_core: Add audio stretching support
|
| | | |
|
|\ \ \
| |_|/
|/| | |
game_list: Resolve variable shadowing within LoadCompatibilityList()
|
| | |
| | |
| | |
| | |
| | |
| | | |
"value" is already a used variable name within the outermost ranged-for
loop, so this variable was shadowing the outer one. This isn't a bug,
but it will get rid of a -Wshadow warning.
|
| | |
| | |
| | |
| | | |
This way, we aren't constructing unnecessary QJsonValue instances.
|
|\ \ \
| | | |
| | | | |
Port Citra #4047 & #4052: add change background color support
|
| | | | |
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | | |
It allows us to use texture views and it reduces the overhead within the GPU driver.
But it disallows us to reallocate the texture, but we don't do so anyways.
In the end, it is the new way to allocate textures, so there is no need to use the old way.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Joystick hotplug support (#4141)
* use SDL_PollEvent instead of SDL_JoystickUpdate
Register hot plugged controller by GUID if they were configured in a previous session
* Move SDL_PollEvent into its own thread
* Don't store SDLJoystick pointer in Input Device; Get pointer on each GetStatus call
* Fix that joystick_list gets cleared after SDL_Quit
* Add VirtualJoystick for InputDevices thats never nullptr
* fixup! Add VirtualJoystick for InputDevices thats never nullptr
* fixup! fixup! Add VirtualJoystick for InputDevices thats never nullptr
* Remove SDL_GameController, make SDL_Joystick* unique_ptr
* fixup! Remove SDL_GameController, make SDL_Joystick* unique_ptr
* Adressed feedback; fixed handling of same guid reconnects
* fixup! Adressed feedback; fixed handling of same guid reconnects
* merge the two joystick_lists into one
* make SDLJoystick a member of VirtualJoystick
* fixup! make SDLJoystick a member of VirtualJoystick
* fixup! make SDLJoystick a member of VirtualJoystick
* fixup! fixup! make SDLJoystick a member of VirtualJoystick
* SDLJoystick: Addressed review comments
* Address one missed review comment
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
The compatibility list isn't modified within any of the slots connected
to this signal, so we can make it const to enforce immutability.
|
|/ /
| |
| |
| |
| |
| |
| | |
Lets us keep the generic portions of the compatibility list code
together, and allows us to introduce a type alias that makes it so we
don't need to type out a very long type declaration anymore, making the
immediate readability of some code better.
|
|/
|
| |
Previously the version number got hidden after starting a game.
|
|\
| |
| | |
gl_rasterizer: Use baseInstance instead of moving the buffer points.
|
| |
| |
| |
| |
| |
| |
| | |
This hopefully helps our cache not to redundant upload the vertex buffer.
# Conflicts:
# src/video_core/renderer_opengl/gl_rasterizer.cpp
|
|/
|
|
|
|
|
|
|
|
|
| |
This has gotten sufficiently large enough to warrant moving it to its
own source files. Especially given it dumps the file_sys headers around
code that doesn't use it for the most part.
This'll also make it easier to introduce a type alias for the
compatibility list, so a large unordered_map type declaration doesn't
need to be specified all the time (we don't want to propagate the
game_list_p.h include via the main game_list.h header).
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Mainly, from control.nacp metadata instead of cnmt metadata
|
| |
|
| |
|
| |
|
|
|
|
| |
Reduces code
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
file_sys: Allow for custom NAND/SD directories
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Cuts down on include dependencies, resulting in less files that need to
be rebuilt when certain things are changed.
|
|/
|
|
|
|
| |
Eliminates the need to rebuild some source files if the file_util header
ever changes. This also uncovered some indirect inclusions, which have
also been fixed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The follow-up to e2457418dae19b889b2ad85255bb95d4cd0e4bff, which
replaces most of the includes in the core header with forward declarations.
This makes it so that if any of the headers the core header was
previously including change, then no one will need to rebuild the bulk
of the core, due to core.h being quite a prevalent inclusion.
This should make turnaround for changes much faster for developers.
|
|\
| |
| | |
yuzu: Show game compatibility in the game list (PR ported from Citra)
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As means to pave the way for getting rid of global state within core,
This eliminates kernel global state by removing all globals. Instead
this introduces a KernelCore class which acts as a kernel instance. This
instance lives in the System class, which keeps its lifetime contained
to the lifetime of the System class.
This also forces the kernel types to actually interact with the main
kernel instance itself instead of having transient kernel state placed
all over several translation units, keeping everything together. It also
has a nice consequence of making dependencies much more explicit.
This also makes our initialization a tad bit more correct. Previously we
were creating a kernel process before the actual kernel was initialized,
which doesn't really make much sense.
The KernelCore class itself follows the PImpl idiom, which allows
keeping all the implementation details sealed away from everything else,
which forces the use of the exposed API and allows us to avoid any
unnecessary inclusions within the main kernel header.
|
|\ \
| |/
|/| |
gpu: Make memory_manager private
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Makes the class interface consistent and provides accessors for
obtaining a reference to the memory manager instance.
Given we also return references, this makes our more flimsy uses of
const apparent, given const doesn't propagate through pointers in the
way one would typically expect. This makes our mutable state more
apparent in some places.
|
|/ |
|
| |
|
|\
| |
| | |
debug_utils: Minor individual interface changes
|
| |
| |
| |
| |
| | |
Quite a bit of these aren't necessary directly within the debug_utils
header and can be removed or included where actually necessary.
|
|\ \
| | |
| | | |
file_sys: Add support for NAX archives
|
| | | |
|
| | |
| | |
| | |
| | | |
Helps with installed games by making the title not a hexadecimal id string, instead the name.
|
| | |
| | |
| | |
| | | |
Allows frontend to create registration caches for use before a game has booted.
|
|\ \ \
| |_|/
|/| | |
qt: Add filename and title id to window title while running
|
| |/ |
|
|/
|
|
|
|
| |
* Port #4013 from Citra: "Init logging sooner so we dont miss some logs on startup"
* Fix compilation
|
|
|
|
|
| |
* Swap "Plus" with "Minus" on the controller GUI
Major fix /s
|
| |
|
|\
| |
| | |
qt/main: Port part of citra(#3411), open savedata works
|
| | |
|
|\ \
| | |
| | | |
Port #3353 from Citra: "citra-qt: Add customizable speed limit target "
|
| | | |
|
|\ \ \
| | | |
| | | | |
Port #3902 from Citra: "Add restart hotkey & menu option"
|
| | |/
| |/| |
|
|/ / |
|
|/
|
|
|
|
|
|
| |
Avoids the need to rebuild multiple source files if the filesystem code
headers change.
This also gets rid of a few instances of indirect inclusions being
relied upon
|
|
|
|
|
| |
Avoids potentially leaving this variable uninitialized based off the
loader failing to retrieve the ID value.
|
| |
|
|
|
|
|
| |
We can change this into an early-return if the filename is empty.
There's no need to include all of the code within the if statement.
|
|
|
|
| |
This is user-facing text, so it should be marked as translatable by Qt.
|
|
|
|
|
| |
Gets rid of truncation warnings about conversion to int. While we're at
it, we can also de-hardcode the buffer size being used.
|
|\
| |
| | |
file_sys: Add support for registration format
|
| | |
|
| |
| |
| |
| | |
Avoids unnecessary rebuilds of control data on every layer of recursion in AddFstEntriesToGameList
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Prompts for title type on NCA files.
|
| | |
|
|/
|
|
|
|
|
|
|
| |
We can make the enum class type compatible with fmt by providing an
overload of operator<<.
While we're at it, perform proper bounds checking. If something exceeds
the array, it should be a hard fail, because it's, without a doubt, a
programmer error in this case.
|
|
|
|
| |
Gets the class out of the global namespace.
|
|\
| |
| | |
loader: Add more descriptive errors
|
| |
| |
| |
| | |
clang-format fix
|
| |
| |
| | |
Full list of new errors and descriptions in core/loader/loader.h
|
| |
| |
| |
| | |
Silences a warning about truncating from size_t to u32
|
| |
| |
| |
| |
| | |
We don't need to use a heap-allocated std::vector here, given we
explicitly know the bounds.
|
| |
| |
| |
| | |
This is called automatically anyways.
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
Add Icons and Metadata Support
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
| |
Instead, we make a proper registry class and house it within the main
window, then pass it to whatever needs access to the loaded hotkeys.
This way, we avoid a global variable, and don't need to initialize a
std::map instance before the program can do anything.
|
|\
| |
| | |
game_list: Use QString::fromStdString() where applicable instead of c_str()
|
| |
| |
| |
| |
| | |
We can just use the file interfaces that Qt provides to prevent needing
to convert to std::string.
|
| |
| |
| |
| |
| |
| | |
The codec used by Qt for const char* and std::string don't necessarily
have to be the same depending on locale. Therefore, we should be using
the correct functions to do the conversions.
|
| |
| |
| |
| |
| |
| | |
* GDBStub works with both Unicorn and Dynarmic now
* Tidy up
|
|\ \
| | |
| | | |
game_list: Join declarations and assignments in onTextChanged()
|
| |/
| |
| |
| | |
There's no need to keep these separate from one another.
|
|\ \
| | |
| | | |
qt/main: Collapse if statement in UpdateRecentFiles()
|
| | |
| | |
| | |
| | |
| | | |
This was intermixing signed and unsigned values when they could all just
be signed.
|
| |/
| |
| |
| |
| | |
Given the function accepts a boolean, we don't need to use an if
statement here and repeat ourselves.
|
|\ \
| | |
| | | |
qt: Don't show error dialog when canceling the Load Folder dialog
|
| |/
| |
| |
| |
| |
| |
| | |
Previously, when canceling out of the Load Folder dialog, a user would
get an error dialog about the selected folder not containing a main
file, however, by canceling out of the dialog, no selection was actually
made.
|
|\ \
| | |
| | | |
qt: Minor cleanup-related changes
|
| | |
| | |
| | |
| | |
| | | |
These occur automatically without the need to call them. While we're at
it, also std::move the QString instance into its member variable.
|
| | | |
|
| |/
| |
| |
| |
| | |
Makes code consistent with our style of defaulting special member
functions where applicable.
|
|\ \
| | |
| | | |
kernel/event: Make data members private
|
| |/
| |
| |
| |
| | |
Instead we can simply provide accessors to the required data instead of
giving external read/write access to the variables directly.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In OnMenuRecentFile() we don't need to construct a QFileInfo instance
just to check if a file exists, we can just use the static member
function to do that (which Qt's documentation also notes as quicker than
constructing an instance).
In UpdateUITheme(), we just want to try and open the file and check the
success of that operation. Technically speaking, between the existence
check and the open call, the file can be deleted or moved, but still
appear to succeed in code. i.e.
1. Existence check -> Returns true
2. File is moved/deleted
3. Open is called, the return value of which isn't checked
4. Nonsense behavior
This way we combine the existence check and the open into one.
|
|\
| |
| | |
video_core: Eliminate the g_renderer global variable
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We move the initialization of the renderer to the core class, while
keeping the creation of it and any other specifics in video_core. This
way we can ensure that the renderer is initialized and doesn't give
unfettered access to the renderer. This also makes dependencies on types
more explicit.
For example, the GPU class doesn't need to depend on the
existence of a renderer, it only needs to care about whether or not it
has a rasterizer, but since it was accessing the global variable, it was
also making the renderer a part of its dependency chain. By adjusting
the interface, we can get rid of this dependency.
|
|\ \
| |/
|/| |
XCI and Encrypted NCA Support
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
video_core: Make global EmuWindow instance part of the base renderer …
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Makes the global a member of the RendererBase class. We also change this
to be a reference. Passing any form of null pointer to these functions
is incorrect entirely, especially given the code itself assumes that the
pointer would always be in a valid state.
This also makes it easier to follow the lifecycle of instances being
used, as we explicitly interact the renderer with the rasterizer, rather
than it just operating on a global pointer.
|
|\ \
| | |
| | | |
kernel: Move object class to its own source files
|
| |/
| |
| |
| |
| |
| | |
General moving to keep kernel object types separate from the direct
kernel code. Also essentially a preliminary cleanup before eliminating
global kernel state in the kernel code.
|
|/
|
|
| |
Makes the signal/slot connections type-safe instead of string-based.
|
| |
|
|\
| |
| | |
Port #3837 from Citra: "citra-qt: Add build date in about dialog"
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Port #3911 from Citra: "citra-qt: optimize settings application"
|
| |/ |
|
|/ |
|
|\
| |
| | |
Port #3594 from Citra: "citra_qt: Add Continue/Pause & Toggle Speed Limit hotkeys"
|
| | |
|
|\ \
| | |
| | | |
kernel/timer: Make data members private where applicable
|
| |/
| |
| |
| |
| | |
Instead, we can just expose functions that return the queryable state
instead of letting anything modify it.
|
|/ |
|
|
|
|
| |
We were missing the enum entry for WaitIPC
|
|
|
|
|
| |
If code execution hits this spot, something has gone very wrong, so mark
the path as unreachable. This silences a warning on MSVC.
|
| |
|
|
|
|
|
| |
This avoids a truncating cast on size. I doubt we'd ever traverse a
directory this large, however we also shouldn't truncate sizes away.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of using an unsigned int as a parameter and expecting a user to
always pass in the correct values, we can just convert the enum into an
enum class and use that type as the parameter type instead, which makes
the interface more type safe.
We also get rid of the bookkeeping "NUM_" element in the enum by just
using an unordered map. This function is generally low-frequency in
terms of calls (and I'd hope so, considering otherwise would mean we're
slamming the disk with IO all the time) so I'd consider this acceptable
in this case.
|
|
|
|
| |
This makes it match its const qualified equivalent.
|
|
|
|
|
| |
Makes the thread status strongly typed, so implicit conversions can't
happen. It also makes it easier to catch mistakes at compile time.
|
|\
| |
| | |
game_list: Make ContainsAllWords an internally linked non-member function
|
| |
| |
| |
| |
| | |
This function actually depends on no internal class state, so it doesn't
even need to be a part of the class interface.
|
|/
|
|
|
|
|
|
|
|
| |
* Virtual Filesystem
* Fix delete bug and documentate
* Review fixes + other stuff
* Fix puyo regression
|
|\
| |
| | |
game_list: Make containsAllWords a const member function
|
| |
| |
| |
| |
| | |
This makes it consistent with most of the other private utility
functions.
|
| |
| |
| |
| |
| |
| | |
This doesn't actually modify the internal class state, so it can be a
const member function. While we're at it, amend the function to take
its arguments by const reference.
|
|\ \
| | |
| | | |
game_list: Remove unnecessary QString initialization in KeyReleaseEater
|
| |/
| |
| |
| |
| |
| | |
QString initializes to an empty string by default, so this does nothing
meaningful. While we're at it, use a constructor initializer list for
initializing the gamelist member variable.
|
|/ |
|
| |
|
| |
|
|\
| |
| | |
Port #3505 from Citra: Fix QGLWidget viewport resize on macOS
|
| | |
|
|/
|
|
| |
This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add VfsFile and VfsDirectory classes
* Finish abstract Vfs classes
* Implement RealVfsFile (computer fs backend)
* Finish RealVfsFile and RealVfsDirectory
* Finished OffsetVfsFile
* More changes
* Fix import paths
* Major refactor
* Remove double const
* Use experimental/filesystem or filesystem depending on compiler
* Port partition_filesystem
* More changes
* More Overhaul
* FSP_SRV fixes
* Fixes and testing
* Try to get filesystem to compile
* Filesystem on linux
* Remove std::filesystem and document/test
* Compile fixes
* Missing include
* Bug fixes
* Fixes
* Rename v_file and v_dir
* clang-format fix
* Rename NGLOG_* to LOG_*
* Most review changes
* Fix TODO
* Guess 'main' to be Directory by filename
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
svc: Fully implement svcSignalToAddress and svcWaitForAddress
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Start to add NCA support in loader
* More nca stuff
* More changes to nca.cpp
* Now identifies decrypted NCA cont.
* Game list fixes and more structs and stuff
* More updates to Nca class
* Now reads ExeFs (i think)
* ACTUALLY LOADS EXEFS!
* RomFS loads and games execute
* Cleanup and Finalize
* plumbing, cleanup and testing
* fix some things that i didnt think of before
* Preliminary Review Changes
* Review changes for bunnei and subv
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
It was crashing and nobody actually uses this.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Given we utilize fmt, we don't need to provide our own functions for formatting anymore
|
| |
|
| |
|
| |
|
|\
| |
| | |
Kernel: Reworked the new kernel synchronization primitives.
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
| |
* Port 3528: use nvidia graphics automatically on laptops with optimus
* Force dedicated AMD Card for switchable Graphics
* Ran clang-format
|
| |
|
| |
|
|
|
|
|
|
| |
* core, main.h: Abort on 32Bit ROMs
* main.cpp: Fix Grammar
|
|\
| |
| | |
Logging: Add fmtlib-based macros
|
| |
| |
| |
| | |
Just as a proof that it works
|
|\ \
| | |
| | | |
Update Dialog from citra to yuzu
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
configure_general.ui: Add UI Option for Themes
config.cpp: Save Theme Settings
|
|\ \ \
| | | |
| | | | |
main.h: Add pragma once, remove ifndef
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
|/ / / |
|
| | | |
|
| | | |
|
| | | |
|
|/ / |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Make Dynarmic the default CPU core
|
| | | |
|
| |/
|/|
| |
| |
| |
| |
| |
| | |
* Removes the use of QKeySequence::Cancel to remove issues while running make
* Corrects characters in a line for travis failure
* Corrects space in a line for travis failure
|
|/ |
|
| |
|
| |
|
|\
| |
| | |
Port citra #3336
|
| | |
|
| | |
|
|/
|
|
|
|
| |
* Rename verticalLayout_25 to verticalLayout_23.
* Rename almost all classes.
|
|\
| |
| | |
CMakeLists: Derive the source directory grouping from targets themselves
|
| |
| |
| |
| |
| | |
Removes the need to store to separate SRC and HEADER variables, and then
construct the target in most cases.
|
|\ \
| | |
| | | |
hotkeys: Add missing <QTreeWidgetItem> include
|
| |/ |
|
|\ \
| | |
| | | |
game_list: Add missing override specifier for KeyReleaseEater's eventFilter function
|
| |/ |
|
|\ \
| | |
| | | |
game_list: Amend doxygen parameter identifiers
|
| |/ |
|
|/
|
|
| |
Moved over from #3266 in citra.
|
|
|
|
|
|
| |
* Update bootmanager.cpp
* This *should* fix the clang error
|
|\
| |
| | |
Implement Pull #3295 from citra: citra_qt: CMakeLists: Drop leftover handling code for Qt 4 UI files
|
| | |
|
|\ \
| | |
| | | |
Fix non translated string (same as Citra PR 2949)
|
| | | |
|
| |/ |
|
|\ \
| | |
| | | |
Implement Pull #3030 from Citra: Rename derivative class name
|
| |/
| |
| | |
citra-qt: Rename derivative class name
|
|\ \
| | |
| | | |
Implement Pull #3052 from citra: Correct spelling of searchfield in comment
|
| |/ |
|
|\ \
| | |
| | | |
Implement Pull #3240 from Citra: Add button labels for sdl joystick mappings
|
| | | |
|
| | | |
|
| |/ |
|
|/ |
|
| |
|
|\
| |
| | |
Adding meumart's Citra SDL Joystick support. Citra PR #3116
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
Various fixes
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|
|
|
| |
Fixes #6.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|