From 5c4259ec1a499528e132b1d41f7559f73bfd1143 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Thu, 6 Dec 2018 20:25:32 -0500 Subject: control_metadata: Use value member instead of unique_ptr to store struct Serves no actual purpose in this instance besides making NACP's copy assignment deleted, which is not intended behavior. --- src/core/file_sys/control_metadata.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/core/file_sys/control_metadata.h') diff --git a/src/core/file_sys/control_metadata.h b/src/core/file_sys/control_metadata.h index bfaad46b4..d5c2ed2b5 100644 --- a/src/core/file_sys/control_metadata.h +++ b/src/core/file_sys/control_metadata.h @@ -72,6 +72,7 @@ extern const std::array LANGUAGE_NAMES; // These store application name, dev name, title id, and other miscellaneous data. class NACP { public: + explicit NACP(); explicit NACP(VirtualFile file); ~NACP(); @@ -84,7 +85,7 @@ public: std::vector GetRawBytes() const; private: - std::unique_ptr raw; + RawNACP raw; }; } // namespace FileSys -- cgit v1.2.3 From 417e1ef09cfcf9157e260721d3059e73f0eca73e Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Thu, 6 Dec 2018 20:25:55 -0500 Subject: control_metadata: Update NACP fields with latest Switchbrew data --- src/core/file_sys/control_metadata.h | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'src/core/file_sys/control_metadata.h') 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. // The raw file format of a NACP file. struct RawNACP { std::array language_entries; - INSERT_PADDING_BYTES(0x38); + std::array isbn; + u8 startup_user_account; + INSERT_PADDING_BYTES(2); + u32_le application_attribute; + u32_le supported_languages; + u32_le parental_control; + bool screenshot_enabled; + u8 video_capture_mode; + bool data_loss_confirmation; + INSERT_PADDING_BYTES(1); u64_le title_id; - INSERT_PADDING_BYTES(0x20); + std::array rating_age; std::array version_string; u64_le dlc_base_title_id; u64_le title_id_2; - INSERT_PADDING_BYTES(0x28); + u64_le normal_save_data_size; + u64_le journal_sava_data_size; + INSERT_PADDING_BYTES(0x18); u64_le product_code; - u64_le title_id_3; - std::array title_id_array; - INSERT_PADDING_BYTES(0x8); + std::array local_communication; + u8 logo_type; + u8 logo_handling; + bool runtime_add_on_content_install; + INSERT_PADDING_BYTES(5); u64_le title_id_update; std::array bcat_passphrase; INSERT_PADDING_BYTES(0xEC0); @@ -82,6 +95,8 @@ public: u64 GetTitleId() const; u64 GetDLCBaseTitleId() const; std::string GetVersionString() const; + u64 GetDefaultNormalSaveSize() const; + u64 GetDefaultJournalSaveSize() const; std::vector GetRawBytes() const; private: -- cgit v1.2.3 From c643f364b4c81543782009ce4bb5a87021fe35ed Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Mon, 10 Dec 2018 22:17:45 -0500 Subject: am: Implement GetSaveDataSize and ExtendSaveData These functions come in a pair and are needed by Smash Ultimate, Minecraft, and Skyrim, amongst others. --- src/core/file_sys/control_metadata.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core/file_sys/control_metadata.h') diff --git a/src/core/file_sys/control_metadata.h b/src/core/file_sys/control_metadata.h index 9bc2720c9..7b9cdc910 100644 --- a/src/core/file_sys/control_metadata.h +++ b/src/core/file_sys/control_metadata.h @@ -100,7 +100,7 @@ public: std::vector GetRawBytes() const; private: - RawNACP raw; + RawNACP raw{}; }; } // namespace FileSys -- cgit v1.2.3