Homebrew "switch-nsp-forwarder" - Generate forwarders directly on your Switch

  • Thread starter Thread starter tootallnate
  • Start date Start date
  • Views Views 30,811
  • Replies Replies 76
  • Likes Likes 34

tootallnate

Developer
Developer
Joined
Mar 31, 2023
Messages
83
Reaction score
277
Trophies
0
Age
37
Website
n8.io
XP
879
Country
United States
I want to share a new homebrew app I've been working on:

switch-nsp-forwarder
icon.jpg

Check the Releases page to download the latest version of switch-nsp-forwarder.nro

You may be already familiar with my online NSP Forwarder Generator tool - this homebrew app aims to be equivalent of that tool, but it runs directly on your Switch. This is cool because it is more convenient compared to other forwarder generator tools, since the NSP is saved directly onto your SD card (you no longer need to copy the generated forwarder onto your SD card manually). Now you never need to leave your Switch to create forwarders! A few screenshots are attached below.

A couple pre-requisite notes:
  • You will need to have a prod.keys file generated from Lockpick RCM located on the SD card located within the /switch directory.
  • 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.
Let me know if you find this tool useful! Also also check the spoiler sections below to see what pieces are currently known missing and what to expect in future releases.

This is very much still a work-in-progress, but the basic functionality is working and hopefully your feedback will help drive what features are added next.
Some TODO list items that I plan to add functionality for in future releases:
  • RetroArch forwarders - where the selected ROM will attempt to be matched against a database (OpenVGDB) to get metadata and cover art automatically.
  • Auto-installation of the generated forwarder, so that the NSP does not need to be installed by a separate installer app after its generated.
  • An image search and editing interface to override the default selected icon.
  • An overall more polished UI to make it look and feel more like a native Switch user interface.

From a technical standpoint, this app is a neat showcase of how far the nx.js runtime is becoming:
  • The app is rendered to the screen using React via react-tela
  • Executes a WASM compiled version of hacbrewpack
 

Attachments

  • NSP_Forwarder_Generator_20241125_001225_00.jpg
    NSP_Forwarder_Generator_20241125_001225_00.jpg
    147.9 KB · Views: 111
  • NSP_Forwarder_Generator_20241125_001233_00.jpg
    NSP_Forwarder_Generator_20241125_001233_00.jpg
    90.4 KB · Views: 191
  • NSP_Forwarder_Generator_20241125_001243_00.jpg
    NSP_Forwarder_Generator_20241125_001243_00.jpg
    65.2 KB · Views: 106
  • icon.jpg
    icon.jpg
    17.9 KB · Views: 148
Last edited by tootallnate,
Works great. The only 2 issues I've noticed so far is 1. When I create an NRO of Chiaki the icon is just a question mark. 2. When selecting a homebrew app it doesn't allow for scrolling. So I can only see the top portion of the apps not shown if that makes sense.
 
1. When I create an NRO of Chiaki the icon is just a question mark.

I've noticed this with a few NROs as well. Seems like the album menu is more lenient about which icons it will used compared to the home screen menu. I'll need to add some post-processing of the logo to normalize / remove EXIF data. Tracking issue here.

2. When selecting a homebrew app it doesn't allow for scrolling. So I can only see the top portion of the apps not shown if that makes sense.

Yep, noted. As a workaround, you can use the d-pad to select offscreen icons. Will get that fixed ASAP though. Tracking issue here.
 
I've noticed this with a few NROs as well. Seems like the album menu is more lenient about which icons it will used compared to the home screen menu. I'll need to add some post-processing of the logo to normalize / remove EXIF data. Tracking issue here.



Yep, noted. As a workaround, you can use the d-pad to select offscreen icons. Will get that fixed ASAP though. Tracking issue here.


Awesome thanks for that. Great work man. Didn't realize there was a tracking issue page lol.
 
Thank you for this! Does the app have a function or something to select an image for the NSP within the Switch?

I also wanted to ask if these forwarders will allow the app/game to save clips without spending around 30mb of Switch memory. The tool from the website, while great and I'm grateful for it, has this issue that if you do not use the advance features to create the forwarder you cannot save clips, but if you do each forwarder takes space in the Switch's memory. If this an issue with how the Switch handles it, then I guess it can't be helped.
 
  • Haha
Reactions: Maximumbeans
Have you ever thought about releasing a Offline version for PCs etc? Your work is crazy good!
 
I'm getting crashes trying to launch this app. I have latest Atmosphere, firmware 18.1.0. I dumped my keys to the switch directory. I'm launching from the full memory mode. I'm not sure what I'm doing wrong!

EDIT TO ADD: Crashing launching the actual forwarder creator app, ones I generate via the online site work fine, so I bet this will work if I can get the dang creator to work.
 
