diff options
| -rw-r--r-- | OTRExporter/Main.cpp | 22 | ||||
| -rwxr-xr-x | extract_assets.py | 4 |
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" |
