NSPi is a work in progress Switch package downloader homebrew. Inspired by the PSVITA PKGi hombrew made by @mmozeiko and PSP/PS3 ports by @bucanero.
The nspi
homebrew app allows to download packages directly on your Switch
At this point in development, NSPi is only capable of obtaining a massive listing of titles from a remote archive generated via @blawar's titledb tool and providing a basic interface for browsing the listing.
- Download the
NSPi.nro
file. - Insert your SD card into your computer.
- Copy the
NSPi.nro
file to theswitch/
folder on the root of your SD card. - Safely eject the SD card from your computer.
- Insert the SD card back into your Nintendo Switch.
ALWAYS RUN IN APPLICATION MODE
<
Fast up>
Fast down^
Upv
Down
-
Load remote file with available titles. NOTE THAT THIS WILL TAKE SEVERAL SECONDS TO LOAD.+
Exit from homebrew.X
De/Select entries.B
Return to last menu.A
Browse basic title info.Y
Show hombrew logs.
To build this project from source, you'll need to set up the appropriate development environment.
- devkitPro devkitA64 toolchain
- switch-curl
- switch-libz
- Follow the devkitPro installation guide to set up the
devkitA64
toolchain on your system. - Ensure that the necessary tools (
nacptool
,elf2nro
, etc.) are available in your PATH.
-
Pull one of the devkitPro Docker images that comes with all the precompiled tools and toolchains:
docker pull devkitpro/devkita64
-
Use the Docker image to build the project
docker run --rm -it -v "$(pwd):/app" --workdir=/app devkitpro/devkita64:latest bash cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain.cmake -DCMAKE_BUILD_TYPE=Release cmake --build build -j$(nproc)
-
Send built package to switch with nxlink (optional)
nxlink -a xxx.xxx.xxx.xxx NSPi.nro
-
[optional] NOTE: If using docker for building and debugging, you should run container with
--network=host
, or at least make NXLINK ports accessible.// nxlink.h #define NXLINK_SERVER_PORT 28280 ///< nxlink TCP server port #define NXLINK_CLIENT_PORT 28771 ///< nxlink TCP client port
Start docker container
docker run --rm -it -v "$(pwd):/app" --network=host --workdir=/app devkitpro/devkita64:latest bash
-
Build with
-DCMAKE_BUILD_TYPE=Debug
flag -
Start nxlink server:
nxlink -s -a xxx.xxx.xxx.xxx NSPi.nro
-
Then you should start seeing logger output on nxlink server
# nxlink -s -a 192.168.0.142 NSPi.nro Sending NSPi.nro, 5834949 bytes 2082853 sent (35.70%), 174 blocks starting server server active ... [DEBUG] Successfully established connection with nxlink server [DEBUG] Started App::mainLoop()
In this project, instead of linking the precompiled libnx library provided by devkitPro, I preferred to add libnx compilation to the build process. This means that libnx will be built from source as part of this project's build process, ensuring that you have the latest version and any custom modifications needed for this project.
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
cd build
make -j$(nproc)
./NSPi
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.