summaryrefslogtreecommitdiff
path: root/src/yuzu/main.cpp
AgeCommit message (Collapse)Author
2021-06-23General: Resolve fmt specifiers to adhere to 8.0.0 API where applicableLioncash
Also removes some deprecated API usages.
2021-06-22common: fs: Remove [[nodiscard]] attribute on Remove* functionsMorph
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.
2021-06-20video_core: Add GPU vendor name to window title barameerj
2021-06-17config: Add frame limiter toggle hotkeyameerj
2021-06-11yuzu: main: Ensure enough space is available for RomFS dumpingMorph
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.
2021-06-07yuzu qt: Start games from context menulat9nq
This connects the BootGame function to the context menu. In addition, there is an option to boot without using the custom configuration.
2021-06-04Merge pull request #6362 from lat9nq/reset-to-defaultsbunnei
yuzu qt: Add settings reset button to general configuration
2021-06-02yuzu qt: Revert some usages of string_viewlat9nq
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.
2021-06-01Merge pull request #6361 from lat9nq/per-hb-cfgbunnei
yuzu qt: Handle per-game configs for title id 0
2021-06-01yuzu qt: Use lambda and std::function for reset callbacklat9nq
Also makes use of std::move, and performs a clang-format cleanup. This addresses review comments. Co-authored-by: LC <mathew1800@gmail.com>
2021-06-01yuzu: Add settings reset button to general configurationlat9nq
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.
2021-06-01configuration: Initial work to reset all settingsfearlessTobi
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>
2021-05-27Merge pull request #6346 from lat9nq/apply-config-pgcAmeer J
yuzu qt: Add an Apply button to configuration dialogs
2021-05-25yuzu qt: Restore const qualifierslat9nq
This addresses review comments. Co-authored-by: LC <mathew1800@gmail.com>
2021-05-25yuzu qt: Handle per-game configs for title id 0lat9nq
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.
2021-05-25common: fs: Rework the Common Filesystem interface to make use of ↵Morph
std::filesystem (#6270) * 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
2021-05-25yuzu qt: Add an Apply button to configuration dialogslat9nq
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.
2021-05-23settings: Forbid docked mode on handheldgerman77
2021-05-18Merge pull request #6317 from ameerj/fps-fixbunnei
perf_stats: Rework FPS counter to be more accurate
2021-05-16yuzu/main: Fix version info in logging and about dialogMorph
2021-05-16main: Prevent installing base titles into NANDMorph
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.
2021-05-15perf_stats: Rework FPS counter to be more accurateameerj
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.
2021-05-15main: Add title's version to window name on EA/mainlineameerj
Fixes the missing title version number on EA/mainline builds which override the title bar string.
2021-05-05hle: kernel: Rename Process to KProcess.bunnei
2021-04-30Merge pull request #6257 from Morph1984/fix-use-after-free-webappletbunnei
applets/web: Fix a use-after-free when passing in the URL string
2021-04-28applets/web: Fix a use-after-free when passing in the URL stringMorph
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.
2021-04-28yuzu: main: Silence type conversion warning on MSVCMorph
2021-04-15applets/swkbd: Implement the Qt Software Keyboard frontendMorph
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>
2021-04-15error: Make the error code as the title text of the OverlayDialogMorph
Co-authored-by: Its-Rei <kupfel@gmail.com>
2021-04-15overlay_dialog: Add an overlay text dialog that accepts controller inputMorph
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>
2021-04-15main: Move meta type registration into its own functionMorph
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.
2021-04-15applets: Remove the previous software keyboard applet implementationMorph
2021-04-14Merge pull request #6199 from lioncash/log-nsbunnei
common/log: Move Log namespace into the Common namespace
2021-04-14common/log: Move Log namespace into the Common namespaceLioncash
Forgot to move this over when I moved the rest of the source files with lacking namespaces over.
2021-04-14common: Move settings to common from core.bunnei
- Removes a dependency on core and input_common from common.
2021-04-06configure_graphics: Add Borderless Windowed fullscreen modeMorph
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>
2021-03-27yuzu/main: Add user command line argumentgerman77
2021-03-12Merge pull request #5327 from AniLeo/masterbunnei
qt: Set DISPLAY env var when not present
2021-03-07qt: Set DISPLAY env var when not presentAni
Fixes web browser opening (Help > Open Mods Page, Help > Open Quickstart Guide)
2021-02-27inputCommon: Mouse fixesgerman77
2021-02-14yuzu: Various frontend improvements to avoid crashes and improve experience ↵bunnei
on Linux.
2021-02-12yuzu: Create screenshot path before capturelat9nq
Allows screenshots in cases where the screenshots path doesn't already exist.
2021-02-11Merge pull request #5869 from german77/mousePanningbunnei
input_common: Add mouse panning
2021-02-07Add mouse panninggerman
2021-02-06Refresh debug controller settingsgerman
2021-02-06Add controller window and single joycon top viewgerman
2021-01-28hle: kernel: Allocate a dummy KThread for each host thread, and use it for ↵bunnei
scheduling.
2021-01-21renderer_opengl: Avoid precompiled cache and force NV GL cache directoryReinUsesLisp
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.
2021-01-10Merge pull request #5229 from Morph1984/fullscreen-optbunnei
yuzu/main: Add basic command line arguments
2021-01-04Merge pull request #5261 from gal20/hide_mouse_patchbunnei
yuzu/main: Fix 'Hide mouse on inactivity' and port citra-emu/citra#5476