summaryrefslogtreecommitdiff
path: root/src/factories/DisplayListFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/factories/DisplayListFactory.cpp')
-rw-r--r--src/factories/DisplayListFactory.cpp45
1 files changed, 18 insertions, 27 deletions
diff --git a/src/factories/DisplayListFactory.cpp b/src/factories/DisplayListFactory.cpp
index f3d4636..aa004ca 100644
--- a/src/factories/DisplayListFactory.cpp
+++ b/src/factories/DisplayListFactory.cpp
@@ -342,11 +342,9 @@ ExportResult DListBinaryExporter::Export(std::ostream &write, std::shared_ptr<IP
auto branch = (w0 >> 16) & G_DL_NO_PUSH;
// Export displaylist segment addresses as an index into a buffer of gfx
- {
- value = gsSPDisplayListOTRHash(ptr);
- w0 = value.words.w0;
- w1 = value.words.w1;
- }
+ value = gsSPDisplayListOTRHash(ptr);
+ w0 = value.words.w0;
+ w1 = value.words.w1;
writer.Write(w0);
writer.Write(w1);
@@ -427,32 +425,25 @@ ExportResult DListBinaryExporter::Export(std::ostream &write, std::shared_ptr<IP
auto dec = Companion::Instance->GetSafeStringByAddr(ptr, "TEXTURE");
// Export texture segment addresses as segmented addresses
- // if ((Companion::Instance->GetGBIMinorVersion() == GBIMinorVersion::Mk64) && ((SEGMENT_NUMBER(w1) == 0x03) || (SEGMENT_NUMBER(w1) == 0x05))) {
- // w1 |= 1;
- // writer.Write(w0);
- // writer.Write(w1);
- // } else
- {
- N64Gfx value = gsDPSetTextureOTRImage(C0(21, 3), C0(19, 2), C0(0, 10), ptr);
- w0 = value.words.w0;
- w1 = value.words.w1;
+ N64Gfx value = gsDPSetTextureOTRImage(C0(21, 3), C0(19, 2), C0(0, 10), ptr);
+ w0 = value.words.w0;
+ w1 = value.words.w1;
- writer.Write(w0);
- writer.Write(w1);
-
- if(dec.has_value()){
- uint64_t hash = CRC64(dec.value().c_str());
+ writer.Write(w0);
+ writer.Write(w1);
- if(hash == 0){
- throw std::runtime_error("Texture hash is 0 for " + dec.value());
- }
+ if(dec.has_value()){
+ uint64_t hash = CRC64(dec.value().c_str());
- SPDLOG_INFO("Found texture: 0x{:X} Hash: 0x{:X} Path: {}", ptr, hash, dec.value());
- w0 = hash >> 32;
- w1 = hash & 0xFFFFFFFF;
- } else {
- SPDLOG_WARN("Could not find texture at 0x{:X}", ptr);
+ if(hash == 0){
+ throw std::runtime_error("Texture hash is 0 for " + dec.value());
}
+
+ SPDLOG_INFO("Found texture: 0x{:X} Hash: 0x{:X} Path: {}", ptr, hash, dec.value());
+ w0 = hash >> 32;
+ w1 = hash & 0xFFFFFFFF;
+ } else {
+ SPDLOG_WARN("Could not find texture at 0x{:X}", ptr);
}
}