Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Switch-NSP-Forwarder: Difference between revisions

From GameBrew
No edit summary
0.0.8
 
(One intermediate revision by one other user not shown)
Line 4: Line 4:
|description=Generate forwarders directly on your Switch.
|description=Generate forwarders directly on your Switch.
|author=TooTallNate
|author=TooTallNate
|lastupdated=2025/06/20
|lastupdated=2026/05/03
|type=Utilities
|type=Utilities
|version=0.0.6
|version=0.0.8
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/switchhomebrews/SwitchNSPForwarder.7z
|download=https://dlhb.gamebrew.org/switchhomebrews/SwitchNSPForwarder.7z
Line 31: Line 31:


==Changelog==
==Changelog==
'''v0.0.8'''
* [https://github.com/TooTallNate/switch-nsp-forwarder/commit/0bcb14428d59f77ab08f1ac0f9191a8a8521a6f3 <code>0bcb144</code>] Thanks [https://github.com/TooTallNate @TooTallNate]! - Rebuild forwarder ROM with NRO exit fix. Pressing '''+''' in a forwarded<br />
NRO now cleanly returns to the HOME menu instead of reloading the NRO<br />
in an infinite loop. Fixes [https://github.com/TooTallNate/switch-nsp-forwarder/issues/29 #29].
'''v0.0.7'''
*What's New
** '''Deterministic title ID generation''' — Title IDs are now derived from a SHA-256 hash of the NRO path and arguments, matching [https://github.com/ITotalJustice/sphaira/blob/c8ae2a787225b0eefb6ca98a9c77503393c2beac/sphaira/source/owo.cpp#L1018-L1022 sphaira's logic]. Reinstalling a forwarder for the same app now replaces the previous one instead of creating a duplicate. ([https://github.com/TooTallNate/switch-nsp-forwarder/issues/11 #11])
** '''Touch-to-scroll support''' — The app selection grid and file picker now support touch-based scrolling with drag detection.
** '''Switch 21.x compatibility''' — Updated nx.js runtime and recompiled the forwarder binary against libnx 4.12.0-1 for Switch firmware 21.x support.
*Bug Fixes
** '''Fix NPDM debug flags for pre-19.0.0 firmware''' — Reverted the NPDM <code>debug_flags</code> kernel capability to <code>force_debug_prod</code> (0x04), restoring compatibility with firmware versions older than 19.0.0 and Atmosphère older than 1.8.0. ([https://github.com/TooTallNate/switch-nsp-forwarder/issues/26 #26])
** '''Fix scrolling bugs''' — Migrated to react-tela v1.0.0's viewport scrolling, fixing issues where the last row was unreachable and the selected row wasn't properly centered. ([https://github.com/TooTallNate/switch-nsp-forwarder/issues/23 #23], [https://github.com/TooTallNate/switch-nsp-forwarder/issues/27 #27])
** '''Escape spaces in NRO/ROM paths''' — Paths containing spaces are now properly escaped in both the edit screen and when passed as argv.
** '''Validate name and author fields''' — The generator now shows a clear error if either field is missing, instead of failing inside hacbrewpack.
** '''Enable high-quality image smoothing''' for the canvas renderer.
'''v0.0.6'''
'''v0.0.6'''
*This release includes awesome usability improvements by @mix3d, including joystick controls (as opposed to only d-pad), scrolling of the homebrew icons list and file list, and last but not least a new icon!
*This release includes awesome usability improvements by @mix3d, including joystick controls (as opposed to only d-pad), scrolling of the homebrew icons list and file list, and last but not least a new icon!

Latest revision as of 04:17, 8 May 2026

Switch-NSP-Forwarder
General
AuthorTooTallNate
TypeUtilities
Version0.0.8
LicenseMixed
Last Updated2026/05/03
Links
Download
Website
Source

Switch-NSP-Forwarder is a homebrew app made with nx.js that aims to be equivalent of the online tool NSP Forwarder Generator, but it runs on your Switch instead.

The NSP is saved directly onto your SD card, so you no longer need to copy the generated forwarder onto your SD card manually.

Note that the app needs full memory mode access so it will need to be launched via title redirection from the homescreen. It can not be launched directly from the album menu.

Screenshots

SwitchNSPForwarder-01.png

SwitchNSPForwarder-02.png

Changelog

v0.0.8

  • 0bcb144 Thanks @TooTallNate! - Rebuild forwarder ROM with NRO exit fix. Pressing + in a forwarded

NRO now cleanly returns to the HOME menu instead of reloading the NRO
in an infinite loop. Fixes #29. v0.0.7

  • What's New
    • Deterministic title ID generation — Title IDs are now derived from a SHA-256 hash of the NRO path and arguments, matching sphaira's logic. Reinstalling a forwarder for the same app now replaces the previous one instead of creating a duplicate. (#11)
    • Touch-to-scroll support — The app selection grid and file picker now support touch-based scrolling with drag detection.
    • Switch 21.x compatibility — Updated nx.js runtime and recompiled the forwarder binary against libnx 4.12.0-1 for Switch firmware 21.x support.
  • Bug Fixes
    • Fix NPDM debug flags for pre-19.0.0 firmware — Reverted the NPDM debug_flags kernel capability to force_debug_prod (0x04), restoring compatibility with firmware versions older than 19.0.0 and Atmosphère older than 1.8.0. (#26)
    • Fix scrolling bugs — Migrated to react-tela v1.0.0's viewport scrolling, fixing issues where the last row was unreachable and the selected row wasn't properly centered. (#23, #27)
    • Escape spaces in NRO/ROM paths — Paths containing spaces are now properly escaped in both the edit screen and when passed as argv.
    • Validate name and author fields — The generator now shows a clear error if either field is missing, instead of failing inside hacbrewpack.
    • Enable high-quality image smoothing for the canvas renderer.

v0.0.6

  • This release includes awesome usability improvements by @mix3d, including joystick controls (as opposed to only d-pad), scrolling of the homebrew icons list and file list, and last but not least a new icon!

v0.0.5

  • Forwarders can now be installed directly from within the app - no more need to install with a separate title installer.
  • Update nx.js to v0.0.62 (fixes an issue where Unicode characters were incorrectly printed).
  • You can now press - on the success page to restart the creation flow, allowing for multiple forwarders to be created without leaving the app.

v0.0.4

  • Add initial support for generating RetroArch forwarders.
  • Update nx.js to v0.0.59 (fixes an issue loading icon data for NROs that were larger than expected).
  • Scale down the quality of the generated icon JPEG file (as needed) so that it fits within the allowed 0x20000 byte file size.
  • Overclock the CPU while the generator app is running to speed up generation time.
  • Print a timestamp of how long it took to generate the forwarder NSP on Success page.
  • Use the "spl" service to dynamically retrieve the encryption header key, when prod.keys is not present.
  • Shout out to @impeeza for helping report and debug a couple different issues related to troublesome .nro files.
  • Shout out to @ITotalJustice for recommending to generate plaintext NSP files and retrieve the header key dynamically, so now the prod.keys file is no longer needed.
  • Note: The "RetroArch" forwarder mode is very rudimentary so far. You will need to fill in the fields manually. In an upcoming release, this app will attempt to retrieve box art and metadata for the selected ROM through an API service.

v0.0.3

  • Use jimp to resize icon to 256x256 and remove EXIF data (this should prevent '?' from being shown for some apps, i.e. chiaki).
  • Fix potential error at boot-up if any nro files' metadata fails to parse (i.e. "mame-nx" which was reported here).
  • Fix crash when selecting the "switch" directory with the file picker.
  • Update nx.js to v0.0.58.
  • Improvements to the text input editor interaction with the virtual keyboard.

v0.0.2

  • Traverse subdirectories of the /switch directory to find ".nro" files.
  • Include the root hbmenu.nro in the selection screen as well.
  • Show five apps per row on the selection screen (previously was four).
  • Skip .nro entries that begin with a . character (MacOS tends to create these files, which are not actually NROs).
  • Use more optimized method for parsing NRO metadata.
  • Fix issue writing .nsp file when title contains illegal characters for a filename (i.e. :).
  • Add a file picker interface to the selection screen to explicitly select a ".nro" file.

v0.0.1

  • First Release.

External links

Advertising: