| Age | Commit message (Collapse) | Author |
|
file_sys/registered_cache: Use regular const references instead of std::shared_ptr for InstallEntry()
|
|
|
|
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).
|
|
While we're at it, organize the array linearly, since clang formats the
array elements quite wide length-wise with the addition of the missing
'u'.
Technically also fixes patch lookup and icon lookup with Portuguese,
though I doubt anyone has actually run into this issue.
|
|
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.
|
|
Fills out the struct according to information provided by SwitchBrew
|
|
This will scan the <mod>/exefs dir for all files and then layer those on top of the game's exefs and use this as the new exefs. This allows for overriding of the compressed NSOs or adding new files. This does use the same dir as IPS/IPSwitch patch, but since the loader will not look for those they are ignored.
|
|
When enabled, all exefs(es) will be copied to yuzu/dump/<title_id>/exefs.
|
|
game_list: Optimize game list refresh
|
|
Rather than keeping around unused values, we can just introduce them as
needed.
|
|
There's no real point to keeping the separate enum around, especially
given the name of the error code itself is supposed to document what the
value actually represents.
|
|
Keeps filesystem-related error codes in one spot.
|
|
patch_manager: Add support for dumping uncompressed NSOs
|
|
[ns|fsp_srv]: Implement various functions to boot Checkpoint
|
|
Creates a single KeyManager for the entire container and then passes it into the NCA constructor, eliminating several unnecessary KeyManager reads.
|
|
Allows resuing a common KeyManager when a large amount of NCAs are handled by the same class. Should the parameter not be provided, a new KeyManager will be constructed, as was the default behavior prior to this.
|
|
Cleans up unused includes and trims off some dependencies on externals.
|
|
* 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
|
|
Returns the raw NACP bytes and the raw icon bytes into a title-provided buffer. Pulls from Registration Cache for control data, returning all zeros should it not exist.
|
|
When enabled in settings, PatchNSO will dump the unmodified NSO that it was passed to a file named <build id>.nso in the dump root for the current title ID.
|
|
Equates to yuzu_dir/dump/<title id>/
|
|
|
|
Returns the raw bytes of the NACP file. Needed for GetApplicationControlData which returns the raw, unprocessed NACP to the game.
|
|
* remove unnecessary if-statements
* Addressed feedback
|
|
vfs: Remove InterpretAsDirectory and related functions
|
|
Prevents a potential bug when using RLE records in an IPS patch.
|
|
Also gets rid of an unused variable.
|
|
patch_manager: Add support for LayeredFS on DLC RomFS
|
|
When writing VFS, it initally seemed useful to include a function to in-place convert container files into directories in one homogenous directory structure, but re-evaluating it now there have been plenty of chances to use it and there has always been a better way. Removing as it is unused and likely will not be used.
|
|
content_archive: Minor reorganization changes
|
|
XCI: Add function for checking the existence of the program NCA
|
|
|
|
savedata_factory: Add DeviceSaveData and fix TemporaryStorage
|
|
Prevents a Entry from appearing in the list twice if the user has it installed in two places (e.g. User NAND and SDMC)
|
|
|
|
std::move doesn't actually dereference the data, so it doesn't matter
whether or not the type is null.
|
|
This is only ever used within the cpp file, so it can just be an
internal function.
|
|
This is the same as using std::any_of with an inverted predicate.
|
|
The constructor alone is pretty large, the reading code should be split
into its consistuent parts to make it easier to understand it without
having to build a mental model of a 300+ line function.
|
|
Each header is 512 bytes in size, which is kind of an excessive amount
to copy all the time when it's possible to avoid doing so.
|
|
The only reason the getter existed was to check whether or not the
program NCA was null. Instead, we can just provide a function to query
for the existence of it, instead of exposing it entirely.
|
|
content_archive/patch_manager: Lower log levels to eliminate some unnecessary logs
|
|
Required for TemporaryStorage saves (in addition to SaveDataType)
|
|
Uses the same path as SaveData except with UID 0. Adds a warning if UID is not 0.
|
|
shared_ptrs where applicable
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.
|
|
These are just the size of the data being passed in, so we can specify
that via the size() member function.
|
|
Falls back to title ID + 0x1000, which is what HOS does.
|
|
Normal Program-type patches will still be logged to aid in debugging, but for others (mainly Control), it was moved to Debug.
|
|
Avoids printing live keys in the general log.
|