// readme

NUP - NX Package Format

A container for unencrypted Nintendo Switch / Switch 2 game dumps. Spec sheet: SPEC.md

base/            updates/458752/      dlc/040074a01bf13001/0/
โ”œโ”€ exefs/        โ”œโ”€ exefs/            โ””โ”€ romfs/          โ”€โ”€โ–บ  game.nup
โ””โ”€ romfs/        โ””โ”€ romfs/

NUP is a clean-room container format for unencrypted NX (Nintendo Switch 1/2) game dumps.

It stores ExeFS program files and full RomFS trees, this means it stores updates, base content and addons in one compressed file.

It can be used for either Switch 1 or Switch 2 games, of course that means you would have to decrypt the game and package it into an nup. (which i am not aware of for Switch 1 Games).

Tools

tools/nup/ is the Python reference implementation:

pip install ./tools/nup          # or: PYTHONPATH=tools/nup python3 -m nup.cli
nup --help                       # overview of every subcommand

Packing a dump

pack discovers packages by directory layout:

directorybecomes
base/ containing exefs/ and/or romfs/the base package
updates/<decimal version>/ with exefs/ and/or romfs/โ€ฆ