summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-12-06 20:25:55 -0500
committerGravatar Zach Hilman2018-12-27 00:16:55 -0500
commit417e1ef09cfcf9157e260721d3059e73f0eca73e (patch)
tree6eb8777a43188efc66cfde0201af2675fb36ac22 /src
parentcontrol_metadata: Use value member instead of unique_ptr to store struct (diff)
downloadyuzu-417e1ef09cfcf9157e260721d3059e73f0eca73e.tar.gz
yuzu-417e1ef09cfcf9157e260721d3059e73f0eca73e.tar.xz
yuzu-417e1ef09cfcf9157e260721d3059e73f0eca73e.zip
control_metadata: Update NACP fields with latest Switchbrew data
Diffstat (limited to 'src')
-rw-r--r--src/core/file_sys/control_metadata.cpp8
-rw-r--r--src/core/file_sys/control_metadata.h27
2 files changed, 29 insertions, 6 deletions
diff --git a/src/core/file_sys/control_metadata.cpp b/src/core/file_sys/control_metadata.cpp
index fe2077f94..9624df054 100644
--- a/src/core/file_sys/control_metadata.cpp
+++ b/src/core/file_sys/control_metadata.cpp
@@ -79,6 +79,14 @@ std::string NACP::GetVersionString() const {
79 raw.version_string.size()); 79 raw.version_string.size());
80} 80}
81 81
82u64 NACP::GetDefaultNormalSaveSize() const {
83 return raw.normal_save_data_size;
84}
85
86u64 NACP::GetDefaultJournalSaveSize() const {
87 return raw.journal_sava_data_size;
88}
89
82std::vector<u8> NACP::GetRawBytes() const { 90std::vector<u8> NACP::GetRawBytes() const {
83 std::vector<u8> out(sizeof(RawNACP)); 91 std::vector<u8> out(sizeof(RawNACP));
84 std::memcpy(out.data(), &raw, sizeof(RawNACP)); 92 std::memcpy(out.data(), &raw, sizeof(RawNACP));
diff --git a/src/core/file_sys/control_metadata.h b/src/core/file_sys/control_metadata.h
index d5c2ed2b5..9bc2720c9 100644
--- a/src/core/file_sys/control_metadata.h
+++ b/src/core/file_sys/control_metadata.h
@@ -28,17 +28,30 @@ static_assert(sizeof(LanguageEntry) == 0x300, "LanguageEntry has incorrect size.
28// The raw file format of a NACP file. 28// The raw file format of a NACP file.
29struct RawNACP { 29struct RawNACP {
30 std::array<LanguageEntry, 16> language_entries; 30 std::array<LanguageEntry, 16> language_entries;
31 INSERT_PADDING_BYTES(0x38); 31 std::array<u8, 0x25> isbn;
32 u8 startup_user_account;
33 INSERT_PADDING_BYTES(2);
34 u32_le application_attribute;
35 u32_le supported_languages;
36 u32_le parental_control;
37 bool screenshot_enabled;
38 u8 video_capture_mode;
39 bool data_loss_confirmation;
40 INSERT_PADDING_BYTES(1);
32 u64_le title_id; 41 u64_le title_id;
33 INSERT_PADDING_BYTES(0x20); 42 std::array<u8, 0x20> rating_age;
34 std::array<char, 0x10> version_string; 43 std::array<char, 0x10> version_string;
35 u64_le dlc_base_title_id; 44 u64_le dlc_base_title_id;
36 u64_le title_id_2; 45 u64_le title_id_2;
37 INSERT_PADDING_BYTES(0x28); 46 u64_le normal_save_data_size;
47 u64_le journal_sava_data_size;
48 INSERT_PADDING_BYTES(0x18);
38 u64_le product_code; 49 u64_le product_code;
39 u64_le title_id_3; 50 std::array<u64_le, 0x8> local_communication;
40 std::array<u64_le, 0x7> title_id_array; 51 u8 logo_type;
41 INSERT_PADDING_BYTES(0x8); 52 u8 logo_handling;
53 bool runtime_add_on_content_install;
54 INSERT_PADDING_BYTES(5);
42 u64_le title_id_update; 55 u64_le title_id_update;
43 std::array<u8, 0x40> bcat_passphrase; 56 std::array<u8, 0x40> bcat_passphrase;
44 INSERT_PADDING_BYTES(0xEC0); 57 INSERT_PADDING_BYTES(0xEC0);
@@ -82,6 +95,8 @@ public:
82 u64 GetTitleId() const; 95 u64 GetTitleId() const;
83 u64 GetDLCBaseTitleId() const; 96 u64 GetDLCBaseTitleId() const;
84 std::string GetVersionString() const; 97 std::string GetVersionString() const;
98 u64 GetDefaultNormalSaveSize() const;
99 u64 GetDefaultJournalSaveSize() const;
85 std::vector<u8> GetRawBytes() const; 100 std::vector<u8> GetRawBytes() const;
86 101
87private: 102private: