summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--OTRExporter/Main.cpp22
-rwxr-xr-xextract_assets.py4
2 files changed, 19 insertions, 7 deletions
diff --git a/OTRExporter/Main.cpp b/OTRExporter/Main.cpp
index e0a5254..a199e18 100644
--- a/OTRExporter/Main.cpp
+++ b/OTRExporter/Main.cpp
@@ -63,13 +63,29 @@ static void ExporterProgramEnd()
{
if (Globals::Instance->fileMode == ZFileMode::ExtractDirectory)
{
+ printf("Creating version file...\n");
+
+ // Get crc from rom
+ std::string romPath = Globals::Instance->baseRomPath.string();
+ std::vector<uint8_t> romData = File::ReadAllBytes(romPath);
+ uint32_t crc = BitConverter::ToUInt32BE(romData, 0x10);
+
+ // Write crc to version file
+ fs::path versionPath("Extract/version");
+ std::ofstream versionFile(versionPath.c_str(), std::ios::out | std::ios::binary);
+ versionFile.write((char*)&crc, sizeof(crc));
+ versionFile.flush();
+ versionFile.close();
+
+ printf("Created version file.\n");
+
printf("Generating OTR Archive...\n");
otrArchive = Ship::Archive::CreateArchive(otrFileName, 40000);
- for (auto item : files)
- {
+ for (auto item : files) {
auto fileData = item.second;
- otrArchive->AddFile(item.first, (uintptr_t)fileData.data(), fileData.size());
+ otrArchive->AddFile(item.first, (uintptr_t)fileData.data(),
+ fileData.size());
}
// Add any additional files that need to be manually copied...
diff --git a/extract_assets.py b/extract_assets.py
index 7fd0573..ada4742 100755
--- a/extract_assets.py
+++ b/extract_assets.py
@@ -11,10 +11,6 @@ import argparse
def BuildOTR(xmlPath, rom, zapd_exe=None):
shutil.copytree("assets", "Extract/assets")
- checksum = int(Z64Rom(rom).checksum.value, 16)
- with open("Extract/version", "wb") as f:
- f.write(struct.pack('<L', checksum))
-
if not zapd_exe:
zapd_exe = "x64\\Release\\ZAPD.exe" if sys.platform == "win32" else "../ZAPDTR/ZAPD.out"