"NSP Forwarder Generator" - An online tool to create NRO/RetroArch forwarders

tootallnate

Developer
OP
Developer
Joined
Mar 31, 2023
Messages
58
Trophies
0
Age
35
Website
n8.io
XP
457
Country
United States
Hey all. My first post here. I want to share a tool that I've been working on to create NRO to NSP forwarders. I know there's a lot of prior art in this field, but all have been either Windows only or command line only, and that left me desiring a version that worked without installation and worked on all operating systems and has a nice user interface.

So I created this online tool called "NSP Forwarder Generator" (generic name, I know, but I'm not good at coming up with catchy/clever names)!

Screenshot 2023-04-05 at 1.37.25 AM.png


Some features that I think make this version stand out are:
  • It's a website, not a program that you need to install, so it will always be up-to-date and works everywhere that a web browser is available.
  • All processing is done directly in the web browser. Images are processed using the <canvas> HTML element and the `hacbrewpack` tool (which is the central tool powering this) is running in the browser by being compiled to WASM.
  • A handy cropping interface to fine tune your application title image (on home screen), boot-up logo (top-left) and boot-up animation (bottom-right).
  • Automatic conversion of the images to the proper size and format that the Switch requires to work with (so no need to worry about troublesome EXIF data).
  • Convenient RetroArch core path presets selector, to quickly and easily specify which emulator a game should be run with.
I've been using it personally with a lot of success so far, but I am receptive to feedback and/or feature requests. Let me know if you find this useful. Cheers!
 
Last edited by tootallnate,

Chamon

New Member
Newbie
Joined
Apr 7, 2023
Messages
2
Trophies
0
Age
37
XP
19
Country
Spain
I was just looking for something like this. Thank you! But I'm having problems making one for Chiaki. The nsp is done without issue but when I try to launch it on Switch it just crashes. The only thing that I find strange is that the nro is 19mb and the nsp only 347kb

Any idea?
 

tootallnate

Developer
OP
Developer
Joined
Mar 31, 2023
Messages
58
Trophies
0
Age
35
Website
n8.io
XP
457
Country
United States
I was just looking for something like this. Thank you! But I'm having problems making one for Chiaki. The nsp is done without issue but when I try to launch it on Switch it just crashes. The only thing that I find strange is that the nro is 19mb and the nsp only 347kb

Any idea?

It's expected that the NSP file is small. The NRO is not "embedded" into the NSP file. Instead, it's basically just a small program that says "launch the NRO file at xxxxx path on the SD card", so you still need to have the NRO file copied onto the SD card. Looks like for Chiaki the value for "NRO Path" should be /switch/chiaki.nro.
 

Chamon

New Member
Newbie
Joined
Apr 7, 2023
Messages
2
Trophies
0
Age
37
XP
19
Country
Spain
It's expected that the NSP file is small. The NRO is not "embedded" into the NSP file. Instead, it's basically just a small program that says "launch the NRO file at xxxxx path on the SD card", so you still need to have the NRO file copied onto the SD card. Looks like for Chiaki the value for "NRO Path" should be /switch/chiaki.nro.
Sorry, I'm a total noob! I was putting the path of the .nro in my computer because I was thinking the .nso was some kind of package that installed everything. Thanks for your help!
 

impeeza

¡Kabito!
Member
Joined
Apr 5, 2011
Messages
6,361
Trophies
3
Age
46
Location
At my chair.
XP
18,721
Country
Colombia
Hey all. My first post here. I want to share a tool that I've been working on to create NRO to NSP forwarders. I know there's a lot of prior art in this field, but all have been either Windows only or command line only, and that left me desiring a version that worked without installation and worked on all operating systems and has a nice user interface.

So I created this online tool called "NSP Forwarder Generator" (generic, I know, but I'm not good at coming up with catchy/clever names)!

View attachment 363136

Some features that I think make this version stand out are:
  • It's a website, not a program that you need to install, so it will always be up-to-date and works everywhere that a web browser is available.
  • A handy cropping interface to fine tune your application title image (on home screen), boot-up logo (top-left) and boot-up animation (bottom-right).
  • Automatic conversion of the images to the proper size and format that the Switch requires to work with (so no need to worry about troublesome EXIF data).
  • Convenient RetroArch core path presets selector, to quickly and easily specify which emulator a game should be run with.
I've been using it personally with a lot of success so far, but I am receptive to feedback and/or feature requests. Let me know if you find this useful. Cheers!
great work mate, thanks a lot for sharing
 

lightninjay

Well-Known Member
Member
Joined
Mar 28, 2023
Messages
560
Trophies
0
Age
31
XP
1,371
Country
United States
Any reason that this would be broken by the 16.0.2 firmware update? My forwards are crashing back to the homescreen immediately on launch.

EDIT:
Disregard my post, or if someone else comes across this issue, update your Atmosphere Sig Patches. Soon as I did that and rebooted to let Atmosphere reload, my forwards are working :)
 
Last edited by lightninjay,
  • Haha
Reactions: impeeza

MYFW

Well-Known Member
Member
Joined
Apr 1, 2014
Messages
195
Trophies
1
Age
30
XP
1,232
Country
Great job! Just a detail, could you put a placeholder below the image for the game (for example I am not clear what would be the exact dimensions of a game cover for the menu). I see that there is the possibility of trimming it, but perhaps it would be more interesting to know the dimensions first.

Thank you very much :)
 
Last edited by MYFW,

tootallnate

Developer
OP
Developer
Joined
Mar 31, 2023
Messages
58
Trophies
0
Age
35
Website
n8.io
XP
457
Country
United States
Great job! Just a detail, could you put a placeholder below the image for the game (for example I am not clear what would be the exact dimensions of a game cover for the menu). I see that there is the possibility of trimming it, but perhaps it would be more interesting to know the dimensions first.

Thank you very much :)

I'm not sure I follow 😅 Placeholder where and what would it contain? There's already a preview of the cropped game cover (the main big square box).
 
  • Like
Reactions: MYFW

Akumara

Well-Known Member
Member
Joined
Mar 13, 2018
Messages
202
Trophies
0
Age
34
XP
926
Country
Australia
I've been using this now as it works much better than the older outdated desktop apps. Thank you!

I want to make a custom PS1 bootloader animation, i dont know what file format i need and cant find any documentation on it on github.
Would be a cool feature if you could add a "rip from youtube" section which allows you to rip some 3-5 second clip and insert it into the startup animation

Also an amazing not-yet-done feature would be some "bulk" creation tools.
Right now, I'm trying to build a list of 100+ PS1 Games and its taking awhile getting coverart, copy and pasting file locations, etc.
If we could insert some sort of .CSV file for image location, core path, rom path, etc. That would be awesome!
 
Last edited by Akumara,

impeeza

¡Kabito!
Member
Joined
Apr 5, 2011
Messages
6,361
Trophies
3
Age
46
Location
At my chair.
XP
18,721
Country
Colombia
I've been using this now as it works much better than the older outdated desktop apps. Thank you!

I want to make a custom PS1 bootloader animation, i dont know what file format i need and cant find any documentation on it on github.
Would be a cool feature if you could add a "rip from youtube" section which allows you to rip some 3-5 second clip and insert it into the startup animation
Think this is the wrong thread.
 

impeeza

¡Kabito!
Member
Joined
Apr 5, 2011
Messages
6,361
Trophies
3
Age
46
Location
At my chair.
XP
18,721
Country
Colombia
I want to make a custom PS1 bootloader animation, i dont know what file format i need and cant find any documentation on it on github.
Would be a cool feature if you could add a "rip from youtube" section which allows you to rip some 3-5 second clip and insert it into the startup animation
I got lost about the PS1 issue. sorry.
 

tootallnate

