Commit Graph

615 Commits

Author SHA1 Message Date
Zach Hilman fd66788be4 card_image: Implement system update commands in XCI 2019-10-13 14:18:45 -04:00
Zach Hilman 30eb8fa105 card_image: Add accessors for raw partitions in XCI 2019-09-22 21:51:46 -04:00
Zach Hilman 2e7ba9d78f card_image: Lazily load partitions in XCI 2019-09-22 21:50:29 -04:00
Zach Hilman 7e56536d35 pfs: Provide accessors for file sizes and offsets 2019-09-22 21:44:36 -04:00
David Marcec f35665aa28 Revert "Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1"
This reverts commit 66d80be727, reversing
changes made to 43decd1681.
2019-09-22 17:47:25 +10:00
David b890029175 Merge pull request #2535 from DarkLordZach/cheat-v2
cheat_engine: Use Atmosphere's Cheat VM and fix cheat crash
2019-09-22 16:24:42 +10:00
David 66d80be727 Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1
system_archive: Move shared font data to system_archive and fix extended font data
2019-09-22 16:09:22 +10:00
Zach Hilman 949a913356 pl_u: Use kernel physical memory 2019-09-21 23:00:22 -04:00
Zach Hilman bcac1b8ff5 dmnt_cheat_vm: Default initialize structure values 2019-09-21 22:43:49 -04:00
Zach Hilman 977d27ed15 pl_u: Use OSS system archives if real archives don't exist 2019-09-21 21:50:41 -04:00
Zach Hilman 2b944e0d70 patch_manager: Update cheat parsing for new VM 2019-09-21 21:45:05 -04:00
Zach Hilman deacc2bb25 cheat_engine: Move to memory and strip VM
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.
2019-09-21 21:44:22 -04:00
Zach Hilman f005898fb4 system_archive: Synthesize shared fonts system archives 2019-09-21 19:21:58 -04:00
Zach Hilman 896045aa4f externals: Move OSS font data to file_sys in core 2019-09-21 19:21:22 -04:00
Zach Hilman 04078a2139 configure_debug: Move reporting option to logging 2019-09-21 18:43:20 -04:00
Zach Hilman 541bf1b996 filesystem: Add const qualification to various accessors 2019-09-21 16:50:39 -04:00
Zach Hilman c3ad37b707 yuzu: Port old usages of Filesystem namespace to FilesystemController 2019-09-21 16:43:10 -04:00
Zach Hilman c094f75276 card_image: Add accessors for gamecard certificate
Used by fsp-srv/IDeviceOperator
2019-09-21 16:43:10 -04:00
Zach Hilman 58dba10b63 card_image: Add functions to query gamecard update partition
Includes version and meta title ID, used by fsp-srv/IDeviceOperator
2019-09-21 16:43:10 -04:00
Zach Hilman 8dcda218d8 content_archive: Add accessors for Rights ID and SDK Version 2019-09-21 16:43:10 -04:00
Zach Hilman a4b2e1c5ce sdmc_factory: Add SD Card size getters 2019-09-21 16:43:10 -04:00
Zach Hilman 4a2e1c6ae6 bis_factory: Add getters for NAND partition sizes 2019-09-21 16:43:10 -04:00
Zach Hilman 91d032d433 submisson_package: Fix edge case with improperly sized filenames
Prevents a crash if the filename is less than 9 characters long.
2019-09-21 16:43:10 -04:00
Zach Hilman 915ea374f8 sdmc_factory: Add accessor for SDMC Album directory 2019-09-21 16:43:10 -04:00
Zach Hilman 3c2e2156e0 sdmc_factory: Add accessor for SDMC PlaceholderCache 2019-09-21 16:43:10 -04:00
Zach Hilman 147fa325d9 sdmc_factory: Add accessor for content directory 2019-09-21 16:43:10 -04:00
Zach Hilman 85ae125737 savedata_factory: Implement savedata creation and don't create dir on open
Matches hardware behavior and eliminates some nasty behavior we were doing that wasn't hw-accurate at all.
2019-09-21 16:43:10 -04:00
Zach Hilman 1d342149cd patch_manager: Add short-circuit edge-case to GetPatchVersionNames
If title ID is 0, there are no add ons, prevents wasting time looking for them.
2019-09-21 16:43:10 -04:00
Zach Hilman e4336e33d6 patch_manager: Add error checking to load dir to prevent crashes
Prevents a crash if the load dir would be nullptr, instead logs an error and returns appropriately.
2019-09-21 16:43:10 -04:00
Zach Hilman ae762910b1 registered_cache: Process *.cnmt.nca files
Needed to use the RegisteredCache/PlaceholderCache on gamecards.
2019-09-21 16:43:10 -04:00
Zach Hilman 24ae0aacbc registered_cache: Implement PlaceholderCache to manage placeholder and installing content 2019-09-21 16:43:10 -04:00
Zach Hilman 9cef1068c5 bis_factory: Fix mod loader edge-case with homebrew title IDs
Fixes a bug where homebrew that has a title ID with the update bit set can cause issues with the PatchManager
2019-09-21 16:43:10 -04:00
Zach Hilman 8660185e63 bis_factory: Add accessors for BIS placeholder caches 2019-09-21 16:43:10 -04:00
Zach Hilman af109c066e bis_factory: Add accessor for NAND Image Directory 2019-09-21 16:43:10 -04:00
Zach Hilman 2146600c38 bis_factory: Add accessors for BIS content directories 2019-09-21 16:43:10 -04:00
Zach Hilman 17c5f05179 bis_factory: Add accessors for BIS partitions 2019-09-21 16:43:10 -04:00
David 95f4d78e87 Merge pull request #2576 from DarkLordZach/nsp-fix-1
nsp: Fix various errors with loading and processing of extracted NSPs
2019-09-21 20:05:24 +10:00
David ea025af713 Merge pull request #2707 from DarkLordZach/oss-miimodel
system_archive: Add open-source reimplementation of MiiModel data
2019-09-05 10:56:32 +10:00
Zach Hilman f458590c85 system_archive: Add open-source reimplementation of MiiModel data 2019-07-10 07:21:36 -04:00
Michael Scire 6a33b060b7 Implement MapPhysicalMemory/UnmapPhysicalMemory
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.
2019-07-07 11:45:53 -07:00
Bakugo 81c1c139fe file_sys: Rename other ContentRecordType members 2019-07-02 00:57:23 +01:00
Bakugo e377bcd699 file_sys/registered_cache: Improve missing metadata error
This can happen when installing NSPs too, not just XCIs.
2019-07-01 07:31:32 +01:00
Bakugo d046ef7112 file_sys/submission_package: Don't warn about missing DeltaFragment NCAs
DeltaFragments are not useful to us and are often not included in patch NSPs.
2019-07-01 06:46:05 +01:00
Bakugo 88a70b40ba file_sys/registered_cache: Ignore DeltaFragment NCAs during installation
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.
2019-07-01 06:37:22 +01:00
Bakugo 29f1d01c06 file_sys: Rename ContentRecordType::Patch to DeltaFragment
Avoids potential confusion, since patches and DeltaFragments are not the same thing. Actual full patches are listed under the Program type.
2019-07-01 06:32:13 +01:00
Zach Hilman 12105d8909 glue: Correct missing bytes in ApplicationLaunchParameter 2019-06-25 22:25:10 -04:00
Zach Hilman fb8b87dbaf registered_cache: Add getter to determine source slot in content provider union
Used to determine StorageId source for application data.
2019-06-24 19:10:17 -04:00
Zach Hilman 7891b418d4 patch_manager: Add getter for title version 2019-06-24 19:05:50 -04:00
bunnei a43061206c Merge pull request #2546 from DarkLordZach/kips
loader, file_sys: Add support for parsing and loading KIP (Kernel Internal Process) files
2019-06-21 14:28:18 -04:00
jonsn0w cbb3371437 Update content_archive.cpp
log clutter in debug logs when theres really no need
2019-06-19 22:01:41 -04:00