docs: mods that make files bigger need the resource size table grown #1325

Merged
Joey-Magnus merged 1 commit from docs/mods-size-table into main 2026-11-09 23:11:32 +00:00
Joey-Magnus commented 2026-11-09 21:43:26 +00:00 (Migrated from github.com)

What

A paragraph in the readme's Mods section: a mod file bigger than the game's own only loads if the resource size table (System/Resource/ResourceSizeTable.Product.111.Nin_Ounce_NVN2.rsizetable.zs) allows for it, and only one mod's table is used.

Why

Making an HD texture pack, the 2x textures were packed correctly but never reached the GPU (RX_VK_WATCH_DIM at the new size: no textures made), and a pack of every colour texture left the game on a loading screen. Each texture's entry in the table is exactly its decompressed size + 280; with the entries grown, the same pack loads and every replaced texture shows in game (a magenta-tinted test pack, Kokiri Forest, Linux + RTX 4070 Ti). Because Hookshot replaces whole files and the last-sorting mod wins, two mods that each grow files need one merged table.

Checked

  • The table round-trips byte for byte (RESTBL v1: 219,968 CRC32 entries, 10 by name).
  • Without the grown table: no 2x textures created, all-texture pack stuck loading. With it: loads into gameplay, textures sampled at the new size.
  • Readme only; no code change.

The builder this came from, for anyone making texture mods (no game data in it): https://github.com/Joey-Magnus/Hookshot-Textures

AI assistance: written with Claude Opus 5.5 (trailers on the commit).

## What A paragraph in the readme's **Mods** section: a mod file bigger than the game's own only loads if the resource size table (`System/Resource/ResourceSizeTable.Product.111.Nin_Ounce_NVN2.rsizetable.zs`) allows for it, and only one mod's table is used. ## Why Making an HD texture pack, the 2x textures were packed correctly but never reached the GPU (`RX_VK_WATCH_DIM` at the new size: no textures made), and a pack of every colour texture left the game on a loading screen. Each texture's entry in the table is exactly its decompressed size + 280; with the entries grown, the same pack loads and every replaced texture shows in game (a magenta-tinted test pack, Kokiri Forest, Linux + RTX 4070 Ti). Because Hookshot replaces whole files and the last-sorting mod wins, two mods that each grow files need one merged table. ## Checked - The table round-trips byte for byte (RESTBL v1: 219,968 CRC32 entries, 10 by name). - Without the grown table: no 2x textures created, all-texture pack stuck loading. With it: loads into gameplay, textures sampled at the new size. - Readme only; no code change. The builder this came from, for anyone making texture mods (no game data in it): https://github.com/Joey-Magnus/Hookshot-Textures AI assistance: written with Claude Opus 5.5 (trailers on the commit).
hckrman101 (Migrated from github.com) approved these changes 2026-11-09 23:08:00 +00:00
hckrman101 (Migrated from github.com) left a comment

Matches host/mods.c: mods replace whole files and the last-sorting folder wins on a duplicate, so only one mod's rsizetable is used, and the "merged table in the last-sorting mod" advice follows. I can't check the table format (CRC32 of the path, decompressed size + 280) or the oversize behaviour from the repo, so those rest on your testing. Nit: the new paragraph's line wrapping is ragged.

Matches host/mods.c: mods replace whole files and the last-sorting folder wins on a duplicate, so only one mod's rsizetable is used, and the "merged table in the last-sorting mod" advice follows. I can't check the table format (CRC32 of the path, decompressed size + 280) or the oversize behaviour from the repo, so those rest on your testing. Nit: the new paragraph's line wrapping is ragged.
Commenting is not possible because the repository is archived.
No description provided.