721a92775d
sdmc_factory: Add SD Card size getters
2019-09-21 16:43:10 -04:00
e47b57a90f
bis_factory: Add getters for NAND partition sizes
2019-09-21 16:43:10 -04:00
0a8e540681
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
08c0783d34
sdmc_factory: Add accessor for SDMC Album directory
2019-09-21 16:43:10 -04:00
0084cceb20
sdmc_factory: Add accessor for SDMC PlaceholderCache
2019-09-21 16:43:10 -04:00
02b36b0eb5
sdmc_factory: Add accessor for content directory
2019-09-21 16:43:10 -04:00
49c44e3fae
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
62d772eaed
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
06db4d94fd
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
9d9fc8a675
registered_cache: Process *.cnmt.nca files
...
Needed to use the RegisteredCache/PlaceholderCache on gamecards.
2019-09-21 16:43:10 -04:00
8500ca797f
registered_cache: Implement PlaceholderCache to manage placeholder and installing content
2019-09-21 16:43:10 -04:00
256a50ad15
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
b71bda45ae
bis_factory: Add accessors for BIS placeholder caches
2019-09-21 16:43:10 -04:00
9bee885282
bis_factory: Add accessor for NAND Image Directory
2019-09-21 16:43:10 -04:00
4dae5a52a8
bis_factory: Add accessors for BIS content directories
2019-09-21 16:43:10 -04:00
3a1899d143
bis_factory: Add accessors for BIS partitions
2019-09-21 16:43:10 -04:00
25383b9ff2
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
8795645d97
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
adab188c2b
system_archive: Add open-source reimplementation of MiiModel data
2019-07-10 07:21:36 -04:00
13a8fde3ad
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
b50557d1f0
file_sys: Rename other ContentRecordType members
2019-07-02 00:57:23 +01:00
c72ef5f405
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
9968c0883a
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
79163fca80
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
306a24aad7
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
d10fc2d727
glue: Correct missing bytes in ApplicationLaunchParameter
2019-06-25 22:25:10 -04:00
db2e5e5fa6
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
a468273221
patch_manager: Add getter for title version
2019-06-24 19:05:50 -04:00
e2f7933b3f
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
e78d069a81
Update content_archive.cpp
...
log clutter in debug logs when theres really no need
2019-06-19 22:01:41 -04:00
6ca20ad7ba
Addressed issues
2019-06-17 08:17:26 +10:00
335127af69
Impl'd IsUserAccountSwitchLocked, SetAudioOutVolume, GetAudioOutVolume & Partial impl of GetAccumulatedSuspendedTickChangedEvent
...
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.
2019-06-16 19:06:33 +10:00
c140b6ae2c
Merge pull request #2581 from lioncash/hex
...
common/hex_util: Combine HexVectorToString() and HexArrayToString()
2019-06-15 16:47:13 -04:00
0360c40e90
Merge pull request #2582 from lioncash/reserved
...
file_sys/ips_layer: Remove unnecessary reserve() call
2019-06-14 11:24:18 -04:00
0f08f2d562
Merge pull request #2577 from lioncash/fs
...
file_sys/card_image: Minor cleanup
2019-06-12 19:23:33 -04:00
18c1d91920
file_sys/ips_layer: Remove unnecessary reserve() call
...
Given 'replace' is assigned to on the following line, this isn't
necessary, given the underlying data is going to be overwritten
entirely.
2019-06-12 18:12:45 -04:00
a62088539e
common/hex_util: Combine HexVectorToString() and HexArrayToString()
...
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.
2019-06-12 17:54:05 -04:00
c7daddb715
file_sys/card_image: Remove obsolete TODO
...
We already support Rev 1+.
2019-06-12 16:52:19 -04:00
a602bcaaf8
file_sys/nca_metadata: Update CNMT structures
...
Names a few more entries in relevant structures. Information based off
SwitchBrew and my own RE.
2019-06-10 23:51:06 -04:00
7bdef6106e
file_sys/card_image: Deduplicate casts within AddNCAFromPartition()
...
Makes for nicer reading.
2019-06-10 23:27:14 -04:00
81d361d9f8
file_sys/card_image: Make bracing consistent
...
Makes for more consistent reading.
2019-06-10 23:27:13 -04:00
e34368249f
file_sys/card_image: Assign collapsed NCA contents directly to ncas member
...
Same thing, significantly less noisy.
2019-06-10 23:27:13 -04:00
288d027e89
file_sys/card_image: Deduplicate type cast
...
Same thing, less duplication. We can also std::move raw into the
PartitionFilesystem constructor.
2019-06-10 23:27:05 -04:00
825ffd7b1f
file_sys/card_image: Get rid of a magic number
...
We can just use the size of the array to dehardcode it.
2019-06-10 22:58:08 -04:00
bf35138d1d
file_sys/card_image: Use std::array deduction guides
...
Same thing, less code.
2019-06-10 22:57:53 -04:00
b957a4862f
nsp: Correct status codes for extracted NSPs
...
Avoids all extracted NSPs being marked as error file type because they don't have program NCAs.
2019-06-10 00:21:41 -04:00
1c75945dc4
nsp: Use title ID from NPDM metadata for extracted type NSPs
...
Avoids 0 being used as title ID for all extracted NSPs.
2019-06-10 00:19:23 -04:00
9db119f8a2
kernel_executable: Optimize BLZ decompression
2019-06-06 19:20:15 -04:00
c417b4fe28
game_list: Accept *.kip as a file extension of executables
2019-06-05 00:33:05 -04:00
b550a01f74
program_metadata: Add function to load meta from raw parameters
...
Needed for KIP loading as KIPs do not have an NPDM but do have the essential parts of the data within.
2019-06-05 00:20:26 -04:00