From 71e5f2477ed125fca3e6c896a4f88583c48529cb Mon Sep 17 00:00:00 2001 From: Erik Abair Date: Wed, 14 Jan 2026 21:38:41 -0800 Subject: [PATCH] nv2a: Fix calculation of palette length pgraph_get_texture_palette_phys_addr_length returns the length of the palette in entries whereas the use of the returned data expects bytes. This leads to a situation where textures that are rendered without any changes to the lower palette entries will erroneously reuse stale data. Test: https://github.com/abaire/nxdk_pgraph_tests/blob/0b1ae640fa76ecfc5b7b4f2b5f870404ed106114/src/tests/texture_palette_tests.cpp#L234 HW results: https://abaire.github.io/nxdk_pgraph_tests_golden_results/results/Texture_palette/index.html Fixes #2646 --- hw/xbox/nv2a/pgraph/texture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xbox/nv2a/pgraph/texture.c b/hw/xbox/nv2a/pgraph/texture.c index 30bfa87990..ca93c41e81 100644 --- a/hw/xbox/nv2a/pgraph/texture.c +++ b/hw/xbox/nv2a/pgraph/texture.c @@ -124,7 +124,7 @@ hwaddr pgraph_get_texture_palette_phys_addr_length(PGRAPHState *pg, int texture_ default: assert(false); break; } if (length) { - *length = palette_length; + *length = palette_length * 4; } hwaddr palette_dma_len;