From 3bb2a8a13c4ff3b637bf02b9c01d632585b269bb Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Wed, 30 Aug 2023 21:26:38 -0600 Subject: [WIP] Audio Extractor --- src/Companion.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/Companion.cpp') diff --git a/src/Companion.cpp b/src/Companion.cpp index 16d6c11..218f018 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -4,6 +4,7 @@ #include "utils/MIODecoder.h" #include "factories/RawFactory.h" #include "factories/BlobFactory.h" +#include "factories/AudioFactory.h" #include "factories/TextureFactory.h" #include "factories/AnimFactory.h" @@ -18,9 +19,10 @@ namespace fs = std::filesystem; static const std::unordered_map gFactories = { { ".png", new TextureFactory() }, { ".anim", new AnimFactory() }, + { ".aiff", new AudioFactory() }, { ".bin", new BlobFactory(LUS::ResourceType::Blob) }, + { ".m64", new BlobFactory(LUS::ResourceType::Blob) }, { ".sbox", new BlobFactory(LUS::ResourceType::Blob, true) }, - { ".aud", new BlobFactory(LUS::ResourceType::Blob, false) }, }; void Companion::Start() { @@ -45,7 +47,7 @@ void Companion::ProcessAssets() { for( auto& [asset, data] : assets.items() ) { std::string extension = fs::path(asset).extension().string(); if( gFactories.find(extension) == gFactories.end() ) { - std::cout << "No factory found for " << asset << '\n'; + // std::cout << "No factory found for " << asset << '\n'; continue; } LUS::BinaryWriter write = LUS::BinaryWriter(); @@ -57,7 +59,7 @@ void Companion::ProcessAssets() { RawFactory* factory = gFactories.at(extension); if(!factory->process(&write, entry, this->gRomData)){ - std::cout << "Failed to process " << asset << '\n'; + // std::cout << "Failed to process " << asset << '\n'; continue; } @@ -70,13 +72,15 @@ void Companion::ProcessAssets() { if(!isTexture) { // Write to file too std::string dpath = "debug/" + path; - fs::create_directories(fs::path(dpath).parent_path()); + if(!fs::exists(fs::path(dpath).parent_path())){ + fs::create_directories(fs::path(dpath).parent_path()); + } std::ofstream output(dpath, std::ios::binary); output.write((char*)buffer.data(), buffer.size()); output.close(); } - std::cout << "Processed " << path << std::endl; + // std::cout << "Processed " << path << std::endl; write.Close(); } -- cgit v1.2.3 From 113472302904ac84d4ddf70df32ca245ad156bf2 Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Fri, 1 Sep 2023 00:51:51 -0600 Subject: Migrated disassemble audio into audio manager class --- src/Companion.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/Companion.cpp') diff --git a/src/Companion.cpp b/src/Companion.cpp index 218f018..fe47842 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -2,6 +2,7 @@ #include "storm/SWrapper.h" #include "utils/MIODecoder.h" +#include "audio/AudioManager.h" #include "factories/RawFactory.h" #include "factories/BlobFactory.h" #include "factories/AudioFactory.h" @@ -36,6 +37,9 @@ void Companion::Start() { std::cout << "Detected Rom Size: " << this->gRomData.size() << '\n'; + AudioManager::Instance = new AudioManager(); + AudioManager::Instance->initialize(this->gRomData); + this->ProcessAssets(); } -- cgit v1.2.3 From 063224c69d564d6e10dd4febf25caa9f59fccfda Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Sun, 3 Sep 2023 20:11:35 -0600 Subject: Fixed AIFC Extraction --- src/Companion.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/Companion.cpp') diff --git a/src/Companion.cpp b/src/Companion.cpp index fe47842..1d2f371 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -51,7 +51,7 @@ void Companion::ProcessAssets() { for( auto& [asset, data] : assets.items() ) { std::string extension = fs::path(asset).extension().string(); if( gFactories.find(extension) == gFactories.end() ) { - // std::cout << "No factory found for " << asset << '\n'; + std::cout << "No factory found for " << asset << '\n'; continue; } LUS::BinaryWriter write = LUS::BinaryWriter(); @@ -63,7 +63,7 @@ void Companion::ProcessAssets() { RawFactory* factory = gFactories.at(extension); if(!factory->process(&write, entry, this->gRomData)){ - // std::cout << "Failed to process " << asset << '\n'; + std::cout << "Failed to process " << asset << '\n'; continue; } @@ -84,7 +84,7 @@ void Companion::ProcessAssets() { output.close(); } - // std::cout << "Processed " << path << std::endl; + std::cout << "Processed " << path << std::endl; write.Close(); } -- cgit v1.2.3 From fc7bf4c6ec1a637bb9eb240220533af856dc5a66 Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Fri, 15 Sep 2023 20:46:06 -0600 Subject: Added full bank extraction --- src/Companion.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/Companion.cpp') diff --git a/src/Companion.cpp b/src/Companion.cpp index 1d2f371..05a100c 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -21,6 +21,8 @@ static const std::unordered_map gFactories = { { ".png", new TextureFactory() }, { ".anim", new AnimFactory() }, { ".aiff", new AudioFactory() }, + { ".bnk", new AudioFactory() }, + { ".bset", new AudioFactory() }, { ".bin", new BlobFactory(LUS::ResourceType::Blob) }, { ".m64", new BlobFactory(LUS::ResourceType::Blob) }, { ".sbox", new BlobFactory(LUS::ResourceType::Blob, true) }, -- cgit v1.2.3 From 98b6d598324fdcb499a2cc4d37a7a6fcd19e8ead Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Sat, 16 Sep 2023 03:10:56 -0600 Subject: Added support to extract banks on each sequence --- src/Companion.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Companion.cpp') diff --git a/src/Companion.cpp b/src/Companion.cpp index 05a100c..df793be 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -23,8 +23,8 @@ static const std::unordered_map gFactories = { { ".aiff", new AudioFactory() }, { ".bnk", new AudioFactory() }, { ".bset", new AudioFactory() }, + { ".m64", new AudioFactory() }, { ".bin", new BlobFactory(LUS::ResourceType::Blob) }, - { ".m64", new BlobFactory(LUS::ResourceType::Blob) }, { ".sbox", new BlobFactory(LUS::ResourceType::Blob, true) }, }; -- cgit v1.2.3