From d8aa5e3db8d0d2c364ae8d626f21772fa5955bc7 Mon Sep 17 00:00:00 2001 From: KakarotCake <61133727+KakarottoCake@users.noreply.github.com> Date: Sat, 29 Aug 2026 14:03:41 -0400 Subject: [PATCH] Enemy/DebuTelesa, System/MarNameRefGen_Map: include InfectiousStrings Both units' retail objects carry the four `MActorMtxCalcType_*` strings and the `DummyStrings.hpp` pair ahead of them, byte for byte, and neither of our sources emitted them. `M3DUtil/InfectiousStrings.hpp` already exists for exactly this and pulls in `System/DummyStrings.hpp` itself, in that order. DebuTelesa's `.rodata` goes from 241 bytes of missing compiler-generated constants to 24. MarNameRefGen_Map's drops to none. **No change to matched functions or matched data** -- 8131 and 353,763 both before and after. This is a source-fidelity fix, not a scoring one. It closes the head of those two `.rodata` sections so that whatever is fixed there next is not sitting at the wrong offset. On picking the units: the retail MAP lists `MtxCalcTypeName` for 181 `.cpp` files, but that is the wrong list to work from. 164 of those are `UNUSED` with a `........` address -- dead-stripped, so absent from the extracted objects that objdiff actually compares against. Emitting the strings in those units would put bytes in our `.rodata` that the target can never have. The right list is the 142 units whose retail *object* still carries them, and the existing 87 carriers in our tree agree: 86 of them are in that set. That leaves 56 units still to do. 54 of them have pre-existing `check-changed-symbol-order.py` failures on unmodified main, so touching them would redden a PR over breakage they already had -- I have left those alone rather than bury this in unrelated red. These two are the ones that are clean. Co-Authored-By: Claude Opus 5 --- src/Enemy/DebuTelesa.cpp | 1 + src/System/MarNameRefGen_Map.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/Enemy/DebuTelesa.cpp b/src/Enemy/DebuTelesa.cpp index e0d92e9db..4b4639aab 100644 --- a/src/Enemy/DebuTelesa.cpp +++ b/src/Enemy/DebuTelesa.cpp @@ -13,6 +13,7 @@ // rogue includes needed for matching sinit & bss #include #include +#include static const char* DebuTelesa_bastable[] = { "/scene/DebuTelesa/bas/debuTelesa_wait.bas", diff --git a/src/System/MarNameRefGen_Map.cpp b/src/System/MarNameRefGen_Map.cpp index c33defcc2..2c499f532 100644 --- a/src/System/MarNameRefGen_Map.cpp +++ b/src/System/MarNameRefGen_Map.cpp @@ -10,6 +10,9 @@ #include "Map/StickyStainManager.hpp" #include +// rogue includes needed for matching sinit & bss +#include + JDrama::TNameRef* TMarNameRefGen::getNameRef_Map(const char* name) const { if (strcmp(name, "Map") == 0)