summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/content_archive.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-09-06 00:06:11 +0200
committerGitHub <noreply@github.com>2018-09-06 00:06:11 +0200
commita6ae7654105fe6ec46ff0bcabb714b8447b83899 (patch)
tree0ff4d2396cb0730ec5952181e4e67947b64832ec /src/core/file_sys/content_archive.h
parentMerge pull request #1245 from degasus/optimizations (diff)
parentbktr: Fix bucket overlap error (diff)
downloadyuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar.gz
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar.bz2
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar.lz
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar.xz
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar.zst
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.zip
Diffstat (limited to 'src/core/file_sys/content_archive.h')
-rw-r--r--src/core/file_sys/content_archive.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/core/file_sys/content_archive.h b/src/core/file_sys/content_archive.h
index 0ea666cac..00eca52da 100644
--- a/src/core/file_sys/content_archive.h
+++ b/src/core/file_sys/content_archive.h
@@ -79,7 +79,8 @@ bool IsValidNCA(const NCAHeader& header);
// After construction, use GetStatus to determine if the file is valid and ready to be used.
class NCA : public ReadOnlyVfsDirectory {
public:
- explicit NCA(VirtualFile file);
+ explicit NCA(VirtualFile file, VirtualFile bktr_base_romfs = nullptr,
+ u64 bktr_base_ivfc_offset = 0);
Loader::ResultStatus GetStatus() const;
std::vector<std::shared_ptr<VfsFile>> GetFiles() const override;
@@ -89,13 +90,15 @@ public:
NCAContentType GetType() const;
u64 GetTitleId() const;
+ bool IsUpdate() const;
VirtualFile GetRomFS() const;
VirtualDir GetExeFS() const;
VirtualFile GetBaseFile() const;
- bool IsUpdate() const;
+ // Returns the base ivfc offset used in BKTR patching.
+ u64 GetBaseIVFCOffset() const;
protected:
bool ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) override;
@@ -112,14 +115,16 @@ private:
VirtualFile romfs = nullptr;
VirtualDir exefs = nullptr;
VirtualFile file;
+ VirtualFile bktr_base_romfs;
+ u64 ivfc_offset;
NCAHeader header{};
bool has_rights_id{};
- bool is_update{};
Loader::ResultStatus status{};
bool encrypted;
+ bool is_update;
Core::Crypto::KeyManager keys;
};