Zach Hilman
a49169e819
filesystem: Add const qualification to various accessors
7 years ago
Zach Hilman
c6ff4a6f4d
yuzu: Port old usages of Filesystem namespace to FilesystemController
7 years ago
Zach Hilman
ccaafaccfc
card_image: Add accessors for gamecard certificate
Used by fsp-srv/IDeviceOperator
7 years ago
Zach Hilman
77f9ecd32b
card_image: Add functions to query gamecard update partition
Includes version and meta title ID, used by fsp-srv/IDeviceOperator
7 years ago
Zach Hilman
e018a48460
content_archive: Add accessors for Rights ID and SDK Version
7 years ago
Zach Hilman
721a92775d
sdmc_factory: Add SD Card size getters
7 years ago
Zach Hilman
e47b57a90f
bis_factory: Add getters for NAND partition sizes
7 years ago
Zach Hilman
0a8e540681
submisson_package: Fix edge case with improperly sized filenames
Prevents a crash if the filename is less than 9 characters long.
7 years ago
Zach Hilman
08c0783d34
sdmc_factory: Add accessor for SDMC Album directory
7 years ago
Zach Hilman
0084cceb20
sdmc_factory: Add accessor for SDMC PlaceholderCache
7 years ago
Zach Hilman
02b36b0eb5
sdmc_factory: Add accessor for content directory
7 years ago
Zach Hilman
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.
7 years ago
Zach Hilman
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.
7 years ago
Zach Hilman
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.
7 years ago
Zach Hilman
9d9fc8a675
registered_cache: Process *.cnmt.nca files
Needed to use the RegisteredCache/PlaceholderCache on gamecards.
7 years ago
Zach Hilman
8500ca797f
registered_cache: Implement PlaceholderCache to manage placeholder and installing content
7 years ago
Zach Hilman
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
7 years ago
Zach Hilman
b71bda45ae
bis_factory: Add accessors for BIS placeholder caches
7 years ago
Zach Hilman
9bee885282
bis_factory: Add accessor for NAND Image Directory
7 years ago
Zach Hilman
4dae5a52a8
bis_factory: Add accessors for BIS content directories
7 years ago
Zach Hilman
3a1899d143
bis_factory: Add accessors for BIS partitions
7 years ago
Zach Hilman
adab188c2b
system_archive: Add open-source reimplementation of MiiModel data
7 years ago
Michael Scire
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.
7 years ago
Bakugo
b50557d1f0
file_sys: Rename other ContentRecordType members
7 years ago
Bakugo
c72ef5f405
file_sys/registered_cache: Improve missing metadata error
This can happen when installing NSPs too, not just XCIs.
7 years ago
Bakugo
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.
7 years ago
Bakugo
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.
7 years ago
Bakugo
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.
7 years ago
Zach Hilman
d10fc2d727
glue: Correct missing bytes in ApplicationLaunchParameter
7 years ago
Zach Hilman
db2e5e5fa6
registered_cache: Add getter to determine source slot in content provider union
Used to determine StorageId source for application data.
7 years ago
Zach Hilman
a468273221
patch_manager: Add getter for title version
7 years ago
jonsn0w
e78d069a81
Update content_archive.cpp
log clutter in debug logs when theres really no need
7 years ago
David Marcec
6ca20ad7ba
Addressed issues
7 years ago
David Marcec
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.
7 years ago
Lioncash
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.
7 years ago
Lioncash
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.
7 years ago
Lioncash
c7daddb715
file_sys/card_image: Remove obsolete TODO
We already support Rev 1+.
7 years ago
Lioncash
a602bcaaf8
file_sys/nca_metadata: Update CNMT structures
Names a few more entries in relevant structures. Information based off
SwitchBrew and my own RE.
7 years ago
Lioncash
7bdef6106e
file_sys/card_image: Deduplicate casts within AddNCAFromPartition()
Makes for nicer reading.
7 years ago
Lioncash
81d361d9f8
file_sys/card_image: Make bracing consistent
Makes for more consistent reading.
7 years ago
Lioncash
e34368249f
file_sys/card_image: Assign collapsed NCA contents directly to ncas member
Same thing, significantly less noisy.
7 years ago
Lioncash
288d027e89
file_sys/card_image: Deduplicate type cast
Same thing, less duplication. We can also std::move raw into the
PartitionFilesystem constructor.
7 years ago
Lioncash
825ffd7b1f
file_sys/card_image: Get rid of a magic number
We can just use the size of the array to dehardcode it.
7 years ago
Lioncash
bf35138d1d
file_sys/card_image: Use std::array deduction guides
Same thing, less code.
7 years ago
Zach Hilman
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.
7 years ago
Zach Hilman
1c75945dc4
nsp: Use title ID from NPDM metadata for extracted type NSPs
Avoids 0 being used as title ID for all extracted NSPs.
7 years ago
Zach Hilman
9db119f8a2
kernel_executable: Optimize BLZ decompression
7 years ago
Zach Hilman
c417b4fe28
game_list: Accept *.kip as a file extension of executables
7 years ago
Zach Hilman
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.
7 years ago
Zach Hilman
421c3e831a
file_sys: Add classes to parse KIP1 and INI1 files
7 years ago