aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys
AgeCommit message (Collapse)Author
2019-07-07Implement MapPhysicalMemory/UnmapPhysicalMemoryMichael Scire
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-02file_sys: Rename other ContentRecordType membersBakugo
2019-07-01file_sys/registered_cache: Improve missing metadata errorBakugo
This can happen when installing NSPs too, not just XCIs.
2019-07-01file_sys/submission_package: Don't warn about missing DeltaFragment NCAsBakugo
DeltaFragments are not useful to us and are often not included in patch NSPs.
2019-07-01file_sys/registered_cache: Ignore DeltaFragment NCAs during installationBakugo
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-01file_sys: Rename ContentRecordType::Patch to DeltaFragmentBakugo
Avoids potential confusion, since patches and DeltaFragments are not the same thing. Actual full patches are listed under the Program type.
2019-06-25glue: Correct missing bytes in ApplicationLaunchParameterZach Hilman
2019-06-24registered_cache: Add getter to determine source slot in content provider unionZach Hilman
Used to determine StorageId source for application data.
2019-06-24patch_manager: Add getter for title versionZach Hilman
2019-06-21Merge pull request #2546 from DarkLordZach/kipsbunnei
loader, file_sys: Add support for parsing and loading KIP (Kernel Internal Process) files
2019-06-19Update content_archive.cppjonsn0w
log clutter in debug logs when theres really no need
2019-06-17Addressed issuesDavid Marcec
2019-06-16Impl'd IsUserAccountSwitchLocked, SetAudioOutVolume, GetAudioOutVolume & ↵David Marcec
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-15Merge pull request #2581 from lioncash/hexZach Hilman
common/hex_util: Combine HexVectorToString() and HexArrayToString()
2019-06-14Merge pull request #2582 from lioncash/reservedbunnei
file_sys/ips_layer: Remove unnecessary reserve() call
2019-06-12Merge pull request #2577 from lioncash/fsZach Hilman
file_sys/card_image: Minor cleanup
2019-06-12file_sys/ips_layer: Remove unnecessary reserve() callLioncash
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-12common/hex_util: Combine HexVectorToString() and HexArrayToString()Lioncash
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-12file_sys/card_image: Remove obsolete TODOLioncash
We already support Rev 1+.
2019-06-10file_sys/nca_metadata: Update CNMT structuresLioncash
Names a few more entries in relevant structures. Information based off SwitchBrew and my own RE.
2019-06-10file_sys/card_image: Deduplicate casts within AddNCAFromPartition()Lioncash
Makes for nicer reading.
2019-06-10file_sys/card_image: Make bracing consistentLioncash
Makes for more consistent reading.
2019-06-10file_sys/card_image: Assign collapsed NCA contents directly to ncas memberLioncash
Same thing, significantly less noisy.
2019-06-10file_sys/card_image: Deduplicate type castLioncash
Same thing, less duplication. We can also std::move raw into the PartitionFilesystem constructor.
2019-06-10file_sys/card_image: Get rid of a magic numberLioncash
We can just use the size of the array to dehardcode it.
2019-06-10file_sys/card_image: Use std::array deduction guidesLioncash
Same thing, less code.
2019-06-06kernel_executable: Optimize BLZ decompressionZach Hilman
2019-06-05game_list: Accept *.kip as a file extension of executablesZach Hilman
2019-06-05program_metadata: Add function to load meta from raw parametersZach Hilman
Needed for KIP loading as KIPs do not have an NPDM but do have the essential parts of the data within.
2019-06-05file_sys: Add classes to parse KIP1 and INI1 filesZach Hilman
2019-05-23Implement IApplicationFunctions::GetDesiredLanguageMichael Scire
2019-04-09Merge pull request #1957 from DarkLordZach/title-providerbunnei
file_sys: Provide generic interface for accessing game data
2019-04-05Merge pull request #2340 from lioncash/viewbunnei
file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash
2019-04-05Merge pull request #2341 from lioncash/comparebunnei
file_sys/nca_metadata: Remove unnecessary comparison operators for TitleType
2019-04-05Merge pull request #2339 from lioncash/rankbunnei
service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structs
2019-04-05file_sys/program_metadata: Remove obsolete TODOsLioncash
BitField has been trivially copyable since e99a14862841841d74be8d0ea9426c2d23546b5e, so we can eliminate these TODO comments and use ReadObject() directly instead of memcpying the data.
2019-04-05file_sys/nca_metadata: Remove unnecessary comparison operators for TitleTypeLioncash
enum class elements from the same enum can already be compared against one another without the need for explicitly defined comparison operators.
2019-04-05file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash()Lioncash
The given string instance doesn't need to be copied entirely, we can just use a view instead.
2019-04-05service/fsp_srv: Don't pass SaveDataDescriptor instances by value.Lioncash
Passing around a 64 byte data struct by value is kind of wasteful, instead pass a reference to the struct.
2019-04-05service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structsLioncash
I realized that I updated the documentation on SwitchBrew a while ago, but never actually updated the structs within yuzu.
2019-04-03file_sys/control_metadata: Amend naming of membersLioncash
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).
2019-03-27patch_manager: Dump NSO name with build IDZach Hilman
2019-03-26core: Port current uses of RegisteredCache to ContentProviderZach Hilman
2019-03-26file_sys: Create ContentProvider interface and default implementationsZach Hilman
2019-03-24core/cheat_engine: Make MemoryReadImpl and MemoryWriteImpl internally linkedLioncash
These don't need to be visible outside of the translation unit, so they can be enclosed within an anonymous namespace.
2019-03-23Merge pull request #2221 from DarkLordZach/firmware-versionbunnei
set_sys: Implement GetFirmwareVersion(2) for libnx hosversion
2019-03-23Merge pull request #2280 from lioncash/nsobunnei
loader/nso: Minor refactoring
2019-03-22file_sys/cheat_engine: Silence truncation and sign-conversion warningsLioncash
2019-03-22file_sys/cheat_engine: Remove use of global system accessorsLioncash
Instead, pass in the core timing instance and make the dependency explicit in the interface.
2019-03-22file_sys/patch_manager: Deduplicate NSO headerLioncash
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