Repository navigation
Conversation
…, and surveys a dump with no profile Fire Emblem Fortune's Weave's dump holds updates/131072 alone, and the update is the whole game, but the script took base/ as the mark of a dump and refused one with no profile. pack_dump.py now takes a dump with base/ or with updates/<version>/ that hold code and a RomFS, and reads the title ID from the base game, else from the newest update; version 0 without base/ is refused with the versions there. The script lists v0 only when there is a base, looks up the build by the newest version's main, and surveys a dump with no profile from its own files: the code modules are copied, the RomFS is read in place in place of the manifest, and the folder names the game, a dump having no control data. The provisional profile was wrong for a Switch 2 game in two ways. The SDK version string names a variant (nnSdk-Generic_22_2_0), which the pattern did not take, so the survey showed no SDK. And the pool was the Switch 1 one; an sdk built for the Switch 2 (spec: Ounce, as loader.c's dm_sdk_ounce reads it) now gets a 9 GB pool and a heap region that holds it, as Donkey Kong Bananza's profile has. Checked, on the current main: test_nsp_dump.py (a dump with only an update, and a dump with no profile surveyed until its 32-bit NPDM stops it) and test_profile_guess.py (the pool and the variant) pass with Python 3.14, as do test_nsp_scan.py and test_nsp_romfs.py. Before the rebase, the script built Fire Emblem Fortune's Weave from its dump on the Mac, survey and provisional profile included. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 tasks done
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
This is split out of #957, as offered in its closing comment. Fire Emblem Fortune's Weave's dump holds
updates/131072/alone, and that update is the whole game. The NSP script had two problems with it: it tookbase/as the mark of a dump, and it refused a dump with no profile instead of surveying it.pack_dump.py: takes a dump withbase/or withupdates/<version>/folders that hold code and a RomFS. It reads the title ID from the base game, or else from the newest update. It refuses version 0 withoutbase/, and lists the versions there.main. A dump with no profile is surveyed from its own files: the code modules are copied, the RomFS is read in place instead of from the manifest, and the folder's name names the game, since a dump has no control data.profile_guess.py) had two errors for a Switch 2 game:nnSdk-Generic_22_2_0), so the survey showed no SDK.sdkbuilt for the Switch 2 (Ounce) now gets a 9 GB pool and a heap region that holds it, as Donkey Kong Bananza's profile has.Checked
test_nsp_dump.pyfails onmaintoo with 3.9):dm/tools/tests/test_nsp_dump.py: a dump with only an update, and a dump with no profile surveyed until its 32-bit NPDM stops it.test_profile_guess.py: the pool and the variant.test_nsp_scan.py,test_nsp_romfs.py,test_docs.py.04007EF01F8AE000) update-only dump, packed v131072 from the update alone, and built all 16,888 shaders, the host and the pipeline prebuild. Before the rebase, it also surveyed the dump with no profile and wrote the provisional one.regress.py: not run. This changes packing, not the host or the chain.Docs
docs/development.mddescribes the dump layout the script takes🤖 Generated with Claude Code