summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorinspectredc <78732756+inspectredc@users.noreply.github.com>2024-03-22 16:00:03 +0000
committerGitHub <noreply@github.com>2024-03-22 10:00:03 -0600
commita7f0603525bc33257715304537c95f13829619ee (patch)
tree32a9a49a102e9667e6e09f15b42d2b15c94bcd8c
parentaaa68d2ebcb732d7d18af1a41a292c50182e7fd5 (diff)
branch list (#50)
-rw-r--r--src/factories/DisplayListFactory.cpp5
-rw-r--r--src/n64/gbi-otr.h4
2 files changed, 9 insertions, 0 deletions
diff --git a/src/factories/DisplayListFactory.cpp b/src/factories/DisplayListFactory.cpp
index 29c1bf9..b83ea75 100644
--- a/src/factories/DisplayListFactory.cpp
+++ b/src/factories/DisplayListFactory.cpp
@@ -313,6 +313,11 @@ std::optional<std::shared_ptr<IParsedData>> DListFactory::parse(std::vector<uint
std::optional<uint32_t> segment;
+ if ((w0 >> 16) & G_DL_NO_PUSH) {
+ SPDLOG_INFO("Branch List Command Found");
+ processing = false;
+ }
+
if(const auto decl = Companion::Instance->GetNodeByAddr(w1); !decl.has_value()){
SPDLOG_INFO("Addr to Display list command at 0x{:X} not in yaml, autogenerating it", w1);
diff --git a/src/n64/gbi-otr.h b/src/n64/gbi-otr.h
index b760236..9cc1422 100644
--- a/src/n64/gbi-otr.h
+++ b/src/n64/gbi-otr.h
@@ -21,6 +21,10 @@
#define G_FILLWIDERECT 0x38
#define G_MOVEMEM_OTR_HASH 0x42
+// DL FLAGS
+#define G_DL_PUSH 0x00
+#define G_DL_NO_PUSH 0x01
+
/* GFX Effects */
#define G_SETGRAYSCALE 0x39
#define G_EXTRAGEOMETRYMODE 0x3a