Title field in some update NSPs reads gibberish

  • Thread starter Thread starter Nynrah
  • Start date Start date
  • Views Views 594
  • Replies Replies 3

Nynrah

Well-Known Member
Member
Joined
Jun 27, 2020
Messages
364
Reaction score
130
Trophies
1
Age
34
XP
1,943
Country
Netherlands
After seeing that new updates have dropped for Breath of the Wild and Super Mario Bros Wonder, I got myself the update NSP files and checked them out with NxFileViewer before archiving them in my library. However, both of these games show unreadable gibberish in the title field as you can see in this screenshot of Super Mario Bros Wonder v1.2.0:

1774612182415.png


It's the same with Breath of the Widl v1.9.0.

My keys are for fw 21.2.0 and I have no issues validating the file's integrity or checking out its contents. What does this mean unreadable text and empty publisher field mean? Just want to be sure if there's something wrong on my end or if this indicates some form of file corruption that the integrity check can't catch. Does anyone know what's going on here?
 
Thanks, I hadn't seen this thread when I searched on this topic. At least it seems that I don't need to worry about the file itself being bad, from what I understand here. So that's a relief 👍
No, it's being worked on by a few people or so it seems. This is my understanding so far:

Read byte in control.nacp at 0x3215 - if 0 no compression is used, if 1 or not 0 compression is used.

If compression used, first 2 bytes of control.nacp contains size of compressed data, next bytes after this contains the compressed data.

We then unpack that compressed data block with zlib raw deflate.

Extracted data is 0x6000 (24,576)bytes

Game name is stored at 0x0
Pubisher is stored at 0x200

/// Legacy NACP format:
/// [0x0000 – 0x2FFF] 16 × NacpLanguageEntry (each 0x300 bytes: 0x200 name + 0x100 author)
/// [0x3000 – 0x3FFF] Metadata fields
///
/// New compressed format (flag byte at 0x3215 != 0):
/// [0x0000 – 0x2FFF] Compressed title block:
/// u16 LE compressed_size
/// u8[] compressed_data[compressed_size] (raw DEFLATE, wbits=-15)
/// [0x3000 – 0x3FFF] Metadata fields (unchanged, uncompressed)
///
/// The compressed data decompresses to up to 32 NacpLanguageEntry blocks (0x300 bytes each).
/// Indices 0–15 map to <see cref="NacpLanguage"/> values 0–15 (legacy languages).
/// Indices 16–30 map to the extended <see cref="NacpLanguage"/> values added in newer firmware.


More Information:
https://github.com/Myster-Tee/NxFileViewer/pull/48/changes/e0460a331816d58a3d5124974a44856cecf35e81
https://github.com/Myster-Tee/NxFil...867820d73912da7c4e20bc98cefff2d2cc96928d8a18c

See here for language changes:
https://github.com/Myster-Tee/NxFil...b3177804793ac360bc5b7fb27ac3ca9d52631d430e7da

Libnx Issues:
https://github.com/switchbrew/libnx/issues/714
Post automatically merged:

Thanks, I hadn't seen this thread when I searched on this topic. At least it seems that I don't need to worry about the file itself being bad, from what I understand here. So that's a relief 👍
Maybe some nsp installers will need to be updated and libnx will need to be updated and then some homebrew on pc (that reads control.nacp) and switch will need recompiled with the new libnx when it's updated.
 
  • Like
Reactions: Nynrah and Nephiel

Site & Scene News

Popular threads in this forum