Age | Commit message (Collapse) | Author |
|
|
|
|
|
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.
|
|
|
|
|
|
file_sys: Add support for NAX archives
|
|
qt: Add filename and title id to window title while running
|
|
startup" (#1142)
* Port #4013 from Citra: "Init logging sooner so we dont miss some logs on startup"
* Fix compilation
|
|
|
|
Allows frontend to create registration caches for use before a game has booted.
|
|
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
|
|
|
|
|
|
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
|
|
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.
|
|
|
|
|
|
|
|
|
|
Prompts for title type on NCA files.
|
|
Full list of new errors and descriptions in core/loader/loader.h
|
|
|
|
|
|
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.
|
|
|
|
qt/main: Collapse if statement in UpdateRecentFiles()
|
|
qt: Don't show error dialog when canceling the Load Folder dialog
|
|
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.
|
|
UpdateUITheme()
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.
|
|
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.
|
|
video_core: Eliminate the g_renderer global variable
|
|
XCI and Encrypted NCA Support
|
|
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.
|