summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Estelami <NEstelami@users.noreply.github.com>2022-06-15 12:22:21 -0400
committerNicholas Estelami <NEstelami@users.noreply.github.com>2022-06-16 20:35:52 -0400
commitaaa5e8c70e6bc42272d8b20e66cfde5c5daa3def (patch)
tree38bcc37a4cecbe83c5f46ed9908bc04368345298
parentcbd56dc44e095105dbc5aa64d159c3c42f0677e0 (diff)
Updated sequence file format and updated resource version to Rachael
-rw-r--r--OTRExporter/AudioExporter.cpp15
-rw-r--r--OTRExporter/Exporter.cpp5
-rw-r--r--OTRExporter/Exporter.h3
3 files changed, 13 insertions, 10 deletions
diff --git a/OTRExporter/AudioExporter.cpp b/OTRExporter/AudioExporter.cpp
index b15b276..ac3fa18 100644
--- a/OTRExporter/AudioExporter.cpp
+++ b/OTRExporter/AudioExporter.cpp
@@ -30,7 +30,7 @@ void OTRExporter_Audio::WriteSampleEntryReference(ZAudio* audio, SampleEntry* en
void OTRExporter_Audio::WriteSampleEntry(SampleEntry* entry, BinaryWriter* writer)
{
- WriteHeader(nullptr, "", writer, Ship::ResourceType::AudioSample);
+ WriteHeader(nullptr, "", writer, Ship::ResourceType::AudioSample, Ship::Version::Rachael);
writer->Write(entry->codec);
writer->Write(entry->medium);
@@ -82,7 +82,7 @@ void OTRExporter_Audio::Save(ZResource* res, const fs::path& outPath, BinaryWrit
{
ZAudio* audio = (ZAudio*)res;
- WriteHeader(res, outPath, writer, Ship::ResourceType::Audio);
+ WriteHeader(res, outPath, writer, Ship::ResourceType::Audio, Ship::Version::Rachael);
// Write Samples as individual files
for (auto pair : audio->samples)
@@ -115,7 +115,7 @@ void OTRExporter_Audio::Save(ZResource* res, const fs::path& outPath, BinaryWrit
MemoryStream* fntStream = new MemoryStream();
BinaryWriter fntWriter = BinaryWriter(fntStream);
- WriteHeader(nullptr, "", &fntWriter, Ship::ResourceType::AudioSoundFont);
+ WriteHeader(nullptr, "", &fntWriter, Ship::ResourceType::AudioSoundFont, Ship::Version::Rachael);
fntWriter.Write((uint32_t)i);
fntWriter.Write(audio->soundFontTable[i].medium);
@@ -174,17 +174,18 @@ void OTRExporter_Audio::Save(ZResource* res, const fs::path& outPath, BinaryWrit
MemoryStream* seqStream = new MemoryStream();
BinaryWriter seqWriter = BinaryWriter(seqStream);
- seqWriter.Write((uint8_t)0); // Version 0 of format...
+ WriteHeader(nullptr, "", &seqWriter, Ship::ResourceType::AudioSequence, Ship::Version::Rachael);
+
+ seqWriter.Write((uint32_t)seq.size());
+ seqWriter.Write(seq.data(), seq.size());
seqWriter.Write((uint8_t)i);
seqWriter.Write((uint8_t)audio->sequenceTable[i].medium);
seqWriter.Write((uint8_t)audio->sequenceTable[i].cachePolicy);
- seqWriter.Write((uint8_t)audio->fontIndices[i].size());
+ seqWriter.Write((uint32_t)audio->fontIndices[i].size());
for (int k = 0; k < audio->fontIndices[i].size(); k++)
seqWriter.Write((uint8_t)audio->fontIndices[i][k]);
- seqWriter.Write(seq.data(), seq.size());
-
std::string fName = OTRExporter_DisplayList::GetPathToRes(res, StringHelper::Sprintf("sequences/%s", audio->seqNames[i].c_str()));
AddFile(fName, seqStream->ToVector());
}
diff --git a/OTRExporter/Exporter.cpp b/OTRExporter/Exporter.cpp
index 78c7ed3..b8b0612 100644
--- a/OTRExporter/Exporter.cpp
+++ b/OTRExporter/Exporter.cpp
@@ -1,7 +1,7 @@
#include "Exporter.h"
#include "VersionInfo.h"
-void OTRExporter::WriteHeader(ZResource* res, const fs::path& outPath, BinaryWriter* writer, Ship::ResourceType resType)
+void OTRExporter::WriteHeader(ZResource* res, const fs::path& outPath, BinaryWriter* writer, Ship::ResourceType resType, Ship::Version resVersion)
{
writer->Write((uint8_t)Endianess::Little); // 0x00
writer->Write((uint8_t)0); // 0x01
@@ -9,7 +9,8 @@ void OTRExporter::WriteHeader(ZResource* res, const fs::path& outPath, BinaryWri
writer->Write((uint8_t)0); // 0x03
writer->Write((uint32_t)resType); // 0x04
- writer->Write((uint32_t)MAJOR_VERSION); // 0x08
+ //writer->Write((uint32_t)MAJOR_VERSION); // 0x08
+ writer->Write((uint32_t)resVersion); // 0x08
writer->Write((uint64_t)0xDEADBEEFDEADBEEF); // id, 0x0C
writer->Write((uint32_t)resourceVersions[resType]); // 0x10
writer->Write((uint64_t)0); // ROM CRC, 0x14
diff --git a/OTRExporter/Exporter.h b/OTRExporter/Exporter.h
index 4568166..103617e 100644
--- a/OTRExporter/Exporter.h
+++ b/OTRExporter/Exporter.h
@@ -4,9 +4,10 @@
//#include "OTRExporter.h"
#include <Utils/BinaryWriter.h>
#include <Resource.h>
+#include "VersionInfo.h"
class OTRExporter : public ZResourceExporter
{
protected:
- static void WriteHeader(ZResource* res, const fs::path& outPath, BinaryWriter* writer, Ship::ResourceType resType);
+ static void WriteHeader(ZResource* res, const fs::path& outPath, BinaryWriter* writer, Ship::ResourceType resType, Ship::Version resVersion = MAJOR_VERSION);
}; \ No newline at end of file