Repository navigation
feat(dread): Metroid Dread 2.1.0, with its shaders and pipelines prepared on the Mac, the movie Stop fix and the end-of-stream audio fix - #2144
Merged
Conversation
added 2 commits
November 13, 2026 13:14
…ared on the Mac, the movie Stop fix and the end-of-stream audio fix - 2.1.0: build.py takes the update NSP (--update); the code comes from its ExeFS (scripts/extract_code.py), the RomFS is the base's merged with the update's BKTR image (scripts/merge_romfs.py); assets/expected-v2.1.0.json replaces the 1.0.0 pins; make probe maps rewritten/v210. - Mac shaders: the build prepares the seed (make shader-seed) and its Metal libraries (make shader-libs); the 128 render pipelines of the opening are R rows of assets/shader_list.tsv, warmed before play (128 -> 0 synchronous builds on the route to Artaria; both A/B arms recorded 47 frames over 50 ms). shader_list.py keeps Dread's keys as recorded (no pso_key_norm in this runtime). - Movie Stop / Reset: movie_host.c clears the held frames when it frees them; tests/movie_stop covers buffer and texture mode. - Audio: every streamed buffer is end of stream with more queued; the voice now plays on into the next one in the same frame (AUDIO_EOS_PLAYS_ON), as the DSP does. probe-audio checks the cursor and the mixed output. - No Homebrew: opus and libvpx from tools/deps, build.py searches no Homebrew prefix; the prebuilt totk_xlate is byte-identical to the alc, by3 and eow copies (SHA-256 6dd53d64...). - Validated on macOS (clean build from scratch, probe, tests, the app to Artaria); the iOS scripts are updated for 2.1.0 but no iOS package was built.
…he suite's earlier TOTK one does not stand in In the whole suite test_ns2_key_rule and test_shader_contrib import Tears of the Kingdom's shader_list.py first; it normalizes pipeline keys and Dread's does not, so prepare_shader_seed got the wrong module and the warm pipeline test failed in CI (Source tests (core)). The build is not affected: each script runs in its own process.
ly05010419
added a commit
that referenced
this pull request
Nov 14, 2026
Owner
|
已合并并推送,并补充统一打包和更新路径:5b3b359a。 恢复 1.0.0 与 2.1.0 各自的输入身份校验;接入 MNG 构建/更新、共享依赖、独立签名 ShaderData、App 外并行管线存档及新进程验证、标题前完整预热、准确清单核对、按输入复用和保留 App 目录。RomFS 复用检查实际字节,修改后的数据不能凭旧索引通过。 本机电影/纹理区域原生测试、Dread Python 测试、打包与 MNG 路由回归通过,共享图形代码 iOS 编译检查通过。游戏数据仍采用原有外部 work 布局,须保留该目录;该后端贡献格式尚无网站 schema,保持本地人工合并,不冒用其他游戏身份。 未做这条新打包链的完整游戏构建、游玩或 iPad 验收,文档已注明。谢谢贡献。 |
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.
Moves
games/dreadfrom 1.0.0 to the latest update, 2.1.0, and closes what playing it showed.2.1.0
build.pytakes the update NSP (--update, required): the code comes from its ExeFS (scripts/extract_code.py), the RomFS is the base's merged with the update's BKTR image (scripts/merge_romfs.py, all six IVFC levels verified). Both scripts come from Echoes of Wisdom.assets/expected-v2.1.0.jsonreplaces the 1.0.0 pins (9,774 files, 5.3 GB). Onlymainchanges in 2.1.0;sdk,subsdk0and the 1,010 shaders are byte-identical to 1.0.0's.structck.pyOK andequiv.py0 divergent on all three modules;make probemapsrewritten/v210.Shaders and pipelines on the Mac
make shader-seed) and compiles it into Metal libraries (make shader-libs,scripts/build_shader_libs.py, Echoes of Wisdom's). No shader is translated and no library is compiled while playing the opening.Rrows inassets/shader_list.tsv. The seed's warm-up builds them in the background. On the route to Artaria (A/B, two runs per arm), synchronous pipeline builds in play go from 128 to 0; both arms recorded 47 frames over 50 ms.scripts/shader_list.pykeeps Dread's pipeline keys as recorded: this runtime has nopso_key_norm.Movie Stop / Reset
runtime/movie_host.cclears the held frames when it frees them (Echoes of Wisdom's and Kirby's fix). A late GetOutputBuffer now answers ST_ERROR instead of reading a freed frame.tests/movie_stop(inmake test, AddressSanitizer) covers Stop and Reset in buffer and texture mode, and checks that the decoder works again afterwards. The earlier movie crashes listed in the CHANGELOG stay open.The audio tick
AUDIO_EOS_PLAYS_ON).probe-audiochecks both the cursor (Breath of the Wild's probe) and the mixed output (new). On a capture of the movie and the title, the steps 325 ms apart went from 73 to 0, and the player heard the noise gone.Builds without Homebrew
tools/deps, andbuild.pyno longer searches Homebrew prefixes for git and make.prebuilt/macos-arm64/totk_xlateis byte-identical to the Astral Chain, Bayonetta 3 and Echoes of Wisdom copies (SHA-2566dd53d6486c96e3a95ae5fd49fdc35f75f6e603ff8ededa3d7250fd2e4fe1220).Checked on macOS
build.pyfrom scratch with base and update NSPs, on a PATH without Homebrew.make probeandmake test.probe-audio(46,835 checks).tests/test_no_homebrew.py,test_dread_shader_seed.py,test_packaging_standard.pyandtest_dread_romfs_paths.