From c4879aa48dd29928e64516d4367be9328700989d Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 10 Jun 2017 10:38:59 +0200 Subject: [PATCH] DirectoryBlob: Split out setting TMD and ticket to new function --- Source/Core/DiscIO/DirectoryBlob.cpp | 31 +++++++++++++++------------- Source/Core/DiscIO/DirectoryBlob.h | 1 + 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Source/Core/DiscIO/DirectoryBlob.cpp b/Source/Core/DiscIO/DirectoryBlob.cpp index 7b6fc1ff64..6392651edd 100644 --- a/Source/Core/DiscIO/DirectoryBlob.cpp +++ b/Source/Core/DiscIO/DirectoryBlob.cpp @@ -185,20 +185,7 @@ DirectoryBlobReader::DirectoryBlobReader(const std::string& root_directory) reinterpret_cast(PARTITION_TABLE.data())); SetWiiRegionData(); - - constexpr u32 TICKET_OFFSET = 0x0; - constexpr u32 TICKET_SIZE = 0x2a4; - constexpr u32 TMD_OFFSET = 0x2c0; - constexpr u32 MAX_TMD_SIZE = 0x49e4; - AddFileToContents(&m_nonpartition_contents, m_root_directory + "ticket.bin", - GAME_PARTITION_ADDRESS + TICKET_OFFSET, TICKET_SIZE); - const DiscContent& tmd = - AddFileToContents(&m_nonpartition_contents, m_root_directory + "tmd.bin", - GAME_PARTITION_ADDRESS + TMD_OFFSET, MAX_TMD_SIZE); - m_tmd_header = {Common::swap32(static_cast(tmd.GetSize())), - Common::swap32(TMD_OFFSET >> m_address_shift)}; - m_nonpartition_contents.emplace(GAME_PARTITION_ADDRESS + TICKET_SIZE, sizeof(m_tmd_header), - reinterpret_cast(&m_tmd_header)); + SetTMDAndTicket(); } } @@ -328,6 +315,22 @@ void DirectoryBlobReader::SetWiiRegionData() m_wii_region_data.data()); } +void DirectoryBlobReader::SetTMDAndTicket() +{ + constexpr u32 TICKET_OFFSET = 0x0; + constexpr u32 TICKET_SIZE = 0x2a4; + constexpr u32 TMD_OFFSET = 0x2c0; + constexpr u32 MAX_TMD_SIZE = 0x49e4; + AddFileToContents(&m_nonpartition_contents, m_root_directory + "ticket.bin", + GAME_PARTITION_ADDRESS + TICKET_OFFSET, TICKET_SIZE); + const DiscContent& tmd = AddFileToContents(&m_nonpartition_contents, m_root_directory + "tmd.bin", + GAME_PARTITION_ADDRESS + TMD_OFFSET, MAX_TMD_SIZE); + m_tmd_header = {Common::swap32(static_cast(tmd.GetSize())), + Common::swap32(TMD_OFFSET >> m_address_shift)}; + m_nonpartition_contents.emplace(GAME_PARTITION_ADDRESS + TICKET_SIZE, sizeof(m_tmd_header), + reinterpret_cast(&m_tmd_header)); +} + bool DirectoryBlobReader::SetApploader(const std::string& apploader) { bool success = false; diff --git a/Source/Core/DiscIO/DirectoryBlob.h b/Source/Core/DiscIO/DirectoryBlob.h index 37e34f0061..efb865c124 100644 --- a/Source/Core/DiscIO/DirectoryBlob.h +++ b/Source/Core/DiscIO/DirectoryBlob.h @@ -78,6 +78,7 @@ private: void SetDiscHeaderAndDiscType(); void SetWiiRegionData(); + void SetTMDAndTicket(); bool SetApploader(const std::string& apploader); void SetDOL();