More actions
(Created page with "{{Infobox Switch Homebrews |title=NX Game Info |image=nxgameinfoswitch.png |description=Tool to read information from Nintendo Switch game files |author=garoxas |lastupdated=2019/11/10 |type=PC Utilities |version=0.7.1 |license=GPL-3.0 |download=https://dlhb.gamebrew.org/switchhomebrews/nxgameinfoswitch.7z |website=https://gbatemp.net/threads/nx-game-info-for-macos-and-windows.528419/ |source=https://github.com/garoxas/NX_Game_Info |donation= }} {{#seo: |title=Switch Hom...") |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Infobox Switch Homebrews | {{Infobox Switch Homebrews | ||
|title=NX Game Info | |title=NX Game Info | ||
|image= | |image=Nxgameinfo.png | ||
|description=Tool to read information from Nintendo Switch game files | |description=Tool to read information from Nintendo Switch game files | ||
|author=garoxas | |author=garoxas | ||
|lastupdated=2019/11/10 | |lastupdated=2019/11/10 | ||
|type= | |type=Game Management | ||
|version=0.7.1 | |version=0.7.1 | ||
|license=GPL-3.0 | |license=GPL-3.0 | ||
|download=https://dlhb.gamebrew.org/switchhomebrews/ | |download=https://dlhb.gamebrew.org/switchhomebrews/nxgameinfo.7z | ||
|website=https://gbatemp.net/threads/nx-game-info-for-macos-and-windows.528419/ | |website=https://gbatemp.net/threads/nx-game-info-for-macos-and-windows.528419/ | ||
|source=https://github.com/garoxas/NX_Game_Info | |source=https://github.com/garoxas/NX_Game_Info | ||
|donation= | |donation= | ||
}} | }} | ||
A multiplatform tool to read information from Nintendo Switch game files. | |||
This started as an experiment to add LibHac to Switch Backup Manager, but due to the complexity of integrating it into an existing app, it progressed as a separate project. | |||
==Features== | |||
*Windows, macOS and Linux compatible (Command Line Interface). | |||
*NSP, XCI, NRO and installed titles on Switch SD card. | |||
*Game files structure (Scene Release, CDN Rip, Authoring Tool, Converted from other formats). | |||
*NCA signature to verify official Nintendo titles. Unmodified titles should pass this verification, although titles converted from other formats will not. | |||
*Filesystem services permissions. Game titles should not have excessive permissions, and only trust titles with <code>Unsafe</code> and <code>Dangerous</code> from reliable source. | |||
==User guide== | |||
===Information=== | |||
*Title ID. | |||
*Base Title ID. | |||
*Title Name. | |||
*Display Version: | |||
** Only available for <code>Base</code> and <code>Update</code>. | |||
*Version. | |||
*Latest Version: | |||
** Latest title version from [https://switchbrew.org/wiki/Network#tagaya tagaya CDN server]. | |||
*System Update: | |||
**XCI - System version on <code>Update Partition</code>. | |||
**NSP - <code>RequiredSystemVersion</code> from Metadata XML. | |||
*System Version: | |||
**Minimum system version from [https://switchbrew.org/wiki/CNMT#Application_Extended_Header Metadata NCA]. Only available for <code>Base</code> and <code>Update</code>. | |||
*Application Version: | |||
**Minimum application version from [https://switchbrew.org/wiki/CNMT#AddOnContent_Extended_Header Metadata NCA]. Only available for <code>DLC</code>. | |||
*MasterKey. | |||
*Title Key. | |||
*Publisher: | |||
** Only available for <code>Base</code> and <code>Update</code>. | |||
*Languages: | |||
**List of language codes as specified by [https://tools.ietf.org/html/rfc5646 RFC 5646]. Only available for <code>Base</code> and <code>Update</code>. | |||
*File Name. | |||
*File Size. | |||
*Type: | |||
**Base. | |||
**Update. | |||
**DLC. | |||
*Distribution: | |||
**Digital - eShop titles (NSP). | |||
**Cartridge - Gamecard titles (XCI). | |||
**Homebrew - Homebrew titles (NRO). | |||
**Filesystem - Installed titles on Switch SD card (NAX0). | |||
*Structure: | |||
**Scene (for XCI files) - XCI files with <code>Update Partition</code>, <code>Normal Partition</code> and <code>Secure Partition</code>. | |||
**Converted (for XCI files) - XCI files with only <code>Secure Partition</code>. Commonly found in NSP converted to XCI files. | |||
**Scene (for NSP files) - NSP files with legalinfo.xml, nacp.xml, programinfo.xml, cardspec.xml. Commonly found in BBB Scene Release. | |||
**Homebrew (for NSP files) - NSP files with <code>authoringtoolinfo.xml</code>. | |||
**CDN (for NSP files) - NSP files with <code>cert</code> and <code>tik</code>. Commonly found in NSP files ripped from the eShop CDN server. | |||
**Converted (for NSP files) - NSP files without cert and tik. Commonly found in XCI converted to NSP files. | |||
**Filesystem (for SD Card files) - NAX0 files installed titles on Switch SD card. | |||
**Not complete - XCI/NSP files with only <code>NCA</code> files. | |||
*Signature: | |||
**Passed - NCA signature valid. Only available for official titles. | |||
**Not Passed - NCA signature invalid. <code>Should only be for homebrew titles and not official titles</code>. | |||
*Permission: | |||
**Safe - Titles without Filesystem services access or [https://switchbrew.org/wiki/Filesystem_services#Permissions permissions bitmask 0x8000000000000000] unset. | |||
**Unsafe - Titles with Filesystem services access and [https://switchbrew.org/wiki/Filesystem_services#Permissions permissions bitmask 0x8000000000000000] set. <code>Has EraseMmc permission, should only be for homebrew titles and not game titles</code>. | |||
**Dangerous - Titles with Filesystem services access and [https://switchbrew.org/wiki/Filesystem_services#Permissions permissions bitmask 0xffffffffffffffff] set. <code>Has all permissions, should only be for homebrew titles and not game titles</code>. | |||
**Only available for <code>Base</code> and <code>Update</code>. | |||
===How to use=== | |||
NX Game Info uses <code>prod.keys</code>, <code>title.keys</code> and <code>console.keys</code> in the format as defined [https://github.com/garoxas/LibHac/blob/NX_Game_Info/KEYS.md here] and <code>hac_versionlist.json</code> from [https://switchbrew.org/wiki/Network#tagaya tagaya CDN server]. | |||
* <code>prod.keys</code>: | |||
** Contains common keys used by all Switch devices, also found as keys.txt in other apps. Can be obtained from your Switch using [[Lockpick Switch|Lockpick]]. | |||
** Mandatory keys includes <code>header_key</code>, <code>aes_kek_generation_source</code>,<code> aes_key_generation_source</code>, <code>key_area_key_application_source</code> and <code>master_key_00</code>. Failing to provide these keys will make the application quit <code>master_key_##</code>, <code>key_area_key_application_##</code> and <code>titlekek_##</code> will also be necessary to decrypt titles with higher MasterKey requirement. | |||
* <code>title.keys</code> (optional): | |||
** Title keys file, support any popular format such as from newkeydb or nutdb. | |||
** This is required to read FS permission for games using Titlekey Crypto. Also used to map game title name and latest version if available. [https://github.com/garoxas/LibHac/blob/NX_Game_Info/KEYS.md#title-keys More details here]. | |||
* <code>console.keys</code> (optional): | |||
** <code>sd_seed</code> key required for <code>Open SD Card</code> feature. | |||
** Can also be obtained using [[Lockpick Switch|Lockpick]]. | |||
* <code>hac_versionlist.json</code> (optional): | |||
** Version list file, required for Latest Version feature. | |||
** Can be downloaded from https://pastebin.com/raw/9N26Bx10 (updated daily). No DLC version. | |||
The application will look for these files at the following locations (other file locations will follow wherever prod.keys file was found). | |||
*Directory of the executable file (.exe) for Windows or (.app) for macOS. | |||
*<code>$HOME/.switch</code> e.g. C:\Users\yourname\.switch for Windows, /Users/yourname/.switch for macOS or /home/yourname/.switch for Linux. | |||
<code>Export</code> menu supports exporting current list to either <code>CSV</code> or<code> XLSX</code>. For <code>CSV</code> file, default delimiter to use is comma <code>( , )</code> and user defined character can be set in <code>user.settings</code> by specifying the delimiter character in<code> CsvSeparator</code> field. | |||
Compressed NCA is not supported, but there is an option to make the application accept <code>XCZ</code> and <code>NSZ</code> file extension by setting <code>NszExtension</code> field in <code>user.settings</code>. Please note that issues related to these file extensions will not be supported | |||
===Command Line Interface=== | |||
====Usage==== | |||
'''Windows:''' | |||
*Install .[https://dotnet.microsoft.com/download?initial-os=windows NET Core Runtime]. | |||
*Usage: <code>nxgameinfo_cli.exe [-h|--help] [-d|--debug] [-c|--sdcard] [-s(titleid|titlename|filename)|--sort=(titleid|titlename|filename)] [-z|--nsz] paths...</code> | |||
'''macOS, Linux:''' | |||
< | *macOS: Install [https://www.mono-project.com/download/stable/#download-mac Mono] (Visual Studio channel) | ||
*Linux (Ubuntu): Install [https://www.mono-project.com/download/stable/#download-lin-ubuntu Mono] | |||
*Usage: <code>mono nxgameinfo_cli.exe [-h|--help] [-d|--debug] [-c|--sdcard] [-s(titleid|titlename|filename)|--sort=(titleid|titlename|filename)] [-z|--nsz] paths...</code> | |||
====Parameters==== | |||
*-h|--help | |||
**Show help message and immediately exit | |||
*-d|--debug | |||
**Print debug output to <code>debug.log</code> | |||
*-c|--sdcard | |||
**Treat arguments passed in <code>paths</code> parameters as installed titles on Switch SD card | |||
*-s|--sort | |||
**Sort output by one of the following options: | |||
***<code>titleid</code> | |||
***<code>titlename</code> | |||
***<code>filename</code> (default) | |||
*-z|--nsz | |||
**Enable <code>XCZ</code> and <code>NSZ</code> extension | |||
*paths | |||
**File or directory path, can pass multiple arguments | |||
==Screenshots== | ==Screenshots== | ||
https://dlhb.gamebrew.org/switchhomebrews/ | ===macOS=== | ||
https://dlhb.gamebrew.org/switchhomebrews/ | {| style="width: 90%; margin-left:0em;" | ||
https://dlhb.gamebrew.org/switchhomebrews/ | |'''- Open File/Directory''' | ||
https://dlhb.gamebrew.org/switchhomebrews/ | https://dlhb.gamebrew.org/switchhomebrews/nxgameinfo2.png | ||
|- | |||
https://dlhb.gamebrew.org/switchhomebrews/ | |'''macOS GUI - Open SD Card''' | ||
https://dlhb.gamebrew.org/switchhomebrews/ | https://dlhb.gamebrew.org/switchhomebrews/nxgameinfo3.png | ||
https://dlhb.gamebrew.org/switchhomebrews/ | |} | ||
===Windows=== | |||
{| style="width: 90%; margin-left:0em;" | |||
|'''Open File/Directory''' | |||
https://dlhb.gamebrew.org/switchhomebrews/nxgameinfo4.png | |||
|- | |||
|'''Open SD Card''' | |||
https://dlhb.gamebrew.org/switchhomebrews/nxgameinfo5.png | |||
|} | |||
===Command Line Interface=== | |||
{| style="width: 90%; margin-left:0em;" | |||
|'''Windows''' | |||
https://dlhb.gamebrew.org/switchhomebrews/nxgameinfo6.png | |||
|- | |||
|'''macOS''' | |||
https://dlhb.gamebrew.org/switchhomebrews/nxgameinfo7.png | |||
|- | |||
|'''Linux''' | |||
https://dlhb.gamebrew.org/switchhomebrews/nxgameinfo8.png | |||
|} | |||
==Changelog== | ==Changelog== | ||
''' | '''v0.7.1 2019/11/10''' | ||
* | * Export to CSV and XLSX. | ||
* Add Column for Languages. | |||
* Add Update Title Keys for Title Names. | |||
'''v0.7 2019/10/06''' | |||
*Command Line Interface. | |||
*Add Columns for Title Key and Publisher. | |||
*Add Right Click Context Menu on Table View. | |||
*Update Cart System Update for 9.0.1. | |||
*Bug fixes. | |||
'''v0.6 2019/09/16''' | |||
*Table Contents History. | |||
*Add Columns for Base Title ID, System Update (for XCI), System Version, Application Version (for DLC). | |||
*Bug fixes. | |||
*If you downloaded prior to 16th September 2019 at 7.30 AM Pacific time, please re-download to fix the issue when application start. | |||
'''v0.5+hotfix.1''' | |||
*[macOS] Fix crash on v0.5 ([https://github.com/garoxas/NX_Game_Info/issues/7 #7]). | |||
*[Windows] Save column width and filter. | |||
'''v0.5 2019/05/12''' | |||
*Highlight outdated titles. | |||
*Update Latest Version List. | |||
*Move user.config from AppData to .switch or Application Directory. | |||
*Show last opened table contents on start. | |||
*Bug fixes. | |||
'''v0.4.1-alpha 2019/03/09''' | |||
*Add export titles to text. | |||
*Read titlekey from .tik. | |||
*Move files enumeration to background worker. | |||
'''v0.4-alpha 2019/02/09''' | |||
*Improve installed titles on SD card for titles without Meta NCA. | |||
*Save window location and size on exit. | |||
*Add NRO support. | |||
'''v0.3.2.1-alpha 2019/01/13''' | |||
*Fix crash in macOS when opening file dialog. | |||
'''v0.3.2-alpha 2019/01/13''' | |||
*Debug Log. | |||
'''v0.3.1-alpha 2019/01/09''' | |||
*Background worker cancellation. | |||
*Add progress dialog for macOS. | |||
'''v0.3-alpha 2019/01/08''' | |||
*Move missing Keys error messages to separate column and other fixes. | |||
*Add support for other Title Keys file formats, and get name and version if available. | |||
*Add icon and installed titles on Switch SD card to macOS build. | |||
'''v0.2.1-alpha 2018/12/31''' | |||
*Add icon and progress dialog. | |||
'''v0.2-alpha 2018/12/29''' | |||
*List installed titles on Switch SD card. | |||
'''v0.1-alpha 2018/12/16''' | |||
*Process NSP and XCI. | |||
*Windows and macOS build. | |||
==Credits== | |||
*Thealexbarney for the [https://github.com/Thealexbarney/LibHac LibHac] library. | |||
*switchbrew for the [https://switchbrew.org/ documentation] on the Nintendo Switch. | |||
*gibaBR for the [https://github.com/gibaBR/Switch-Backup-Manager Switch-Backup-Manager] project. | |||
== External links == | == External links == | ||
* | * GitHub - https://github.com/garoxas/NX_Game_Info | ||
* GBAtemp - https://gbatemp.net/threads/nx-game-info-for-macos-and-windows.528419/ | |||
Latest revision as of 03:16, 11 July 2023
NX Game Info | |
---|---|
General | |
Author | garoxas |
Type | Game Management |
Version | 0.7.1 |
License | GPL-3.0 |
Last Updated | 2019/11/10 |
Links | |
Download | |
Website | |
Source | |
A multiplatform tool to read information from Nintendo Switch game files.
This started as an experiment to add LibHac to Switch Backup Manager, but due to the complexity of integrating it into an existing app, it progressed as a separate project.
Features
- Windows, macOS and Linux compatible (Command Line Interface).
- NSP, XCI, NRO and installed titles on Switch SD card.
- Game files structure (Scene Release, CDN Rip, Authoring Tool, Converted from other formats).
- NCA signature to verify official Nintendo titles. Unmodified titles should pass this verification, although titles converted from other formats will not.
- Filesystem services permissions. Game titles should not have excessive permissions, and only trust titles with
Unsafe
andDangerous
from reliable source.
User guide
Information
- Title ID.
- Base Title ID.
- Title Name.
- Display Version:
- Only available for
Base
andUpdate
.
- Only available for
- Version.
- Latest Version:
- Latest title version from tagaya CDN server.
- System Update:
- XCI - System version on
Update Partition
. - NSP -
RequiredSystemVersion
from Metadata XML.
- XCI - System version on
- System Version:
- Minimum system version from Metadata NCA. Only available for
Base
andUpdate
.
- Minimum system version from Metadata NCA. Only available for
- Application Version:
- Minimum application version from Metadata NCA. Only available for
DLC
.
- Minimum application version from Metadata NCA. Only available for
- MasterKey.
- Title Key.
- Publisher:
- Only available for
Base
andUpdate
.
- Only available for
- Languages:
- List of language codes as specified by RFC 5646. Only available for
Base
andUpdate
.
- List of language codes as specified by RFC 5646. Only available for
- File Name.
- File Size.
- Type:
- Base.
- Update.
- DLC.
- Distribution:
- Digital - eShop titles (NSP).
- Cartridge - Gamecard titles (XCI).
- Homebrew - Homebrew titles (NRO).
- Filesystem - Installed titles on Switch SD card (NAX0).
- Structure:
- Scene (for XCI files) - XCI files with
Update Partition
,Normal Partition
andSecure Partition
. - Converted (for XCI files) - XCI files with only
Secure Partition
. Commonly found in NSP converted to XCI files. - Scene (for NSP files) - NSP files with legalinfo.xml, nacp.xml, programinfo.xml, cardspec.xml. Commonly found in BBB Scene Release.
- Homebrew (for NSP files) - NSP files with
authoringtoolinfo.xml
. - CDN (for NSP files) - NSP files with
cert
andtik
. Commonly found in NSP files ripped from the eShop CDN server. - Converted (for NSP files) - NSP files without cert and tik. Commonly found in XCI converted to NSP files.
- Filesystem (for SD Card files) - NAX0 files installed titles on Switch SD card.
- Not complete - XCI/NSP files with only
NCA
files.
- Scene (for XCI files) - XCI files with
- Signature:
- Passed - NCA signature valid. Only available for official titles.
- Not Passed - NCA signature invalid.
Should only be for homebrew titles and not official titles
.
- Permission:
- Safe - Titles without Filesystem services access or permissions bitmask 0x8000000000000000 unset.
- Unsafe - Titles with Filesystem services access and permissions bitmask 0x8000000000000000 set.
Has EraseMmc permission, should only be for homebrew titles and not game titles
. - Dangerous - Titles with Filesystem services access and permissions bitmask 0xffffffffffffffff set.
Has all permissions, should only be for homebrew titles and not game titles
. - Only available for
Base
andUpdate
.
How to use
NX Game Info uses prod.keys
, title.keys
and console.keys
in the format as defined here and hac_versionlist.json
from tagaya CDN server.
prod.keys
:- Contains common keys used by all Switch devices, also found as keys.txt in other apps. Can be obtained from your Switch using Lockpick.
- Mandatory keys includes
header_key
,aes_kek_generation_source
,aes_key_generation_source
,key_area_key_application_source
andmaster_key_00
. Failing to provide these keys will make the application quitmaster_key_##
,key_area_key_application_##
andtitlekek_##
will also be necessary to decrypt titles with higher MasterKey requirement.
title.keys
(optional):- Title keys file, support any popular format such as from newkeydb or nutdb.
- This is required to read FS permission for games using Titlekey Crypto. Also used to map game title name and latest version if available. More details here.
console.keys
(optional):sd_seed
key required forOpen SD Card
feature.- Can also be obtained using Lockpick.
hac_versionlist.json
(optional):- Version list file, required for Latest Version feature.
- Can be downloaded from https://pastebin.com/raw/9N26Bx10 (updated daily). No DLC version.
The application will look for these files at the following locations (other file locations will follow wherever prod.keys file was found).
- Directory of the executable file (.exe) for Windows or (.app) for macOS.
$HOME/.switch
e.g. C:\Users\yourname\.switch for Windows, /Users/yourname/.switch for macOS or /home/yourname/.switch for Linux.
Export
menu supports exporting current list to either CSV
or XLSX
. For CSV
file, default delimiter to use is comma ( , )
and user defined character can be set in user.settings
by specifying the delimiter character in CsvSeparator
field.
Compressed NCA is not supported, but there is an option to make the application accept XCZ
and NSZ
file extension by setting NszExtension
field in user.settings
. Please note that issues related to these file extensions will not be supported
Command Line Interface
Usage
Windows:
- Install .NET Core Runtime.
- Usage:
nxgameinfo_cli.exe [-h|--help] [-d|--debug] [-c|--sdcard] [-s(titleid|titlename|filename)|--sort=(titleid|titlename|filename)] [-z|--nsz] paths...
macOS, Linux:
- macOS: Install Mono (Visual Studio channel)
- Linux (Ubuntu): Install Mono
- Usage:
mono nxgameinfo_cli.exe [-h|--help] [-d|--debug] [-c|--sdcard] [-s(titleid|titlename|filename)|--sort=(titleid|titlename|filename)] [-z|--nsz] paths...
Parameters
- -h|--help
- Show help message and immediately exit
- -d|--debug
- Print debug output to
debug.log
- Print debug output to
- -c|--sdcard
- Treat arguments passed in
paths
parameters as installed titles on Switch SD card
- Treat arguments passed in
- -s|--sort
- Sort output by one of the following options:
titleid
titlename
filename
(default)
- Sort output by one of the following options:
- -z|--nsz
- Enable
XCZ
andNSZ
extension
- Enable
- paths
- File or directory path, can pass multiple arguments
Screenshots
macOS
- Open File/Directory
|
macOS GUI - Open SD Card
|
Windows
Open File/Directory
|
Open SD Card
|
Command Line Interface
Windows
|
macOS
|
Linux
|
Changelog
v0.7.1 2019/11/10
- Export to CSV and XLSX.
- Add Column for Languages.
- Add Update Title Keys for Title Names.
v0.7 2019/10/06
- Command Line Interface.
- Add Columns for Title Key and Publisher.
- Add Right Click Context Menu on Table View.
- Update Cart System Update for 9.0.1.
- Bug fixes.
v0.6 2019/09/16
- Table Contents History.
- Add Columns for Base Title ID, System Update (for XCI), System Version, Application Version (for DLC).
- Bug fixes.
- If you downloaded prior to 16th September 2019 at 7.30 AM Pacific time, please re-download to fix the issue when application start.
v0.5+hotfix.1
- [macOS] Fix crash on v0.5 (#7).
- [Windows] Save column width and filter.
v0.5 2019/05/12
- Highlight outdated titles.
- Update Latest Version List.
- Move user.config from AppData to .switch or Application Directory.
- Show last opened table contents on start.
- Bug fixes.
v0.4.1-alpha 2019/03/09
- Add export titles to text.
- Read titlekey from .tik.
- Move files enumeration to background worker.
v0.4-alpha 2019/02/09
- Improve installed titles on SD card for titles without Meta NCA.
- Save window location and size on exit.
- Add NRO support.
v0.3.2.1-alpha 2019/01/13
- Fix crash in macOS when opening file dialog.
v0.3.2-alpha 2019/01/13
- Debug Log.
v0.3.1-alpha 2019/01/09
- Background worker cancellation.
- Add progress dialog for macOS.
v0.3-alpha 2019/01/08
- Move missing Keys error messages to separate column and other fixes.
- Add support for other Title Keys file formats, and get name and version if available.
- Add icon and installed titles on Switch SD card to macOS build.
v0.2.1-alpha 2018/12/31
- Add icon and progress dialog.
v0.2-alpha 2018/12/29
- List installed titles on Switch SD card.
v0.1-alpha 2018/12/16
- Process NSP and XCI.
- Windows and macOS build.
Credits
- Thealexbarney for the LibHac library.
- switchbrew for the documentation on the Nintendo Switch.
- gibaBR for the Switch-Backup-Manager project.