Repository navigation
Conversation
JS-banana
force-pushed
the
fix/kit-phyre-shaders
branch
from
November 12, 2026 03:57
a06eb2c to
4504379
Compare
Unravel TWO stores its effects in indexed KIT parts with chained LZ4 blocks. Read those members with length and SHA1 checks, then recognize headerless compute programs within bounded Phyre effects. Keep existing graphics acceptance rules and archive scan budgets. Rechecked on main 3852186 with its GLSLC section reader and shared-DLC shader key merge. A synthetic KIT regression verifies that a repeated DLC effect leaves the game rows unchanged in either scan order. 117 targeted tests pass. Python lint reports no new findings. Game routes and Metal GPU regression remain untested on this revision.
JS-banana
force-pushed
the
fix/kit-phyre-shaders
branch
from
November 13, 2026 07:16
4504379 to
a535695
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Unravel TWO's shader split finds no programs: its effects are in indexed
.kit.Nparts with chained LZ4 blocks, and some Phyre compute programs lack the graphics code header.Read the KIT index and members with bounds, decoded-length and SHA1 checks. Recognize headerless compute programs only inside bounded Phyre effects, while preserving existing graphics rules, reader precedence and archive scan budgets. Nonzero high offset words remain unsupported. The shader entry describes the format and checks.
Validation
Rechecked on upstream main
38521863(2026-11-13), preserving its GLSLC section-header reader, archive readers and shared-DLC shader-key merge.test_split_*suite, docs and environment-switch consistency. This includes a new KIT integration regression: a DLC copy of an effect leaves the game rows unchanged, in either scan order and with or without the DLC.git diff --checkpasses.38521863; that revision has no KIT reader.regress.py impact upstream/main..HEAD: Breath of the Wild, Pokémon Scarlet and Tears of the Kingdom match the broad shader rule; Hades is not affected; 161 profiles have no usage manifest. No game route or Metal GPU regression was run on this revision. A fresh FINAL FANTASY X/X-2 build remains unchecked.shader_split.pyis not a chain-version input.Earlier local repair: Unravel TWO (
0100E5D00CC0C000) 1.0.1 yielded 2,629 shaders (438 vertex, 1,793 pixel, 398 compute), all built on the Mac. Two-player gameplay was reported working on November 8. This rebased revision has not been played.Docs
docs/reference/shaders.md; symptom index regenerated.