summaryrefslogtreecommitdiff
path: root/src/Companion.cpp
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2024-10-11 13:54:38 -0600
committerKiritoDv <kiritodev01@gmail.com>2024-10-11 13:54:38 -0600
commit6ccdeaa226394b68732ace6dd525a19a62e3c575 (patch)
treef4375465948cb82895b78e8303af9754ee2a65e6 /src/Companion.cpp
parentd13284f0cabee539b8cbec7cb61690d8d8da3247 (diff)
Added Yay0 support with auto detection for pkmn-stadium files
Diffstat (limited to 'src/Companion.cpp')
-rw-r--r--src/Companion.cpp27
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){