Developer
OP
Developer
Joined
Mar 31, 2023
Messages
58
Trophies
0
Age
35
Website
n8.io
XP
457
Country
United States
I've been using this now as it works much better than the older outdated desktop apps. Thank you!

I want to make a custom PS1 bootloader animation, i dont know what file format i need and cant find any documentation on it on github.
Would be a cool feature if you could add a "rip from youtube" section which allows you to rip some 3-5 second clip and insert it into the startup animation

Also an amazing not-yet-done feature would be some "bulk" creation tools.
Right now, I'm trying to build a list of 100+ PS1 Games and its taking awhile getting coverart, copy and pasting file locations, etc.
If we could insert some sort of .CSV file for image location, core path, rom path, etc. That would be awesome!
Glad you like!

For the bootloader images, you can enable Advanced Mode:
  • You can override the logo (at the top-left) with any image. This one is not an animation, just a static image. I like to put the game publisher logo there.
  • For the animation (at the bottom-right), you need to put a .gif file, which can be animated. There is a built-in "trimming" tool when you hover the mouse over the selected GIF file, allowing you to chop off frames from the beginning / end.

    Also note that there's no need for the animation to be longer than ~1 second, since the forwarder finishes loading within that time. Switch also doesn't seem to like it if the file is larger than ~60kb. If the GIF is too big then Switch will not show the animation and it will just be black there.

    As far as YouTube goes, I'm not sure I'll include something directly, but you can use any number of online tools that do that already, just google for "YouTube to GIF".
Nice idea about the bulk mode. A .csv wouldn't quite work for the image path, since the web browser isn't able to read arbitrary files from the user's computer - they need to be explicitly selected. One thing that might work though is to allow for selecting a directory, which has contents in a defined format which the web app could process. I'll have to ponder how that would work in my head a bit more.
 
  • Love
  • Like
Reactions: Akumara and impeeza

Mudkipzzz

Well-Known Member
Newcomer
Joined
Oct 11, 2020
Messages
54
Trophies
0
XP
354
Country
Costa Rica
Just came here to say awesome job man! This an astounding contribution to the community! I was able to put my dear mGBA emulator right on the home menu. Sweeeeet
 
  • Like
Reactions: impeeza

Akumara

Well-Known Member
Member
Joined
Mar 13, 2018
Messages
202
Trophies
0
Age
34
XP
926
Country
Australia
Glad you like!

For the bootloader images, you can enable Advanced Mode:
  • You can override the logo (at the top-left) with any image. This one is not an animation, just a static image. I like to put the game publisher logo there.
  • For the animation (at the bottom-right), you need to put a .gif file, which can be animated. There is a built-in "trimming" tool when you hover the mouse over the selected GIF file, allowing you to chop off frames from the beginning / end.

    Also note that there's no need for the animation to be longer than ~1 second, since the forwarder finishes loading within that time. Switch also doesn't seem to like it if the file is larger than ~60kb. If the GIF is too big then Switch will not show the animation and it will just be black there.

    As far as YouTube goes, I'm not sure I'll include something directly, but you can use any number of online tools that do that already, just google for "YouTube to GIF".
Nice idea about the bulk mode. A .csv wouldn't quite work for the image path, since the web browser isn't able to read arbitrary files from the user's computer - they need to be explicitly selected. One thing that might work though is to allow for selecting a directory, which has contents in a defined format which the web app could process. I'll have to ponder how that would work in my head a bit more.

I wonder if there would be a way to loosely match coverart from a database depending on the core/title/rom name inputted? Like some fuzzy logic where if only 1 result is returned, ask if that is the correct cover and use it for the image.
Also last question for now......will these NSP forwarders work after major firmware updates? I remember some of my old forwarders stopped working after a few major revision updates (fw14 to fw15) but i think i screwed around with my files so that may have been the reason.
 
  • Like
Reactions: impeeza

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Mondooooo @ Mondooooo: anyone