Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | xts_archive: Check if the file is nullptr prior to parsing | Morph | 2020-07-29 | 1 | -5/+9 |
| | | | | Fixes an access violation where the file no longer exists at the specified path while being parsed. | ||||
* | registered_cache: Add support for removing folder ncas | Morph | 2020-07-29 | 2 | -53/+54 |
| | |||||
* | Merge pull request #4309 from Morph1984/fix-romfs-bug | bunnei | 2020-07-17 | 4 | -10/+10 |
|\ | | | | | fs: Fix RomFS building when zero byte files are present | ||||
| * | fs: Fix RomFS building when zero byte files are present | Morph | 2020-07-12 | 4 | -10/+10 |
| | | | | | | | | | | | | When zero byte files are present, the key (offset) for that file is identical to the file right after. A std::map isn't able to fit key-value pairs with identical keys (offsets), therefore, the solution is to use std::multimap which permits multiple entries with the same key. This most prominently fixes Pokemon Sword and Shield weather with any RomFS mod applied. | ||||
* | | Check for empty section0 and CNMT prior to install | Morph | 2020-07-16 | 1 | -3/+19 |
| | | |||||
* | | clang format | Morph | 2020-07-15 | 1 | -3/+3 |
| | | |||||
* | | Use proper install result when overwriting files | Morph | 2020-07-15 | 1 | -1/+1 |
| | | |||||
* | | Remove global system instance and address feedback | Morph | 2020-07-15 | 2 | -14/+10 |
| | | |||||
* | | registered_cache: Remove previous update/dlc if it exists on install | Morph | 2020-07-15 | 2 | -13/+83 |
| | | | | | | | | - This checks for and removes old updates or dlc based on title id. If a content meta nca exists within the registered cache, it will attempt to remove all the ncas associated with the content meta before installing a new update/dlc | ||||
* | | Merge pull request #4282 from Morph1984/fs-size | bunnei | 2020-07-14 | 2 | -11/+16 |
|\ \ | | | | | | | filesystem: Set various NAND partition sizes to their defaults | ||||
| * | | bis_factory: Set User NAND free space to be 1 MiB less than total. | Morph | 2020-07-10 | 1 | -1/+3 |
| | | | |||||
| * | | sdmc_factory: Set the SDMC total size to 1 TiB | Morph | 2020-07-10 | 1 | -1/+3 |
| | | | | | | | | | | | | We should not be limited by the SDMC's partition size, set this to 1 TiB. Hardware is limited to the max allowed by the MBR partition table which is 2 TiB. | ||||
| * | | bis_factory: Use hardware default NAND partition sizes | Morph | 2020-07-10 | 1 | -10/+11 |
| |/ | | | | | | | | | | | Sets the total space of user and system partitions to their hardware defaults. Furthermore, return the total space as free space for the user partition to prevent it from reaching zero. Some games like Bioshock 2 check for the available free space prior to save creation, and we should not be limited by arbitrary limits. | ||||
* / | vfs_real: Fix MoveFile | Morph | 2020-07-10 | 1 | -10/+17 |
|/ | | | | | | The file wasn't closed prior to being renamed / moved, throwing an error that states "The process cannot access the file because it is being used by another process." Fix this by closing the file prior to a rename / move operation. Fixes saving in Luigi's Mansion 3 and KATANA KAMI: A Way of the Samurai Story. | ||||
* | key_manager: Correct casing of instance() | Lioncash | 2020-07-01 | 7 | -7/+7 |
| | | | | Our codebase uppercases member function names. | ||||
* | Merge pull request #3967 from FearlessTobi/keys-singleton | David | 2020-07-01 | 10 | -18/+16 |
|\ | | | | | crypto: Make KeyManager a singleton class | ||||
| * | crypto: Make KeyManager a singleton class | FearlessTobi | 2020-05-20 | 10 | -18/+16 |
| | | | | | | | | | | | | Previously, we were reading the keys everytime a KeyManager object was created, causing yuzu to reread the keys file multiple hundreds of times when loading the game list. With this change, it is only loaded once. On my system, this decreased game list loading times by a factor of 20. | ||||
* | | Merge pull request #4099 from MerryMage/macOS-build | bunnei | 2020-06-20 | 1 | -1/+1 |
|\ \ | | | | | | | Fix compilation on macOS | ||||
| * | | shared_font: Service::NS::EncryptSharedFont takes a size_t& | MerryMage | 2020-06-18 | 1 | -1/+1 |
| | | | |||||
* | | | mii_model: Remove redundant std::move | MerryMage | 2020-06-19 | 1 | -1/+1 |
|/ / | | | | | | | Named return value optimization automatically applies here. | ||||
* | | Make copying directory string more concise | lat9nq | 2020-05-28 | 1 | -2/+1 |
| | | |||||
* | | Address requested changes | lat9nq | 2020-05-28 | 2 | -4/+4 |
| | | |||||
* | | *nix systems can read any-case patch directories | lat9nq | 2020-05-28 | 2 | -8/+32 |
| | | | | | | | | | | | | Changes many patch_manager functions to use a case-less variant of GetSubdirectory. Fixes patches not showing up on *nix systems when patch directories are named with odd cases, i.e. `exeFS'. | ||||
* | | Merge pull request #3946 from ogniK5377/sysverdat-10-0-2 | bunnei | 2020-05-21 | 1 | -7/+7 |
|\ \ | | | | | | | file_sys: Update SystemVersion archive to version 10.0.2 | ||||
| * | | file_sys: Update SystemVersion archive to version 10.0.2 | David Marcec | 2020-05-16 | 1 | -7/+7 |
| |/ | |||||
* | | file_sys: savefata_factory: Update to support DeviceSaveData. | bunnei | 2020-05-11 | 1 | -3/+6 |
| | | |||||
* | | file_sys: control_metadata: Expose device_save_data_size. | bunnei | 2020-05-11 | 2 | -0/+5 |
|/ | |||||
* | file_sys: program_metadata: Add a helper function for generating reasonable default metadata. | bunnei | 2020-04-21 | 2 | -1/+16 |
| | | | | - We need this for homebrew process initialization. | ||||
* | core: memory: Move to Core::Memory namespace. | bunnei | 2020-04-17 | 2 | -6/+6 |
| | | | | - helpful to disambiguate Kernel::Memory namespace. | ||||
* | CMakeLists: Specify -Wextra on linux builds | Lioncash | 2020-04-16 | 3 | -12/+18 |
| | | | | | | | | | | | Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well. | ||||
* | file_sys: patch_manager: Return early when there are no layers to apply. | bunnei | 2020-04-14 | 1 | -0/+6 |
| | |||||
* | file_sys: fix LayeredFS error when loading some games made with… (#3602) | enler | 2020-04-07 | 1 | -1/+2 |
| | | | * fix LayeredFS error when loading some games made with the Unity | ||||
* | Revert "system_archive: Fix Korean and Chinese fonts" | bunnei | 2020-01-31 | 5 | -880167/+27164 |
| | |||||
* | Merge pull request #3151 from FearlessTobi/fix-korean | bunnei | 2020-01-30 | 5 | -27164/+880167 |
|\ | | | | | system_archive: Fix Korean and Chinese fonts | ||||
| * | Disable clang-format for font files | FearlessTobi | 2020-01-24 | 3 | -0/+6 |
| | | |||||
| * | system_archive: Fix Chinese font | FearlessTobi | 2020-01-19 | 2 | -13582/+694524 |
| | | | | | | | | Adds the proper OSS font for the Chinese language. | ||||
| * | system_archive: Fix Korean font | FearlessTobi | 2020-01-19 | 2 | -13582/+185637 |
| | | | | | | | | Fixes Korean fonts when using Open-source system archives. | ||||
* | | system_archive: Add a basic HLE implementation for time zone binary. | bunnei | 2020-01-04 | 3 | -1/+673 |
|/ | |||||
* | Merge pull request #3171 from lioncash/internal-link | bunnei | 2019-11-28 | 2 | -6/+5 |
|\ | | | | | filesys/romfs: Make ProcessFile and ProcessDirectory internally linked | ||||
| * | filesys/romfs: Remove unused includes | Lioncash | 2019-11-27 | 2 | -4/+2 |
| | | | | | | | | | | These inclusions aren't used at all within the public interface, so they can be removed. | ||||
| * | filesys/romfs: Make ProcessFile and ProcessDirectory internally linked | Lioncash | 2019-11-27 | 1 | -2/+3 |
| | | | | | | | | | | These functions aren't used outside of this file, so we can place them within an anonymous namespace. | ||||
* | | patch_manager: Adds check for disabled cheats to prevent them from being enabled (#3178) | Morph | 2019-11-28 | 1 | -5/+11 |
| | | | | | | | | | | | | * Adds check for disabled cheats to prevent them from being added to the CheatList * Address feedback | ||||
* | | file_sys/directory: Make EntryType an enum class | Lioncash | 2019-11-27 | 1 | -1/+1 |
|/ | | | | | This can trivially be an enum class rather than a regular enum, making it more strongly typed. | ||||
* | Merge pull request #3091 from lioncash/core-conversion | bunnei | 2019-11-15 | 7 | -18/+16 |
|\ | | | | | core: Make most implicit type conversion warnings errors on MSVC | ||||
| * | loader; Resolve sign conversion/truncation errors | Lioncash | 2019-11-12 | 3 | -6/+6 |
| | | |||||
| * | file_sys: Resolve sign conversion warnings | Lioncash | 2019-11-12 | 4 | -12/+10 |
| | | | | | | | | Resolves a few trivial sign conversion/mismatch errors. | ||||
* | | Merge pull request #3093 from lioncash/mbedtls | bunnei | 2019-11-14 | 2 | -6/+6 |
|\ \ | | | | | | | core: Migrate off deprecated mbedtls functions | ||||
| * | | core: Migrate off deprecated mbedtls functions | Lioncash | 2019-11-12 | 2 | -6/+6 |
| |/ | | | | | | | | | These functions are marked for deprecation and it's recommended that the *_ret variants be used instead. | ||||
* / | xts_archive: Remove redundant std::string constructor | Lioncash | 2019-11-13 | 1 | -2/+1 |
|/ | | | | | We can just call the .data() member of path instead of constructing a completely new string. | ||||
* | common_func: Use std::array for INSERT_PADDING_* macros. | bunnei | 2019-11-04 | 2 | -30/+28 |
| | | | | - Zero initialization here is useful for determinism. | ||||
* | savedata_factory: Automatically create certain savedata | Zach Hilman | 2019-10-22 | 1 | -0/+12 |
| | | | | | After further hardware investigation, it appears that some games, perhaps those more lazily coded, will not call EnsureSaveData, meaning that they expect the normal (current) save to be automatically made. Additionally, some games do not create a cache or temporary save before use. In these 3 specific instances, the save is created automatically for the game if it doesn't exist. | ||||
* | Merge pull request #2897 from DarkLordZach/oss-ext-fonts-1 | bunnei | 2019-10-14 | 15 | -5/+73410 |
|\ | | | | | pl_u: Move open source font archives and fix NAND error | ||||
| * | pl_u: Fix mismatched rebase size error in font encryption | Zach Hilman | 2019-10-13 | 1 | -8/+6 |
| | | |||||
| * | pl_u: Use kernel physical memory | Zach Hilman | 2019-10-13 | 1 | -4/+7 |
| | | |||||
| * | pl_u: Use OSS system archives if real archives don't exist | Zach Hilman | 2019-10-13 | 1 | -2/+1 |
| | | |||||
| * | system_archive: Synthesize shared fonts system archives | Zach Hilman | 2019-10-13 | 3 | -5/+101 |
| | | |||||
| * | externals: Move OSS font data to file_sys in core | Zach Hilman | 2019-10-13 | 12 | -0/+73309 |
| | | |||||
* | | Merge pull request #2930 from DarkLordZach/gamecard-partitions | bunnei | 2019-10-14 | 4 | -26/+128 |
|\ \ | |/ |/| | file_sys: Add code to access raw gamecard partitions and lazily load them | ||||
| * | card_image: Implement system update commands in XCI | Zach Hilman | 2019-10-13 | 2 | -3/+37 |
| | | |||||
| * | card_image: Add accessors for raw partitions in XCI | Zach Hilman | 2019-09-23 | 2 | -0/+36 |
| | | |||||
| * | card_image: Lazily load partitions in XCI | Zach Hilman | 2019-09-23 | 2 | -26/+41 |
| | | |||||
| * | pfs: Provide accessors for file sizes and offsets | Zach Hilman | 2019-09-23 | 2 | -0/+17 |
| | | |||||
* | | core: Remove Core::CurrentProcess() | Lioncash | 2019-10-06 | 1 | -2/+3 |
| | | | | | | | | | | | | This only encourages the use of the global system instance (which will be phased out long-term). Instead, we use the direct system function call directly to remove the appealing but discouraged short-hand. | ||||
* | | hle/service: Replace global system instance calls with instance-based ones | Lioncash | 2019-10-06 | 2 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | Migrates the HLE service code off the use of directly accessing the global system instance where trivially able to do so. This removes all usages of Core::CurrentProcess from the service code, only 8 occurrences of this function exist elsewhere. There's still quite a bit of "System::GetInstance()" being used, however this was able to replace a few instances. | ||||
* | | bcat: Implement DeliveryCacheProgressImpl structure | Zach Hilman | 2019-09-30 | 1 | -4/+4 |
| | | | | | | Huge thanks to lioncash for re-ing this for me. | ||||
* | | boxcat: Use Etag header names for file digest | Zach Hilman | 2019-09-30 | 1 | -14/+10 |
| | | |||||
* | | filesystem: Add getter for BCAT temporary directory | Zach Hilman | 2019-09-30 | 2 | -0/+7 |
| | | |||||
* | | vfs: Add function to extract ZIP file into virtual filesystem | Zach Hilman | 2019-09-30 | 2 | -0/+96 |
|/ | |||||
* | Revert "Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1" | David Marcec | 2019-09-22 | 15 | -73412/+5 |
| | | | | | This reverts commit fa1c60c33ef88c6cd0b72da46842dc9098db712d, reversing changes made to e34899067b60a69bca02761bd1290c6824bb559a. | ||||
* | Merge pull request #2535 from DarkLordZach/cheat-v2 | David | 2019-09-22 | 4 | -743/+21 |
|\ | | | | | cheat_engine: Use Atmosphere's Cheat VM and fix cheat crash | ||||
| * | dmnt_cheat_vm: Default initialize structure values | Zach Hilman | 2019-09-22 | 1 | -2/+1 |
| | | |||||
| * | patch_manager: Update cheat parsing for new VM | Zach Hilman | 2019-09-22 | 2 | -15/+20 |
| | | |||||
| * | cheat_engine: Move to memory and strip VM | Zach Hilman | 2019-09-22 | 2 | -726/+0 |
| | | | | | | This is to go with the Atmosphere VM port, now it just contains the callbacks needed for the interface between DmntCheatVm and yuzu, along with the cheat parsers. | ||||
* | | Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1 | David | 2019-09-22 | 15 | -5/+73412 |
|\ \ | |/ |/| | system_archive: Move shared font data to system_archive and fix extended font data | ||||
| * | pl_u: Use kernel physical memory | Zach Hilman | 2019-09-22 | 1 | -4/+7 |
| | | |||||
| * | pl_u: Use OSS system archives if real archives don't exist | Zach Hilman | 2019-09-22 | 1 | -2/+1 |
| | | |||||
| * | system_archive: Synthesize shared fonts system archives | Zach Hilman | 2019-09-22 | 3 | -5/+101 |
| | | |||||
| * | externals: Move OSS font data to file_sys in core | Zach Hilman | 2019-09-22 | 12 | -0/+73309 |
| | | |||||
* | | configure_debug: Move reporting option to logging | Zach Hilman | 2019-09-22 | 1 | -4/+4 |
| | | |||||
* | | filesystem: Add const qualification to various accessors | Zach Hilman | 2019-09-21 | 6 | -12/+15 |
| | | |||||
* | | yuzu: Port old usages of Filesystem namespace to FilesystemController | Zach Hilman | 2019-09-21 | 3 | -11/+25 |
| | | |||||
* | | card_image: Add accessors for gamecard certificate | Zach Hilman | 2019-09-21 | 2 | -0/+9 |
| | | | | | | | | Used by fsp-srv/IDeviceOperator | ||||
* | | card_image: Add functions to query gamecard update partition | Zach Hilman | 2019-09-21 | 2 | -0/+24 |
| | | | | | | | | Includes version and meta title ID, used by fsp-srv/IDeviceOperator | ||||
* | | content_archive: Add accessors for Rights ID and SDK Version | Zach Hilman | 2019-09-21 | 2 | -0/+10 |
| | | |||||
* | | sdmc_factory: Add SD Card size getters | Zach Hilman | 2019-09-21 | 2 | -0/+12 |
| | | |||||
* | | bis_factory: Add getters for NAND partition sizes | Zach Hilman | 2019-09-21 | 2 | -0/+38 |
| | | |||||
* | | submisson_package: Fix edge case with improperly sized filenames | Zach Hilman | 2019-09-21 | 1 | -1/+2 |
| | | | | | | Prevents a crash if the filename is less than 9 characters long. | ||||
* | | sdmc_factory: Add accessor for SDMC Album directory | Zach Hilman | 2019-09-21 | 2 | -0/+6 |
| | | |||||
* | | sdmc_factory: Add accessor for SDMC PlaceholderCache | Zach Hilman | 2019-09-21 | 2 | -1/+10 |
| | | |||||
* | | sdmc_factory: Add accessor for content directory | Zach Hilman | 2019-09-21 | 2 | -0/+7 |
| | | |||||
* | | savedata_factory: Implement savedata creation and don't create dir on open | Zach Hilman | 2019-09-21 | 2 | -26/+40 |
| | | | | | | Matches hardware behavior and eliminates some nasty behavior we were doing that wasn't hw-accurate at all. | ||||
* | | patch_manager: Add short-circuit edge-case to GetPatchVersionNames | Zach Hilman | 2019-09-21 | 1 | -0/+2 |
| | | | | | | If title ID is 0, there are no add ons, prevents wasting time looking for them. | ||||
* | | patch_manager: Add error checking to load dir to prevent crashes | Zach Hilman | 2019-09-21 | 1 | -0/+15 |
| | | | | | | Prevents a crash if the load dir would be nullptr, instead logs an error and returns appropriately. | ||||
* | | registered_cache: Process *.cnmt.nca files | Zach Hilman | 2019-09-21 | 1 | -16/+23 |
| | | | | | | Needed to use the RegisteredCache/PlaceholderCache on gamecards. | ||||
* | | registered_cache: Implement PlaceholderCache to manage placeholder and installing content | Zach Hilman | 2019-09-21 | 2 | -0/+175 |
| | | |||||
* | | bis_factory: Fix mod loader edge-case with homebrew title IDs | Zach Hilman | 2019-09-21 | 1 | -1/+1 |
| | | | | | | Fixes a bug where homebrew that has a title ID with the update bit set can cause issues with the PatchManager | ||||
* | | bis_factory: Add accessors for BIS placeholder caches | Zach Hilman | 2019-09-21 | 2 | -1/+20 |
| | | |||||
* | | bis_factory: Add accessor for NAND Image Directory | Zach Hilman | 2019-09-21 | 2 | -0/+6 |
| | | |||||
* | | bis_factory: Add accessors for BIS content directories | Zach Hilman | 2019-09-21 | 2 | -0/+11 |
| | | |||||
* | | bis_factory: Add accessors for BIS partitions | Zach Hilman | 2019-09-21 | 2 | -0/+61 |
|/ | |||||
* | Merge pull request #2576 from DarkLordZach/nsp-fix-1 | David | 2019-09-21 | 1 | -0/+26 |
|\ | | | | | nsp: Fix various errors with loading and processing of extracted NSPs | ||||
| * | nsp: Correct status codes for extracted NSPs | Zach Hilman | 2019-06-10 | 1 | -0/+5 |
| | | | | | | | | Avoids all extracted NSPs being marked as error file type because they don't have program NCAs. | ||||
| * | nsp: Use title ID from NPDM metadata for extracted type NSPs | Zach Hilman | 2019-06-10 | 1 | -0/+21 |
| | | | | | | | | Avoids 0 being used as title ID for all extracted NSPs. | ||||
* | | Merge pull request #2707 from DarkLordZach/oss-miimodel | David | 2019-09-05 | 3 | -1/+61 |
|\ \ | | | | | | | system_archive: Add open-source reimplementation of MiiModel data | ||||
| * | | system_archive: Add open-source reimplementation of MiiModel data | Zach Hilman | 2019-07-10 | 3 | -1/+61 |
| | | | |||||
* | | | Implement MapPhysicalMemory/UnmapPhysicalMemory | Michael Scire | 2019-07-07 | 2 | -1/+7 |
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements svcMapPhysicalMemory/svcUnmapPhysicalMemory for Yuzu, which can be used to map memory at a desired address by games since 3.0.0. It also properly parses SystemResourceSize from NPDM, and makes information available via svcGetInfo. This is needed for games like Super Smash Bros. and Diablo 3 -- this PR's implementation does not run into the "ASCII reads" issue mentioned in the comments of #2626, which was caused by the following bugs in Yuzu's memory management that this PR also addresses: * Yuzu's memory coalescing does not properly merge blocks. This results in a polluted address space/svcQueryMemory results that would be impossible to replicate on hardware, which can lead to game code making the wrong assumptions about memory layout. * This implements better merging for AllocatedMemoryBlocks. * Yuzu's implementation of svcMirrorMemory unprotected the entire virtual memory range containing the range being mirrored. This could lead to games attempting to map data at that unprotected range/attempting to access that range after yuzu improperly unmapped it. * This PR fixes it by simply calling ReprotectRange instead of Reprotect. | ||||
* | | file_sys: Rename other ContentRecordType members | Bakugo | 2019-07-02 | 2 | -3/+3 |
| | | |||||
* | | file_sys/registered_cache: Improve missing metadata error | Bakugo | 2019-07-01 | 1 | -2/+2 |
| | | | | | | | | This can happen when installing NSPs too, not just XCIs. | ||||
* | | file_sys/submission_package: Don't warn about missing DeltaFragment NCAs | Bakugo | 2019-07-01 | 1 | -4/+7 |
| | | | | | | | | DeltaFragments are not useful to us and are often not included in patch NSPs. | ||||
* | | file_sys/registered_cache: Ignore DeltaFragment NCAs during installation | Bakugo | 2019-07-01 | 1 | -0/+3 |
| | | | | | | | | DeltaFragments are only used to download and apply partial patches on a real console, and are not useful to us at all. Most patch NSPs do not include them, and when they do, it's a waste of space to install them. | ||||
* | | file_sys: Rename ContentRecordType::Patch to DeltaFragment | Bakugo | 2019-07-01 | 1 | -1/+1 |
| | | | | | | | | Avoids potential confusion, since patches and DeltaFragments are not the same thing. Actual full patches are listed under the Program type. | ||||
* | | glue: Correct missing bytes in ApplicationLaunchParameter | Zach Hilman | 2019-06-26 | 2 | -7/+10 |
| | | |||||
* | | registered_cache: Add getter to determine source slot in content provider union | Zach Hilman | 2019-06-25 | 2 | -0/+17 |
| | | | | | | | | Used to determine StorageId source for application data. | ||||
* | | patch_manager: Add getter for title version | Zach Hilman | 2019-06-25 | 2 | -2/+14 |
| | | |||||
* | | Merge pull request #2546 from DarkLordZach/kips | bunnei | 2019-06-21 | 4 | -0/+347 |
|\ \ | | | | | | | loader, file_sys: Add support for parsing and loading KIP (Kernel Internal Process) files | ||||
| * | | kernel_executable: Optimize BLZ decompression | Zach Hilman | 2019-06-07 | 1 | -6/+5 |
| | | | |||||
| * | | game_list: Accept *.kip as a file extension of executables | Zach Hilman | 2019-06-05 | 1 | -1/+1 |
| | | | |||||
| * | | program_metadata: Add function to load meta from raw parameters | Zach Hilman | 2019-06-05 | 2 | -0/+20 |
| | | | | | | | | | | | | Needed for KIP loading as KIPs do not have an NPDM but do have the essential parts of the data within. | ||||
| * | | file_sys: Add classes to parse KIP1 and INI1 files | Zach Hilman | 2019-06-05 | 2 | -0/+328 |
| | | | |||||
* | | | Update content_archive.cpp | jonsn0w | 2019-06-20 | 1 | -2/+2 |
| | | | | | | | | | log clutter in debug logs when theres really no need | ||||
* | | | Addressed issues | David Marcec | 2019-06-17 | 1 | -1/+1 |
| | | | |||||
* | | | Impl'd IsUserAccountSwitchLocked, SetAudioOutVolume, GetAudioOutVolume & Partial impl of GetAccumulatedSuspendedTickChangedEvent | David Marcec | 2019-06-16 | 2 | -1/+7 |
| | | | | | | | | | | | | IPC-100 was changed to InitializeApplicationInfoOld instead of InitializeApplicationInfo. IPC-150 makes an indentical call to IPC-100 however does extra processing. They should not have the same name as it's quite confusing to debug. | ||||
* | | | Merge pull request #2581 from lioncash/hex | Zach Hilman | 2019-06-15 | 5 | -17/+22 |
|\ \ \ | | | | | | | | | common/hex_util: Combine HexVectorToString() and HexArrayToString() | ||||
| * | | | common/hex_util: Combine HexVectorToString() and HexArrayToString() | Lioncash | 2019-06-12 | 5 | -17/+22 |
| | | | | | | | | | | | | | | | | | | | | | | | | These can be generified together by using a concept type to designate them. This also has the benefit of not making copies of potentially very large arrays. | ||||
* | | | | Merge pull request #2582 from lioncash/reserved | bunnei | 2019-06-14 | 1 | -1/+0 |
|\ \ \ \ | | | | | | | | | | | file_sys/ips_layer: Remove unnecessary reserve() call | ||||
| * | | | | file_sys/ips_layer: Remove unnecessary reserve() call | Lioncash | 2019-06-13 | 1 | -1/+0 |
| |/ / / | | | | | | | | | | | | | | | | | | | | | Given 'replace' is assigned to on the following line, this isn't necessary, given the underlying data is going to be overwritten entirely. | ||||
* | | | | Merge pull request #2577 from lioncash/fs | Zach Hilman | 2019-06-13 | 1 | -17/+29 |
|\ \ \ \ | |/ / / |/| | | | file_sys/card_image: Minor cleanup | ||||
| * | | | file_sys/card_image: Remove obsolete TODO | Lioncash | 2019-06-12 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | We already support Rev 1+. | ||||
| * | | | file_sys/card_image: Deduplicate casts within AddNCAFromPartition() | Lioncash | 2019-06-11 | 1 | -3/+6 |
| | | | | | | | | | | | | | | | | Makes for nicer reading. | ||||
| * | | | file_sys/card_image: Make bracing consistent | Lioncash | 2019-06-11 | 1 | -4/+8 |
| | | | | | | | | | | | | | | | | Makes for more consistent reading. | ||||
| * | | | file_sys/card_image: Assign collapsed NCA contents directly to ncas member | Lioncash | 2019-06-11 | 1 | -3/+1 |
| | | | | | | | | | | | | | | | | Same thing, significantly less noisy. | ||||
| * | | | file_sys/card_image: Deduplicate type cast | Lioncash | 2019-06-11 | 1 | -4/+6 |
| | | | | | | | | | | | | | | | | | | | | Same thing, less duplication. We can also std::move raw into the PartitionFilesystem constructor. | ||||
| * | | | file_sys/card_image: Get rid of a magic number | Lioncash | 2019-06-11 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | We can just use the size of the array to dehardcode it. | ||||
| * | | | file_sys/card_image: Use std::array deduction guides | Lioncash | 2019-06-11 | 1 | -1/+6 |
| | |/ | |/| | | | | | | | Same thing, less code. | ||||
* / | | file_sys/nca_metadata: Update CNMT structures | Lioncash | 2019-06-11 | 1 | -2/+7 |
|/ / | | | | | | | | | Names a few more entries in relevant structures. Information based off SwitchBrew and my own RE. | ||||
* / | Implement IApplicationFunctions::GetDesiredLanguage | Michael Scire | 2019-05-23 | 2 | -0/+5 |
|/ | |||||
* | Merge pull request #1957 from DarkLordZach/title-provider | bunnei | 2019-04-10 | 7 | -174/+307 |
|\ | | | | | file_sys: Provide generic interface for accessing game data | ||||
| * | patch_manager: Dump NSO name with build ID | Zach Hilman | 2019-03-28 | 2 | -5/+6 |
| | | |||||
| * | core: Port current uses of RegisteredCache to ContentProvider | Zach Hilman | 2019-03-27 | 4 | -17/+22 |
| | | |||||
| * | file_sys: Create ContentProvider interface and default implementations | Zach Hilman | 2019-03-27 | 2 | -152/+279 |
| | | |||||
* | | Merge pull request #2340 from lioncash/view | bunnei | 2019-04-06 | 1 | -1/+3 |
|\ \ | | | | | | | file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash | ||||
| * | | file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash() | Lioncash | 2019-04-05 | 1 | -1/+3 |
| | | | | | | | | | | | | | | | The given string instance doesn't need to be copied entirely, we can just use a view instead. | ||||
* | | | Merge pull request #2341 from lioncash/compare | bunnei | 2019-04-06 | 2 | -11/+0 |
|\ \ \ | | | | | | | | | file_sys/nca_metadata: Remove unnecessary comparison operators for TitleType | ||||
| * | | | file_sys/nca_metadata: Remove unnecessary comparison operators for TitleType | Lioncash | 2019-04-05 | 2 | -11/+0 |
| |/ / | | | | | | | | | | | | | | | | enum class elements from the same enum can already be compared against one another without the need for explicitly defined comparison operators. | ||||
* | | | Merge pull request #2339 from lioncash/rank | bunnei | 2019-04-06 | 2 | -5/+14 |
|\ \ \ | | | | | | | | | service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structs | ||||
| * | | | service/fsp_srv: Don't pass SaveDataDescriptor instances by value. | Lioncash | 2019-04-05 | 2 | -2/+2 |
| | | | | | | | | | | | | | | | | | | | | Passing around a 64 byte data struct by value is kind of wasteful, instead pass a reference to the struct. | ||||
| * | | | service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structs | Lioncash | 2019-04-05 | 2 | -3/+12 |
| | |/ | |/| | | | | | | | | | | I realized that I updated the documentation on SwitchBrew a while ago, but never actually updated the structs within yuzu. | ||||
* | | | file_sys/program_metadata: Remove obsolete TODOs | Lioncash | 2019-04-05 | 2 | -15/+14 |
| |/ |/| | | | | | | | | | | | BitField has been trivially copyable since e99a14862841841d74be8d0ea9426c2d23546b5e, so we can eliminate these TODO comments and use ReadObject() directly instead of memcpying the data. | ||||
* | | file_sys/control_metadata: Amend naming of members | Lioncash | 2019-04-04 | 2 | -12/+24 |
|/ | | | | | | | | | | | Quite a bit of these were out of sync with Switchbrew (and in some cases entirely wrong). While we're at it, also expand the section of named members. A segment within the control metadata is used to specify maximum values for the user, device, and cache storage max sizes and journal sizes. These appear to be generally used by the am service (e.g. in CreateCacheStorage, etc). | ||||
* | core/cheat_engine: Make MemoryReadImpl and MemoryWriteImpl internally linked | Lioncash | 2019-03-24 | 1 | -0/+2 |
| | | | | | These don't need to be visible outside of the translation unit, so they can be enclosed within an anonymous namespace. | ||||
* | Merge pull request #2221 from DarkLordZach/firmware-version | bunnei | 2019-03-23 | 4 | -1/+73 |
|\ | | | | | set_sys: Implement GetFirmwareVersion(2) for libnx hosversion | ||||
| * | set_sys: Use official nintendo version string | Zach Hilman | 2019-03-11 | 3 | -8/+18 |
| | | |||||
| * | system_version: Correct sizes on VectorVfsFile construction | Zach Hilman | 2019-03-11 | 1 | -4/+4 |
| | | |||||
| * | set_sys: Implement GetFirmwareVersion(2) for libnx hosversion | Zach Hilman | 2019-03-10 | 3 | -1/+63 |
| | | | | | | Uses the synthesized system archive 9 (SystemVersion) and reports v5.1.0-0.0 | ||||
* | | Merge pull request #2280 from lioncash/nso | bunnei | 2019-03-23 | 1 | -14/+11 |
|\ \ | | | | | | | loader/nso: Minor refactoring | ||||
| * | | file_sys/patch_manager: Deduplicate NSO header | Lioncash | 2019-03-22 | 1 | -14/+8 |
| | | | | | | | | | | | | | | | | | | This source file was utilizing its own version of the NSO header. Instead of keeping this around, we can have the patch manager also use the version of the header that we have defined in loader/nso.h | ||||
| * | | file_sys/patch_manager: Remove two magic values | Lioncash | 2019-03-22 | 1 | -2/+5 |
| | | | | | | | | | | | | These correspond to the NSOBuildHeader. | ||||
* | | | file_sys/cheat_engine: Silence truncation and sign-conversion warnings | Lioncash | 2019-03-22 | 2 | -5/+6 |
| | | | |||||
* | | | file_sys/cheat_engine: Remove use of global system accessors | Lioncash | 2019-03-22 | 4 | -37/+45 |
|/ / | | | | | | | | | Instead, pass in the core timing instance and make the dependency explicit in the interface. | ||||
* | | Merge pull request #1933 from DarkLordZach/cheat-engine | bunnei | 2019-03-22 | 4 | -0/+778 |
|\ \ | | | | | | | file_sys: Implement parser and interpreter for game memory cheats | ||||
| * | | vm_manager: Remove cheat-specific ranges from VMManager | Zach Hilman | 2019-03-05 | 2 | -37/+44 |
| | | | |||||
| * | | cheat_engine: Add parser and interpreter for game cheats | Zach Hilman | 2019-03-05 | 2 | -0/+713 |
| | | | |||||
| * | | patch_manager: Display cheats in game list add-ons | Zach Hilman | 2019-03-05 | 1 | -0/+2 |
| | | | |||||
| * | | patch_manager: Add support for loading cheats lists | Zach Hilman | 2019-03-05 | 2 | -0/+56 |
| |/ | | | | | | | Uses load/<title_id>/<mod_name>/cheats as root dir, file name is all upper or lower hex first 8 bytes build ID. | ||||
* / | file_sys/content_archive: Amend name of Data_Unknown5 enum entry | Lioncash | 2019-03-19 | 2 | -2/+15 |
|/ | | | | While we're at it, give each entry some documentation. | ||||
* | file_sys/vfs_vector: Fix ignored offset on Write | Frederic L | 2019-02-25 | 1 | -1/+1 |
| | |||||
* | Merge pull request #2025 from DarkLordZach/loader-banner-logo | bunnei | 2019-01-20 | 2 | -0/+16 |
|\ | | | | | loader: Add getters for application banner and logo | ||||
| * | content_archive: Add getter for logo section of NCA | Zach Hilman | 2019-01-15 | 2 | -0/+16 |
| | | |||||
* | | file_sys/directory: Remove unused DirectoryBackend class | Lioncash | 2019-01-18 | 1 | -23/+0 |
|/ | | | | This isn't used at all, so we can just get rid of it. | ||||
* | romfs: Add SingleDiscard extraction type | Zach Hilman | 2018-12-28 | 2 | -2/+6 |
| | | | | Needed for manual RomFS extraction, as Full generates an extra directory and Truncated generates variable results. | ||||
* | file_sys/program_metadata: Print out more descriptive address space descriptions | Lioncash | 2018-12-28 | 1 | -3/+7 |
| | | | | | | | Provides extra information that makes it easier to tell if an executable being run is using a 36-bit address space or a 39-bit address space. While we don't support AArch32 executables yet, this also puts in distinguishing information for the 32-bit address space types as well. | ||||
* | Merge pull request #1928 from lioncash/caps | bunnei | 2018-12-27 | 2 | -0/+17 |
|\ | | | | | kernel: Handle kernel capability descriptors | ||||
| * | kernel/process: Hook up the process capability parser to the process itself | Lioncash | 2018-12-21 | 2 | -0/+17 |
| | | | | | | | | | | While we're at it, we can also toss out the leftover capability parsing from Citra. | ||||
* | | am: Implement GetSaveDataSize and ExtendSaveData | Zach Hilman | 2018-12-27 | 3 | -3/+3 |
| | | | | | | These functions come in a pair and are needed by Smash Ultimate, Minecraft, and Skyrim, amongst others. | ||||
* | | savedata_factory: Partially implement IVFC save sizes using files | Zach Hilman | 2018-12-27 | 2 | -0/+38 |
| | | | | | | 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. | ||||
* | | control_metadata: Update NACP fields with latest Switchbrew data | Zach Hilman | 2018-12-27 | 2 | -6/+29 |
| | | |||||
* | | control_metadata: Use value member instead of unique_ptr to store struct | Zach Hilman | 2018-12-27 | 2 | -10/+13 |
| | | | | | | Serves no actual purpose in this instance besides making NACP's copy assignment deleted, which is not intended behavior. | ||||
* | | vfs: Add reinterpret_casts to WriteArray and Object | Zach Hilman | 2018-12-27 | 1 | -2/+2 |
| | | | | | | Allows these functions to compile when T is not u8. | ||||
* | | Fixed uninitialized memory due to missing returns in canary | David Marcec | 2018-12-19 | 1 | -0/+1 |
|/ | | | | Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used. | ||||
* | patch_manager: Prevent use of a dangling pointer within PatchRomFS | Lioncash | 2018-12-11 | 1 | -4/+3 |
| | | | | | | | | | | | 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. | ||||
* | Merge pull request #1846 from lioncash/dir | bunnei | 2018-12-11 | 1 | -2/+2 |
|\ | | | | | file_sys/directory: Amend path buffer size for directory entries | ||||
| * | file_sys/directory: Amend path buffer size for directory entries | Lioncash | 2018-12-03 | 1 | -2/+2 |
| | | | | | | | | | | The path buffer is actually 0x301 (769) characters in length, with the extra character being intended for the null-terminator. | ||||
* | | Merge pull request #1819 from DarkLordZach/disable-addons | bunnei | 2018-12-11 | 2 | -11/+50 |
|\ \ | | | | | | | patch_manager: Add support for disabling patches | ||||
| * | | patch_manager: Obey disabled add-ons list when patching game | Zach Hilman | 2018-12-03 | 2 | -11/+50 |
| | | | |||||
* | | | Merge pull request #1885 from lioncash/data_id | bunnei | 2018-12-11 | 1 | -1/+3 |
|\ \ \ | | | | | | | | | file_sys/save_data_factory: Update SaveDataSpaceId enum | ||||
| * | | | file_sys/save_data_factory: Update SaveDataSpaceId enum | Lioncash | 2018-12-08 | 1 | -1/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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). | ||||
* | | | | savedata_factory: Add support for CacheStorage | Zach Hilman | 2018-12-07 | 1 | -0/+2 |
| | | | | |||||
* | | | | savedata_factory: Delete TemporaryStorage on startup | Zach Hilman | 2018-12-07 | 1 | -1/+5 |
| | | | | | | | | | | | | | | | | Mimics hardware behavior. | ||||
* | | | | system_archive: Implement open source NgWord2 | Zach Hilman | 2018-12-06 | 3 | -1/+41 |
|/ / / | |||||
* | | | ng_word: Deduplicate use of a constant value | Lioncash | 2018-12-05 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | We've already given the constant to the vector itself, so we don't need to re-hardcode it in the array. | ||||
* | | | system_archive: Use a regular function pointer instead of std::function for file-scope system archive array | Lioncash | 2018-12-05 | 1 | -3/+2 |
| | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | | | Merge pull request #1704 from DarkLordZach/oss-sysarchive | bunnei | 2018-12-05 | 6 | -1/+213 |
|\ \ \ | | | | | | | | | file_sys: Implement open source system archives | ||||
| * | | | file_sys: Implement system archive synthesizer for NgWord (806) | Zach Hilman | 2018-11-23 | 5 | -6/+61 |
| | | | | |||||
| * | | | file_sys: Add framework for synthesizing open source archives | Zach Hilman | 2018-11-16 | 2 | -0/+105 |
| | | | | |||||
| * | | | vfs_vector: Add VFS backend for std::array | Zach Hilman | 2018-11-16 | 1 | -0/+52 |
| | | | | | | | | | | | | | | | | Allows using constexpr/static const data with VFS. | ||||
* | | | | Merge pull request #1838 from lioncash/dedup | bunnei | 2018-12-05 | 1 | -27/+26 |
|\ \ \ \ | |_|/ / |/| | | | file_sys/registered_cache: Eliminate variable shadowing | ||||
| * | | | file_sys/registered_cache: Eliminate variable shadowing | Lioncash | 2018-12-02 | 1 | -27/+26 |
| | |/ | |/| | | | | | | | | | | Also inverts if statements where applicable to allow unindenting code a little bit. | ||||
* | | | Merge pull request #1835 from lioncash/cache-global | bunnei | 2018-12-03 | 2 | -11/+10 |
|\ \ \ | | | | | | | | | filesystem: De-globalize registered_cache_union | ||||
| * | | | filesystem: De-globalize registered_cache_union | Lioncash | 2018-12-02 | 2 | -11/+10 |
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | | | file_sys: Override missing mutating functions to be stubbed out for ReadOnlyVfsDirectory by default | Lioncash | 2018-12-01 | 2 | -0/+25 |
| | | | | | | | | | | | | Ensures that read only indeed means read only. | ||||
* | | | service/fsp_srv: Implement CleanDirectoryRecursively | Lioncash | 2018-12-01 | 2 | -4/+37 |
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/ | ||||
* | | Merge pull request #1814 from lioncash/ptr | bunnei | 2018-11-28 | 2 | -28/+26 |
|\ \ | | | | | | | file_sys/registered_cache: Use regular const references instead of std::shared_ptr for InstallEntry() | ||||
| * | | file_sys/registered_cache: Remove unused <map> include | Lioncash | 2018-11-27 | 1 | -1/+0 |
| | | | |||||
| * | | file_sys/registered_cache: Use regular const references instead of std::shared_ptr for InstallEntry() | Lioncash | 2018-11-27 | 2 | -27/+26 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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). | ||||
* | | | control_metadata: Correct typo in language name (Portugese -> Portuguese) | Lioncash | 2018-11-27 | 1 | -7/+17 |
|/ / | | | | | | | | | | | | | | | | | 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. | ||||
* | | Merge pull request #1747 from DarkLordZach/exefs-lfs | bunnei | 2018-11-24 | 1 | -2/+47 |
|\ \ | | | | | | | patch_manager: Add support for applying LayeredFS patches to ExeFS | ||||
| * | | patch_manager: Show LayeredExeFS patch in add-ons column | Zach Hilman | 2018-11-21 | 1 | -3/+14 |
| | | | | | | | | | 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. | ||||
| * | | patch_manager: Apply LayeredExeFS patches | Zach Hilman | 2018-11-20 | 1 | -0/+25 |
| | | | | | | | | | | | | 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. | ||||
| * | | settings: Add option to dump ExeFS of games upon launch | Zach Hilman | 2018-11-20 | 1 | -0/+9 |
| | | | | | | | | | | | | When enabled, all exefs(es) will be copied to yuzu/dump/<title_id>/exefs. | ||||
* | | | file_sys/card_image: Provide named members for the GamecardInfo struct | Lioncash | 2018-11-21 | 1 | -1/+12 |
|/ / | | | | | | | Fills out the struct according to information provided by SwitchBrew | ||||
* | | Merge pull request #1632 from DarkLordZach/keys-manager-optimizations | bunnei | 2018-11-16 | 8 | -10/+23 |
|\ \ | | | | | | | game_list: Optimize game list refresh | ||||
| * | | file_sys: Use common KeyManager in NCA container types | Zach Hilman | 2018-11-02 | 6 | -7/+18 |
| | | | | | | | | | | | | Creates a single KeyManager for the entire container and then passes it into the NCA constructor, eliminating several unnecessary KeyManager reads. | ||||
| * | | content_archive: Add optional KeyManager parameter to constructor | Zach Hilman | 2018-11-02 | 2 | -3/+5 |
| |/ | | | | | | | 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. | ||||
* | | file_sys/errors: Remove currently unused filesystem error codes | Lioncash | 2018-11-16 | 1 | -10/+0 |
| | | | | | | | | | | Rather than keeping around unused values, we can just introduce them as needed. | ||||
* | | file_sys/errors: Get rid of the ErrCodes namespace | Lioncash | 2018-11-16 | 1 | -17/+5 |
| | | | | | | | | | | | | 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. | ||||
* | | file_sys/errors: Extract FS-related error codes to file_sys/errors.h | Lioncash | 2018-11-16 | 1 | -1/+8 |
| | | | | | | | | Keeps filesystem-related error codes in one spot. | ||||
* | | Merge pull request #1618 from DarkLordZach/dump-nso | bunnei | 2018-11-15 | 3 | -2/+24 |
|\ \ | | | | | | | patch_manager: Add support for dumping uncompressed NSOs | ||||
| * | | patch_manager: Add support for dumping decompressed NSOs | Zach Hilman | 2018-10-29 | 1 | -0/+13 |
| | | | | | | | | | | | | 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. | ||||
| * | | bis_factory: Add getter for mod dump root for a title ID | Zach Hilman | 2018-10-29 | 2 | -2/+11 |
| | | | | | | | | | | | | Equates to yuzu_dir/dump/<title id>/ | ||||
* | | | Merge pull request #1608 from DarkLordZach/save-data-reader | bunnei | 2018-11-14 | 4 | -14/+28 |
|\ \ \ | |_|/ |/| | | [ns|fsp_srv]: Implement various functions to boot Checkpoint | ||||
| * | | ns: Implement command 400: GetApplicationControlData | Zach Hilman | 2018-10-29 | 2 | -2/+2 |
| | | | | | | | | | 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. | ||||
| * | | savedata_factory: Expose accessors for SaveDataSpace | Zach Hilman | 2018-10-29 | 2 | -14/+21 |
| | | | |||||
| * | | control_metadata: Add GetRawBytes function to NACP | Zach Hilman | 2018-10-29 | 2 | -0/+7 |
| |/ | | | | | | | Returns the raw bytes of the NACP file. Needed for GetApplicationControlData which returns the raw, unprocessed NACP to the game. | ||||
* | | general: Remove unused boost inclusions where applicable | Lioncash | 2018-10-30 | 1 | -1/+0 |
| | | | | | | | | Cleans up unused includes and trims off some dependencies on externals. | ||||
* | | global: Use std::optional instead of boost::optional (#1578) | Frederic L | 2018-10-30 | 11 | -84/+76 |
|/ | | | | | | | | | | | | | | | | * 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 | ||||
* | file_sys/patch_manager: Remove unnecessary if-statements (#1586) | Frederic L | 2018-10-28 | 1 | -7/+6 |
| | | | | | | * remove unnecessary if-statements * Addressed feedback | ||||
* | Merge pull request #1430 from DarkLordZach/remove-promote-dir | bunnei | 2018-10-26 | 17 | -95/+1 |
|\ | | | | | vfs: Remove InterpretAsDirectory and related functions | ||||
| * | vfs: Remove InterpretAsDirectory and related functions | Zach Hilman | 2018-10-19 | 17 | -95/+1 |
| | | | | | | | | 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. | ||||
* | | ips_layer: Use rle_size instead of data_size in RLE patch application | Zach Hilman | 2018-10-25 | 1 | -1/+1 |
| | | | | | | | | Prevents a potential bug when using RLE records in an IPS patch. | ||||
* | | vfs: Handle failure of file reading within VfsRawCopy() | Lioncash | 2018-10-24 | 1 | -2/+6 |
| | | | | | | | | Also gets rid of an unused variable. | ||||
* | | Merge pull request #1515 from DarkLordZach/dlc-lfs | bunnei | 2018-10-24 | 3 | -4/+24 |
|\ \ | |/ |/| | patch_manager: Add support for LayeredFS on DLC RomFS | ||||
| * | qt: Add support for dumping a DLC Data RomFS | Zach Hilman | 2018-10-18 | 2 | -0/+5 |
| | | |||||
| * | registered_cache: Deduplicate results of ListEntry and ListEntryFilter | Zach Hilman | 2018-10-17 | 2 | -2/+16 |
| | | | | | | | | Prevents a Entry from appearing in the list twice if the user has it installed in two places (e.g. User NAND and SDMC) | ||||
| * | patch_manager: Add support for using LayeredFS with Data | Zach Hilman | 2018-10-17 | 1 | -2/+3 |
| | | |||||
* | | Merge pull request #1511 from lioncash/content | bunnei | 2018-10-19 | 2 | -258/+292 |
|\ \ | | | | | | | content_archive: Minor reorganization changes | ||||
| * | | content_archive: Simpify assignment of bktr_base_romfs in the constructor | Lioncash | 2018-10-16 | 1 | -2/+1 |
| | | | | | | | | | | | | | | | std::move doesn't actually dereference the data, so it doesn't matter whether or not the type is null. | ||||
| * | | content_archive: Make IsValidNCA() an internally linked function | Lioncash | 2018-10-16 | 2 | -3/+1 |
| | | | | | | | | | | | | | | | This is only ever used within the cpp file, so it can just be an internal function. | ||||
| * | | content_archive: Simplify rights ID check | Lioncash | 2018-10-16 | 1 | -2/+2 |
| | | | | | | | | | | | | This is the same as using std::any_of with an inverted predicate. | ||||
| * | | content_archive: Split loading into separate functions | Lioncash | 2018-10-16 | 2 | -253/+290 |
| | | | | | | | | | | | | | | | | | | 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. | ||||
| * | | content_archive: Pass and take NCASectionHeader instance by reference | Lioncash | 2018-10-16 | 2 | -3/+3 |
| |/ | | | | | | | | | 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. | ||||
* | | Merge pull request #1510 from lioncash/xci | bunnei | 2018-10-18 | 2 | -5/+7 |
|\ \ | | | | | | | XCI: Add function for checking the existence of the program NCA | ||||
| * | | XCI: Add function for checking the existence of the program NCA | Lioncash | 2018-10-16 | 2 | -5/+7 |
| |/ | | | | | | | | | | | 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. | ||||
* | | Merge pull request #1509 from DarkLordZach/device-save-data | bunnei | 2018-10-18 | 1 | -1/+12 |
|\ \ | |/ |/| | savedata_factory: Add DeviceSaveData and fix TemporaryStorage | ||||
| * | savedata_factory: Add TemporaryStorage SaveDataSpaceId | Zach Hilman | 2018-10-16 | 1 | -1/+4 |
| | | | | | | | | Required for TemporaryStorage saves (in addition to SaveDataType) | ||||
| * | savedata_factory: Add support for DeviceSaveData | Zach Hilman | 2018-10-16 | 1 | -0/+8 |
| | | | | | | | | Uses the same path as SaveData except with UID 0. Adds a warning if UID is not 0. | ||||
* | | Merge pull request #1443 from DarkLordZach/lower-loader-logs-1 | bunnei | 2018-10-16 | 2 | -3/+9 |
|\ \ | | | | | | | content_archive/patch_manager: Lower log levels to eliminate some unnecessary logs | ||||
| * | | patch_manager: Move non-Program RomFS patch log to Debug | Zach Hilman | 2018-10-13 | 1 | -2/+8 |
| | | | | | | | | | | | | Normal Program-type patches will still be logged to aid in debugging, but for others (mainly Control), it was moved to Debug. | ||||
| * | | content_archive: Move get key log to Trace level | Zach Hilman | 2018-10-13 | 1 | -1/+1 |
| | | | | | | | | | | | | Avoids printing live keys in the general log. | ||||
* | | | file_sys/registered_cache: Use unique_ptr and regular pointers instead of shared_ptrs where applicable | Lioncash | 2018-10-16 | 7 | -30/+30 |
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | | file_sys/control_metadata: Get rid of magic constants | Lioncash | 2018-10-16 | 1 | -3/+6 |
| | | | | | | | | | | These are just the size of the data being passed in, so we can specify that via the size() member function. | ||||
* | | aoc: Read DLC base title ID from RegisteredCache | Zach Hilman | 2018-10-15 | 2 | -0/+5 |
| | | | | | | Falls back to title ID + 0x1000, which is what HOS does. | ||||
* | | Merge pull request #1409 from DarkLordZach/key-derivation | bunnei | 2018-10-13 | 2 | -9/+22 |
|\ \ | |/ |/| | crypto: Add support for full key derivation | ||||
| * | vfs: Move forward declarations to separate file | Zach Hilman | 2018-10-07 | 2 | -9/+22 |
| | | |||||
* | | Merge pull request #1461 from lioncash/warn | bunnei | 2018-10-10 | 1 | -3/+3 |
|\ \ | | | | | | | ips_layer: Silence truncation and conversion warnings | ||||
| * | | ips_layer: Silence truncation and conversion warnings | Lioncash | 2018-10-09 | 1 | -3/+3 |
| | | | | | | | | | | | | Makes type conversions explicit to avoid compiler warnings. | ||||
* | | | Merge pull request #1464 from lioncash/unique | bunnei | 2018-10-10 | 2 | -11/+9 |
|\ \ \ | | | | | | | | | patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr | ||||
| * | | | patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr | Lioncash | 2018-10-09 | 2 | -11/+9 |
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Neither of these functions require the use of shared ownership of the returned pointer. This makes it more difficult to create reference cycles with, and makes the interface more generic, as std::shared_ptr instances can be created from a std::unique_ptr, but the vice-versa isn't possible. This also alters relevant functions to take NCA arguments by const reference rather than a const reference to a std::shared_ptr. These functions don't alter the ownership of the memory used by the NCA instance, so we can make the interface more generic by not assuming anything about the type of smart pointer the NCA is contained within and make it the caller's responsibility to ensure the supplied NCA is valid. | ||||
* | | | ips_layer: Avoid constructing std::vector instances where not necessary | Lioncash | 2018-10-09 | 1 | -6/+25 |
| | | | | | | | | | | | | | | | | | | We can just compare the existing std::vector instance with a constexpr std::array containing the desired match. This is lighter resource-wise, as we don't need to allocate on the heap. | ||||
* | | | ips_layer: Remove unnecessary explicit std::pair constructor in std::array | Lioncash | 2018-10-09 | 1 | -5/+13 |
| | | | | | | | | | | | | | | | Makes the layout of the array consistent, by making all elements match, instead of special-casing the first one. | ||||
* | | | ips_layer: Add missing includes | Lioncash | 2018-10-09 | 2 | -7/+17 |
| | | | | | | | | | | | | | | | | | | Adds missing includes to prevent potential compilation issues in the future. Also moves the definition of a struct into the cpp file, so that some includes don't need to be introduced within the header. | ||||
* | | | ips_layer: std::move data within PatchIPS() and Apply() | Lioncash | 2018-10-09 | 1 | -2/+5 |
|/ / | | | | | | | | | We don't need to make a copy of the read data, so we can std::move it into the make_shared call here. | ||||
* | | Merge pull request #1423 from DarkLordZach/romfs-file-exts | bunnei | 2018-10-08 | 5 | -10/+38 |
|\ \ | | | | | | | fsmitm_romfsbuild: Add support for stubbing and IPS patches in LFS | ||||
| * | | patch_manager: Avoid romfs_ext requirement for patching | Zach Hilman | 2018-10-04 | 1 | -4/+1 |
| | | | |||||
| * | | fsmitm_romfsbuild: Extract stubs and IPS to romfs_ext dir | Zach Hilman | 2018-10-04 | 5 | -21/+38 |
| | | | |||||
| * | | fsmitm_romfsbuild: Add support for stubbing and IPS patches in LFS | Zach Hilman | 2018-10-04 | 1 | -0/+14 |
| | | | |||||
* | | | Merge pull request #1424 from DarkLordZach/ips-witch | bunnei | 2018-10-08 | 4 | -23/+299 |
|\ \ \ | |_|/ |/| | | ips_layer: Add support for IPSwitch executable patches | ||||
| * | | ips_layer: Fix inaccuracies with comments and flags | Zach Hilman | 2018-10-04 | 3 | -16/+51 |
| | | | | | | | | | Specifically bugs/crashes that arise when putting them in positions that are legal but not typical, such as midline, between patch data, or between patch records. | ||||
| * | | ips_layer: Deduplicate resource usage | Zach Hilman | 2018-10-04 | 3 | -31/+37 |
| | | | |||||
| * | | ips_layer: Add support for escape sequences and midline comments | Zach Hilman | 2018-10-04 | 3 | -8/+41 |
| | | | | | | | | | | | | More accurately follows IPSwitch specification. | ||||
| * | | patch_manager: Add support for IPSwitch format patches | Zach Hilman | 2018-10-04 | 1 | -22/+56 |
| | | | |||||
| * | | ips_layer: Add IPSwitchCompiler to process IPSwitch format | Zach Hilman | 2018-10-04 | 2 | -0/+168 |
| |/ | |||||
* | | romfs_factory: Extract packed update setter to new function | Zach Hilman | 2018-10-05 | 5 | -6/+15 |
| | | |||||
* | | patch_manager: Add support for NSP packed updates | Zach Hilman | 2018-10-05 | 1 | -2/+2 |
| | | | | | | | | Reads as Update (NSP) in add-ons | ||||
* | | patch_manager: Add support for packed updates | Zach Hilman | 2018-10-05 | 4 | -5/+18 |
|/ | | | | Will prefer any installed update over the packed version. | ||||
* | Merge pull request #1415 from DarkLordZach/ips | bunnei | 2018-10-04 | 4 | -31/+233 |
|\ | | | | | file_sys: Add support for loading IPS patches | ||||
| * | nso: Optimize loading of IPS patches | Zach Hilman | 2018-10-02 | 2 | -45/+38 |
| | | | | | | | | Avoid resource-heavy classes and remove quasi-duplicated code. | ||||
| * | patch_manager: Add PatchNSO function | Zach Hilman | 2018-10-01 | 2 | -0/+102 |
| | | | | | | | | While PatchExeFS operated on the entire directory, this function operates on the uncompressed NSO. Avoids copying decompression code to PatchManager. | ||||
| * | patch_manager: Use strings for patch type instead of enum | Zach Hilman | 2018-10-01 | 2 | -29/+33 |
| | | |||||
| * | file_sys: Implement function to apply IPS patches | Zach Hilman | 2018-10-01 | 2 | -0/+103 |
| | | |||||
* | | Merge pull request #1436 from lioncash/view | bunnei | 2018-10-04 | 2 | -73/+101 |
|\ \ | | | | | | | submission_package: Cleanup and bug fixes | ||||
| * | | submission_package: Avoid dangling std::string_view within SetTicketKeys() | Lioncash | 2018-10-03 | 1 | -2/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | GetName() returns a std::string by value, not by reference, so after the std::string_view is constructed, it's not well defined to actually execute any member functions of std::string_view that attempt to access the data, as the std::string has already been destroyed. Instead, we can just use a std::string and erase the last four characters. | ||||
| * | | submission_package: Correct location of null check within SetTicketKeys() | Lioncash | 2018-10-03 | 1 | -3/+6 |
| | | | | | | | | | | | | | | | If a ticket file was ever a null pointer, we'd cause a null pointer dereference, as we were calling GetExtension() on the pointer instance. | ||||
| * | | submission_package: Use std::string's rfind() when looking for the extension in InitializeExeFSAndRomFS() | Lioncash | 2018-10-03 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | When searching for a file extension, it's generally preferable to begin the search at the end of the string rather than the beginning, as the whole string isn't going to be walked just to check for something at the end of it. | ||||
| * | | submission_package: Ensure the 'extracted' member variable is always initialized | Lioncash | 2018-10-03 | 2 | -3/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | If an error occurs when constructing the PartitionFilesystem instance, the constructor would be exited early, which wouldn't initialize the extracted data member, making it possible for other code to perform an uninitialized read by calling the public IsExtractedType() member function. This prevents that. | ||||
| * | | submission_package: Move ExeFS and RomFS initialization to its own function | Lioncash | 2018-10-03 | 2 | -10/+18 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Like the other two bits of factored out code, this can also be put within its own function. We can also modify the code so that it accepts a const reference to a std::vector of files, this way, we can deduplicate the file retrieval. Now the constructor for NSP isn't a combination of multiple behaviors in one spot. It's nice and separate. | ||||
| * | | submission_package: Move NCA reading code to its own function | Lioncash | 2018-10-03 | 2 | -43/+48 |
| | | | | | | | | | | | | | | | | | | This too, is completely separate behavior from what is in the constructor, so we can move this to its own isolated function to keep everything self-contained. | ||||
| * | | submission_package: Move ticket key setting to its own function | Lioncash | 2018-10-03 | 1 | -21/+28 |
| | | | | | | | | | | | | | | | This behavior is entirely independent of the surrounding code, so it can be put in its own function to keep the behavior separate. | ||||
| * | | submission_package: Invert conditionals within NSP's constructor to reduce nesting | Lioncash | 2018-10-03 | 1 | -45/+49 |
| | | | | | | | | | | | | We can use early continues here to reduce the amount of nesting. | ||||
* | | | Merge pull request #1435 from lioncash/xci | bunnei | 2018-10-04 | 1 | -1/+3 |
|\ \ \ | |_|/ |/| | | card_image: Ensure program_nca_status is always initialized | ||||
| * | | card_image: Ensure program_nca_status is always initialized | Lioncash | 2018-10-03 | 1 | -1/+3 |
| |/ | | | | | | | | | | | If any of the error paths before the NCA retrieval are taken, it'll result in program_nca_status being left in an inconsistent state. So we initialize it by default with a value indicating an error. | ||||
* | | aoc_u: Extract AccumulateAOCTitleIDs to separate function | Zach Hilman | 2018-10-01 | 1 | -1/+2 |
| | | |||||
* | | aoc_u: Implement GetAddOnContentBaseId | Zach Hilman | 2018-10-01 | 1 | -2/+3 |
| | | | | | | Command #5 | ||||
* | | romfs_factory: Read from all locations with StorageId None | Zach Hilman | 2018-10-01 | 1 | -26/+25 |
| | | | | | | | | Previous behavior was to assert. Seems to mirror expected game behavior. | ||||
* | | patch_manager: Add DLC recognition to PatchManager | Zach Hilman | 2018-10-01 | 2 | -0/+27 |
|/ | |||||
* | kernel/process: Make data member variables private | Lioncash | 2018-09-30 | 2 | -2/+2 |
| | | | | | | | Makes the public interface consistent in terms of how accesses are done on a process object. It also makes it slightly nicer to reason about the logic of the process class, as we don't want to expose everything to external code. | ||||
* | Merge pull request #1395 from lioncash/vm | bunnei | 2018-09-29 | 2 | -3/+7 |
|\ | | | | | process/vm_manager: Initial modifications to load NPDM metadata | ||||
| * | process/vm_manager: Amend API to allow reading parameters from NPDM metadata | Lioncash | 2018-09-24 | 2 | -3/+7 |
| | | | | | | | | | | | | | | | | | | Rather than hard-code the address range to be 36-bit, we can derive the parameters from supplied NPDM metadata if the supplied exectuable supports it. This is the bare minimum necessary for this to be possible. The following commits will rework the memory code further to adjust to this. | ||||
* | | fsmitm_romfsbuild: std::move std::vector instances in Build() | Lioncash | 2018-09-26 | 1 | -2/+2 |
| | | | | | | | | | | Avoids making copies of large std::vector instances where it's trivially avoidable to do so. | ||||
* | | fsmitm_romfsbuild: Replace manual value aligning with Common::AlignUp() | Lioncash | 2018-09-26 | 1 | -12/+11 |
| | | | | | | | | | | Theres no need to do explicit bitwise arithmetic here, when we have a function that does this with a more descriptive name. | ||||
* | | patch_manager: Invert conditionals within ApplyLayeredFS() | Lioncash | 2018-09-26 | 1 | -27/+30 |
| | | | | | | | | | | Avoids the need to nest code quite a bit by early-exiting in error cases. | ||||
* | | vfs_vector: Amend initializer list order in VectorVfsFile's constructor initializer list | Lioncash | 2018-09-26 | 1 | -1/+1 |
| | | | | | | | | | | Orders the initializer list members to be in the same order that they would be initialized in. Avoids compiler warnings. | ||||
* | | fsmitm_romfsbuild: Avoid type truncation warnings | Lioncash | 2018-09-26 | 1 | -7/+10 |
| | | | | | | | | | | Cast where explicitly necessary and in other cases we can simply modify the algorithm to accomodate larger data. | ||||
* | | fsmitm_romfsbuild: Remove unnecessary constructors and initializers for RomFSBuildFileContext and RomFSBuildDirectoryContext | Lioncash | 2018-09-26 | 1 | -5/+3 |
| | | | | | | | | | | There's no need to duplicate in-class initializers with a constructor initializer list. std::strings also initialize to empty by default. | ||||
* | | fsmitm_romfsbuild: Remove unnecessary loops in Build() | Lioncash | 2018-09-26 | 1 | -6/+0 |
| | | | | | | | | | | | | The std::vector instances are already initially allocated with all entries having these values, there's no need to loop through and fill them with it again when they aren't modified. | ||||
* | | fsmitm_romfsbuild: Make auto variable into a std::size_t variable within Build() | Lioncash | 2018-09-26 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | auto x = 0; auto-deduces x to be an int. This is undesirable when working with unsigned values. It also causes sign conversion warnings. Instead, we can make it a proper unsigned value with the correct width that the following expressions operate on. | ||||
* | | vfs/etc: Append std:: to size_t usages | Lioncash | 2018-09-26 | 6 | -22/+23 |
| | | | | | | | | | | Given we just recently had a patch backport this from citra, let's try and keep the convention uniform. | ||||
* | | vfs_concat/vfs_layered: Remove friend declarations from ConcatenatedVfsFile | Lioncash | 2018-09-26 | 7 | -60/+58 |
| | | | | | | | | | | | | Given these are only added to the class to allow those functions to access the private constructor, it's a better approach to just make them static functions in the interface, to make the dependency explicit. | ||||
* | | vfs_static: Remove template byte parameter from StaticVfsFile | Lioncash | 2018-09-25 | 4 | -42/+42 |
| | | | | | | | | | | | | | | | | | | | | This converts it into a regular constructor parameter. There's no need to make this a template parameter on the class when it functions perfectly well as a constructor argument. This also reduces the amount of code bloat produced by the compiler, as it doesn't need to generate the same code for multiple different instantiations of the same class type, but with a different fill value. | ||||
* | | fsmitm: Cleanup and modernize fsmitm port | Zach Hilman | 2018-09-24 | 20 | -376/+376 |
| | | |||||
* | | qt: Add UI elements for LayeredFS and related tools | Zach Hilman | 2018-09-22 | 2 | -2/+2 |
| | | |||||
* | | romfs: Implement CreateRomFS | Zach Hilman | 2018-09-22 | 2 | -4/+25 |
| | | |||||
* | | file_sys: Port Atmosphere-NX fs_mitm implementation | Zach Hilman | 2018-09-22 | 2 | -0/+474 |
| | | |||||
* | | bis_factory: Add mod directory VFS getter | Zach Hilman | 2018-09-22 | 2 | -3/+14 |
| | | |||||
* | | patch_manager: Add LayeredFS mods support | Zach Hilman | 2018-09-22 | 2 | -1/+44 |
| | | |||||
* | | vfs_concat: Rewrite and fix ConcatenatedVfsFile | Zach Hilman | 2018-09-22 | 2 | -14/+59 |
| | | |||||
* | | vfs_layered: Add LayeredVfsDirectory | Zach Hilman | 2018-09-22 | 2 | -0/+178 |
| | | | | | | | | Reads multiple dirs through as if a waterfall. | ||||
* | | vfs_vector: Add VectorVfsFile | Zach Hilman | 2018-09-22 | 2 | -0/+75 |
| | | | | | | | | Maps a vector into the VFS interface. | ||||
* | | vfs_static: Add StaticVfsFile | Zach Hilman | 2018-09-22 | 1 | -0/+77 |
| | | | | | | | | Always returns the template argument byte for all reads. Doesn't support writes. | ||||
* | | vfs: Add and rewite VfsRawCopy functions | Zach Hilman | 2018-09-22 | 2 | -6/+36 |
| | | |||||
* | | vfs: Add GetEntries method | Zach Hilman | 2018-09-22 | 4 | -0/+32 |
|/ | | | | Maps name string to directory or file. | ||||
* | Merge pull request #1364 from lioncash/content | bunnei | 2018-09-21 | 25 | -1/+45 |
|\ | | | | | file-sys: Default heavy-weight class destructors in the cpp file | ||||
| * | file-sys: Default heavy-weight class destructors in the cpp file | Lioncash | 2018-09-20 | 25 | -1/+45 |
| | | | | | | | | | | | | | | | | | | | | Several classes have a lot of non-trivial members within them, or don't but likely should have the destructor defaulted in the cpp file for future-proofing/being more friendly to forward declarations. Leaving the destructor unspecified allows the compiler to inline the destruction code all over the place, which is generally undesirable from a code bloat perspective. | ||||
* | | Merge pull request #1358 from DarkLordZach/temp-storage | bunnei | 2018-09-20 | 1 | -4/+7 |
|\ \ | | | | | | | savedata_factory: Add TemporaryStorage SaveDataType | ||||
| * | | savedata_factory: Add TemporaryStorage SaveDataType | Zach Hilman | 2018-09-19 | 1 | -4/+7 |
| | | | | | | | | | Seems to be used by NSO NES Emulator | ||||
* | | | Merge pull request #1363 from lioncash/control | bunnei | 2018-09-20 | 2 | -14/+17 |
|\ \ \ | | | | | | | | | control_metadata: Move language name array definition to the cpp file | ||||
| * | | | control_metadata: Remove unnecessary else within GetLanguageEntry() | Lioncash | 2018-09-20 | 1 | -8/+8 |
| | | | | | | | | | | | | | | | | | | | | There's no need to indent the code here, given the if case contains a return statement at the end of it. | ||||
| * | | | control_metadata: Move language name array definition to the cpp file | Lioncash | 2018-09-20 | 2 | -6/+9 |
| | |/ | |/| | | | | | | | | | | | | | | | | This was used in two different translation units (deconstructed_rom_directory and patch_manager). This means we'd be pointlessly duplicating the whole array twice due to it being defined within the header. | ||||
* | | | xts_archive: Remove unused variables from CalculateHMAC256() | Lioncash | 2018-09-19 | 1 | -3/+0 |
| | | | | | | | | | | | | | | | | | | These variables aren't used, which still has an impact, as std::vector cannot be optimized away by the compiler (it's constructor and destructor are both non-trivial), so this was just wasting memory. | ||||
* | | | xts_archive: Make AsNCA() return a std::unique_ptr instead of a std::shared_ptr | Lioncash | 2018-09-19 | 2 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | std::shared_ptr isn't strictly necessary here and is only ever used in contexts where the object doesn't depend on being shared. This also makes the interface more flexible, as it's possible to create a std::shared_ptr from a std::unique_ptr (std::shared_ptr has a constructor that accepts a std::unique_ptr), but not the other way around. | ||||
* | | | xts_archive: Ensure NAX's type member is always initialized | Lioncash | 2018-09-19 | 1 | -1/+1 |
| | | | | | | | | | | | | Ensures that the member always has a deterministic value. | ||||
* | | | xts_archive: Amend initializer order of NAX's constructor | Lioncash | 2018-09-19 | 1 | -2/+2 |
|/ / | | | | | | | | | Orders the initializer list in the same order the members would be initialized. Avoids compiler warnings. | ||||
* / | Port #4182 from Citra: "Prefix all size_t with std::" | fearlessTobi | 2018-09-15 | 21 | -128/+130 |
|/ | |||||
* | file_sys/nca_patch: Amend constructor initializer list order | Lioncash | 2018-09-06 | 1 | -2/+2 |
| | | | | | | Orders the elements in the initializer list in the order they're specified in the class. This prevents compiler warnings about initialization order. | ||||
* | file_sys/nca_patch: Remove unnecessary includes | Lioncash | 2018-09-06 | 2 | -2/+9 |
| | | | | | romfs.h doesn't need to be included in the header, the only real dependency here is common's swap.h that needs to be included. | ||||
* | file_sys/patch_manager: Add missing includes | Lioncash | 2018-09-06 | 2 | -0/+5 |
| | | | | These includes were previously being satisfied indirectly. | ||||
* | Merge pull request #1242 from lioncash/file-sys | bunnei | 2018-09-06 | 2 | -8/+17 |
|\ | | | | | file_sys/submission_package: Replace includes with forward declarations where applicable | ||||
| * | file_sys/submission_package: Correct constructor initialization list order | Lioncash | 2018-09-05 | 1 | -2/+2 |
| | | | | | | | | | | Orders the elements in the sequence to match the order in which they'll actually be initialized in. | ||||
| * | file_sys/submission_package: Replace includes with forward declarations where applicable | Lioncash | 2018-09-05 | 2 | -6/+15 |
| | | |||||
* | | bktr: Fix bucket overlap error | Zach Hilman | 2018-09-04 | 5 | -6/+6 |
| | | |||||
* | | patch_manager: Centralize Control-type NCA parsing | Zach Hilman | 2018-09-04 | 2 | -22/+66 |
| | | |||||
* | | nsp: Fix error masking issue with XCI files | Zach Hilman | 2018-09-04 | 3 | -6/+13 |
| | | | | | | | | Now display correct error instead of catch-all MissingProgramNCA | ||||
* | | game_list: Fix version display on non-NAND titles | Zach Hilman | 2018-09-04 | 2 | -7/+23 |
| | | |||||
* | | bktr: Add logging on successful patch | Zach Hilman | 2018-09-04 | 3 | -7/+24 |
| | | |||||
* | | bktr: Implement IVFC offset shifting | Zach Hilman | 2018-09-04 | 5 | -8/+20 |
| | | | | | | | | Fixes base game read errors | ||||
* | | bktr: Fix missing includes and optimize style | Zach Hilman | 2018-09-04 | 6 | -96/+102 |
| | | |||||
* | | patch_manager: Add usages of patches to ExeFS | Zach Hilman | 2018-09-04 | 2 | -1/+11 |
| | | |||||
* | | file_sys: Add class to manage game patches | Zach Hilman | 2018-09-04 | 2 | -0/+132 |
| | | | | | | | | Right now only includes Updates, but should eventually contain all of the other patches we need. | ||||
* | | file_sys: Add BKTR patching mechanism | Zach Hilman | 2018-09-04 | 2 | -0/+352 |
| | | |||||
* | | content_archive: Add BKTR header parsing to NCA | Zach Hilman | 2018-09-04 | 2 | -19/+160 |
| | | |||||
* | | registration: Add RegisteredCacheUnion | Zach Hilman | 2018-09-04 | 2 | -0/+154 |
|/ | | | | Aggregates multiple caches into one interface | ||||
* | main: Only show DRD deprecation warning once | Zach Hilman | 2018-09-04 | 5 | -2/+5 |
| | |||||
* | control_metadata: Use alternate language names if AmericanEnglish isn't available | Zach Hilman | 2018-09-04 | 2 | -4/+17 |
| | |||||
* | card_image: Add program title ID getter | Zach Hilman | 2018-09-04 | 2 | -0/+6 |
| | |||||
* | nsp: Comply with style and performance guidelines | Zach Hilman | 2018-09-04 | 4 | -25/+37 |
| | |||||
* | registration: Add support for installing NSP files | Zach Hilman | 2018-09-04 | 2 | -10/+16 |
| | |||||
* | card_image: Parse XCI secure partition with NSP | Zach Hilman | 2018-09-04 | 2 | -7/+33 |
| | | | | Eliminated duplicate code and adds support for Rev1+ carts | ||||
* | file_sys: Add Nintendo Submission Package (NSP) | Zach Hilman | 2018-09-04 | 2 | -0/+296 |
| | |||||
* | file_sys: Replace includes with forward declarations where applicable | Lioncash | 2018-09-04 | 17 | -21/+51 |
| | | | | | Cuts down on include dependencies, resulting in less files that need to be rebuilt when certain things are changed. | ||||
* | vfs_real: Forward declare IOFile | Lioncash | 2018-09-02 | 4 | -7/+22 |
| | | | | | | 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. | ||||
* | core/core: Replace includes with forward declarations where applicable | Lioncash | 2018-08-31 | 2 | -0/+2 |
| | | | | | | | | | | | 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. | ||||
* | Merge pull request #1188 from lioncash/unused | bunnei | 2018-08-28 | 1 | -1/+0 |
|\ | | | | | vfs_real: Remove unused variable in CreateDirectoryRelative() | ||||
| * | vfs_real: Remove unused variable in CreateDirectoryRelative() | Lioncash | 2018-08-27 | 1 | -1/+0 |
| | | |||||
* | | registered_cache: Get rid of variable shadowing in ProcessFiles() | Lioncash | 2018-08-27 | 1 | -3/+3 |
|/ | | | | Prevents compiler warnings. | ||||
* | file_sys/crypto: Fix missing/unnecessary includes | Zach Hilman | 2018-08-25 | 4 | -0/+6 |
| | |||||
* | xci: Ignore NCA files with updates in secure | Zach Hilman | 2018-08-24 | 1 | -0/+3 |
| | |||||
* | content_archive: Add update title detection | Zach Hilman | 2018-08-24 | 2 | -0/+11 |
| | | | | This is needed because the title IDs of update NCAs will not use the update title ID. The only sure way to tell is to look for a partition with BKTR crypto. | ||||
* | key_manager: Create keys dir if it dosen't exist | Zach Hilman | 2018-08-23 | 1 | -0/+1 |
| | | | | On call to WriteKeyToFile, so that the autogenerated file can be written. | ||||
* | file_sys: Cut down on includes and copies | Zach Hilman | 2018-08-23 | 3 | -0/+6 |
| | |||||
* | crypto: Eliminate magic constants | Zach Hilman | 2018-08-23 | 2 | -16/+19 |
| | |||||
* | file_sys: Implement NAX containers | Zach Hilman | 2018-08-23 | 2 | -0/+232 |
| | |||||
* | registration: Add GetEntryUnparsed methods | Zach Hilman | 2018-08-23 | 2 | -0/+15 |
| | | | | Returns the file before calling parser on it. | ||||
* | sdmc_factory: Add SDMC RegisteredCache getter | Zach Hilman | 2018-08-23 | 2 | -1/+14 |
| | |||||
* | vfs: Add GetOrCreateDirectoryRelative method | Zach Hilman | 2018-08-23 | 3 | -9/+13 |
| | |||||
* | xts_encryption_layer: Implement XTSEncryptionLayer | Zach Hilman | 2018-08-23 | 1 | -1/+1 |
| | |||||
* | xci: Fix error masking issue | Zach Hilman | 2018-08-23 | 2 | -0/+11 |
| | | | | Prevents NCA-related errors from being masked into MissingProgramNCA or MissingKeyFile | ||||
* | Merge pull request #1136 from tech4me/master | bunnei | 2018-08-22 | 2 | -4/+4 |
|\ | | | | | qt/main: Port part of citra(#3411), open savedata works | ||||
| * | qt/main: Port part of citra(#3411), open savedata works | tech4me | 2018-08-21 | 2 | -4/+4 |
| | | |||||
* | | vfs: Replace mode.h include with forward declarations where applicable | Lioncash | 2018-08-21 | 2 | -2/+4 |
| | | | | | | | | | | Avoids the need to rebuild these source files if the mode header changes. | ||||
* | | sdmc_factory: Remove unnecessary core include | Lioncash | 2018-08-21 | 2 | -1/+1 |
|/ | | | | | This doesn't require the central core header to be included, it just needs the vfs headers. | ||||
* | service/filesystem: Use forward declarations where applicable | Lioncash | 2018-08-21 | 1 | -0/+1 |
| | | | | | | | | 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 | ||||
* | romfs_factory: Remove unnecessary includes and use forward declarations where applicable | Lioncash | 2018-08-21 | 3 | -3/+12 |
| | | | | | | Avoids the need to rebuild whatever includes the romfs factory header if the loader header ever changes. We also don't need to include the main core header. We can instead include the headers we specifically need. | ||||
* | registration: Add Data_Unknown5 NCAContentType | Zach Hilman | 2018-08-20 | 3 | -2/+3 |
| | |||||
* | filesystem: Add support for loading of system archives | Zach Hilman | 2018-08-19 | 3 | -4/+49 |
| | |||||
* | common: Namespace hex_util.h/.cpp | Lioncash | 2018-08-16 | 1 | -8/+10 |
| | | | | | It's in the common code, so it should be under the Common namespace like everything else. | ||||
* | Merge pull request #1005 from DarkLordZach/registered-fmt | bunnei | 2018-08-16 | 17 | -17/+1066 |
|\ | | | | | file_sys: Add support for registration format | ||||
| * | registration: Various style and documentation improvements | Zach Hilman | 2018-08-12 | 3 | -18/+22 |
| | | | | | | | | | | | | Fix logic in RealVfsFilesystem Create methods Remove magic numbers Fix regex errors | ||||
| * | registration: Add support for force overwrite of installed | Zach Hilman | 2018-08-12 | 2 | -22/+48 |
| | | |||||
| * | vfs_real: Add CreateFullPath to Create* operations | Zach Hilman | 2018-08-12 | 2 | -13/+6 |
| | | |||||
| * | control_metadata: Remove unnecessary reference to base file | Zach Hilman | 2018-08-12 | 2 | -2/+1 |
| | | |||||
| * | romfs: Remove cyclic shared_ptr leak in romfs code | Zach Hilman | 2018-08-12 | 3 | -8/+8 |
| | | |||||
| * | registration: Update documentation and style | Zach Hilman | 2018-08-12 | 5 | -42/+69 |
| | | |||||
| * | nca_metadata: Remove unnecessary reference to base file | Zach Hilman | 2018-08-12 | 2 | -3/+2 |
| | | |||||
| * | bis_factory: Create NAND dirs if they don't exist | Zach Hilman | 2018-08-12 | 1 | -2/+9 |
| | | |||||
| * | registration: Take RawCopy function as parameter | Zach Hilman | 2018-08-12 | 2 | -10/+15 |
| | | | | | | | | Instead of defaulting to VfsRawCopy | ||||
| * | registered_cache: Fix missing reading from yuzu_meta | Zach Hilman | 2018-08-12 | 1 | -7/+16 |
| | | |||||
| * | file_sys: Comply to style guidelines | Zach Hilman | 2018-08-12 | 6 | -27/+38 |
| | | |||||
| * | qt: Add 'Install to NAND' option to menu | Zach Hilman | 2018-08-12 | 1 | -1/+1 |
| | | | | | | | | Prompts for title type on NCA files. | ||||
| * | file_sys: Add RegisteredCache | Zach Hilman | 2018-08-12 | 2 | -0/+543 |
| | | | | | | | | Manages NAND NCA get and install. | ||||
| * | file_sys: Add support for parsing NCA metadata (CNMT) | Zach Hilman | 2018-08-12 | 2 | -0/+230 |
| | | |||||
| * | card_image: Add accessor for all NCAs in XCI | Zach Hilman | 2018-08-12 | 2 | -0/+5 |
| | | |||||
| * | vfs_real: Add CreateFullPath to CreateFile | Zach Hilman | 2018-08-12 | 1 | -3/+6 |
| | | | | | | | | Fixes bugs with calling CreateFile when the immediate directory does not exist. | ||||
| * | bis_factory: Add partial implementation of BISFactory | Zach Hilman | 2018-08-12 | 2 | -0/+54 |
| | | | | | | | | Creates and stores RegisteredCaches for user and system NAND, as creation of a RegisteredCache is expensive. | ||||
| * | vfs: Add ConcatenatedVfsFile | Zach Hilman | 2018-08-12 | 2 | -0/+134 |
| | | |||||
* | | loader: Make ResultStatus directly compatible with fmt | Lioncash | 2018-08-15 | 1 | -2/+5 |
| | | | | | | | | | | | | | | | | | | 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. | ||||
* | | Merge pull request #1032 from lioncash/sanitize | bunnei | 2018-08-13 | 1 | -10/+10 |
|\ \ | | | | | | | vfs: Use sanitized paths within MoveFile() and MoveDirectory() | ||||
| * | | vfs: Use sanitized paths within MoveFile() and MoveDirectory() | Lioncash | 2018-08-12 | 1 | -10/+10 |
| |/ | | | | | | | | | | | Previously these were being unused (or partially unused). While we're at it, use better naming to make it visibly obvious which variant of the path is being used. | ||||
* | | Merge pull request #1031 from lioncash/verbosity | bunnei | 2018-08-13 | 2 | -7/+7 |
|\ \ | | | | | | | card_image: Simplify return statement of GetSubdirectories() | ||||
| * | | card_image: Use type aliases to shorten definitions | Lioncash | 2018-08-12 | 2 | -6/+6 |
| | | | | | | | | | | | | We have the aliases, so we may as well use 'em. | ||||
| * | | card_image: Simplify return statement of GetSubdirectories() | Lioncash | 2018-08-12 | 1 | -1/+1 |
| |/ | | | | | | | | | We don't need to write out the construction long-form, we can just let the language itself work it out off the return type. | ||||
* | | vfs: Make VfsFilesystem constructor explicit | Lioncash | 2018-08-12 | 1 | -1/+1 |
| | | | | | | | | | | Makes it consistent with the other VFS interfaces and prevents implicit construction. | ||||
* | | vfs: Make type hierarchy objects classes instead of structs | Lioncash | 2018-08-12 | 3 | -9/+15 |
| | | | | | | | | | | | | struct should be used when the data type is very simple or otherwise has no invariants associated with it. Given these are used to form a hierarchy, class should be used instead. | ||||
* | | made ResultStatus a u16 | David Marcec | 2018-08-12 | 2 | -2/+2 |
|/ | |||||
* | loader: Add more descriptive errors | Zach Hilman | 2018-08-10 | 5 | -35/+95 |
| | | | Full list of new errors and descriptions in core/loader/loader.h | ||||
* | Merge pull request #990 from lioncash/entry | bunnei | 2018-08-10 | 1 | -3/+9 |
|\ | | | | | fsp_srv: Emplace entries first when building index instead of emplacing last | ||||
| * | fsp_srv: Use std::string_view's copy() function instead of strncpy() | Lioncash | 2018-08-09 | 1 | -3/+9 |
| | | | | | | | | | | | | Given elements inserted into a vector are zeroed out, we can just copy MAX_LEN - 1 elements and the data will already be properly null terminated. | ||||
* | | vfs: Fix documentation | Zach Hilman | 2018-08-09 | 1 | -2/+2 |
| | | |||||
* | | vfs: Fix typo in VfsFilesystem docs | Zach Hilman | 2018-08-09 | 1 | -1/+1 |
| | | |||||
* | | file_util: Use enum instead of bool for specifing path behavior | Zach Hilman | 2018-08-09 | 1 | -17/+27 |
| | | |||||
* | | vfs: Use RealVfsFilesystem for fs-operations in RealVfsDirectory | Zach Hilman | 2018-08-09 | 1 | -2/+10 |
| | | |||||
* | | file_sys: Add missing include in savedata_factory | Zach Hilman | 2018-08-09 | 1 | -0/+1 |
| | | |||||
* | | vfs: Add unreachable assert to file permissions converter | Zach Hilman | 2018-08-09 | 1 | -1/+3 |
| | | |||||
* | | vfs: Add RealVfsFilesystem implementation | Zach Hilman | 2018-08-09 | 2 | -81/+290 |
| | | |||||
* | | vfs: Add VfsFilesystem interface and default implementation | Zach Hilman | 2018-08-09 | 2 | -3/+211 |
|/ | |||||
* | Merge pull request #850 from DarkLordZach/icon-meta | bunnei | 2018-08-08 | 4 | -0/+13 |
|\ | | | | | Add Icons and Metadata Support | ||||
| * | loader: Add icon and title support to XCI | Zach Hilman | 2018-08-07 | 3 | -0/+6 |
| | | |||||
| * | Use const where applicable | Zach Hilman | 2018-08-07 | 1 | -1/+1 |
| | | |||||
| * | Avoid parsing RomFS to directory in NCA | Zach Hilman | 2018-08-07 | 1 | -0/+7 |
| | | |||||
* | | content_archive: Add support for titlekey cryptography | Zach Hilman | 2018-08-04 | 2 | -7/+39 |
|/ | |||||
* | Merge pull request #849 from DarkLordZach/xci | bunnei | 2018-08-04 | 6 | -44/+446 |
|\ | | | | | XCI and Encrypted NCA Support | ||||
| * | Add missing parameter to files.push_back() | Zach Hilman | 2018-08-01 | 1 | -5/+5 |
| | | |||||
| * | Use more descriptive error codes and messages | Zach Hilman | 2018-08-01 | 1 | -2/+8 |
| | | |||||
| * | Use ErrorEncrypted where applicable and fix no keys crash | Zach Hilman | 2018-08-01 | 3 | -17/+33 |
| | | |||||
| * | Add missing includes and use const where applicable | Zach Hilman | 2018-08-01 | 4 | -9/+14 |
| | | |||||
| * | Make XCI comply to review and style guidelines | Zach Hilman | 2018-08-01 | 4 | -45/+30 |
| | | |||||
| * | Extract mbedtls to cpp file | Zach Hilman | 2018-08-01 | 1 | -1/+2 |
| | | |||||
| * | Remove files that are not used | Zach Hilman | 2018-08-01 | 6 | -36/+425 |
| | | |||||
* | | vfs_vector: Remove unused variable in FindAndRemoveVectorElement() | Lioncash | 2018-08-02 | 1 | -2/+2 |
| | | | | | | | | This wasn't being used for anything, so it can be removed. | ||||
* | | vfs_vector: Avoid unnecessary copies where applicable | Lioncash | 2018-08-02 | 1 | -2/+5 |
|/ | | | | | The lambda elements should be taken by const reference here, and we can move the virtual directory passed to ReplaceFileWithSubdirectory() | ||||
* | partition_filesystem: Remove dynamic_cast in PrintDebugInfo() | Lioncash | 2018-07-29 | 1 | -3/+2 |
| | | | | | | | We shouldn't be upcasting our file instances. Given a PartitionFilesystem is currently designed to accept any arbitrary VfsFile instances, casting to a more specific type than that is just bad design, and shows an interface design issue. | ||||
* | RomFS Extraction | Zach Hilman | 2018-07-28 | 11 | -20/+347 |
| | |||||
* | Merge pull request #785 from lioncash/fs | bunnei | 2018-07-24 | 1 | -3/+3 |
|\ | | | | | partition_filesystem: Use std::move where applicable | ||||
| * | partition_filesystem: Use std::move where applicable | Lioncash | 2018-07-24 | 1 | -3/+3 |
| | | | | | | | | | | Avoids copying a std::string instance and avoids unnecessary atomic reference count incrementing and decrementing. | ||||
* | | VFS Regression and Accuracy Fixes (#776) | Zach Hilman | 2018-07-24 | 2 | -20/+33 |
|/ | | | | | | | | | | | | | | | | * Regression and Mode Fixes * Review Fixes * string_view correction * Add operator& for FileSys::Mode * Return std::string from SanitizePath * Farming Simulator Fix * Use != With mode operator& | ||||
* | NRO Assets and NACP file format | Zach Hilman | 2018-07-23 | 2 | -0/+123 |
| | | | | | | Cleanup Review fixes | ||||
* | vfs: Correct file_p variable usage within InterpretAsDirectory() | Lioncash | 2018-07-22 | 1 | -2/+5 |
| | | | | | | | | | ReplaceFileWithSubdirectory() takes a VirtualFile and a VirtualDir, but it was being passed a string as one of its arguments. The only reason this never caused issues is because this template isn't instantiated anywhere yet. This corrects an issue before it occurs. | ||||
* | file_util, vfs: Use std::string_view where applicable | Lioncash | 2018-07-22 | 6 | -89/+150 |
| | | | | | Avoids unnecessary construction of std::string instances where applicable. | ||||
* | file_util: Use a u64 to represent number of entries | Lioncash | 2018-07-22 | 1 | -3/+3 |
| | | | | | This avoids a truncating cast on size. I doubt we'd ever traverse a directory this large, however we also shouldn't truncate sizes away. | ||||
* | Merge pull request #754 from lioncash/part | bunnei | 2018-07-21 | 2 | -8/+20 |
|\ | | | | | partition_filesystem, vfs_real: Minor changes | ||||
| * | vfs_real: Remove redundant copying of std::vector instances in GetFiles() and GetSubdirectories() | Lioncash | 2018-07-21 | 1 | -2/+3 |
| | | | | | | | | | | We already return by value, so we don't explicitly need to make the copy. | ||||
| * | partition_filesystem, vfs_real: Add missing standard includes | Lioncash | 2018-07-21 | 2 | -0/+4 |
| | | |||||
| * | partition_filesystem, vfs_real: Use std::move in ReplaceFileWithSubdirectory() where applicable | Lioncash | 2018-07-21 | 2 | -2/+3 |
| | | | | | | | | Avoids unnecessary atomic increment and decrement operations. | ||||
| * | partition_filesystem, vfs_real: Use std::distance() instead of subtraction | Lioncash | 2018-07-21 | 2 | -4/+10 |
| | | | | | | | | This is a little bit more self-documenting on what is being done here. | ||||
* | | Merge pull request #755 from lioncash/ctor | bunnei | 2018-07-21 | 1 | -8/+8 |
|\ \ | | | | | | | file_sys/errors: Remove redundant object constructor calls | ||||
| * | | file_sys/errors: Remove redundant object constructor calls | Lioncash | 2018-07-21 | 1 | -8/+8 |
| |/ | | | | | | | | | Given we're already constructing the error code, we don't need to call the constructor inside of it. | ||||
* | | vfs_offset: Simplify TrimToFit() | Lioncash | 2018-07-21 | 1 | -1/+2 |
| | | | | | | | | | | We can simply use std::clamp() here, instead of using an equivalent with std::max() and std::min(). | ||||
* | | vfs: Make WriteBytes() overload taking a std::vector pass the std::vector by const reference | Lioncash | 2018-07-21 | 4 | -4/+4 |
| | | | | | | | | | | Given the data is intended to be directly written, there's no need to take the std::vector by value and copy the data. | ||||
* | | vfs: Use variable template variants of std::is_trivially_copyable | Lioncash | 2018-07-21 | 1 | -13/+6 |
| | | | | | | | | Provides the same behavior, but with less writing | ||||
* | | vfs: Amend constness on pointers in WriteBytes() and WriteArrays() member functions to be const qualified | Lioncash | 2018-07-21 | 1 | -3/+3 |
|/ | | | | | These functions don't modify the data being pointed to, so these can be pointers to const data | ||||
* | Merge pull request #737 from lioncash/move | bunnei | 2018-07-20 | 2 | -3/+5 |
|\ | | | | | filesys/loader: std::move VirtualFile instances in constructors where applicable | ||||
| * | vfs_offset: std::move file and name parameters of OffsetVfsFile | Lioncash | 2018-07-20 | 2 | -3/+5 |
| | | | | | | | | | | Avoids potentially unnecessary atomic reference count incrementing and decrementing, as well as string copying. | ||||
* | | partition_filesystem: Return pfs_dirs member variable within GetSubdirectories() | Lioncash | 2018-07-20 | 1 | -1/+1 |
|/ | | | | | This should be returned here, otherwise pfs_dirs is effectively only ever added to, but never read. | ||||
* | Merge pull request #703 from lioncash/const | bunnei | 2018-07-19 | 2 | -2/+2 |
|\ | | | | | savedata_factory: Make SaveDataDescriptor's DebugInfo() function a const member function | ||||
| * | savedata_factory: Make SaveDataDescriptor's DebugInfo() function a const member function | Lioncash | 2018-07-19 | 2 | -2/+2 |
| | | | | | | | | This function doesn't alter class state. | ||||
* | | Merge pull request #702 from lioncash/initialize | bunnei | 2018-07-19 | 2 | -24/+15 |
|\ \ | | | | | | | partition_filesystem: Ensure all class members of PartitionFilesystem are initialized | ||||
| * | | partition_filesystem: Ensure all class members of PartitionFilesystem are initialized | Lioncash | 2018-07-19 | 2 | -24/+15 |
| |/ | | | | | | | | | | | | | | | | | Previously is_hfs and pfs_header members wouldn't be initialized in the constructor, as they were stored in locals instead. This would result in things like GetName() and PrintDebugInfo() behaving incorrectly. While we're at it, initialize the members to deterministic values as well, in case loading ever fails. | ||||
* | | Merge pull request #701 from lioncash/moving | bunnei | 2018-07-19 | 2 | -2/+10 |
|\ \ | | | | | | | content_archive: Minor changes | ||||
| * | | content_archive: Make IsDirectoryExeFS() take a shared_ptr as a const reference | Lioncash | 2018-07-19 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | There's no need to take this by value when it's possible to avoid unnecessary copies entirely like this. | ||||
| * | | content_archive: Add missing standard includes | Lioncash | 2018-07-19 | 1 | -0/+5 |
| | | | |||||
| * | | content_archive: std::move VirtualFile in NCA's constructor | Lioncash | 2018-07-19 | 1 | -1/+4 |
| |/ | | | | | | | | | Gets rid of unnecessary atomic reference count incrementing and decrementing. | ||||
* / | vfs: Deduplicate accumulation code in VfsDirectory's GetSize() | Lioncash | 2018-07-19 | 1 | -6/+6 |
|/ | | | | We can just use a generic lambda to avoid writing the same thing twice. | ||||
* | Virtual Filesystem 2: Electric Boogaloo (#676) | Zach Hilman | 2018-07-19 | 30 | -1211/+1267 |
| | | | | | | | | | | * Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression | ||||
* | General Filesystem and Save Data Fixes (#670) | Zach Hilman | 2018-07-17 | 8 | -106/+123 |
| | |||||
* | FileSys: Append the requested path to the filesystem base path in DeleteFile. | Subv | 2018-07-14 | 1 | -2/+4 |
| | | | | We were trying to delete things in the current directory instead of the actual filesystem directory. This may fix some savedata issues in some games. | ||||
* | Merge pull request #559 from Subv/mount_savedata | bunnei | 2018-07-12 | 1 | -0/+1 |
|\ | | | | | Services/FS: Return the correct error code when trying to mount a nonexistent savedata. | ||||
| * | Services/FS: Return the correct error code when trying to mount a nonexistent savedata. | Subv | 2018-06-19 | 1 | -0/+1 |
| | | |||||
* | | savedata_factory: Always create a save directory for games. | bunnei | 2018-07-08 | 1 | -0/+9 |
| | | |||||
* | | Revert "Virtual Filesystem (#597)" | bunnei | 2018-07-08 | 23 | -1127/+996 |
| | | | | | | | | This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2. | ||||
* | | Virtual Filesystem (#597) | Zach Hilman | 2018-07-06 | 23 | -996/+1127 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add VfsFile and VfsDirectory classes * Finish abstract Vfs classes * Implement RealVfsFile (computer fs backend) * Finish RealVfsFile and RealVfsDirectory * Finished OffsetVfsFile * More changes * Fix import paths * Major refactor * Remove double const * Use experimental/filesystem or filesystem depending on compiler * Port partition_filesystem * More changes * More Overhaul * FSP_SRV fixes * Fixes and testing * Try to get filesystem to compile * Filesystem on linux * Remove std::filesystem and document/test * Compile fixes * Missing include * Bug fixes * Fixes * Rename v_file and v_dir * clang-format fix * Rename NGLOG_* to LOG_* * Most review changes * Fix TODO * Guess 'main' to be Directory by filename | ||||
* | | Update clang format | James Rowe | 2018-07-03 | 3 | -10/+8 |
| | | |||||
* | | Rename logging macro back to LOG_* | James Rowe | 2018-07-03 | 8 | -55/+55 |
| | | |||||
* | | Add support for decrypted NCA files (#567) | Zach Hilman | 2018-06-21 | 2 | -4/+16 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Start to add NCA support in loader * More nca stuff * More changes to nca.cpp * Now identifies decrypted NCA cont. * Game list fixes and more structs and stuff * More updates to Nca class * Now reads ExeFs (i think) * ACTUALLY LOADS EXEFS! * RomFS loads and games execute * Cleanup and Finalize * plumbing, cleanup and testing * fix some things that i didnt think of before * Preliminary Review Changes * Review changes for bunnei and subv | ||||
* | | Build: Fixed some MSVC warnings in various parts of the code. | Subv | 2018-06-20 | 2 | -6/+6 |
|/ | |||||
* | general: Make formatting of logged hex values more straightforward | Lioncash | 2018-05-02 | 1 | -9/+9 |
| | | | | | | This makes the formatting expectations more obvious (e.g. any zero padding specified is padding that's entirely dedicated to the value being printed, not any pretty-printing that also gets tacked on). | ||||
* | file-sys: convert a StringFromFormat call into fmt::format in GetFullPath() | Lioncash | 2018-04-25 | 1 | -4/+1 |
| | | | | | Lessens the amount to read and gets rid of the PRIX64 macro, allowing us to use a single string for the whole path, making it easier to read. | ||||
* | file-sys: Move logging macros over to the new fmt-capable ones | Lioncash | 2018-04-25 | 8 | -64/+58 |
| | |||||
* | Service/FS: implement IFileSystem::RenameFile | mailwl | 2018-04-24 | 5 | -7/+15 |
| | |||||
* | disk_filesystem: Remove unused total_entries_in_directory member from Disk_Directory | Lioncash | 2018-04-20 | 1 | -1/+0 |
| | |||||
* | disk_filesystem: Remove redundant initializer in Disk_Directory's constructor | Lioncash | 2018-04-20 | 1 | -1/+1 |
| | |||||
* | disk_filesystem: Make constructors explicit where applicable | Lioncash | 2018-04-20 | 1 | -2/+2 |
| | |||||
* | file_sys: Use NGLOG | shinyquagsire23 | 2018-04-17 | 1 | -5/+5 |
| | |||||
* | file_sys: tweaks | shinyquagsire23 | 2018-04-16 | 2 | -6/+7 |
| | |||||
* | file_sys: Add HFS/PFS helper component | shinyquagsire23 | 2018-04-16 | 2 | -0/+211 |
| | |||||
* | fsp_srv: Implement DeleteFile. | bunnei | 2018-04-15 | 5 | -8/+12 |
| | | | | - Used by Binding of Isaac. | ||||
* | fsp_srv: Implement GetSize and SetSize. | bunnei | 2018-03-31 | 1 | -2/+3 |
| | |||||
* | FS: Move the file open mode calculation to a separate function. | Subv | 2018-03-23 | 1 | -7/+14 |
| | |||||
* | FS: Implemented IFileSystem::CreateDirectory. | Subv | 2018-03-21 | 5 | -7/+14 |
| | |||||
* | FS: Implement DiskFileSystem's OpenDirectory interface. | Subv | 2018-03-20 | 5 | -6/+19 |
| | |||||
* | FS: Implement DiskFileSystem::GetEntryType for existing files/directories. | Subv | 2018-03-20 | 1 | -2/+4 |
| | |||||
* | FS: Updated the Directory Entry structure to match the Switch. | Subv | 2018-03-20 | 5 | -30/+84 |
| | |||||
* | FS: Support the file Append open mode. | Subv | 2018-03-20 | 2 | -2/+23 |
| | |||||
* | FS: Added an SDMC archive factory and registered it to the SDMC archive on startup. | Subv | 2018-03-20 | 2 | -0/+71 |
| | |||||
* | core: Move process creation out of global state. | bunnei | 2018-03-14 | 1 | -1/+2 |
| | |||||
* | FS: Use the correct error code when trying to open files that don't exist. | Subv | 2018-03-04 | 2 | -26/+6 |
| | |||||
* | FS: Make EnsureSaveData create the savedata folder when called for the first time. | Subv | 2018-03-04 | 5 | -15/+30 |
| | |||||
* | SaveData: Use the current titleid when opening the savedata archive. | Subv | 2018-03-02 | 1 | -2/+3 |
| | |||||
* | Filesystem: Added a SaveData Factory and associated Disk_FileSystem. | Subv | 2018-03-02 | 7 | -14/+315 |
| | |||||
* | file_sys: Style tweaks | shinyquagsire23 | 2018-02-26 | 2 | -11/+5 |
| | | | | Asdf | ||||
* | file_sys: Add support for parsing NPDM files | shinyquagsire23 | 2018-02-25 | 2 | -0/+274 |
| | |||||
* | file_sys: Clang format fixes. | bunnei | 2018-01-21 | 3 | -4/+4 |
| | |||||
* | file_sys: Cleanup to better match Switch file system constructs. | bunnei | 2018-01-21 | 9 | -57/+128 |
| | | | | file_sys: Add factory class for RomFS file system. | ||||
* | file_sys: Remove disk_archive, savedata_archive, and title_metadata. | bunnei | 2018-01-21 | 6 | -829/+0 |
| | |||||
* | archive_backend: Minor changes to match Switch IFileSystem. | bunnei | 2018-01-21 | 5 | -26/+26 |
| | |||||
* | file_sys: Repurpose 3DS IVFC code for Switch ROMFS. | bunnei | 2018-01-21 | 2 | -49/+41 |
| | |||||
* | Format: Run the new clang format on everything | James Rowe | 2018-01-21 | 1 | -1/+1 |
| | |||||
* | Update title_metadata.h | N00byKing | 2018-01-17 | 1 | -0/+1 |
| | |||||
* | core: Gut out cryptop, since it doesn't compile with C++17. | bunnei | 2018-01-13 | 1 | -50/+1 |
| | |||||
* | hle: Use Switch formatted result codes. | bunnei | 2017-11-01 | 3 | -74/+24 |
| | |||||
* | core: Refactor MakeMagic usage and remove dead code. | bunnei | 2017-10-15 | 2 | -697/+0 |
| | |||||
* | Remove lots more 3DS-specific code. | bunnei | 2017-10-13 | 18 | -1935/+0 |
| | |||||
* | Merge remote-tracking branch 'upstream/master' into nx | bunnei | 2017-10-10 | 10 | -22/+1198 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Conflicts: # src/core/CMakeLists.txt # src/core/arm/dynarmic/arm_dynarmic.cpp # src/core/arm/dyncom/arm_dyncom.cpp # src/core/hle/kernel/process.cpp # src/core/hle/kernel/thread.cpp # src/core/hle/kernel/thread.h # src/core/hle/kernel/vm_manager.cpp # src/core/loader/3dsx.cpp # src/core/loader/elf.cpp # src/core/loader/ncch.cpp # src/core/memory.cpp # src/core/memory.h # src/core/memory_setup.h | ||||
| * | file_sys, loader: add support for reading TMDs to determine app paths | shinyquagsire23 | 2017-10-01 | 1 | -2/+13 |
| | | |||||
| * | file_sys: add class for Title Metadata (TMD) | shinyquagsire23 | 2017-10-01 | 2 | -0/+337 |
| | | |||||
| * | file_sys/ncch_container: add RomFS, ExeFS override to allow for backward compatibility with existing .romfs system archive dumps | shinyquagsire23 | 2017-10-01 | 2 | -69/+206 |
| | | |||||
| * | file_sys/archive_ncch: use NCCHContainer instead of loading .romfs files | shinyquagsire23 | 2017-10-01 | 1 | -6/+12 |
| | | |||||
| * | HLE/Archives: Allow multiple loaded applications to access their SelfNCCH archive independently. | Subv | 2017-09-25 | 2 | -13/+39 |
| | | | | | | | | | | | | | | | | The loaders now register each loaded ROM with the SelfNCCH factory, which keeps the data around for the duration of the emulation session. When opening the SelfNCCH archive, the factory queries the current program's programid and uses that as a key to the map that contains the NCCHData structure (RomFS, Icon, Banner, etc). 3dsx files do not have a programid and will use a default of 0 for this value, thus, only 1 3dsx file with RomFS is loadable at the same time. | ||||
| * | Loader/NCCH: Add support for loading application updates (#2927) | Max Thomas | 2017-09-25 | 4 | -5/+587 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * loader/ncch: split NCCH parsing into its own file * loader/ncch: add support for loading update NCCHs from the SD card * loader/ncch: fix formatting * file_sys/ncch_container: Return a value for OpenFile * loader/ncch: cleanup, always instantiate overlay_ncch to base_ncch * file_sys/ncch_container: better encryption checks, allow non-app NCCHs to load properly and for the existence of NCCH structures to be checked * file_sys/ncch_container: pass filepath as a const reference | ||||
| * | Warnings: Add UNREACHABLE macros to switches that contemplate all possible values. | Subv | 2017-08-21 | 1 | -0/+2 |
| | | |||||
| * | Handle invalid filenames when renaming files/directories | James | 2017-07-31 | 2 | -4/+78 |
| | | |||||
* | | nso: Refactor and allocate .bss section. | bunnei | 2017-09-30 | 1 | -3/+6 |
|/ | |||||
* | Addressed Bunnei's review comments, and made some other tweaks: | TheKoopaKingdom | 2017-06-03 | 1 | -6/+6 |
| | | | | | - Deleted GetStatus() because it wasn't used anywhere outside of Core::System. - Fixed design flaw where the message bar status could be set despite the game being stopped. | ||||
* | Switched to the ERROR_NOT_FOUND constant from errors.h. | TheKoopaKingdom | 2017-06-03 | 1 | -2/+2 |
| | |||||
* | Moved whitelist checks from FS_User to the Archive_NCCH handler. | TheKoopaKingdom | 2017-06-03 | 1 | -1/+35 |
| | |||||
* | Made some changes from review comments: | TheKoopaKingdom | 2017-06-03 | 1 | -1/+2 |
| | | | | | | | | - Made LoadKernelSystemMode return a pair consisting of a system mode and a result code (Could use review). - Deleted ErrorOpenGL error code in favor of just having ErrorVideoCore. - Made dialog messages more clear. - Compared archive ID in fs_user.cpp to ArchiveIdCode::NCCH as opposed to hex magic. - Cleaned up some other stuff. | ||||
* | FileSys: Move all result description to errors.h | Yuri Kunde Schlesner | 2017-05-25 | 5 | -61/+96 |
| | |||||
* | file_sys: lower log level for setting host path | wwylele | 2017-03-08 | 4 | -4/+4 |
| | |||||
* | Doxygen: Amend minor issues (#2593) | Mat M | 2017-02-27 | 1 | -1/+1 |
| | | | | | | | | | Corrects a few issues with regards to Doxygen documentation, for example: - Incorrect parameter referencing. - Missing @param tags. - Typos in @param tags. and a few minor other issues. | ||||
* | loader: use self NCCH archive | wwylele | 2017-02-13 | 2 | -81/+0 |
| | |||||
* | file_sys: add Self NCCH archive | wwylele | 2017-02-13 | 3 | -0/+312 |
| | |||||
* | core: fix savedata_archive.cpp warnings about unhandled enumeration values on OSX | Kloen | 2017-01-29 | 1 | -0/+12 |
| | |||||
* | core: fix archive_sdmc.cpp warnings about unhandled enumeration value on OSX | Kloen | 2017-01-29 | 1 | -0/+12 |
| | |||||
* | core: fix archive_extsavedata.cpp warning on OSX | Kloen | 2017-01-29 | 1 | -0/+2 |
| | |||||
* | Address clang-format issues. | bunnei | 2016-12-22 | 1 | -4/+3 |
| | |||||
* | core: Remove HLE module, consolidate code & various cleanups. | bunnei | 2016-12-22 | 4 | -5/+5 |
| | |||||
* | archive_source_sd_savedata: Add static method to get a specific save data path | MerryMage | 2016-12-15 | 2 | -0/+7 |
| | |||||
* | file_sys: Make a few single-argument constructors explicit | Lioncash | 2016-12-07 | 8 | -10/+10 |
| | | | | Prevents implicit conversions. | ||||
* | FileSys: Implement OtherSaveData | wwylele | 2016-11-29 | 3 | -0/+200 |
| | |||||
* | FileSys: abstract SD save data archive source | wwylele | 2016-11-29 | 4 | -78/+132 |
| | |||||
* | FileSys: rename SaveDataCheck archive to NCCH archive | wwylele | 2016-11-19 | 2 | -15/+15 |
| | | | | According to the observation from game and 3dbrew "Used for accessing general NCCH data" | ||||
* | FileSys: remove unused DiskArchive | wwylele | 2016-11-19 | 2 | -179/+0 |
| | | | | All "subclasses" of DiskArchive are splitted out. This class is useless | ||||
* | FileSys: w->rw permission lift only happens in SDMC archive | wwylele | 2016-11-19 | 4 | -2/+14 |
| | |||||
* | FileSys: add SDMCWriteOnlyArchive | wwylele | 2016-11-19 | 3 | -0/+129 |
| | |||||
* | FileSys: add SDMCArchive | wwylele | 2016-11-19 | 3 | -1/+301 |
| | | | | Now DiskArchive only serves for SDMC, then it should be just a "SDMCArchive" | ||||
* | FileSys: add ExtSaveDataArchive | wwylele | 2016-11-19 | 1 | -1/+114 |
| | | | | ExtSaveData is more similar to SaveData, so let it be a subclass of SaveData | ||||
* | FileSys: add SaveDataArchive | wwylele | 2016-11-19 | 5 | -4/+359 |
| | | | | The error checking of SaveDataArchive is completely different from DiskArchive, so it has to be a new class instead of a subclass of DiskArchive. | ||||
* | FileSys: remove Open from FileBackend | wwylele | 2016-11-19 | 4 | -64/+44 |
| | | | | Same as directory, file shouldn't expose Open either. | ||||
* | FileSys: remove Open from DirectoryBackend | wwylele | 2016-11-19 | 4 | -25/+5 |
| | | | | Open should not be an interface exposed by Directory because it is the Archive thats implement the methed to open the directory. The service API of 3DS also implies this - Open is not a function of directory service, but is of FS main service | ||||
* | FileSys: add PathParser | wwylele | 2016-11-19 | 2 | -0/+159 |
| | |||||
* | FileSys: make Archive interfaces return error code | wwylele | 2016-11-01 | 5 | -55/+82 |
| | | | | and make the mode parameter a reference since it is a BitField union | ||||
* | fs: implement DeleteDirectoryRecursively | wwylele | 2016-10-02 | 5 | -0/+19 |
| | |||||
* | Use negative priorities to avoid special-casing the self-include | Yuri Kunde Schlesner | 2016-09-21 | 9 | -9/+9 |
| | |||||
* | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 2016-09-21 | 20 | -44/+9 |
| | | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation. | ||||
* | Manually tweak source formatting and then re-run clang-format | Yuri Kunde Schlesner | 2016-09-19 | 8 | -43/+30 |
| | |||||
* | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | 2016-09-18 | 20 | -136/+217 |
| | |||||
* | FileSys/Path: Replace Memory::GetPointer with Memory::ReadBlock | MerryMage | 2016-05-21 | 1 | -6/+6 |
| | |||||
* | Merge pull request #1643 from MerryMage/make_unique | Mathew Maidment | 2016-04-06 | 8 | -19/+17 |
|\ | | | | | Common: Remove Common::make_unique, use std::make_unique | ||||
| * | Common: Remove Common::make_unique, use std::make_unique | MerryMage | 2016-04-05 | 8 | -19/+17 |
| | | |||||
* | | archive_extsavedata: Fix member initialization order | Lioncash | 2016-03-21 | 1 | -1/+2 |
|/ | | | | shared appears in the initializer list before mount_point | ||||
* | HLE/FS: Change the error code returned when an ExtSaveData archive is not found. | Subv | 2016-03-20 | 4 | -29/+37 |
| | | | | This allows Fire Emblem to boot again. | ||||
* | HLE/FS: Corrected some style concerns. | Subv | 2016-03-20 | 4 | -8/+8 |
| | |||||
* | HLE/FS: Implemented GetFormatInfo | Subv | 2016-03-20 | 13 | -14/+130 |
| | | | | Format information is currently only implemented for the ExtSaveData, SharedExtSaveData and SaveData archives, the information is stored in a file alongside the root folder of the archive. | ||||
* | HLE/FS: Return the proper error codes when opening files. | Subv | 2016-03-20 | 6 | -25/+39 |
| | |||||
* | HLE/FS: Return the proper error codes on file Read/Write operations. | Subv | 2016-03-20 | 5 | -16/+24 |
| | | | | These operations are limited by the open flags specified while opening the file. | ||||
* | HLE/FS: Corrected the error codes for DeleteFile | Subv | 2016-03-20 | 5 | -8/+21 |
| | |||||
* | HLE/FS: Corrected the error codes for CreateFile | Subv | 2016-03-20 | 1 | -1/+4 |
| | |||||
* | HLE/FS: FS::CreateFile takes an u64 for the file size. | Subv | 2016-03-20 | 5 | -5/+5 |
| | |||||
* | Merge pull request #1297 from Subv/saves | bunnei | 2016-03-01 | 1 | -2/+4 |
|\ | | | | | DiskDirectory: Initialize the directory member with valid info. | ||||
| * | DiskDirectory: Initialize the directory member with valid info. | Subv | 2016-01-16 | 1 | -2/+4 |
| | | |||||
* | | archive_backend: Remove unnecessary const from return types | Lioncash | 2016-01-25 | 2 | -8/+8 |
|/ | | | | This doesn't return by reference so const isn't really necessary | ||||
* | Implement FS_User::GetFreeBytes | archshift | 2015-10-28 | 5 | -0/+18 |
| | |||||
* | ivfc_archive: Fix a printf specifier | Lioncash | 2015-09-30 | 1 | -1/+1 |
| | |||||
* | disk_archive: Remove unimplemented constructor declarations | Lioncash | 2015-09-10 | 1 | -2/+0 |
| | |||||
* | Services/FS: Correctly tell the guest app whether a file was correctly opened or not. | Subv | 2015-08-29 | 1 | -1/+1 |
| | | | | Closes #1067 | ||||
* | Archive: Correct a few incorrect types in function signatures | Yuri Kunde Schlesner | 2015-07-14 | 5 | -21/+21 |
| | | | | Buffer lengths should be size_t, and file offsets should be u64. | ||||
* | Loader: Remove unnecessary pointer indirection to IOFile | Yuri Kunde Schlesner | 2015-07-14 | 2 | -2/+2 |
| | |||||
* | FS: Stream RomFS from file instead of loading all of it to memory | condut | 2015-07-14 | 5 | -23/+27 |
| | |||||
* | Core: Properly configure address space when loading a binary | Yuri Kunde Schlesner | 2015-07-12 | 1 | -2/+2 |
| | | | | | | The code now properly configures the process image to match the loaded binary segments (code, rodata, data) instead of just blindly allocating a large chunk of dummy memory. | ||||
* | Core: Cleanup file_sys includes. | Emmanuel Gil Peyrot | 2015-06-28 | 17 | -30/+52 |
| | |||||
* | CitraQt: Cleanup includes. | Emmanuel Gil Peyrot | 2015-06-28 | 1 | -0/+1 |
| | |||||
* | Common: Cleanup memory and misc includes. | Emmanuel Gil Peyrot | 2015-06-28 | 1 | -0/+2 |
| | |||||
* | Common: Fix FileUtil includes, and everything relying on those. | Emmanuel Gil Peyrot | 2015-06-28 | 4 | -0/+4 |
| | |||||
* | ExtSavedata: Save the icon passed to CreateExtSaveData to the correct folder. | Subv | 2015-06-02 | 1 | -3/+6 |
| | | | | Organize the ExtSaveData folders as they are stored in the console. | ||||
* | Remove every trailing whitespace from the project (but externals). | Emmanuel Gil Peyrot | 2015-05-29 | 3 | -5/+5 |
| | |||||
* | Memmap: Re-organize memory function in two files | Yuri Kunde Schlesner | 2015-05-15 | 1 | -1/+1 |
| | | | | | | | memory.cpp/h contains definitions related to acessing memory and configuring the address space mem_map.cpp/h contains higher-level definitions related to configuring the address space accoording to the kernel and allocating memory. | ||||
* | Kernel: Remove g_program_id | Yuri Kunde Schlesner | 2015-05-09 | 1 | -2/+3 |
| | | | | This has been obsoleted by the field in Process. | ||||
* | Common: Remove common.h | Yuri Kunde Schlesner | 2015-05-07 | 8 | -1/+7 |
| | |||||
* | Clean-up includes | Yuri Kunde Schlesner | 2015-05-07 | 2 | -4/+2 |
| | |||||
* | FileSys: De-inline Path members | Yuri Kunde Schlesner | 2015-05-07 | 2 | -125/+136 |
| | |||||
* | FileSys: Clean-up includes, de-inline destructors | Yuri Kunde Schlesner | 2015-05-07 | 3 | -7/+14 |
| | |||||
* | Headers: Add some forgotten overrides, thanks clang! | Emmanuel Gil Peyrot | 2015-04-14 | 1 | -1/+1 |
| | |||||
* | Services/FS: Implemented DeleteExtSaveData, CreateSystemSaveData and DeleteSystemSaveData | Subv | 2015-03-14 | 4 | -2/+76 |
| | | | | Also fixed a bug with CreateExtSaveData that made it unable to create ExtSaveData archives in the SDMC directory. | ||||
* | Archives: Properly implemented the SystemSaveData archive. | Subv | 2015-02-26 | 2 | -19/+28 |
| | | | | Ported to the new factory pattern we have for archives. | ||||
* | FS: Allow multiple instances of the same archive type to be open at once | Yuri Kunde Schlesner | 2015-02-10 | 15 | -129/+163 |
| | |||||
* | Services: Stubbed more services. | Subv | 2015-01-24 | 2 | -2/+19 |
| | | | | Implemented FSUser::CreateExtSaveData | ||||
* | Merge pull request #376 from Subv/arc_reorder | bunnei | 2015-01-07 | 7 | -16/+50 |
|\ | | | | | Archives: Change the folder layout of some archives. | ||||
| * | Archives/Exdata: Don't set concrete_mount_point in the ctor | Subv | 2015-01-06 | 1 | -1/+1 |
| | | |||||
| * | Archives: Addressed some comments | Subv | 2015-01-06 | 4 | -13/+13 |
| | | |||||
| * | SaveDataCheck: Fixed a typo | Subv | 2015-01-05 | 1 | -1/+1 |
| | | |||||
| * | Archives: Make SYSTEM_ID and SDCARD_ID strings | Subv | 2015-01-04 | 4 | -5/+7 |
| | | |||||
| * | Archives: Changed the way paths are built for the archives. | Subv | 2015-01-04 | 6 | -12/+44 |
| | | | | | | | | Each archive now takes a mount point of either NAND or SDMC, and builds its own directory structure there, trying to simulate an HLE-friendly hardware layout | ||||
| * | SaveDataCheck: Move the files to nand/title | Subv | 2015-01-04 | 1 | -1/+2 |
| | | | | | | | | under /nand/title/high/low/content/00000000.app.romfs | ||||
| * | Archives: Change the folder layout of some archives. | Subv | 2015-01-03 | 1 | -2/+1 |
| | | | | | | | | This is to better represent the hardware layout, they are still aren't quite accurate, but this better and will help a bit when implementing the other archives like NAND-RO and NAND-RW | ||||
* | | FileSys: Fix crash bug in DiskFile exposed by #400 | Yuri Kunde Schlesner | 2015-01-03 | 1 | -4/+0 |
| | | |||||
* | | FileSys: Fix a few memory leaks | Yuri Kunde Schlesner | 2015-01-03 | 2 | -6/+7 |
|/ | |||||
* | IVFCArchive: Use a critical log to notify of invalid operations. | Subv | 2015-01-03 | 1 | -9/+9 |
| | |||||
* | SaveDataCheck: Remove unneeded constructor from a class | Subv | 2015-01-03 | 1 | -2/+0 |
| | |||||
* | Archives: Added some documentation to IVFCArchive | Subv | 2015-01-03 | 1 | -0/+5 |
| | |||||
* | Archives: Reduced duplicate code in RomFS and SaveCheck. | Subv | 2015-01-03 | 11 | -333/+229 |
| | | | | Fixed a few warnings and cleaned up the code | ||||
* | SaveDataCheck: Preliminary work in this archive. | Subv | 2015-01-03 | 2 | -4/+28 |
| | | | | | | This allows Steel Diver to boot further, some files are needed. This is still not ready and needs a big cleanup, this will possibly be delayed until the way we handle archives is fixed (with factory classes instead of ahead-of-time creation of archives) | ||||
* | Archives: Implemented ExtSaveData and SharedExtSaveData | Subv | 2014-12-30 | 8 | -15/+168 |
| | | | | | | | | They will be stored in /extsavedata/SDMC and /extsavedata/NAND respectively. Also redirect some APT_A functions to their APT_U equivalents. Implemented the gamecoin.dat file in SharedExtSaveData in the PTM module. Implemented formatting the savegame. Retake a previous savegame if it exists instead of reporting them as not formatted every time a game is loaded. | ||||
* | FileSys: Clean up according to the coding style, and remove redundant namespaced names. | Emmanuel Gil Peyrot | 2014-12-24 | 9 | -169/+97 |
| | |||||
* | CFG: Create a new subfolder cfg inside service to handle cfg | Subv | 2014-12-21 | 1 | -0/+1 |
| | | | | Moved most of the shared CFG code there, implemented a few CFG:I functions | ||||
* | Style: Addressed some comments | Subv | 2014-12-21 | 1 | -2/+7 |
| | |||||
* | CFG: Refactored how the config file works. | Subv | 2014-12-21 | 1 | -1/+1 |
| | | | | It is now kept in memory as per 3dbrew, all updates happen on memory, then they can be saved using UpdateConfigNANDSavegame. | ||||
* | CFG: Implemented the GetConfigInfoBlk2 function. | Subv | 2014-12-21 | 3 | -3/+9 |
| | | | | | | Added a "config" file to the CFG process service (CFG:U), and added a few default blocks to it. Implemented GetSystemModel and GetModelNintendo2DS | ||||
* | Merge pull request #291 from purpasmart96/license | bunnei | 2014-12-21 | 17 | -17/+17 |
|\ | | | | | License change | ||||
| * | License change | purpasmart96 | 2014-12-21 | 17 | -17/+17 |
| | | |||||
* | | Merge pull request #271 from archshift/createf | bunnei | 2014-12-21 | 5 | -0/+44 |
|\ \ | | | | | | | Added CreateFile to the FS_USER service | ||||
| * | | Added CreateFile to the FS_USER service | archshift | 2014-12-21 | 5 | -0/+44 |
| | | | | | | | | | | | | Tested with hwtests. | ||||
* | | | Merge pull request #315 from chinhodado/master | bunnei | 2014-12-20 | 1 | -1/+10 |
|\ \ \ | |/ / |/| | | Clean up some warnings | ||||
| * | | Clean up some warnings | Chin | 2014-12-20 | 1 | -1/+10 |
| |/ | |||||
* / | Common: Add a clone of std::make_unique | Yuri Kunde Schlesner | 2014-12-20 | 1 | -2/+3 |
|/ | |||||
* | SystemSaveData: Added a TODO to move it to the NAND. | Subv | 2014-12-18 | 1 | -1/+3 |
| | | | | Maybe sometime when we actually implement that | ||||
* | SaveData: Implemented the SystemSaveData archive. | Subv | 2014-12-18 | 3 | -2/+65 |
| | | | | It will be stored in the /syssavedata folder. This archive is user by various Services and possibly games via the FS:U service. | ||||
* | Filesystem/Archives: Implemented the SaveData archive | Subv | 2014-12-18 | 12 | -473/+344 |
| | | | | | | | | | | The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information Got rid of the code duplication in File and Directory Files that deal with the host machine's file system now live in DiskFile, similarly for directories and DiskDirectory and archives with DiskArchive. FS_U: Use the correct error code when a file wasn't found | ||||
* | FS.Archive: Clean up treatment of archives and their handles | Yuri Kunde Schlesner | 2014-12-16 | 7 | -190/+21 |
| | | | | | | | - Refactor FS::Archive internals to make Archive creation and lifetime management clearer. - Remove the "Archive as a File" hack. - Implement 64-bit Archive handles. | ||||
* | Service.FS: Rename FileSys::File to FileBackend | Yuri Kunde Schlesner | 2014-12-16 | 8 | -15/+15 |
| | |||||
* | Service.FS: Rename FileSys::Directory to DirectoryBackend | Yuri Kunde Schlesner | 2014-12-16 | 8 | -15/+15 |
| | |||||
* | Service.FS: Rename FileSys::Archive to ArchiveBackend | Yuri Kunde Schlesner | 2014-12-16 | 3 | -6/+6 |
| | |||||
* | Service.FS: Do archive registration using IdCode instead of name | Yuri Kunde Schlesner | 2014-12-16 | 3 | -25/+4 |
| | |||||
* | Convert old logging calls to new logging macros | Yuri Kunde Schlesner | 2014-12-13 | 5 | -24/+28 |
| | |||||
* | Merge pull request #264 from Subv/files | bunnei | 2014-12-09 | 1 | -3/+6 |
|\ | | | | | Kernel/File: Fixed file read/write hwtests | ||||
| * | Kernel/File: Fixed file read/write hwtests | Subv | 2014-12-08 | 1 | -3/+6 |
| | | | | | | | | | | | | The 3DS allows the user to read from files opened with the Write access modifier, even if he did not specify the Read access modifier. Open the files in binary mode so that we can prevent CR/LF problems in Windows, where a line-end is replaced by these two bytes instead of just 0xA, this was causing problems with the GetSize test | ||||
* | | Make OpenDirectory fail if the directory doesn't exist | archshift | 2014-12-07 | 6 | -3/+35 |
|/ | | | | | | | This is in line with what the hardware itself does. It does this by splitting the initial directory opening into Directory.Open(), which will return false if a stat fails. Then, Archive::OpenDirectory will return nullptr, and archive.cpp will return an error code . | ||||
* | Merge pull request #222 from archshift/renamexyz | bunnei | 2014-12-05 | 5 | -0/+66 |
|\ | | | | | Implemented RenameFile and RenameDirectory in FS:USER | ||||
| * | Updated archive.cpp functions for proper error handling | archshift | 2014-12-04 | 2 | -24/+0 |
| | | |||||
| * | Implemented RenameDirectory in FS:USER | archshift | 2014-11-25 | 5 | -0/+45 |
| | | |||||
| * | Implemented RenameFile in FS:USER | archshift | 2014-11-25 | 5 | -0/+45 |
| | | |||||
* | | Fixed formatting and switch statement warnings | vaguilar | 2014-11-27 | 2 | -1/+3 |
|/ | |||||
* | Merge pull request #191 from archshift/deletexyz | bunnei | 2014-11-24 | 5 | -0/+80 |
|\ | | | | | Added DeleteFile and DeleteDirectory functions to FS:USER and the archives. | ||||
| * | Added DeleteFile and DeleteDirectory functions to FS:USER and the archives. | archshift | 2014-11-23 | 5 | -0/+80 |
| | | |||||
* | | Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated | Emmanuel Gil Peyrot | 2014-11-19 | 2 | -2/+2 |
| | | |||||
* | | Merge pull request #209 from lioncash/warn | Tony Wasserka | 2014-11-18 | 1 | -1/+1 |
|\ \ | | | | | | | directory_sdmc: Fix a signed/unsigned mismatch comparison | ||||
| * | | directory_sdmc: Fix a signed/unsigned mismatch comparison | Lioncash | 2014-11-18 | 1 | -1/+1 |
| |/ | |||||
* / | Remove extraneous semicolons | Lioncash | 2014-11-18 | 3 | -3/+3 |
|/ | |||||
* | FileSys: Updated backend code to use FileSys::Path instead of string for paths. | bunnei | 2014-11-18 | 9 | -24/+24 |
| | |||||
* | FileSys: Added DebugStr method to Path class. | bunnei | 2014-11-18 | 1 | -0/+29 |
| | |||||
* | Use std::u16string for conversion between UTF-8 and UTF-16, FS:USER functions | archshift | 2014-11-13 | 1 | -0/+99 |
| | |||||
* | Added CreateDirectory function to service/fs.cpp, and in Archive. | archshift | 2014-11-02 | 5 | -0/+40 |
| | |||||
* | Fix some warnings | Sean | 2014-10-30 | 2 | -2/+2 |
| | |||||
* | Use config files to store whether SDMC is enabled or not | archshift | 2014-10-23 | 1 | -2/+8 |
| | | | | Before, it used to use whether the directory actually existed. As a result, .citra-emu/sdmc was never auto-created (something quite confusing to me until I read through the logs). | ||||
* | Common: Add a helper function to generate a 8.3 filename from a long one. | Emmanuel Gil Peyrot | 2014-10-06 | 3 | -29/+27 |
| | | | | Core: Fix the SDMC Directory implementation to make blargSnes work. | ||||
* | FileSys: Add static asserts for the Directory struct, and fix its fields position. | Emmanuel Gil Peyrot | 2014-10-06 | 1 | -2/+8 |
| | |||||
* | FileSys: split the constructor into an Open method, in order to notify the opener something went wrong. | Emmanuel Gil Peyrot | 2014-10-06 | 6 | -14/+54 |
| | | | | Kernel: Return an invalid handle to OpenFile when it failed to open. | ||||
* | FileSys/Kernel: Implement SetSize service call for File objects. | Emmanuel Gil Peyrot | 2014-10-06 | 5 | -0/+41 |
| | |||||
* | FileSys: Add forgotten docstrings. | Emmanuel Gil Peyrot | 2014-10-06 | 7 | -4/+35 |
| | |||||
* | Fix warnings in core and common | Lioncash | 2014-09-28 | 1 | -1/+1 |
| | |||||
* | Core: Add a method to obtain a Directory from an Archive. | Emmanuel Gil Peyrot | 2014-09-17 | 5 | -0/+44 |
| | |||||
* | Core: Add a Directory object, with both a stub and a passthrough implementations. | Emmanuel Gil Peyrot | 2014-09-17 | 5 | -0/+259 |
| | |||||
* | Core: Add a passthrough backend for the filesystem, exposed as SDMC. | Emmanuel Gil Peyrot | 2014-09-17 | 4 | -0/+298 |
| | |||||
* | Core: Add a new File class, obtainable from an Archive, and a stub implementation. | Emmanuel Gil Peyrot | 2014-09-17 | 6 | -0/+205 |
| | |||||
* | Added FS functions to Archive and Archive_RomFS | archshift | 2014-08-23 | 3 | -8/+57 |
| | |||||
* | Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS virtual functions as "override". | bunnei | 2014-07-05 | 1 | -4/+4 |
| | |||||
* | Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS classes as "final" | bunnei | 2014-07-05 | 1 | -1/+1 |
| | |||||
* | Loader: Updated read methods to be const | bunnei | 2014-07-05 | 2 | -2/+2 |
| | | | | - Required "file" handle to be made local and explicitly opened/closed as needed | ||||
* | FileSys: Added preliminary support for applications reading the RomFS archive. | bunnei | 2014-07-05 | 4 | -138/+150 |
| | | | | | | | | | | Archive: Fixed brace ugliness for neobrain :) FS: Commented out unused local variables to prevent warnings. ...But keeping them here for future use. archive_romfs: Removed unused #include. | ||||
* | Core: Removed unused directory_file_system and meta_file_system modules. | bunnei | 2014-06-27 | 4 | -1453/+0 |
| | | | | Core: Updated CMakeLists.txt to remove directory_file_system and meta_file_system modules. | ||||
* | fixes to build on linux | bunnei | 2014-04-23 | 2 | -22/+22 |
| | |||||
* | fixed project includes to use new directory structure | bunnei | 2014-04-09 | 5 | -20/+15 |
| | |||||
* | got rid of 'src' folders in each sub-project | bunnei | 2014-04-09 | 5 | -0/+1596 |