diff options
| author | KiritoDv <kiritodev01@gmail.com> | 2024-10-11 13:54:38 -0600 |
|---|---|---|
| committer | KiritoDv <kiritodev01@gmail.com> | 2024-10-11 13:54:38 -0600 |
| commit | 6ccdeaa226394b68732ace6dd525a19a62e3c575 (patch) | |
| tree | f4375465948cb82895b78e8303af9754ee2a65e6 /src/Companion.cpp | |
| parent | d13284f0cabee539b8cbec7cb61690d8d8da3247 (diff) | |
Added Yay0 support with auto detection for pkmn-stadium files
Diffstat (limited to 'src/Companion.cpp')
| -rw-r--r-- | src/Companion.cpp | 27 |
1 files changed, 2 insertions, 25 deletions
diff --git a/src/Companion.cpp b/src/Companion.cpp index f489317..8c4476d 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -339,7 +339,7 @@ void Companion::ParseCurrentFileConfig(YAML::Node node) { if (segments[0].IsSequence() && segments[0].size() == 2) { gCurrentSegmentNumber = segments[0][0].as<uint32_t>(); gCurrentFileOffset = segments[0][1].as<uint32_t>(); - gCurrentCompressionType = GetCompressionType(this->gRomData, gCurrentFileOffset); + gCurrentCompressionType = Decompressor::GetCompressionType(this->gRomData, gCurrentFileOffset); if(node["no_compression"]) { gCurrentCompressionType = CompressionType::None; } @@ -518,7 +518,7 @@ void Companion::ProcessFile(YAML::Node root) { if (segments[0].IsSequence() && segments[0].size() == 2) { gCurrentSegmentNumber = segments[0][0].as<uint32_t>(); gCurrentFileOffset = segments[0][1].as<uint32_t>(); - gCurrentCompressionType = GetCompressionType(this->gRomData, gCurrentFileOffset); + gCurrentCompressionType = Decompressor::GetCompressionType(this->gRomData, gCurrentFileOffset); if(root[":config"]["no_compression"]) { gCurrentCompressionType = CompressionType::None; } @@ -1263,29 +1263,6 @@ std::optional<std::shared_ptr<BaseFactory>> Companion::GetFactory(const std::str return this->gFactories[type]; } -/** - * @param offset Rom offset of compressed mio0 file. - * @returns CompressionType - */ -CompressionType Companion::GetCompressionType(std::vector<uint8_t>& buffer, const uint32_t offset) { - if (offset) { - LUS::BinaryReader reader((char*) buffer.data() + offset, sizeof(uint32_t)); - reader.SetEndianness(Torch::Endianness::Big); - - const std::string header = reader.ReadCString(); - - // Check if a compressed header exists - if (header == "MIO0") { - return CompressionType::MIO0; - } else if (header == "YAY0") { - return CompressionType::YAY0; - } else if (header == "YAZ0") { - return CompressionType::YAZ0; - } - } - return CompressionType::None; -} - std::optional<Table> Companion::SearchTable(uint32_t addr){ for(auto& table : this->gTables){ if(addr >= table.start && addr <= table.end){ |
