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> DListFactory::parse(std::vector 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