Browse Source

control_metadata: Update NACP fields with latest Switchbrew data

pull/15/merge
Zach Hilman 7 years ago
parent
commit
417e1ef09c
  1. 8
      src/core/file_sys/control_metadata.cpp
  2. 27
      src/core/file_sys/control_metadata.h

8
src/core/file_sys/control_metadata.cpp

@ -79,6 +79,14 @@ std::string NACP::GetVersionString() const {
raw.version_string.size()); raw.version_string.size());
} }
u64 NACP::GetDefaultNormalSaveSize() const {
return raw.normal_save_data_size;
}
u64 NACP::GetDefaultJournalSaveSize() const {
return raw.journal_sava_data_size;
}
std::vector<u8> NACP::GetRawBytes() const { std::vector<u8> NACP::GetRawBytes() const {
std::vector<u8> out(sizeof(RawNACP)); std::vector<u8> out(sizeof(RawNACP));
std::memcpy(out.data(), &raw, sizeof(RawNACP)); std::memcpy(out.data(), &raw, sizeof(RawNACP));

27
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. // The raw file format of a NACP file.
struct RawNACP { struct RawNACP {
std::array<LanguageEntry, 16> language_entries; std::array<LanguageEntry, 16> language_entries;
INSERT_PADDING_BYTES(0x38);
std::array<u8, 0x25> 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; u64_le title_id;
INSERT_PADDING_BYTES(0x20);
std::array<u8, 0x20> rating_age;
std::array<char, 0x10> version_string; std::array<char, 0x10> version_string;
u64_le dlc_base_title_id; u64_le dlc_base_title_id;
u64_le title_id_2; 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 product_code;
u64_le title_id_3;
std::array<u64_le, 0x7> title_id_array;
INSERT_PADDING_BYTES(0x8);
std::array<u64_le, 0x8> local_communication;
u8 logo_type;
u8 logo_handling;
bool runtime_add_on_content_install;
INSERT_PADDING_BYTES(5);
u64_le title_id_update; u64_le title_id_update;
std::array<u8, 0x40> bcat_passphrase; std::array<u8, 0x40> bcat_passphrase;
INSERT_PADDING_BYTES(0xEC0); INSERT_PADDING_BYTES(0xEC0);
@ -82,6 +95,8 @@ public:
u64 GetTitleId() const; u64 GetTitleId() const;
u64 GetDLCBaseTitleId() const; u64 GetDLCBaseTitleId() const;
std::string GetVersionString() const; std::string GetVersionString() const;
u64 GetDefaultNormalSaveSize() const;
u64 GetDefaultJournalSaveSize() const;
std::vector<u8> GetRawBytes() const; std::vector<u8> GetRawBytes() const;
private: private:

Loading…
Cancel
Save