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.
2019-09-21 16:43:10 -04:00
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.
2019-09-21 16:43:10 -04:00
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.
2019-09-21 16:43:10 -04:00
Zach Hilman
9d9fc8a675
registered_cache: Process *.cnmt.nca files
...
Needed to use the RegisteredCache/PlaceholderCache on gamecards.
2019-09-21 16:43:10 -04:00
Zach Hilman
8500ca797f
registered_cache: Implement PlaceholderCache to manage placeholder and installing content
2019-09-21 16:43:10 -04:00
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
2019-09-21 16:43:10 -04:00
Zach Hilman
b71bda45ae
bis_factory: Add accessors for BIS placeholder caches
2019-09-21 16:43:10 -04:00
Zach Hilman
9bee885282
bis_factory: Add accessor for NAND Image Directory
2019-09-21 16:43:10 -04:00
Zach Hilman
4dae5a52a8
bis_factory: Add accessors for BIS content directories
2019-09-21 16:43:10 -04:00
Zach Hilman
3a1899d143
bis_factory: Add accessors for BIS partitions
2019-09-21 16:43:10 -04:00
David
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
David
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
Zach Hilman
adab188c2b
system_archive: Add open-source reimplementation of MiiModel data
2019-07-10 07:21:36 -04:00
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.
2019-07-07 11:45:53 -07:00
Bakugo
b50557d1f0
file_sys: Rename other ContentRecordType members
2019-07-02 00:57:23 +01:00
Bakugo
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
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.
2019-07-01 06:46:05 +01:00
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.
2019-07-01 06:37:22 +01:00
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.
2019-07-01 06:32:13 +01:00
Zach Hilman
d10fc2d727
glue: Correct missing bytes in ApplicationLaunchParameter
2019-06-25 22:25:10 -04:00
Zach Hilman
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
Zach Hilman
a468273221
patch_manager: Add getter for title version
2019-06-24 19:05:50 -04:00
bunnei
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
jonsn0w
e78d069a81
Update content_archive.cpp
...
log clutter in debug logs when theres really no need
2019-06-19 22:01:41 -04:00
David Marcec
6ca20ad7ba
Addressed issues
2019-06-17 08:17:26 +10:00
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.
2019-06-16 19:06:33 +10:00
Zach Hilman
c140b6ae2c
Merge pull request #2581 from lioncash/hex
...
common/hex_util: Combine HexVectorToString() and HexArrayToString()
2019-06-15 16:47:13 -04:00
bunnei
0360c40e90
Merge pull request #2582 from lioncash/reserved
...
file_sys/ips_layer: Remove unnecessary reserve() call
2019-06-14 11:24:18 -04:00
Zach Hilman
0f08f2d562
Merge pull request #2577 from lioncash/fs
...
file_sys/card_image: Minor cleanup
2019-06-12 19:23:33 -04:00
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.
2019-06-12 18:12:45 -04:00
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.
2019-06-12 17:54:05 -04:00
Lioncash
c7daddb715
file_sys/card_image: Remove obsolete TODO
...
We already support Rev 1+.
2019-06-12 16:52:19 -04:00
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.
2019-06-10 23:51:06 -04:00
Lioncash
7bdef6106e
file_sys/card_image: Deduplicate casts within AddNCAFromPartition()
...
Makes for nicer reading.
2019-06-10 23:27:14 -04:00
Lioncash
81d361d9f8
file_sys/card_image: Make bracing consistent
...
Makes for more consistent reading.
2019-06-10 23:27:13 -04:00
Lioncash
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
Lioncash
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
Lioncash
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
Lioncash
bf35138d1d
file_sys/card_image: Use std::array deduction guides
...
Same thing, less code.
2019-06-10 22:57:53 -04:00
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.
2019-06-10 00:21:41 -04:00
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.
2019-06-10 00:19:23 -04:00
Zach Hilman
9db119f8a2
kernel_executable: Optimize BLZ decompression
2019-06-06 19:20:15 -04:00
Zach Hilman
c417b4fe28
game_list: Accept *.kip as a file extension of executables
2019-06-05 00:33:05 -04:00
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.
2019-06-05 00:20:26 -04:00
Zach Hilman
421c3e831a
file_sys: Add classes to parse KIP1 and INI1 files
2019-06-05 00:18:25 -04:00
Michael Scire
7dbf4c1ae5
Implement IApplicationFunctions::GetDesiredLanguage
2019-05-23 00:55:56 -07:00
bunnei
61f63bb994
Merge pull request #1957 from DarkLordZach/title-provider
...
file_sys: Provide generic interface for accessing game data
2019-04-09 19:16:37 -04:00
bunnei
00207cc965
Merge pull request #2340 from lioncash/view
...
file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash
2019-04-05 23:40:16 -04:00
bunnei
23d3cd7604
Merge pull request #2341 from lioncash/compare
...
file_sys/nca_metadata: Remove unnecessary comparison operators for TitleType
2019-04-05 23:38:37 -04:00
bunnei
d6cddffb78
Merge pull request #2339 from lioncash/rank
...
service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structs
2019-04-05 23:36:46 -04:00