aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys
AgeCommit message (Collapse)Author
2018-12-04Merge pull request #1704 from DarkLordZach/oss-sysarchivebunnei
file_sys: Implement open source system archives
2018-12-04Merge pull request #1838 from lioncash/dedupbunnei
file_sys/registered_cache: Eliminate variable shadowing
2018-12-03Merge pull request #1835 from lioncash/cache-globalbunnei
filesystem: De-globalize registered_cache_union
2018-12-01file_sys/registered_cache: Eliminate variable shadowingLioncash
Also inverts if statements where applicable to allow unindenting code a little bit.
2018-12-01filesystem: De-globalize registered_cache_unionLioncash
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.
2018-11-30file_sys: Override missing mutating functions to be stubbed out for ↵Lioncash
ReadOnlyVfsDirectory by default Ensures that read only indeed means read only.
2018-11-30service/fsp_srv: Implement CleanDirectoryRecursivelyLioncash
This is the same behavior-wise as DeleteDirectoryRecursively, with the only difference being that it doesn't delete the top level directory in the hierarchy, so given: root_dir/ - some_dir/ - File.txt - OtherFile.txt The end result is just: root_dir/
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-22file_sys: Implement system archive synthesizer for NgWord (806)Zach Hilman
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-15file_sys: Add framework for synthesizing open source archivesZach Hilman
2018-11-15vfs_vector: Add VFS backend for std::arrayZach Hilman
Allows using constexpr/static const data with VFS.
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.