Commit Graph
3 Commits
Author SHA1 Message Date
seedds 3a6c719f4c App icon from the game's own icon (English)
- nx_extract saves the game icon from the control data as icon.jpg
  next to control.nacp (256x256 JPEG; American English first, then
  British English, then the first other language).
- build_ipa.sh turns icon.jpg from beside the RomFS (or DM_ICON) into a
  1024x1024 single-size app icon in Gen/Assets.xcassets and sets
  ASSETCATALOG_COMPILER_APPICON_NAME; project.yml lists the catalog as
  optional. Without an icon the build is as before (blank icon).
- build_ipa_from_nsp.py passes the extracted icon (packed version
  first, then the base game) and says so when an older extraction has
  none.
- Checked: nx_extract on the Engage NSPs saves the English icon; both
  IPAs built with icons (Assets.car, AppIcon60x60@2x.png,
  AppIcon76x76@2x~ipad.png, CFBundleIcons in Info.plist). README notes
  it.
2026-10-15 09:17:45 +08:00
seedds ef9aa76e9b build_ipa_from_nsp.py: the IPA goes to the NSP folder by default
- With OUT_IPA / -o empty, the IPA is written to the NSP folder
  (<the profile's ipa>, e.g. FEEngage.ipa), next to the NSPs and
  <id>_build/, instead of ~/Desktop.
- The script prints the output IPA and its work folder at the start;
  the extracted game files are in <id>_build/extract/ in the NSP
  folder (deleted after the IPA is built unless --keep-extracted).
- README and the script header say so. Checked with a run on the
  Engage NSP folder (default and -o) up to the free-space check.
2026-10-15 08:42:11 +08:00
seedds 97fb028917 scripts/: build_ipa_from_nsp.py moves here and runs from the CLI too
- Scripts the user runs now live in scripts/ at the repository root;
  build_ipa_from_nsp.py moves there from dm/ios/tools (history kept).
  AGENTS.md records the convention.
- It still runs in Spyder (F5, settings block, prompts for an empty
  NSP folder or prod.keys). From a terminal it now takes options that
  override the settings: <NSP folder>, -k prod.keys, -p version,
  -o out.ipa, --app-name, --keep-extracted, --env-file (-h for help).
  Without keyboard input a missing value is an error instead of a hung
  prompt. Exit codes 0 / 1 / 130 in a terminal; inside IPython (Spyder)
  it does not call sys.exit, so the console stays clean.
- The repository root is found by walking up to dm/tools/nx_extract
  rather than a fixed depth.
- Checked: -h from another directory; error paths (missing folder, no
  terminal input, empty folder, unregistered version) exit 1 with a
  clear message; a CLI run on the Engage NSP folder identifies the game,
  skips DLC, picks base + update, passes the tool check and stops at
  the free-space check; IPython %run under the Spyder interpreter
  (prompts, -h, an error) keeps the console alive.
- README, dm/games READMEs and docs/agents point at the new path.
2026-10-15 08:38:58 +08:00