Tutorial  Updated

Generate RetroArch NSP Forwarders (with proper icon and title)

This tutorial will show you how to generate a RetroArch NSP Forwarder. The end result is a game on your HOME menu, and when you open it RetroArch is launched with the game directly running. Here's a video showing what it looks like (video by @bobdamnit).

I may or may not make an automated version of it, in a nice GUI, without any external dependency required. Time will tell. If someone wants to do it, go ahead.

1. What's needed
  • The latest release of hacBrewPack : https://github.com/The-4n/hacBrewPack/releases
  • keys.dat (I recommend using Lockpick to dump it)
  • The latest release of my modded hbloader : https://github.com/natinusala/nx-hbloader-retroarch-forwarder-mod/releases (build.zip)
  • The core (NRO) and the game you want to forward on your SD card (download the core through RA's online updater)
  • A 256x256 JPG icon of the game you want to forward (I suggest that you make your own)
  • (optional) a PNG to be displayed in the top-left corner of the screen while loading (normally Nintendo logo) and a GIF to be displayed in the bottom-right corner (normally an animated Switch logo)
2. Creating the NSP

Extract hacBrewPack somewhere and follow these steps:
  • copy your keys.dat where hacbrewpack.exe is
  • copy both "control" and "exefs" from my modded hbloader to the folder where hacbrewpack.exe is
  • inside the new "control", copy your 256x256 JPG and rename it "icon_AmericanEnglish.dat"
  • create a folder called "logo" where hacbrewpack.exe is
  • now the important part: create a folder called "romfs" where hacbrewpack.exe is
    • inside, create two files: "nextNroPath" and "nextArgv"
    • in "nextNroPath", write the path to the core on your SD card starting by "sdmc:" (for example sdmc:/retroarch/cores/quicknes_libretro_libnx.nro)
    • in "nextArgv", write the path to the core on your SD card starting by "sdmc":, followed by a whitespace and the path to the game on your SD card between quotes (for example sdmc:/retroarch/cores/quicknes_libretro_libnx.nro "sdmc:/roms/nes/Super Mario Bros. 3 (USA).nes")
    • Be sure not to put newlines in the end of any of those files
  • Open cmd in the folder where hacbrewpack.exe is and run "hacbrewpack.exe --titleid <title id> --titlename <game name> --titlepublisher <game publisher>"
  • If everything went fine, you should have your NSP in the "hacbrewpack_nsp" folder (called by its title id)
3. How does it work?

If a content path is set in argv when running RetroArch, the content is loaded instead of opening the menu.

This is a simple mod of hbloader which reads the NRO path ("nextNroPath") as well as argv ("nextArgv") from its romfs.
  1. you run the title
  2. hbloader starts
  3. hbloader reads the NRO path and its arguments from its romfs
  4. hbloader starts the NRO (the core), giving the arguments (the content path)
  5. The core is started, and loads the content given in arguments
"But why use romfs, you could have directly set the path in the code" I hear you ask. I used romfs because I wanted to be able to change the core and content path without rebuilding hbloader, for an eventual automated tool.
 
Last edited by natinusala,

RideOnTheStorm

Well-Known Member
Newcomer
Joined
Feb 1, 2019
Messages
51
Trophies
0
Age
36
XP
319
Country
France
I do agree that nro2nsp isn't great on other platforms due to mono. Its something im hoping to fix but seems to be a bit of a pain and don't have access to a Linux machine currently. Hopefully I can get it a little better looking on those platforms eventually

i'm ok for the retroarch part,just add custom search and convert for icons,title id is randomly generated.
I'm not sure about the way to convert other than retroarch nro in nsp but if you want to give it a try you're welcome!
 

Rune

Well-Known Member
Member
Joined
Feb 15, 2017
Messages
693
Trophies
0
XP
2,453
Country
United Kingdom
Not sure if anyone could answer this, but does anyone know if the custom NintendoLogo.png image has to fit the image size of the original? Or can I use larger images?
I mean pixel size, not file size.
 

Rune

Well-Known Member
Member
Joined
Feb 15, 2017
Messages
693
Trophies
0
XP
2,453
Country
United Kingdom
Just did. You get a black screen instead and then it just jumps into the game. :(

Ah well. Was hoping to use like individual console logos for each forwarder I make. The default size looked too small on the screen.
 

Sam_y14

New Member
Newbie
Joined
Feb 19, 2019
Messages
4
Trophies
0
Age
23
XP
112
Country
Netherlands
I can't get the icons to work with a few SNES forwarders all I get is gray boxes with question marks. Anyone know what's the problem?
 

Sam_y14

New Member
Newbie
Joined
Feb 19, 2019
Messages
4
Trophies
0
Age
23
XP
112
Country
Netherlands
Wrong icon size by the sounds of it. Are you sure its 256x256?
Yeah I figured it out. So apparently the image needs to have a dpi of 72 in photoshop. And when you use different layers in photoshop make sure to rasterize them and merge them all before exporting to jpg. Did the trick for me.
 
  • Like
Reactions: TotalJustice

8BitWonder

Small Homebrew Dev
Member
Joined
Jan 23, 2016
Messages
2,489
Trophies
1
Location
47 4F 54 20 45 45 4D
XP
5,347
Country
United States
Has anyone by chance used an extended-ASCII character in a title and have it display properly on their switch?

I tried using 'é' in a pokémon title and ended up with a weird title that would display the name correctly up until the 'é', and would then fill in the rest of the length with the name from one of my other titles.

I see that 'é' is displaying fine in Goldleaf (what I installed it with) when looking at Pokémon Let's Go, but it displays "Pok☒mon ..." on the forwarder. I'm assuming it might be a hacbrewpack problem but I wanted to know if others have had success with using extended-ASCII characters before opening an issue.
 
Last edited by 8BitWonder,

Spuud

Member
Newcomer
Joined
Apr 23, 2018
Messages
7
Trophies
0
Age
64
XP
135
Country
Germany
So far, so good:
Screenshot-4.png

sorry for digging up this almost 6 months old thread but i fell in love with those retro game icons.
can i download them somewhere or did you make them yourself?
 

Qwerty5555

Active Member
Newcomer
Joined
Sep 28, 2019
Messages
40
Trophies
0
Age
34
XP
113
Country
Afghanistan
Does this still work for firmware 9.0?

I tried the guide several times but the icon is gray with a questionmark (size is correct, and i did rename it) and when it boots it boots into HBmenu.
 

matt!

Well-Known Member
Member
Joined
Nov 20, 2009
Messages
634
Trophies
1
Age
47
Website
www.gingerbeardman.com
XP
1,350
Country
United Kingdom
Does this still work for firmware 9.0?

I tried the guide several times but the icon is gray with a questionmark (size is correct, and i did rename it) and when it boots it boots into HBmenu.
The one I had installed still launched on 9.00 but controls were disabled (a known problem with old homebrew on new 9.0) so it was useless
 
  • Like
Reactions: Qwerty5555

FanboyKilla

Well-Known Member
Member
Joined
Mar 9, 2019
Messages
289
Trophies
0
XP
1,105
Country
United States
Just a heads up for anyone else that comes along wondering why their hacBrewPack NSP's are only showing up as a generic question mark "?" icon on the HomeScreen, it's because of Atmosphere v0.10.x. For some reason Atmosphere v0.10.x versions are not allowing the icons to show up correctly, but instead being shown as just a generic icon with a question mark. While using FW 9.0.0, I rolled back to Atmosphere v0.9.4 and now when I install them they work just fine.

If you have NSP forwards installed and then update to Atmosphere v0.10.x, then the icons will continue to show up like normal. The issue is only occurring if you try to install a hacBrewPack created NSP with Atmosphere v0.10.x, then the HomeScreen icon will only show up as a Generic "?" question mark.
 
  • Like
Reactions: laz305

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    NinStar @ NinStar: It will actually make it worse