From 580350a2c2a0987811b31e562133106c4979bf05 Mon Sep 17 00:00:00 2001 From: Lywx Date: Sun, 23 Mar 2025 22:10:43 -0600 Subject: [PATCH] Implemented count for broken dlists --- src/factories/DisplayListFactory.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/factories/DisplayListFactory.cpp b/src/factories/DisplayListFactory.cpp index 86f311e..20eea5b 100644 --- a/src/factories/DisplayListFactory.cpp +++ b/src/factories/DisplayListFactory.cpp @@ -503,12 +503,14 @@ ExportResult DListBinaryExporter::Export(std::ostream &write, std::shared_ptr> DListFactory::parse(std::vector& raw_buffer, YAML::Node& node) { const auto gbi = Companion::Instance->GetGBIVersion(); + auto count = GetSafeNode(node, "count", -1); auto [_, segment] = Decompressor::AutoDecode(node, raw_buffer); LUS::BinaryReader reader(segment.data, segment.size); reader.SetEndianness(Torch::Endianness::Big); std::vector gfxs; auto processing = true; + size_t length = 0; while (processing){ auto w0 = reader.ReadUInt32(); @@ -631,6 +633,10 @@ std::optional> DListFactory::parse(std::vector= count){ + break; + } + gfxs.push_back(w0); gfxs.push_back(w1); }