Skip to content

Keep extracted Program 1 Mac save and pipeline-cache identities separate - #1586

Open
ishtiaq156 wants to merge 6 commits into
seedds:mainfrom
ishtiaq156:fix/mac-dump-program1-namespace-20261106
Open

ishtiaq156 wants to merge 6 commits into
seedds:mainfrom
ishtiaq156:fix/mac-dump-program1-namespace-20261106

Conversation

@ishtiaq156

@ishtiaq156 ishtiaq156 commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

What and why

An extracted multi-program update can launch a different program from the original application. For Super Mario Bros. Wonder: Nintendo Switch 2 Edition, the selected Program 1 is 040015100B514001, while the original game's application ID is 010015100B514000. Previously, the Mac packer used the original ID for the launcher's DMTitleID, default bundle ID, saves and Metal pipeline cache, risking reuse of the original Switch 1 game's data.

For extracted-folder Mac apps only, use the selected profile's title ID for the launcher, default bundle ID and save/log namespace. Keep the original application ID for update and DLC selection. Normal Program 0, NSP/NUP and iOS packaging are unchanged; explicit --bundle-id/BUNDLE_ID values still win over saved signing settings. A stale saved Xcode bundle ID cannot silently redirect a selected Program 1 Mac app back to Program 0.

This is separate from #1253, which selects programs from extracted dumps; this PR only fixes the Mac identity used after a program is selected. The packing reference in this PR records the general symptom, cause and fix.

Checked

  • Tests: 148/148 focused Mac, dump, NUP, alias, work-folder and documentation tests passed against upstream ccd834e0. A disposable integration of this patch with the author-preserving #1253 candidate passed 107/107 dump, profile-selection, Mac and docs tests. Both new Program 1 identity/override regression tests passed. Python compilation and Git diff checks passed.
  • Earlier game/package check: Wonder Switch 2 Edition, Program 1 040015100B514001, update v327680 (1.2.1). A local Mac build's Info.plist had DMTitleID=040015100B514001 and CFBundleIdentifier=org.nxnative.040015100b514001; the original and Edition save directories remained separate. This latest refresh received headless validation only, not another gameplay run.
  • Device: Apple Silicon Mac mini M6, macOS 27.0.1. No shader-chain or host-runtime changes, and no game-wide regression run for this packer-only fix.

Docs

  • Documented the general cause/fix in docs/reference/packing.md and added it to docs/agents/symptoms.md.
  • No game files, keys or extracted game assets included.

@github-actions github-actions Bot added packing Building an IPA or a Mac app: the NSP script, extraction, the shader split, the packers tools Tools and scripts (dm/tools, scripts) docs Documentation labels Nov 6, 2026
@ishtiaq156
ishtiaq156 marked this pull request as draft November 6, 2026 23:00
…dence

Verify the selected Program 1 Mac launcher gets its own default bundle ID while original app IDs continue to be used for iOS, NSP and NUP. Explicit user overrides always win. Depends on Mac namespace helper introduced by seedds#1586.

(cherry picked from commit 67902e18fa1838c567ea1392c7405a07c0d3ebe9)
Retain the newer --icon guidance while passing the selected Program 1 launch ID to Mac app packaging. Keep the original application ID for update/DLC selection and preserve iOS, NSP, NUP, Program 0 and explicit bundle-ID behavior.

Checked: 147 focused headless tests on refreshed main; 107 combined seedds#1253/seedds#1586 integration tests in an isolated worktree. No gameplay or full app rebuild for this identity-only sync.
Keep the selected extracted Program 1 launch/save/pipeline-cache namespace without losing upstream's fallback-icon option and newer packaging behavior. The original application ID continues to select updates and DLC.

Checked: 148 focused Mac/dump/NUP/alias/working-directory/docs tests, Python compilation and whitespace checks. No new gameplay run.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation packing Building an IPA or a Mac app: the NSP script, extraction, the shader split, the packers tools Tools and scripts (dm/tools, scripts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants