From ad9bb06a294c3662a65827ff5c09811c6f8463dd Mon Sep 17 00:00:00 2001 From: MelonSpeedruns Date: Fri, 29 May 2026 16:51:57 -0400 Subject: [PATCH] fix mipmaps --- src/dusk/tphd/HdAssetLayer.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/dusk/tphd/HdAssetLayer.cpp b/src/dusk/tphd/HdAssetLayer.cpp index cdc113c5cd..779d18d58c 100644 --- a/src/dusk/tphd/HdAssetLayer.cpp +++ b/src/dusk/tphd/HdAssetLayer.cpp @@ -477,9 +477,12 @@ 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)); - timg->mipmapEnabled = 1; + timg->mipmapEnabled = hdMips > 1; timg->mipmapCount = hdMips; timg->maxLOD = static_cast((hdMips - 1) * 8); + if (timg->mipmapEnabled) { + timg->minFilter = GX_LIN_MIP_LIN; + } timg->maxAnisotropy = GX_ANISO_4; registerHdSurface(*m, s, arcBytes.data() + f.dataOffset + btiAbs + newImgOff, @@ -513,9 +516,12 @@ 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)); - timg->mipmapEnabled = 1; + timg->mipmapEnabled = hdMips > 1; timg->mipmapCount = hdMips; timg->maxLOD = static_cast((hdMips - 1) * 8); + if (timg->mipmapEnabled) { + timg->minFilter = GX_LIN_MIP_LIN; + } timg->maxAnisotropy = GX_ANISO_4; registerHdSurface(*m, s, arcBytes.data() + f.dataOffset + 0x20, gtx->name, 0);