aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys
AgeCommit message (Collapse)Author
2018-12-27savedata_factory: Partially implement IVFC save sizes using filesZach Hilman
This stores a file in the save directory called '.yuzu_save_size' which stores the two save sizes (normal area and journaled area) sequentially as u64s.
2018-12-27control_metadata: Update NACP fields with latest Switchbrew dataZach Hilman
2018-12-27control_metadata: Use value member instead of unique_ptr to store structZach Hilman
Serves no actual purpose in this instance besides making NACP's copy assignment deleted, which is not intended behavior.
2018-12-27vfs: Add reinterpret_casts to WriteArray and ObjectZach Hilman
Allows these functions to compile when T is not u8.
2018-12-21kernel/process: Hook up the process capability parser to the process itselfLioncash
While we're at it, we can also toss out the leftover capability parsing from Citra.
2018-12-19Fixed uninitialized memory due to missing returns in canaryDavid Marcec
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
2018-12-11patch_manager: Prevent use of a dangling pointer within PatchRomFSLioncash
fmt::format() returns a std::string instance by value, so calling .c_str() on it here is equivalent to doing: auto* ptr = std::string{}.c_str(); The data being pointed to isn't guaranteed to actually be valid anymore after that expression ends. Instead, we can just take the string as is, and provide the necessary formatting parameters.
2018-12-10Merge pull request #1846 from lioncash/dirbunnei
file_sys/directory: Amend path buffer size for directory entries
2018-12-10Merge pull request #1819 from DarkLordZach/disable-addonsbunnei
patch_manager: Add support for disabling patches
2018-12-10Merge pull request #1885 from lioncash/data_idbunnei
file_sys/save_data_factory: Update SaveDataSpaceId enum
2018-12-07file_sys/save_data_factory: Update SaveDataSpaceId enumLioncash
Amends it with missing values deduced from RE (ProperSystem being from SwitchBrew for naming) (SdCardUser wasn't that difficult to discern given it's used alongside SdCardSystem when creating the save data indexer, based off the usage of the string "saveDataIxrDbSd" nearby).
2018-12-07savedata_factory: Add support for CacheStorageZach Hilman
2018-12-06savedata_factory: Delete TemporaryStorage on startupZach Hilman
Mimics hardware behavior.
2018-12-06system_archive: Implement open source NgWord2Zach Hilman
2018-12-05ng_word: Deduplicate use of a constant valueLioncash
We've already given the constant to the vector itself, so we don't need to re-hardcode it in the array.
2018-12-05system_archive: Use a regular function pointer instead of std::function for ↵Lioncash
file-scope system archive array This allows the array to be constexpr. std::function is also allowed to allocate memory, which makes its constructor non-trivial, we definitely don't want to have all of these execute at runtime, taking up time before the application can actually load.
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-03patch_manager: Obey disabled add-ons list when patching gameZach Hilman
2018-12-03Merge pull request #1835 from lioncash/cache-globalbunnei
filesystem: De-globalize registered_cache_union
2018-12-02file_sys/directory: Amend path buffer size for directory entriesLioncash
The path buffer is actually 0x301 (769) characters in length, with the extra character being intended for the null-terminator.
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>/