summaryrefslogtreecommitdiff
path: root/src/yuzu/main.cpp
AgeCommit message (Collapse)Author
2021-07-14applets: Append qt_ prefix to Qt frontend appletsMorph
2021-07-12Merge pull request #6574 from lioncash/i18nbunnei
qt/main: Make title string more i18n-friendly
2021-07-10settings: Disable FPS unlimit setting between title launchesameerj
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.
2021-07-08qt/main: Make title string more i18n-friendlyLioncash
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.
2021-07-08Merge pull request #6539 from lat9nq/default-settingAmeer J
general: Move most settings' defaults and labels into their definition
2021-06-29Merge pull request #6471 from lat9nq/dump-as-modMorph
yuzu qt, core: Support LayeredFS mods from SDMC directory
2021-06-28yuzu qt: Make most UISettings a BasicSettinglat9nq
For simple primitive settings, moves their defaults and labels to definition time. Also fixes typo and clang-format yuzu qt: config: Fix rng_seed
2021-06-28general: Make most settings a BasicSettinglat9nq
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.
2021-06-28Merge pull request #6502 from ameerj/vendor-titleMorph
main: Add GPU Vendor name to running title bar
2021-06-28patch_manager: Do not apply LayeredFS mods when dumpingMorph
We should not apply any mods when dumping a game's RomFS.
2021-06-28yuzu qt: Add option to dump to SDMC directorylat9nq
Enables dumping the RomFS to SDMC directory, specifically '[yuzu data directory]/sdmc/atmosphere/contents/[title_id]/romfs'.
2021-06-28main: Display the instruction set of the running title in the window nameameerj
Displays whether the currently running title uses 64-bit instructions or only 32-bit instructions.
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