aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys
AgeCommit message (Collapse)Author
2018-11-27Merge pull request #1814 from lioncash/ptrbunnei
file_sys/registered_cache: Use regular const references instead of std::shared_ptr for InstallEntry()
2018-11-27file_sys/registered_cache: Remove unused <map> includeLioncash
2018-11-27file_sys/registered_cache: Use regular const references instead of ↵Lioncash
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).
2018-11-27control_metadata: Correct typo in language name (Portugese -> Portuguese)Lioncash
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.
2018-11-23Merge pull request #1747 from DarkLordZach/exefs-lfsbunnei
patch_manager: Add support for applying LayeredFS patches to ExeFS
2018-11-20patch_manager: Show LayeredExeFS patch in add-ons columnZach Hilman
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.
2018-11-20file_sys/card_image: Provide named members for the GamecardInfo structLioncash
Fills out the struct according to information provided by SwitchBrew
2018-11-20patch_manager: Apply LayeredExeFS patchesZach Hilman
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.
2018-11-20settings: Add option to dump ExeFS of games upon launchZach Hilman
When enabled, all exefs(es) will be copied to yuzu/dump/<title_id>/exefs.
2018-11-16Merge pull request #1632 from DarkLordZach/keys-manager-optimizationsbunnei
game_list: Optimize game list refresh
2018-11-16file_sys/errors: Remove currently unused filesystem error codesLioncash
Rather than keeping around unused values, we can just introduce them as needed.
2018-11-16file_sys/errors: Get rid of the ErrCodes namespaceLioncash
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.
2018-11-16file_sys/errors: Extract FS-related error codes to file_sys/errors.hLioncash
Keeps filesystem-related error codes in one spot.
2018-11-15Merge pull request #1618 from DarkLordZach/dump-nsobunnei
patch_manager: Add support for dumping uncompressed NSOs
2018-11-13Merge pull request #1608 from DarkLordZach/save-data-readerbunnei
[ns|fsp_srv]: Implement various functions to boot Checkpoint
2018-11-01file_sys: Use common KeyManager in NCA container typesZach Hilman
Creates a single KeyManager for the entire container and then passes it into the NCA constructor, eliminating several unnecessary KeyManager reads.
2018-11-01content_archive: Add optional KeyManager parameter to constructorZach Hilman
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.
2018-10-30general: Remove unused boost inclusions where applicableLioncash
Cleans up unused includes and trims off some dependencies on externals.
2018-10-30global: Use std::optional instead of boost::optional (#1578)Frederic L
* 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
2018-10-29ns: Implement command 400: GetApplicationControlDataZach Hilman
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.
2018-10-29patch_manager: Add support for dumping decompressed NSOsZach Hilman
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.
2018-10-29bis_factory: Add getter for mod dump root for a title IDZach Hilman
Equates to yuzu_dir/dump/<title id>/
2018-10-29savedata_factory: Expose accessors for SaveDataSpaceZach Hilman
2018-10-29control_metadata: Add GetRawBytes function to NACPZach Hilman
Returns the raw bytes of the NACP file. Needed for GetApplicationControlData which returns the raw, unprocessed NACP to the game.
2018-10-28file_sys/patch_manager: Remove unnecessary if-statements (#1586)Frederic L
* remove unnecessary if-statements * Addressed feedback
2018-10-26Merge pull request #1430 from DarkLordZach/remove-promote-dirbunnei
vfs: Remove InterpretAsDirectory and related functions
2018-10-25ips_layer: Use rle_size instead of data_size in RLE patch applicationZach Hilman
Prevents a potential bug when using RLE records in an IPS patch.
2018-10-24vfs: Handle failure of file reading within VfsRawCopy()Lioncash
Also gets rid of an unused variable.
2018-10-23Merge pull request #1515 from DarkLordZach/dlc-lfsbunnei
patch_manager: Add support for LayeredFS on DLC RomFS
2018-10-19vfs: Remove InterpretAsDirectory and related functionsZach Hilman
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.
2018-10-18Merge pull request #1511 from lioncash/contentbunnei
content_archive: Minor reorganization changes
2018-10-18Merge pull request #1510 from lioncash/xcibunnei
XCI: Add function for checking the existence of the program NCA
2018-10-17qt: Add support for dumping a DLC Data RomFSZach Hilman
2018-10-17Merge pull request #1509 from DarkLordZach/device-save-databunnei
savedata_factory: Add DeviceSaveData and fix TemporaryStorage
2018-10-17registered_cache: Deduplicate results of ListEntry and ListEntryFilterZach Hilman
Prevents a Entry from appearing in the list twice if the user has it installed in two places (e.g. User NAND and SDMC)
2018-10-17patch_manager: Add support for using LayeredFS with DataZach Hilman
2018-10-16content_archive: Simpify assignment of bktr_base_romfs in the constructorLioncash
std::move doesn't actually dereference the data, so it doesn't matter whether or not the type is null.
2018-10-16content_archive: Make IsValidNCA() an internally linked functionLioncash
This is only ever used within the cpp file, so it can just be an internal function.
2018-10-16content_archive: Simplify rights ID checkLioncash
This is the same as using std::any_of with an inverted predicate.
2018-10-16content_archive: Split loading into separate functionsLioncash
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.
2018-10-16content_archive: Pass and take NCASectionHeader instance by referenceLioncash
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.
2018-10-16XCI: Add function for checking the existence of the program NCALioncash
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.
2018-10-16Merge pull request #1443 from DarkLordZach/lower-loader-logs-1bunnei
content_archive/patch_manager: Lower log levels to eliminate some unnecessary logs
2018-10-16savedata_factory: Add TemporaryStorage SaveDataSpaceIdZach Hilman
Required for TemporaryStorage saves (in addition to SaveDataType)
2018-10-16savedata_factory: Add support for DeviceSaveDataZach Hilman
Uses the same path as SaveData except with UID 0. Adds a warning if UID is not 0.
2018-10-16file_sys/registered_cache: Use unique_ptr and regular pointers instead of ↵Lioncash
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.
2018-10-15file_sys/control_metadata: Get rid of magic constantsLioncash
These are just the size of the data being passed in, so we can specify that via the size() member function.
2018-10-14aoc: Read DLC base title ID from RegisteredCacheZach Hilman
Falls back to title ID + 0x1000, which is what HOS does.
2018-10-12patch_manager: Move non-Program RomFS patch log to DebugZach Hilman
Normal Program-type patches will still be logged to aid in debugging, but for others (mainly Control), it was moved to Debug.
2018-10-12content_archive: Move get key log to Trace levelZach Hilman
Avoids printing live keys in the general log.