jakcron / nstool

General purpose read/extract tool for Nintendo Switch file formats.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[BUG] NSTool incorrectly marks SaveDataOwnerId as FAIL

jakcron opened this issue · comments

commented

About

When verifying Program NCA or NPDM files, SaveDataOwnerId (if present) is incorrectly marked as FAIL.

Steps to reproduce

  1. Locate a Program NCA or NPDM file that has SaveDataOwnerId values populated
  2. Run NSTool in verify mode for that file nstool -y <file path>

Actual output

Pokemon Legends Arceus Program NCA:

[WARNING] ACI/FAC SaveDataOwnerId: FAIL (0x010003f003a34000 (1) not permitted)
[WARNING] ACI/FAC SaveDataOwnerId: FAIL (0x0100187003a36000 (1) not permitted)
[WARNING] ACI/FAC SaveDataOwnerId: FAIL (0x0100abf008968000 (1) not permitted)
[WARNING] ACI/FAC SaveDataOwnerId: FAIL (0x01008db008c2c000 (1) not permitted)
[WARNING] ACI/FAC SaveDataOwnerId: FAIL (0x0100000011d90000 (1) not permitted)
[WARNING] ACI/FAC SaveDataOwnerId: FAIL (0x010018e011d92000 (1) not permitted)
[NCA Header]
  Format Type:     NCA3
  Dist. Type:      Game Card
  Content Type:    Program
  Key Generation:  13
  Sig. Generation: 0
  Kaek Index:      Application (0)
  Size:            0x181024000
  ProgID:          0x01001f5010dfa000
  Content Index:   0
  SdkAddon Ver.:   11.4.6 (v184813056)

Expected output

Pokemon Legends Arceus Program NCA:

[NCA Header]
  Format Type:     NCA3
  Dist. Type:      Game Card
  Content Type:    Program
  Key Generation:  13
  Sig. Generation: 0
  Kaek Index:      Application (0)
  Size:            0x181024000
  ProgID:          0x01001f5010dfa000
  Content Index:   0
  SdkAddon Ver.:   11.4.6 (v184813056)
commented

This appears to be because NSTool compares the SaveDataOwnerId values between ACI0 and ACID. Nintendo does not appear to populate ACID with SaveDataOwnerId values, so this check should be removed.

commented

This issue has been fixed in development-tip (c7fe8bc), and should be present in any release after 1.8.0