summaryrefslogtreecommitdiff
path: root/src/factories/DisplayListOverrides.cpp
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2025-01-25 14:03:07 -0600
committerKiritoDv <kiritodev01@gmail.com>2025-01-25 14:03:07 -0600
commit7bb9feddd8275fd5417d0ff0d2300ba688fa89b7 (patch)
tree60520889dd6017df4b357dec9ec1d46b44b2f52d /src/factories/DisplayListOverrides.cpp
parent37258535fe2cde3e00149314778f135adf76d42b (diff)
Added support for dlist matrix opcode
Diffstat (limited to 'src/factories/DisplayListOverrides.cpp')
-rw-r--r--src/factories/DisplayListOverrides.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/factories/DisplayListOverrides.cpp b/src/factories/DisplayListOverrides.cpp
index f684899..7284d29 100644
--- a/src/factories/DisplayListOverrides.cpp
+++ b/src/factories/DisplayListOverrides.cpp
@@ -184,6 +184,21 @@ int Viewport(uint32_t ptr) {
SPDLOG_TRACE("Could not find viewport to override at 0x{:X}", ptr);
return 0;
}
+
+int Matrix(uint32_t ptr) {
+ auto dec = Companion::Instance->GetNodeByAddr(ptr);
+
+ if(dec.has_value()){
+ auto node = std::get<1>(dec.value());
+ auto symbol = GetSafeNode<std::string>(node, "symbol");
+ SPDLOG_INFO("Found Matrix: 0x{:X} Symbol: {}", ptr, symbol);
+ gfxd_puts(("&" + symbol).c_str());
+ return 1;
+ }
+
+ SPDLOG_TRACE("Could not find viewport to override at 0x{:X}", ptr);
+ return 0;
+}
#endif
std::optional<std::tuple<std::string, YAML::Node>> GetVtxOverlap(uint32_t ptr){