Commit Graph

563 Commits (c65c651b6fb174084a26039ce6ea78e9cd3aedf0)

Author SHA1 Message Date
Lioncash 9e1b0af259 input_common: Eliminate most global state
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.
5 years ago
Lioncash f6bb905182 common/telemetry: Migrate namespace into the Common namespace
Migrates the Telemetry namespace into the Common namespace to make the
code consistent with the rest of our common code.
5 years ago
bunnei bea9ed2548
Merge pull request #4381 from Morph1984/fix-open-folder-installed-title
main: Fix Open Save/Mod Locations for installed titles
5 years ago
bunnei 56c6a5def8
Merge pull request #4535 from lioncash/fileutil
common/fileutil: Convert namespace to Common::FS
5 years ago
Lioncash c4ed791164 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.
5 years ago
lat9nq 9f972b7d01 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.
5 years ago
Morph cf946312ca main: Fallback to loader if no control nca is found with patch manager
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.
5 years ago
Morph 1146049de0 main: Fix Open Save/Mod Locations for installed titles
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.
5 years ago
Lioncash b249e4e0ce yuzu: Resolve C++20 deprecation warnings related to lambda captures
C++20 deprecates capturing the this pointer via the '=' capture.
Instead, we replace it or extend the capture specification.
5 years ago
David 6c7292de33
Merge pull request #4263 from lat9nq/fix-screencaps-2
screenshots: Option to save screenshots immediately in a specified directory + Linux workaround
5 years ago
David 50d8264833
Merge pull request #4438 from lioncash/localizing
yuzu/main: Remove redundant usages of QStringLiteral("")
5 years ago
Morph e59d17167d main: Add support for removing SDMC installed titles 5 years ago
Morph cd814bfdfe main: Remove assert for opening savedata when program_id = 0 5 years ago
Morph f78e44762a main: Silence [[fallthrough]] warning 5 years ago
Morph ef02370816 main: Split removal cases into their individual functions and address feedback 5 years ago
Morph 85e1facfe6 main: Connect game list remove signals to removal functions 5 years ago
Lioncash 2e303095d5 yuzu/main: Remove redundant usages of QStringLiteral("")
An empty QStringLiteral can more efficiently be replaced with an empty
QString.
5 years ago
lat9nq 599b7c26a9 main: Don't use as many string copies
Co-Authored-By: LC <lioncash@users.noreply.github.com>
5 years ago
lat9nq a723ed31fd main: rewrite (save as) screenshot saving
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.
5 years ago
FearlessTobi 347b50ad43 yuzu: Port translation support from Citra
Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
5 years ago
David Marcec 468bd9c1b0 async shaders 5 years ago
bunnei 9121d35e70
Merge pull request #4297 from FearlessTobi/skip-profile-select
main/profile_select: Don't prompt for profile selection when only one is available
5 years ago
Morph 1bbc61f5f1 Use proper install result when overwriting files 5 years ago
FearlessTobi a59ad9246b main/profile_select: Don't prompt for profile selection when only one is available 5 years ago
Morph 75a01475d1 Add additional empty check for the QStringList returned by the InstallDialog 5 years ago
Morph 6d8d7ebc66 Update the install and progress dialogs
- Remove the overwrite files checkbox, it will always overwrite
- The progressbar now reflects the progress in terms of data transferred.
5 years ago
Morph 7f4d96d873 Refactor batch installing files
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.
5 years ago
Morph 4c269e5ced Add support for batch install to NAND
This adds support to batch install files to NAND
5 years ago
lat9nq 63d23835ef
configuration: implement per-game configurations (#4098)
* 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>
5 years ago
Ameer fa4d6df4c5 Fix ss crash on game menu, fix ss on windowed mode 5 years ago
Lioncash fb13f053bb key_manager: Correct casing of instance()
Our codebase uppercases member function names.
5 years ago
David 3bb63bc0b3
Merge pull request #3967 from FearlessTobi/keys-singleton
crypto: Make KeyManager a singleton class
5 years ago
bunnei 424540d9e8
Merge pull request #4063 from FreddyFunk/game-version-in-title
Add game version to window title
5 years ago
bunnei f1b1238e2d
Merge pull request #4166 from VolcaEM/quickstart-faq
Add "Open Quickstart Guide" and "FAQ" buttons to the Help menu
5 years ago
bunnei fa8e35c49f
Merge pull request #4182 from Kewlan/fullscreen-hotkey-fix
hotkeys: Fix issues caused when changing the fullscreen hotkey
5 years ago
Fernando Sahmkow 0e4c35c591 YuzuQT: Hide Speed UI on Multicore. 5 years ago
Fernando Sahmkow 467d43570e Clang Format. 5 years ago
Fernando Sahmkow 5d3a2be04f GUI: Make multicore only work with Async and add GUI for multicore. 5 years ago
Fernando Sahmkow dc58058203 General: Setup yuzu threads' microprofile, naming and registry. 5 years ago
Kewlan 323eb86c9f Fix issues caused when changing the fullscreen hotkey 5 years ago
bunnei 9eaccac674
Merge pull request #4164 from Kewlan/mute-audio-hotkey
hotkeys: Add a "Mute Audio" hotkey
5 years ago
VolcaEM b1f4de7874
Update FAQ function name (2/2) 5 years ago
VolcaEM 9e1975a166
Update function name again 5 years ago
VolcaEM 0b86c7eb6a
Update function name (2/2) 5 years ago
Kewlan 3eb8efc095 Add a "Mute Audio" hotkey 5 years ago
VolcaEM 7d08d548a9
Clang-format again 5 years ago
VolcaEM b9f0b9dd06
Clang-format 5 years ago
VolcaEM 6582857356
Remove unnecessary newline 5 years ago
VolcaEM 0f4512291a
Merge branch 'master' into quickstart-faq 5 years ago
VolcaEM a46df40939
Fix typo 2: electric boogaloo 5 years ago
VolcaEM 9e7ac6a009
Use QUrl (2/2) 5 years ago
VolcaEM 5f6e44552a
Fix typo 5 years ago
VolcaEM 57b93395a8
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
5 years ago
bunnei a980b4cbc1
Merge pull request #4136 from VolcaEM/mods
Add a "Open Mods Page" button to the GUI
5 years ago
unknown 8cf6efe677 Reorder variables to comply with the Auzure build pipeline 5 years ago
VolcaEM 409fedaf97
Correct function name (2/2) 5 years ago
VolcaEM 23d57ed4f7
Clang-format 5 years ago
VolcaEM d11b04ed46
Remove unnecessary conversion 5 years ago
VolcaEM 606e833d26
Address review comment by Lioncash
Co-authored-by: LC <mathew1800@gmail.com>
5 years ago
VolcaEM b81af6ae9b
Add a "Open Mods Page" button to the GUI 5 years ago
Morph 9bb5bf0b2b main: Append AVX and FMA instructions to cpu string
Append AVX and FMA instructions to cpu string if the host cpu supports them
5 years ago
unknown 20a779299a Add game versio to title bar 6 years ago
Morph 03fad5ebe8 yuzu/frontend: Remove internal resolution option 6 years ago
Morph b2af304918 Fix macOS code and change "Swapfile" to "Swap" 6 years ago
FearlessTobi 9f82a9a244 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.
6 years ago
Morph 9a36d8600c main: Log host system memory parameters
Logs both physical memory and swapfile sizes, this is useful for support.
6 years ago
bunnei 65010607b7
Merge pull request #3665 from bunnei/device-save
FS: Improve emulation of device saves
6 years ago
Morph b73f678ee8 frontend: Set minimum window size to 640x360 instead of 1280x720 (#3413) 6 years ago
bunnei 551c61bf27 yuzu: game_list: Fix 'Open Save Data Location' for device saves. 6 years ago
FearlessTobi 9e5af4ad30 Menubar: fix mouse tracking bug
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
6 years ago
bunnei fc04108c77
Merge pull request #3637 from FearlessTobi/port-5094
Port citra-emu/citra#5094: "yuzu: Option to hide mouse on inactivity"
6 years ago
Ben Russell bcd0444bb9
Update src/yuzu/main.cpp with missing const
Co-Authored-By: Mat M. <mathew1800@gmail.com>
6 years ago
Ben Russell dd43d725c6
Dump RomFS command to include Updates
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.
6 years ago
FearlessTobi e7664b7a4f yuzu: Option to hide mouse on inactivity
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
6 years ago
bunnei 779a3b222a
Merge pull request #3655 from FearlessTobi/ui-retext-yuzu
yuzu/main: Add better popup texts and remove duplicated actions
6 years ago
Lioncash 1c340c6efa CMakeLists: Specify -Wextra on linux builds
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.
6 years ago
FearlessTobi c2bf91156a 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.
6 years ago
SilverBeamx 863f7385dc Addressed feedback: switched to snake case and fixed clang-format errors 6 years ago
SilverBeamx 6b512d78c9 Addressed feedback: removed CMake hack in favor of building the necessary strings via the supplied title format 6 years ago
Rodrigo Locatti 825a6e2615
Merge pull request #3552 from jroweboy/single-context
Refactor Context management (Fixes renderdoc on opengl issues)
6 years ago
bunnei 75795a9a63
Merge pull request #3573 from FearlessTobi/port-5089
Port citra-emu/citra#5089: "Set render window's focus policy to Qt::StrongFocus"
6 years ago
FearlessTobi 8ba06aa4e1 yuzu: fix the stuck in fullscreen mode bug
Co-Authored-By: Valentin Vanelslande <vvanelslandedev@gmail.com>
6 years ago
Vitor K 10ba8d16be Set render window to also accept focus via tabbing (Qt::StrongFocus) (#5089) 6 years ago
bunnei 950b6dbc80
Merge pull request #3453 from FearlessTobi/remove-pause-lock
yuzu: Remove exit lock for game pausing
6 years ago
James Rowe 282adfc70b Frontend/GPU: Refactor context management
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
6 years ago
bunnei b2a38cce4e frontent: qt: main: Various updates/refactoring for separate presentation thread. 6 years ago
FearlessTobi 7cbe6748c3 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.
6 years ago
bunnei 5733287822
Merge pull request #3360 from CJBok/statusbar-buttons
GUI: Togglable graphics settings buttons in status bar
6 years ago
ReinUsesLisp f92cbc5501 yuzu: Implement Vulkan frontend
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing
bits on Vulkan initialization.
6 years ago
CJBok 8d6b4e836c clang 6 years ago
CJBok 6e87111f91 minor corrections 6 years ago
CJBok 4bc4fdf5ff GUI: Togglable graphics settings buttons in status bar 6 years ago
Bartosz Kaszubowski da3049aa74 GUI: add few missing hotkeys to main menu 6 years ago
ReinUsesLisp 0d6d8129c4 yuzu: Remove Maxwell debugger
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.
6 years ago
ReinUsesLisp f019817f8f
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).
6 years ago
FearlessTobi 727ba2f2d0 citra_qt: add amiibo drag and drop support
Co-Authored-By: Valentin Vanelslande <vvanelslandedev@gmail.com>
6 years ago
bunnei b41692b69b
Merge pull request #2910 from FearlessTobi/port-4930
Port citra-emu/citra#4930: "Pause when in background"
6 years ago
Zach Hilman 81fff7aec0 qt: Fix game name format error 6 years ago
Zach Hilman 57fe7fdec0 qt: Change titlebar formatting 6 years ago
FearlessTobi b89fb6e1be yuzu: Pause when in background
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
6 years ago
Zach Hilman 9f3bf6d157 main: Use const on all variable initializations 6 years ago
Zach Hilman 60c2e9e675 qt: Prompt user for confirmation if exit lock is active 6 years ago
David c9ccdfbeac
Merge pull request #2430 from DarkLordZach/fs-controller
core: Implement FileSystemController to deglobalize FS services
6 years ago
Zach Hilman 7979ccd956
Merge pull request #2883 from ogniK5377/log-game
Log the current title id and game name which is booting
6 years ago
Zach Hilman c6ff4a6f4d yuzu: Port old usages of Filesystem namespace to FilesystemController 6 years ago
pbarilla 8fd266a7c4 Added Host CPU and OS to log 6 years ago
David Marcec b4db662053 Swapped TID and Game name to make it easier to parse 6 years ago
David Marcec 934ce530f6 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
6 years ago
David 953d49810a
Merge pull request #2797 from FearlessTobi/port-4877
Port citra-emu/citra#4877: "citra_qt: on osx chdir to bundle dir to allow detection of user folder"
6 years ago
FearlessTobi 1aec2ff4d2 Address review comments 6 years ago
fearlessTobi 5aaafa6a56 Separate UserNand and Sdmc directories 6 years ago
fearlessTobi dfec9c9a43 Address more trivial review comments 6 years ago
fearlessTobi 7a8f484020 Address trivial review comments 6 years ago
fearlessTobi 2d8eba5baf yuzu: Add support for multiple game directories
Ported from https://github.com/citra-emu/citra/pull/3617.
6 years ago
fearlessTobi 4ea572791b Fix to Windows sleep issues
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
6 years ago
Weiyi Wang 0580112940 Guard unistd.h with MacOS only macro
Fix compile error on Windows caused by #4877
Weird, I thought I saw this guard during the code review...
6 years ago
B3n30 246b515a86 citra_qt: on osx chdir to bundle dir to allow detection of user folder 6 years ago
James Rowe 0e9e166d85
Merge pull request #2772 from lioncash/ui
yuzu/CMakeLists: Remove qt5_wrap_ui macro usage
6 years ago
Lioncash 5980aa1e51 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.
6 years ago
Lioncash 5085a16d78 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.
6 years ago
Zach Hilman 772c86a260
Merge pull request #2601 from FernandoS27/texture_cache
Implement a new Texture Cache
6 years ago
Zach Hilman 01ff38cca8 general_frontend: Add documentation for parental controls and ecommerce applets 7 years ago
Zach Hilman b889167b2c yuzu: Accept default applets for Parental Controls and ECommerce 7 years ago
ReinUsesLisp 58c0d37422 video_core: Make ARB_buffer_storage a required extension 7 years ago
Alex Subaric f375e10411
Added missing space between two words
Added missing whitespace character between two words in the "Warning Missing Derivation Components" warning message box.
7 years ago
bunnei 8d7a012297
Merge pull request #2521 from lioncash/naming
yuzu/configuration: Make function naming consistent
7 years ago
Zach Hilman 799302bc9d
Merge pull request #2526 from lioncash/global
core/telemetry_session: Remove usages of the global system accessor
7 years ago
Lioncash e1d755bdda yuzu/configuration: Make function naming consistent 7 years ago
Zach Hilman 1eb979221f
Merge pull request #2527 from lioncash/index
yuzu/{profile_select, software_keyboard}: Tidy up interface
7 years ago
Zach Hilman 9b2d38582f main: Remove extraneous comment 7 years ago
Lioncash cfc9d92b38 yuzu/software_keyboard: Remove unnecessary GetStatus() member function
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.
7 years ago
Lioncash 802dd3cc95 profile_select: Remove unnecessary GetStatus() member function
This behavior is already provided by the built-in exec() function. We
just need to check the return value of it.
7 years ago
Lioncash 139301c5a1 profile_select: Return int instead of u32 for GetIndex()
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.
7 years ago
Lioncash 84a8fb9264 core/loader: Remove LoadKernelSystemMode
This is a hold-over from Citra and doesn't apply to yuzu.
7 years ago
Zach Hilman 944c07ac7d yuzu: Clear partial/full game list cache when data is updated 7 years ago
Lioncash 6f2a8fbb13 yuzu/main: Specify string conversions where applicable 7 years ago
Lioncash d955944869 yuzu/main: Move window title updating logic to its own function
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.
7 years ago
Zach Hilman 8f8049e846 main: Add GMainWindow hooks for Error display 7 years ago
Zach Hilman a04d36c5a4 main: Switch to AppletManager for frontend 7 years ago
bunnei 065f83c6c3
Merge pull request #2017 from jroweboy/glwidget
Frontend: Migrate to QOpenGLWindow and support shared contexts
7 years ago
FreddyFunk 382722b9c4 Fix Clang Format 7 years ago
FreddyFunk dffa1a872a ui_settings: Rename game directory variables 7 years ago
bunnei f46c3164e7
Merge pull request #2353 from lioncash/surface
yuzu/debugger: Remove graphics surface viewer
7 years ago
bunnei 61f63bb994
Merge pull request #1957 from DarkLordZach/title-provider
file_sys: Provide generic interface for accessing game data
7 years ago
bunnei 1a3098f11a
Merge pull request #2132 from FearlessTobi/port-4437
Port citra-emu/citra#4437: "citra-qt: Make hotkeys configurable via the GUI (Attempt 2)"
7 years ago
Lioncash 218ae888f3 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.
7 years ago
bunnei 9959c95966
Merge pull request #2331 from lioncash/cache
yuzu/main: Minor adjustments to OnTransferableShaderCacheOpenFile()
7 years ago
Lioncash e8f3d85ea5 yuzu/main: Remove unnecessary includes
While we're at it, don't use <QtGui> and <QtWidgets> and instead include
exactly which headers we actually need.
7 years ago
Lioncash e5bb07a973 yuzu/main: Use QStringLiteral where applicable within OnTransferableShaderCacheOpenFile()
Allows these strings to have no allocation cost when used at runtime.
7 years ago
Lioncash 5ba5f82082 yuzu/main: Tidy up the error dialog string in OnTransferableShaderCacheOpenFile()
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.
7 years ago
Lioncash 3f8c9b25d8 yuzu/main: Remove unnecessary string concatenation in OnTransferableShaderCacheOpenFile()
We can just make the trailing portion of the string part of the
formatting, getting rid of the need to make another temporary string.
7 years ago
Lioncash 872d480c60 yuzu/main: Make open_target a QString
Simplifies the amount of string conversions necessary. We also don't
need to log out what occurs here.
7 years ago
Lioncash ba4e1adda1 yuzu/main: Use static variant of QFile's exists()
There's no need to construct a QFile instance just to check for its
existence.
7 years ago
bunnei a56c4ac91b
Merge pull request #2095 from FreddyFunk/open-transferable-shader-cache
frontend: Open transferable shader cache for a selected game in the gamelist
7 years ago
Zach Hilman 41d2565f29 game_list: Register content with ContentProvider 7 years ago
ReinUsesLisp 9ebc27234d bootmanager: Bypass input focus issues 7 years ago
Adityarup Laha 57a4a2ae0f yuzu: Make hotkeys configurable via the GUI
* Adds a new Hotkeys tab in the Controls group.
* Double-click a Hotkey to rebind it.
7 years ago
bunnei 3b63a46ca4
Merge pull request #2196 from DarkLordZach/web-applet-esc
web_browser: Add shortcut to Enter key to exit applet
7 years ago
bunnei 1a4d733ec7
Merge pull request #2205 from FearlessTobi/docked-undocked-hotkey
yuzu: add a hotkey to switch between undocked and docked mode
7 years ago
bunnei d2ff93c319
Merge pull request #2190 from lioncash/ogl-global
core: Remove the global telemetry accessor function
7 years ago
fearlessTobi c8d6f0cb82 yuzu: add a hotkey to switch between undocked and docked mode 7 years ago
Zach Hilman 4130b07f88 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.
7 years ago
Lioncash 319365fdf0 yuzu: Remove usage of the global telemetry accessor
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.
7 years ago
fearlessTobi 71c30a0a89 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.
7 years ago
unknown f27c65eb91 Use QString instead of std::string where applicable 7 years ago
Mat M 996ddb202b
Use constexpr char array instead of string where applicable
Co-Authored-By: FreddyFunk <frederic.laing.development@gmail.com>
7 years ago
unknown 9d411699d8 frontend: Open transferable shader cache for a selected game in the gamelist 7 years ago
ReinUsesLisp eb73247433 gl_shader_cache: Link loading screen with disk shader cache load 7 years ago
xperia64 f598490b57 Fix crash when no files are selected 7 years ago
xperia64 284536a626 Add file extension to screenshot filename if not provided 7 years ago
bunnei f574d324e7
Merge pull request #2054 from bunnei/scope-context-refactor
frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl.
7 years ago
bunnei 045b0b70b6 frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl. 7 years ago
zhupengfei a94a828b6c citra_qt: Log settings on launch 7 years ago
James Rowe c6a0ab9792 QT Frontend: Migrate to QOpenGLWindow 7 years ago
James Rowe 3ca0af8bb3 Add fade out effect to the loading screen 7 years ago
James Rowe aa427bb2a7 Remove blue box around loading screen 7 years ago
James Rowe 08fcf41b0a 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.
7 years ago
bunnei 83e8ad2331
Merge pull request #1939 from DarkLordZach/web-applet
applets: Implement HLE web browser applet (LibAppletOff)
7 years ago
bunnei a6aa710b84
Merge pull request #1942 from DarkLordZach/profile-select-game-boot
qt: Add setting to prompt for user on game boot
7 years ago
Zach Hilman 0c5ede492f travis: Use correct package for linux Qt5WebEngine 7 years ago
Zach Hilman 45da3be40e main: Add main window integrations for QtWebBrowserApplet 7 years ago
Zach Hilman 9c2d83cb9c 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.
7 years ago
Zach Hilman 4d61ac08aa 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.
7 years ago
bunnei 9a22a94a51
Merge pull request #1886 from FearlessTobi/port-4164
Port citra-emu/citra#4164: "citra_qt, video_core: Screenshot functionality"
7 years ago
bunnei f95f6c7d86
Merge pull request #1781 from DarkLordZach/applet-profile-select
am: Implement HLE profile selector applet
7 years ago
zhupengfei a2be49305d yuzu, 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.
7 years ago
Zach Hilman f6f6503578 qt: Add Properties menu to game list right-click 7 years ago
Zach Hilman bf90f2402d qt: Implement GUI dialog frontend for ProfileSelector
Presents profiles in a list, similar to switch.
7 years ago
Zach Hilman 6deccc7e6b qt: Register to use Qt ProfileSelector instead of default 7 years ago
bunnei f6b22d9251
Merge pull request #1835 from lioncash/cache-global
filesystem: De-globalize registered_cache_union
7 years ago
Lioncash db4523f1ec 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.
7 years ago
ReinUsesLisp 22c7c710b4 gl_rasterizer: Remove extension booleans 7 years ago
Lioncash d72c809030 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).
7 years ago
FernandoS27 0368260c99 Removed pre 4.3 ARB extensions 7 years ago
FernandoS27 377c60645c Update OpenGL's backend version from 3.3 to 4.3 7 years ago
bunnei b6d2c64f4d
Merge pull request #1667 from DarkLordZach/swkbd
am: Implement HLE software keyboard applet
7 years ago
bunnei 3e93c30630
Merge pull request #1640 from DarkLordZach/game-list-reload
game_list: Only reload game list after relevant settings changed
7 years ago
Zach Hilman 19b2571aec applet: Add operation completed callback 7 years ago
Zach Hilman 8b433beff3 software_keyboard: Make GetText asynchronous
a
7 years ago
Zach Hilman 7cfb29de23 am: Allow applets to push multiple and different channels of data 7 years ago
Zach Hilman fed6ab14c3 am: Implement text check software keyboard mode
Allows the game to verify and send a message to the frontend.
7 years ago
Zach Hilman e696ed1f4d am: Deglobalize software keyboard applet 7 years ago
Zach Hilman a81645400f qt/main: Register Qt Software Keyboard frontend with AM
Allows using Qt provider over default.
7 years ago
bunnei 0072275d25
Merge pull request #1678 from FearlessTobi/amiibo-hotkeys
Port citra-emu/citra#4387: "yuzu: Add hotkey for Amiibo loading"
7 years ago
fearlessTobi 9ea8eb6b2e yuzu: Add hotkey for Amiibo loading 7 years ago
bunnei d08b876c9d
Merge pull request #1650 from FreddyFunk/cast
yuzu/main: Fix compiler warning
7 years ago
James Rowe b4a6ce02ce
Merge pull request #1674 from FearlessTobi/fullscreen-fix
yuzu: Add a missing "!" to fix the stuck-in-fullscreen bug
7 years ago
Tobias 9333ee29ca
yuzu: Add a missing "!" to fix the stuck-in-fullscreen bug 7 years ago
Frederic Laing 6c8b788d32 yuzu/main: Fix compiler warning 7 years ago
bunnei e10483a878
Merge pull request #1441 from CarlKenner/DebuggerLog
logging: Add DebuggerBackend for logging to Visual Studio
7 years ago
bunnei acdc770cfb
Merge pull request #1639 from DarkLordZach/open-yuzu-folder
qt: Add help option to open yuzu folder
7 years ago
Dharmin K Shah b2647dba33
Fix quickstart link 7 years ago
Zach Hilman 52e7e8eed3 game_list: Only reload game list after relevant settings changed
Prevents unnecessary reloads on every configuration operation.
7 years ago
Zach Hilman 97187b7ef6 qt: Add help option to open yuzu folder
Opens a new file manager window at the UserDir.
7 years ago
Frederic L 7a5eda5914 global: Use std::optional instead of boost::optional (#1578)
* 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
7 years ago
bunnei debabf1fa6
Merge pull request #1569 from lioncash/amiibo
yuzu/main: Notify user of loading errors with Amiibo data
7 years ago
Lioncash 4a31f99a02 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.
7 years ago
Lioncash bed2d6c425 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.
7 years ago
Zach Hilman 45f2a2fe29 acc: Fix account UUID duplication error 7 years ago
Zach Hilman 702622b8f1 profile_manager: Load user icons, names, and UUIDs from system save 7 years ago
Zach Hilman 466960c8ab qt: Allow user to select emu user on open save data 7 years ago
David 50e4e81fd3 Added Amiibo support (#1390)
* 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
7 years ago
Zach Hilman 9d0fb0f815 qt: Add support for dumping a DLC Data RomFS 7 years ago
bunnei 870c18b078
Merge pull request #1487 from lioncash/maybe-unused
yuzu/main: Apply the [[maybe_unused]] attribute to the parameter of SetDiscordEnabled
7 years ago
Zach Hilman 720d36ca71 crypto: Various crypto fixes for quickstart guide 7 years ago
bunnei 3203193a67
Merge pull request #1490 from lioncash/boot
yuzu/main: Simplify OnMenuLoadFile()
7 years ago
Lioncash 0149162dba filesystem: Make CreateFactories() and InstallInterface() take a VfsFilesystem instance 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.
7 years ago
Lioncash a4c57436fc 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.
7 years ago
Lioncash 53a0221484 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.
7 years ago
Zach Hilman 3ec054643e partition_data_manager: Rename system files for hekate
x
7 years ago
Zach Hilman 8f958b89e7 qt: Add rederive keyset menu option 7 years ago
Zach Hilman 3edafc6802 qt: Add key derivation progress bar on initial setup 7 years ago
Carl Kenner f5f6292810 logging: Add DebuggerBackend for logging to Visual Studio 7 years ago
bunnei 2fbb20b2b5 yuzu/yuzu_cmd: Add checks for required extension ARB_copy_image. 7 years ago
Lioncash efd956e6ff
qt: Update telemetry links
These were pointing to a non-existent webpage.
7 years ago
fearlessTobi e4daf4bee5 Review comments - part 5 7 years ago
fearlessTobi aa48468862 Review comments - part 3 7 years ago
fearlessTobi b4ace6ec6f Address a bunch of review comments 7 years ago
fearlessTobi 4d139943f2 Port web_service from Citra 7 years ago
bunnei decc319634
Merge pull request #1403 from DarkLordZach/install-sysnand
qt: Install System TitleTypes to System NAND
7 years ago
Lioncash cf9d6c6f52 kernel/process: Make data member variables private
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.
7 years ago
Zach Hilman 70e86248fd 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.
7 years ago
Lioncash f646ca874d yuzu/main: Resolve precedence bug within CalculateRomFSEntrySize()
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.
7 years ago
Lioncash cbb146069a yuzu/main: Move functions stored into static std::function instances out of OnGameListDumpRomFS()
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.
7 years ago
Lioncash 57616f9758 vfs/etc: Append std:: to size_t usages
Given we just recently had a patch backport this from citra, let's try
and keep the convention uniform.
7 years ago
Zach Hilman b3c2ec362b fsmitm: Cleanup and modernize fsmitm port 7 years ago
Zach Hilman ba0873d33c qt: Add UI elements for LayeredFS and related tools 7 years ago
fearlessTobi 63c2e32e20 Port #4182 from Citra: "Prefix all size_t with std::" 7 years ago
ReinUsesLisp a42376dfad Use ARB_multi_bind for uniform buffers (#1287)
* gl_rasterizer: use ARB_multi_bind for uniform buffers

* address feedback
7 years ago
Markus Wick 3e973bc4c6 gl_rasterizer: Use ARB_texture_storage.
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.
7 years ago