mirror of
https://github.com/izzy2lost/Torch.git
synced 2026-07-06 00:18:35 -07:00
Added multiversion support - SM64:JP
This commit is contained in:
@@ -398,7 +398,7 @@ castle_inside/22:
|
||||
offset: 3634560
|
||||
mio0: 63488
|
||||
format: RGBA16
|
||||
castle_inside/23_us:
|
||||
castle_inside/23:
|
||||
type: TEXTURE
|
||||
size: 4096
|
||||
width: 64
|
||||
@@ -406,7 +406,7 @@ castle_inside/23_us:
|
||||
offset: 3634560
|
||||
mio0: 67584
|
||||
format: RGBA16
|
||||
castle_inside/24_us:
|
||||
castle_inside/24:
|
||||
type: TEXTURE
|
||||
size: 4096
|
||||
width: 64
|
||||
|
||||
@@ -398,7 +398,7 @@ castle_inside/22:
|
||||
offset: 3760960
|
||||
mio0: 63488
|
||||
format: RGBA16
|
||||
castle_inside/23_us:
|
||||
castle_inside/23:
|
||||
type: TEXTURE
|
||||
size: 4096
|
||||
width: 64
|
||||
@@ -406,7 +406,7 @@ castle_inside/23_us:
|
||||
offset: 3760960
|
||||
mio0: 67584
|
||||
format: RGBA16
|
||||
castle_inside/24_us:
|
||||
castle_inside/24:
|
||||
type: TEXTURE
|
||||
size: 4096
|
||||
width: 64
|
||||
|
||||
+8
-8
@@ -2,7 +2,6 @@
|
||||
|
||||
#include "storm/SWrapper.h"
|
||||
#include "utils/MIODecoder.h"
|
||||
#include "audio/AudioManager.h"
|
||||
#include "factories/RawFactory.h"
|
||||
#include "factories/BlobFactory.h"
|
||||
#include "factories/AudioHeaderFactory.h"
|
||||
@@ -11,7 +10,6 @@
|
||||
#include "factories/BankFactory.h"
|
||||
#include "factories/TextureFactory.h"
|
||||
#include "factories/AnimFactory.h"
|
||||
#include "n64/Cartridge.h"
|
||||
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
@@ -41,17 +39,17 @@ void Companion::Process() {
|
||||
this->gRomData = std::vector<uint8_t>( std::istreambuf_iterator<char>( input ), {} );
|
||||
input.close();
|
||||
|
||||
N64::Cartridge cartridge = N64::Cartridge(this->gRomData);
|
||||
cartridge.Initialize();
|
||||
this->cartridge = new N64::Cartridge(this->gRomData);
|
||||
cartridge->Initialize();
|
||||
|
||||
YAML::Node config = YAML::LoadFile("config.yml");
|
||||
|
||||
if(!config[cartridge.GetHash()]){
|
||||
std::cout << "No config found for " << cartridge.GetHash() << '\n';
|
||||
if(!config[cartridge->GetHash()]){
|
||||
std::cout << "No config found for " << cartridge->GetHash() << '\n';
|
||||
return;
|
||||
}
|
||||
|
||||
auto cfg = config[cartridge.GetHash()];
|
||||
auto cfg = config[cartridge->GetHash()];
|
||||
auto path = cfg["path"].as<std::string>();
|
||||
auto otr = cfg["output"].as<std::string>();
|
||||
|
||||
@@ -60,7 +58,7 @@ void Companion::Process() {
|
||||
auto vWriter = LUS::BinaryWriter();
|
||||
vWriter.SetEndianness(LUS::Endianness::Big);
|
||||
vWriter.Write((uint8_t) LUS::Endianness::Big);
|
||||
vWriter.Write(cartridge.GetCRC());
|
||||
vWriter.Write(cartridge->GetCRC());
|
||||
|
||||
for (const auto & entry : fs::directory_iterator(path)){
|
||||
std::cout << "Processing " << entry.path() << '\n';
|
||||
@@ -101,6 +99,8 @@ void Companion::Process() {
|
||||
|
||||
MIO0Decoder::ClearCache();
|
||||
wrapper.Close();
|
||||
this->cartridge = nullptr;
|
||||
Companion::Instance = nullptr;
|
||||
}
|
||||
|
||||
void Companion::RegisterFactory(const std::string &extension, RawFactory *factory) {
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <unordered_map>
|
||||
#include <filesystem>
|
||||
#include "factories/RawFactory.h"
|
||||
#include "n64/Cartridge.h"
|
||||
|
||||
class Companion {
|
||||
public:
|
||||
@@ -13,10 +14,12 @@ public:
|
||||
explicit Companion(std::filesystem::path rom) : gRomPath(std::move(rom)) {}
|
||||
void Init();
|
||||
void Process();
|
||||
N64::Cartridge* GetCartridge() { return this->cartridge; }
|
||||
private:
|
||||
std::filesystem::path gRomPath;
|
||||
std::vector<uint8_t> gRomData;
|
||||
std::unordered_map<std::string, RawFactory*> gFactories;
|
||||
N64::Cartridge* cartridge;
|
||||
|
||||
void RegisterFactory(const std::string& type, RawFactory* factory);
|
||||
RawFactory* GetFactory(const std::string& type);
|
||||
|
||||
+1159
-510
File diff suppressed because it is too large
Load Diff
@@ -4,12 +4,15 @@
|
||||
#include "audio/AudioManager.h"
|
||||
#include "audio/samples_table.h"
|
||||
#include "binarytools/BinaryReader.h"
|
||||
#include "Companion.h"
|
||||
|
||||
bool BankFactory::process(LUS::BinaryWriter* writer, YAML::Node& data, std::vector<uint8_t>& buffer) {
|
||||
auto banks = AudioManager::Instance->get_banks();
|
||||
auto bankId = data["id"].as<uint32_t>();
|
||||
auto bank = banks[bankId];
|
||||
|
||||
auto gSampleTable = Companion::Instance->GetCartridge()->GetCountry() == N64::CountryCode::Japan ? gJPSampleTable : gUSSampleTable;
|
||||
|
||||
WRITE_HEADER(LUS::ResourceType::Bank, 0);
|
||||
|
||||
WRITE_U32(bank.insts.size());
|
||||
|
||||
Reference in New Issue
Block a user