From 26cd152cba46ac55e0df97dafb849c743c1525c0 Mon Sep 17 00:00:00 2001 From: baromas Date: Sat, 7 Nov 2026 22:51:39 +0300 Subject: [PATCH] feat: preserve portable shader list bindings for OoT Isolated for review on the MD5Visual OoT baseline. --- games/oot/assets/shader_list.tsv | 4 ++-- games/totk/scripts/shader_list.py | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/games/oot/assets/shader_list.tsv b/games/oot/assets/shader_list.tsv index fca5e1b34..2f7957db1 100644 --- a/games/oot/assets/shader_list.tsv +++ b/games/oot/assets/shader_list.tsv @@ -1,2 +1,2 @@ -# TOTK shader list v1 (games/totk/scripts/shader_list.py; docs/shader-list.md). The one list for every platform. -# Identifiers and pipeline descriptors only, no game data. Translation chain totk-native-v9-unverified. +# Ocarina of Time shader list v1 (games/totk/scripts/shader_list.py; docs/shader-list.md). +# Identifiers and pipeline descriptors only, no game data. diff --git a/games/totk/scripts/shader_list.py b/games/totk/scripts/shader_list.py index 1375fe37a..9fcf3ab9b 100644 --- a/games/totk/scripts/shader_list.py +++ b/games/totk/scripts/shader_list.py @@ -66,7 +66,9 @@ HEADER = ('# TOTK shader list v1 (games/totk/scripts/shader_list.py; docs/shader-list.md). The one list for every platform.\n' '# Identifiers and pipeline descriptors only, no game data. Translation chain totk-native-v9-unverified.\n') HEADERS = {'botw': ('# Breath of the Wild shader list v1 (games/totk/scripts/shader_list.py; docs/shader-list.md). The one list for every platform.\n' - '# Identifiers and pipeline descriptors only, no game data. Translation chain totk-native-v9-unverified.\n')} + '# Identifiers and pipeline descriptors only, no game data. Translation chain totk-native-v9-unverified.\n'), + 'oot': ('# Ocarina of Time shader list v1 (games/totk/scripts/shader_list.py; docs/shader-list.md).\n' + '# Identifiers and pipeline descriptors only, no game data.\n')} EXPORT = '# Generated from {} by scripts/shader_list.py; edit that list, not this file.\n' KEY = re.compile(r'^[0-9a-f]{64}$') VARIANT = re.compile(r'^[0-9a-f]{64}-[0-9a-f]{12}_b$') @@ -204,7 +206,7 @@ def list_name(path): # The games run by this runtime (games/totk): their lists carry A rows and packed pipeline keys. Every other game's own # tools read only V and warm rows, as hex. -OUR_RUNTIME = (None, 'totk', 'botw', 'dkb', 'pokopia') +OUR_RUNTIME = (None, 'totk', 'botw', 'dkb', 'pokopia', 'oot') def list_game(path): @@ -477,7 +479,7 @@ def main(argv): elif argv[:1] == ['export'] and len(argv) == 3: Path(argv[2]).write_text(ShaderList.load(argv[1]).export('t', 'm', source=list_name(argv[1]))) elif argv[:1] == ['prune'] and len(argv) == 3: - if list_game(argv[1]) in ('dkb', 'pokopia'): # a Switch 2 game's V rows are what its seed translates (prepare_ns2_seed.py) + if list_game(argv[1]) in ('dkb', 'pokopia', 'oot'): # a Switch 2 game's V rows are what its seed translates (prepare_ns2_seed.py) sys.exit(f'{argv[1]}: a Switch 2 game\'s list is not pruned: its V rows name the shaders its seed takes from the game files') sys.path.insert(0, str(Path(__file__).resolve().parent)) # also when run with python -I from prepare_shader_seed import builtin_serves # it imports this module