Make and Repack NCAs/NSPs
Switch branches/tags
Clone or download
Permalink
Failed to load latest commit information.
LICENSES Initial Release. Oct 2, 2018
docs Fix template README typos Oct 3, 2018
hacPack-GUI Fixed PFS0 bug in 32-bit platforms Oct 10, 2018
mbedtls Initial Release. Oct 2, 2018
CHANGELOG.txt Fixed PFS0 bug in 32-bit platforms Oct 10, 2018
ConvertUTF.c Initial Release. Oct 2, 2018
ConvertUTF.h Initial Release. Oct 2, 2018
LICENSE Initial Release. Oct 2, 2018
Makefile Initial Release. Oct 2, 2018
README.md Added SystemProgram and SystemData Meta NCA Oct 6, 2018
aes.c Initial Release. Oct 2, 2018
aes.h Initial Release. Oct 2, 2018
cnmt.c Added SystemProgram and SystemData Meta NCA Oct 6, 2018
cnmt.h Added SystemProgram and SystemData Meta NCA Oct 6, 2018
config.mk.template Initial Release. Oct 2, 2018
extkeys.c Initial Release. Oct 2, 2018
extkeys.h Initial Release. Oct 2, 2018
filepath.c Initial Release. Oct 2, 2018
filepath.h Fixed PFS0 bug in 32-bit platforms Oct 10, 2018
ivfc.c Initial Release. Oct 2, 2018
ivfc.h Initial Release. Oct 2, 2018
main.c Added SystemProgram and SystemData Meta NCA Oct 6, 2018
nacp.c Fixed a bug cause failure of control.nacp validation in titles witho… Oct 3, 2018
nacp.h Initial Release. Oct 2, 2018
nca.c Fixed NCA header Oct 9, 2018
nca.h Fixed NCA header Oct 9, 2018
pfs0.c Fixed PFS0 bug in 32-bit platforms Oct 10, 2018
pfs0.h Initial Release. Oct 2, 2018
pki.c Initial Release. Oct 2, 2018
pki.h Initial Release. Oct 2, 2018
romfs.c Fixed NCA header Oct 9, 2018
romfs.h Initial Release. Oct 2, 2018
settings.h Added SystemProgram and SystemData Meta NCA Oct 6, 2018
sha.c Initial Release. Oct 2, 2018
sha.h Initial Release. Oct 2, 2018
types.h Initial Release. Oct 2, 2018
utils.c Initial Release. Oct 2, 2018
utils.h Initial Release. Oct 2, 2018
version.h Fixed PFS0 bug in 32-bit platforms Oct 10, 2018

README.md

hacPack

License: GPL v2

hacPack is a tool for creating Nintendo Switch NCAs (Nintendo Content Archive) and packing them into NSPs (Nintendo Submission Package)
You can use hacPack to make your custom ncas and nsps, repack your modded games, and etc...

Thanks: SciresM, yellows8, Adubbz, SwitchBrew

Usage

Keys

You should place your keyset file with "keys.dat" filename in the same folder as hacPack
Alternatively, You can use -k or --keyset option to load your keyset file
Required keys are:

Key Name Description
header_key NCA Header Key
key_area_key_application_xx Application key area encryption keys

CLI Options:

*nix: ./hacpack [options...]  
Windows: .\hacpack.exe [options...]  
  
Options:
General options:  
-k, --keyset             Set keyset filepath, default filepath is ./keys.dat  
-h, --help               Display usage  
--tempdir                Set temp directory filepath, default filepath is ./hacpack_temp/  
--keygeneration          Set keygeneration for encrypting key area, default keygeneration is 1  
--plaintext              Skip encrypting sections and set section header block crypto type to plaintext  
--sdkversion             Set SDK version in hex, default SDK version is 000C1100  
--keyareakey             Set key area key 2 in hex with 16 bytes length  
Required options:  
-o, --output             Set output directory  
--type                   Set file type [nca, nsp]  
--ncatype                Set nca type if file type is nca [program, control, manual, data, publicdata, meta]  
--titleid                Set titleid  
Program NCA options:  
--exefsdir               Set program exefs directory path  
--romfsdir               Set program romfs directory path  
--logodir                Set program logo directory path  
--noromfs                Skip creating program romfs section  
--nologo                 Skip creating program logo section  
Control NCA options:  
--romfsdir               Set control romfs directory path  
Manual NCA options:  
--romfsdir               Set manual romfs directory path  
Data NCA options:  
--romfsdir               Set data romfs directory path  
PublicData NCA options:  
--romfsdir               Set publicdata romfs directory path  
Metadata NCA options:  
--titletype              Set cnmt title type [application, addon, systemprogram, systemdata]  
--titleversion           Set title-version in hex with 4 bytes length, default value is 0x0  
--programnca             Set program nca path  
--controlnca             Set control nca path  
--legalnca               Set legal information nca path  
--htmldocnca             Set offline manual nca path  
--datanca                Set data nca path  
--digest                 Set cnmt digest  
NSP options:  
--ncadir                 Set input nca directory path  

GUI:

hacPack GUI is just an interface for CLI. It's just available for Microsoft Windows and it requires .NetFramework 4.5 or higher
Currently, all options are not implemented in GUI and it's recommended to use CLI

Check docs for more info

Licensing

This software is licensed under the terms of the GNU General Public License, version 2.
You can find a copy of the license in the LICENSE file.
Portions of project hacPack are parts of other projects, make sure to check LICENSES folder