From e641044535308ce8f7e58800e9245f44a7347366 Mon Sep 17 00:00:00 2001 From: MelonSpeedruns Date: Fri, 29 May 2026 14:38:03 -0400 Subject: [PATCH] proper calculation of maxlod & mipmapenabled --- src/dusk/tphd/HdAssetLayer.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/dusk/tphd/HdAssetLayer.cpp b/src/dusk/tphd/HdAssetLayer.cpp index aa87fbf2b2..4033f322da 100644 --- a/src/dusk/tphd/HdAssetLayer.cpp +++ b/src/dusk/tphd/HdAssetLayer.cpp @@ -477,12 +477,10 @@ void registerHdTexturesForArc(std::vector& arcBytes, const u32 newImgOff = 0x20 + i * 0x20; timg->imageOffset = static_cast(newImgOff); const u8 hdMips = static_cast(std::clamp(s.mipCount, 1u, 13u)); - if (timg->mipmapEnabled) { - timg->mipmapCount = hdMips; - timg->maxLOD = static_cast((hdMips - 1) * 8); - } + timg->mipmapEnabled = 1; + timg->mipmapCount = hdMips; + timg->maxLOD = static_cast((hdMips * 8) - 1); timg->maxAnisotropy = GX_ANISO_4; - //timg->LODBias = -50; registerHdSurface(*m, s, arcBytes.data() + f.dataOffset + btiAbs + newImgOff, gtx->name, i); @@ -515,12 +513,10 @@ void registerHdTexturesForArc(std::vector& arcBytes, auto* timg = reinterpret_cast(arcBytes.data() + f.dataOffset); timg->imageOffset = 0x20; const u8 hdMips = static_cast(std::clamp(s.mipCount, 1u, 13u)); - if (timg->mipmapEnabled) { - timg->mipmapCount = hdMips; - timg->maxLOD = static_cast((hdMips - 1) * 8); - } + timg->mipmapEnabled = 1; + timg->mipmapCount = hdMips; + timg->maxLOD = static_cast((hdMips * 8) - 1); timg->maxAnisotropy = GX_ANISO_4; - //timg->LODBias = -50; registerHdSurface(*m, s, arcBytes.data() + f.dataOffset + 0x20, gtx->name, 0); ++btiReg;