mirror of
https://github.com/tangerineturtle1/NX2navi.git
synced 2026-11-15 19:19:58 -04:00
Installs updated from 0.10.0 or 0.10.1 hold translations of the 0.9.2 translator, which declares the texture pool with 32768 entries and clamps every handle to slot 32767. The carry lookups (gfx_shader.c carry_load, carry_find_iid) served such a translation for the whole session, so every texture the game numbers from 32768 up (Ocarina's pool has 33068) was drawn with whatever slot 32767 held: the see-through ground of issues #569 and #824 stayed on those installs after the update. carry_usable now refuses a previous translator's translation that has a texture pool array (reflection pool 1) of 32768 entries; the lookup goes on to the next previous identity and then to a translation under the current translator, so the boot prewarm translates the shaders it names on the boot screen and the rest are translated at first use. The first refusal is logged, and the saves and the exit log how many there were. get_one now checks its failed keys before the previous translators' disk entries, so a shader whose translation failed does not read a refused entry from the disk at every call. Not reproduced before the change. tests/carry_pool_check.py (new) cuts the carry lookups out of gfx_shader.c and checks that an earlier-length translation is freed and passed over, also in the owned branch, while others are served; gfx_shader.c compiles with no new warnings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>