[BUG] NSTool incorrectly marks SaveDataOwnerId as FAIL
jakcron opened this issue · comments
About
When verifying Program NCA or NPDM files, SaveDataOwnerId (if present) is incorrectly marked as FAIL.
Steps to reproduce
- Locate a Program NCA or NPDM file that has SaveDataOwnerId values populated
- 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)
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.