Plutonium is now downloaded at build time via ExternalProject_Add (GIT_REPOSITORY + GIT_TAG) instead of being a git submodule. Removes lib/, .gitmodules, and the linguist-vendored entry for it. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
NXST
Transfer save data between two Nintendo Switch consoles over local Wi-Fi.
Pick a game, pick a user. One Switch sends; the other receives. The sender backs up its own save first, so you can never lose data in transit.
Install
- Download
NXST.nrofrom Releases. - Copy it to
/switch/NXST/NXST.nroon your SD card. - Launch via hbmenu (hold R while starting any game, or Album).
Both Switches must be on the same Wi-Fi network. No router configuration needed — discovery uses UDP multicast.
Usage
Sender (the Switch whose save you want to copy):
- Open NXST → select a title → press A → Transfer.
- Wait for "Waiting for receiver…" to change to "Transferring…".
Receiver (the Switch that will receive the save):
- Open NXST → select the same title → press A → Receive.
- Wait. The save is restored automatically when the transfer finishes.
Press B on either side to cancel mid-transfer.
Logs are written to /switch/NXST/log.log.
Build
Prerequisites: devkitPro with switch-dev and switch-portlibs packages, plus cmake ≥ 3.20.
# Clone with submodules (Plutonium UI)
git clone --recurse-submodules https://github.com/your-username/NXST.git
cd NXST
# Configure (once)
cmake --preset switch
# Build
cmake --build build
# Send to Switch via nxlink (Switch must be on same network, nxlink running)
cmake --build build --target send
Output: build/NXST.nro
Architecture
See docs/ARCHITECTURE.md for the layer diagram, threading model, and key types.
See docs/PROTOCOL.md for the wire protocol (UDP multicast discovery + TCP file stream).
ui/ — TitlesLayout, UsersLayout, TransferOverlay, HeaderBar
service/ — TransferService (all network threads and state)
infra/net/ — Socket RAII, sendAll/recvAll
infra/fs/ — io::backup, io::restore, directory iterator, RAII handles
infra/sys/ — nxst::log (printf-checked, timestamped)
domain/ — Title, Account, Result<T>, TransferState, protocol constants
Credits
- Plutonium — Switch UI framework by XorTroll
- Checkpoint — save management library by Bernardo Giordano / FlagBrew; several files in
src/infra/fs/andsrc/domain/are derived from Checkpoint
License
GPLv3 — see LICENSE.
NXST includes code derived from Checkpoint (GPLv3). All original NXST code is released under the same license to satisfy the GPL inheritance requirement.