Last edited by retnuh730,
I'm getting crashes trying to launch this app. I have latest Atmosphere, firmware 18.1.0. I dumped my keys to the switch directory. I'm launching from the full memory mode. I'm not sure what I'm doing wrong!

EDIT TO ADD: Crashing launching the actual forwarder creator app, ones I generate via the online site work fine, so I bet this will work if I can get the dang creator to work.

What kind of crash? Do you see an error on the screen or does the Switch fully crash and have to reboot? Pic? Also there may be a debug file that was created “nxjs-debug.log” I think it’s called on your SD card. If that has anything in it that would be helpful to share
 
What kind of crash? Do you see an error on the screen or does the Switch fully crash and have to reboot? Pic? Also there may be a debug file that was created “nxjs-debug.log” I think it’s called on your SD card. If that has anything in it that would be helpful to share
It throws the standard switch error screen, and auto closes the software. I do see the debug.log file but it is empty and GBATemp won't let me upload it. I put it in an archive just so I can send it.
 

Attachments

  • Like
Reactions: impeeza
It throws the standard switch error screen, and auto closes the software. I do see the debug.log file but it is empty and GBATemp won't let me upload it. I put it in an archive just so I can send it.

Huh, interesting. The Switch I'm using is also on 18.1.0, btw, so I don't think it's specific to that. Can you show how exactly you are launching? Maybe record a video with your phone?
 
Interesting. How about if you try launching via a game title while holding R, instead of through the HB Menu forwarder?

Also, I see you have the ASCII Star Wars installed, does that one work? I'm trying to understand if a different nx.js app works or not for you.
 
  • Like
Reactions: laz305
Interesting. How about if you try launching via a game title while holding R, instead of through the HB Menu forwarder?

Also, I see you have the ASCII Star Wars installed, does that one work? I'm trying to understand if a different nx.js app works or not for you.
Star Wars ASCII works, as well as another nx.js app for UE4 cheats. The R button trick unfortunately does the same crash.
 

Attachments

  • IMG_5568.jpeg
    IMG_5568.jpeg
    1.2 MB · Views: 113
Great initial release, looking forward to seeing you improve on that. One thing I would like to see is selecting nro's not in the switch folder. Right now it only shows those. Not even the ones in subfolders inside the switch folder. DBI for example is under /switch/dbi/dbi.nro. Also gzdoom is located in /gzdoom_nx/....nro.
Other than that. Thank you very much for your work :yay:
 
New release: switch-nsp-forwarder 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 the generated .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
You can download the latest nsp-forwarder.nro file on the GitHub Release page linked above.

By the way, I know the selection screen is still not scrollable. That's top of my list to fix next!
 
Last edited by tootallnate,
hi,
- some generated .nsp do not have an icon once installed (like psnes, pfbneo, devilutionx-switch)
- crash with a installed "old" homebrew "mame-nx"

Code:
Failed to stat sdmc:/switch/nxjs-debug.log: Error: I/O error (stat)
Uncaught (in promise) Error: No language entry found
    at get name (native)
    at pathToAppInfo (app:../src/apps.ts:49:26)
    at map (native)
    at <anonymous> (app:../src/apps.ts:60:2)
 
I want to share a new homebrew app I've been working on:

switch-nsp-forwarder
View attachment 472877
Check the Releases page to download the latest version of switch-nsp-forwarder.nro

You may be already familiar with my online NSP Forwarder Generator tool - this homebrew app aims to be equivalent of that tool, but it runs directly on your Switch. This is cool because it is more convenient compared to other forwarder generator tools, since the NSP is saved directly onto your SD card (you no longer need to copy the generated forwarder onto your SD card manually). Now you never need to leave your Switch to create forwarders! A few screenshots are attached below.

A couple pre-requisite notes:
  • You will need to have a prod.keys file generated from Lockpick RCM located on the SD card located within the /switch directory.
  • 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.
Let me know if you find this tool useful! Also also check the spoiler sections below to see what pieces are currently known missing and what to expect in future releases.

This is very much still a work-in-progress, but the basic functionality is working and hopefully your feedback will help drive what features are added next.
Some TODO list items that I plan to add functionality for in future releases:
  • RetroArch forwarders - where the selected ROM will attempt to be matched against a database (OpenVGDB) to get metadata and cover art automatically.
  • Auto-installation of the generated forwarder, so that the NSP does not need to be installed by a separate installer app after its generated.
  • An image search and editing interface to override the default selected icon.
  • An overall more polished UI to make it look and feel more like a native Switch user interface.

From a technical standpoint, this app is a neat showcase of how far the nx.js runtime is becoming:
  • The app is rendered to the screen using React via react-tela
  • Executes a WASM compiled version of hacbrewpack
Why i didn't see this until now?
 

Site & Scene News

Popular threads in this forum