2.1 KiB
2.1 KiB
Packing
Compressed inputs
NSZ decompression rejects --keys
- Symptom:
decompress NSZstops immediately withnsz: error: unrecognized arguments: --keys …. - Cause:
nsz4.6.1 has no--keysargument. It loadskeys.txtbesidesys.argv[0], or falls back to~/.switch/prod.keys, while importing its modules, before parsing arguments (4.6.1 key loader). Newer upstream code supports--keys; stagingkeys.txtalso supports 4.6.1. - Fix:
scripts/build_ipa_from_nsp.pydecompress_nszlinks the file selected by-kaskeys.txtin the conversion's temporary folder and runsnsz -Dthere, withsys.argv[0]set tonszbefore import. Input and output paths are absolute. The temporary folder and link are removed on success or failure; the user's default keys are untouched. - Found on: Super Mario Odyssey, converting its v0 NSZ. Applies to NSZ and XCZ inputs for every game.
Desktop build worker
Prepare game fails at os.setsid()
- Symptom: clicking Prepare game stops before any build tools start, with
PermissionError: [Errno 1] Operation not permittedatbuild_session.pyos.setsid(). - Cause: Foundation
Processalready launches the worker as its own process-group leader on macOS. POSIX rejectssetsid()for a group leader. A normal Python subprocess launch did not expose this difference, so the original regression test missed the GUI path. - Fix: reuse the existing group when
os.getpgrp() == os.getpid(); callsetsid()only for a worker that still shares its parent's group. Cancellation still signals the worker's separate group. Do not suppress unrelated permission failures. Added regression coverage for FoundationProcess, an existing group leader, an existing session leader and a normal subprocess launch, including cancellation. - Found on: a user's clean desktop installation, before game detection; reproduced locally with a Swift Foundation launcher. Applies to every Mac/iPhone game preparation, independent of the game, keys or saves. Released in 1.4.2/build 7.