root-mtx / nro2nsp Goto Github PK
View Code? Open in Web Editor NEWBuild Redirction and romfs nsps out of .nros
Build Redirction and romfs nsps out of .nros
Would like to include devkitpro to make it that much easier, might be a bit tricky and if it doesnt slow things down it will be implemented.
OS: Windows 10
Version: 3.3.6-Beta1
The rolling title ID setting doesn't appear to be working.
NOTE:
Wasn't sure how it was supposed to work, so tried it on an older version, but doesn't seem to function the same.
Hello @Root-MtX this is great.
Can we have a Command Line version?
Thanks in advance!
Whenever I compile an NRO I get an unhandled exception error that I cant figure out how to fix.
The Error:
************** Exception Text **************
System.MissingMethodException: Method not found: 'System.String System.String.Format(System.IFormatProvider, System.String, System.Object)'.
at MtX.Control.Nacp.Build()
at MtX.Nro2Nsp.Nro.Compile_button_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
Hi,
some homebrew apps launch without the top and bottom black bars (with logos),
would it be possible to have an option to enable / disable this in nro2nsp ? (I'm not sure how it's done)
Thanks :)
Latest version is v3.3.6-beta1
But the repo only seems to be up to v3.2.2
is it possible to include add an auto install script to include and install roms. AKA pack the roms cores into the forwarder?
I?ve been searching forever for a feature to include roms.
Example of script:
mkdir -p /switch/roms/
cp /app/roms/*.nes /switch/roms/
echo "ROM installed successfully."
Hello
3.3.6 beta 3
Got this problem when Compile
"master_key_00" doesnt appear to have the
correct value, please correct this key or build errors may occur
No problem with the previous releases
Software:
HOS 10.0.2
Kosmos 16.1
hbmenu 3.3.0
Browser (4TU) 0.4.0
Nro2Nsp 3.3.6-Beta4
When using an Nro2Nsp forwarder for hbmenu, launching the 4TU web browser causes it to throw an applet mode error. I'm unsure if this is an issue with how the nsp files are generated and launched or if it's a detection issue on the browser
If i bundle the nro file using Romfs, my switch is crashing. Firmware: 6.2. With SDMC is working
I am using 3.3.6 Beta 4
I get the following, Parameter is not valid error message whenever I try to import an icon photo:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.ArgumentException: Parameter is not valid.
at System.Drawing.Bitmap..ctor(String filename)
at MtX.Control.IconImport.ImageInspect(String imagePath)
at MtX.Nro2Nsp.Nro.ImportPictures(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Any idea what is causing this?
Thank you
For now just start the app, go to the settings and disable preset author and rolling id. close and restart the program.
I tried multiple combinations of current version and 3.3.2, even going as far as doing dumb things like running as root (since for some reason this tool wants to create a folder at /). The most I managed to do is create a shortcut with a broken icon, and even that I have not been able to replicate.
Please could you fix this tool? I am happy to test or provide any logs if that helps.
Please can you add the following keys.dat check, if they don't exist - download like this:
In the top of Tools.cs - add this:
using System.Security.Cryptography;
Then - After keys.dat check (public bool Compile checks) - add this:
try
{
if (!File.Exists(Keys))
{
if (MessageBox.Show("keys.dat is missing.\nDo you want to automatically download it now?\n\nBy pressing 'Yes' you agree that you own these keys.\n", "Download", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
using (var client = new System.Net.WebClient())
{
string myurl = "aHR0cHM6Ly9wYXN0ZWJpbi5jb20vcmF3L3g3ZURWMEVS";
var base64EncodedBytes = System.Convert.FromBase64String(myurl);
string decoded = (System.Text.Encoding.UTF8.GetString(base64EncodedBytes));
client.DownloadFile(decoded, ".\\Resources\\keys.dat");
}
}
if (!File.Exists(Keys))
{
MessageBox.Show("keys.dat failed to load.\nPlease include keys.dat in the resources folder.");
Environment.Exit(0);
}
}
}
catch
{
MessageBox.Show("Url is unreachable", "Unable to download keys.dat");
}
Thanks for looking.
It's a bit annoying that everything seems to have video capture disabled by default when it works fine with title redirect (if the title being used has it enabled. Would be very useful if this is possible.
If you run in an environment without .net installed, it will ask for version 4.0
Version 4.0 of .net output errors in method System.String.Format
This can be fixed by setting the target version to 4.6
Hi, The citra core is released for NSwitch, i created an icon based on other models.
https://i.imgur.com/RGEVJS3.png
Whenever I click the compile button the application stops responding and the "building... please wait" progress bar just stays forever, not actually doing anything.
Would be nice to be able to use the retroarch forwarder with the standalone melonds. It works with the standalone ppsspp but it took me to melonds and not the rom when trying with melon
When I try to compile, I get an error message with the following log message:
Is this because I am running the nro2nsp.exe from E:\ instead of C:?
As far as I can tell, my keys.dat file has master key 07 ending in ***1B0E placed in the "Resources" folder
App Name = Freeset
Author = _JK
Version = 1.0.0
Title Id = 0535B3C31D680000
Standard Forwarder = True
Retro Rom Forwarder = False
Line = sdmc:
SdmcPath = /switch/freeset.nro
RomfsPath = /application.nro
Core Path = /retroarch/cores/core.nro
Rom Path = /Roms/Snes/Super Mario World.smc
NroName =
NroPath =
C:\Users\B. Lee/Nro2Nsp/temp/hacbrewpack.exe
C:\Users\B. Lee/Nro2Nsp/temp/keys.dat
C:\Users\B. Lee/Nro2Nsp/temp/control\control.nacp
C:\Users\B. Lee/Nro2Nsp/temp/control\icon_AmericanEnglish.dat
C:\Users\B. Lee/Nro2Nsp/temp/exefs\main
C:\Users\B. Lee/Nro2Nsp/temp/exefs\main.npdm
C:\Users\B. Lee/Nro2Nsp/temp/logo\NintendoLogo.png
C:\Users\B. Lee/Nro2Nsp/temp/logo\StartupMovie.gif
C:\Users\B. Lee/Nro2Nsp/temp/romfs\errorConsole.nro
C:\Users\B. Lee/Nro2Nsp/temp/romfs\nextArgv
C:\Users\B. Lee/Nro2Nsp/temp/romfs\nextNroPath
'C:\Users\B.' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\B. Lee/Nro2Nsp/temp/hacbrewpack.exe
C:\Users\B. Lee/Nro2Nsp/temp/keys.dat
C:\Users\B. Lee/Nro2Nsp/temp/control\control.nacp
C:\Users\B. Lee/Nro2Nsp/temp/control\icon_AmericanEnglish.dat
C:\Users\B. Lee/Nro2Nsp/temp/exefs\main
C:\Users\B. Lee/Nro2Nsp/temp/exefs\main.npdm
C:\Users\B. Lee/Nro2Nsp/temp/logo\NintendoLogo.png
C:\Users\B. Lee/Nro2Nsp/temp/logo\StartupMovie.gif
C:\Users\B. Lee/Nro2Nsp/temp/romfs\errorConsole.nro
C:\Users\B. Lee/Nro2Nsp/temp/romfs\nextArgv
C:\Users\B. Lee/Nro2Nsp/temp/romfs\nextNroPath
Not sure if it's something that can be fixed but I had multiple times where tinfoil or goldleaf stopped transferring so I needed to restart the app,
if it was launched thru the hbmenu forwarder and I close it in the home menu with "X" -> "Close" everything just crashes, if I disconnect the usb cable before closing it's ok,
to reproduce :
I tried with a direct forwarder to goldleaf and same result,
btw I tested the official goldleaf nsp too, it crashes the same way ^^
Not sure why but when I download the latest 3.3.1 source it's actually 3.2.2 version with the old pre-retroarch options
Update for Atmos 19.0 please.forwarders are broken and needs updating
The NSPs that I created with this tool no longer work on FW 10.0.0 on the new version of atmosphere 0.12.0. They previously worked on Switch FW 10.0.0, atmosphere 0.11.1
Double post by error
After finally having success last night, i pulled down the wiki and updated the Use.md page. Happy to send it to someone on discord or push the change myself if given wiki access control. It's on its own branch for review.
Would love to see the option for a custom output directory to help keep the main folder tidy
I'm having an issue where any custom icons, even if they are jpg's at 256 x 256 aren't displaying on the switch menu. The NSP's install fine, and the icon displays in tinfoil - but on the home screen they are just a question mark. The apps do open and redirect to the roms fine though. Any of the thumbnails from the community are fine. But even if I use these as a base in photoshop to put my image in place of, they still don't work. Any ideas? Thanks. Great app though!
please if you have time update the program casue that would mean no more forwarders at all
All the nsp created titles refuse to recognize button inputs.
The hombrew apps were also tested running the official homebrew menu legal nsp. Running them on the legal nsp makes them work normally
I have a problem, when i use the RetroArch forwarder, i cant use the controll...
But in RetroArch works.
In 9.0.0, i use the newest stable and beta version.
Hi, sorry for the double submit,
I just tested the latest v3.3.2 Beta 2 on 6.2 with sx os 2.5.3 and I'm getting crashes when :
I'm redirecting to hbmenu (latest version, sdmc redirect) -> then I run some app like checkpoint -> then exit the app with "+" -> I'm supposed to exit back to hbmenu but I get a console crash and I need to reboot :/
Got the crash every time I tried,
the nologo option works nice btw, thanks :)
On Linux, I run into the issue where the hacbrewpack reports an error, stating that it can't find certain directories, leading to a --hacbrewpack error. This is what my terminal spits out when it encounters the issue:
/bin/bash: line 2: /root/Nro2Nsp/temp/hacbrewpack --keyset /root/Nro2Nsp/temp/keys.dat --tempdir /root/Nro2Nsp/temp/raw --ncadir /root/Nro2Nsp/temp/nca --nspdir /root/Nro2Nsp/temp/ --exefsdir /root/Nro2Nsp/temp/exefs --romfsdir /root/Nro2Nsp/temp/romfs/ --logodir /root/Nro2Nsp/temp/logo/ --controldir /root/Nro2Nsp/temp/control/ --keepncadir --keygeneration 1: No such file or directory
Last beta build dont take effect with logo pic :(
When i click in the Tinfoil Menu Exit. It exits and starts again
Hi guys, i've got a problem: everytime i try to compile the NSP it gives me that error: Builinh of Nsp Failed, Please refer to logs
my app version is the 3.3.5
The log:
App Name = nx-hbmenu
Author = switchbrew
Version = 3.4.0
Title Id = 05E3977EDC900000
Standard Forwarder = True
Retro Rom Forwarder = False
Line = sdmc:
SdmcPath = hbmenu.nro
RomfsPath = /application.nro
Core Path = /retroarch/cores/core.nro
Rom Path = /Roms/Snes/Super Mario World.smc
NroName = hbmenu.nro
NroPath = G:\hbmenu.nro
C:\Users\username/Nro2Nsp/temp/hacbrewpack.exe
C:\Users\username/Nro2Nsp/temp/keys.dat
C:\Users\username/Nro2Nsp/temp/nstool.exe
C:\Users\username/Nro2Nsp/temp/control\control.nacp
C:\Users\username/Nro2Nsp/temp/control\icon_AmericanEnglish.dat
C:\Users\username/Nro2Nsp/temp/exefs\main
C:\Users\username/Nro2Nsp/temp/exefs\main.npdm
C:\Users\username/Nro2Nsp/temp/Extract\Control.nacp
C:\Users\username/Nro2Nsp/temp/Extract\Icon.jpg
C:\Users\username/Nro2Nsp/temp/hacbrewpack_backup\1617017214_control.nacp
C:\Users\username/Nro2Nsp/temp/hacbrewpack_backup\1617017214_main.npdm
C:\Users\username/Nro2Nsp/temp/hacbrewpack_nsp\05e3977edc900000.nsp
C:\Users\username/Nro2Nsp/temp/logo\NintendoLogo.png
C:\Users\username/Nro2Nsp/temp/logo\StartupMovie.gif
C:\Users\username/Nro2Nsp/temp/romfs\errorConsole.nro
C:\Users\username/Nro2Nsp/temp/romfs\nextArgv
C:\Users\username/Nro2Nsp/temp/romfs\nextNroPath
hacBrewPack v3.00 by The-4n
Removing existing temp and nca directories
Creating temp, nca, nsp and backup directories
Loading 'C:\Users\username/Nro2Nsp/temp/keys.dat' keyset file
----> Processing NPDM
Validating NPDM
Getting TitleID
Validating TitleID
Warning: TitleID 5e3977edc900000 is greater than 01ffffffffffffff and it's not suggested
Backing up main.npdm
[WARN]: Failed to match key "bis_kek_source", (value "34c1a0c48258f8b4fa9e5e6adafc7e4f")
[WARN]: Failed to match key "bis_key_00", (value "5fb7187cc2cb80de2deb4197cdf2ff9f221e8c57285ce8bc722d96c12991e1c7")
[WARN]: Failed to match key "bis_key_01", (value "621c72c06add87b272a5c10c404773bf521d1aa01f278e463055842a34cd7df0")
[WARN]: Failed to match key "bis_key_02", (value "9ea5cdbfdf75c27d3a027745cc90101f257021eb7c828767145061335fe0a637")
[WARN]: Failed to match key "bis_key_03", (value "9ea5cdbfdf75c27d3a027745cc90101f257021eb7c828767145061335fe0a637")
[WARN]: Failed to match key "bis_key_source_00", (value "f83f386e2cd2ca32a89ab9aa29bfc7487d92b03aa8bfdee1a74c3b6e35cb7106")
[WARN]: Failed to match key "bis_key_source_01", (value "41003049ddccc065647a7eb41eed9c5f44424edab49dfcd98777249adc9f7ca4")
[WARN]: Failed to match key "bis_key_source_02", (value "52c2e9eb09e3ee2932a10c1fb6a0926c4d12e14b2a474c1c09cb0359f015f4e4")
[WARN]: Failed to match key "device_key", (value "ccbfb265ef34d3ac7c29d672e4e1d3c3")
[WARN]: Failed to match key "device_key_4x", (value "63fb3f92de7d147a15fceaa4f5a72131")
[WARN]: Failed to match key "eticket_rsa_kek", (value "19c8b441d318802bad63a5beda283a84")
[WARN]: Failed to match key "eticket_rsa_kek_source", (value "dba451124ca0a9836814f5ed95e3125b")
[WARN]: Failed to match key "eticket_rsa_kekek_source", (value "466e57b74a447f02f321cde58f2f5535")
[WARN]: Failed to match key "per_console_key_source", (value "4f025f0eb66d110edc327d4186c2f478")
[WARN]: Failed to match key "retail_specific_aes_key_source", (value "e2d6b87a119cb880e822888a46fba195")
[WARN]: Failed to match key "rsa_oaep_kek_generation_source", (value "a8ca938434127fda82cc1aa5e807b112")
[WARN]: Failed to match key "rsa_private_kek_generation_source", (value "ef2cb61a56729b9157c38b9316784ddd")
[WARN]: Failed to match key "save_mac_key", (value "2b38993ec5a2b1c09a37379fe7c599d7")
[WARN]: Failed to match key "save_mac_sd_card_kek_source", (value "0489ef5d326e1a59c4b7ab8c367aab17")
[WARN]: Failed to match key "save_mac_sd_card_key_source", (value "6f645947c56146f9ffa045d595332918")
[WARN]: Failed to match key "sd_card_custom_storage_key_source", (value "370c345e12e4cefe21b58e64db52af354f2ca5a3fc999a47c03ee004485b2fd0")
[WARN]: Failed to match key "ssl_rsa_kek", (value "b011100660d1dccbad1b1b733afa9f95")
[WARN]: Failed to match key "ssl_rsa_kek_source_x", (value "7f5bb0847b25aa67fac84be23d7b6903")
[WARN]: Failed to match key "ssl_rsa_kek_source_y", (value "9a383bf431d0bd8132534ba964397de3")
Failed to open hacbrewpack_backup\1617017700_main.npdm!
C:\Users\username/Nro2Nsp/temp/hacbrewpack.exe
C:\Users\username/Nro2Nsp/temp/keys.dat
C:\Users\username/Nro2Nsp/temp/nstool.exe
C:\Users\username/Nro2Nsp/temp/control\control.nacp
C:\Users\username/Nro2Nsp/temp/control\icon_AmericanEnglish.dat
C:\Users\username/Nro2Nsp/temp/exefs\main
C:\Users\username/Nro2Nsp/temp/exefs\main.npdm
C:\Users\username/Nro2Nsp/temp/Extract\Control.nacp
C:\Users\username/Nro2Nsp/temp/Extract\Icon.jpg
C:\Users\username/Nro2Nsp/temp/hacbrewpack_backup\1617017214_control.nacp
C:\Users\username/Nro2Nsp/temp/hacbrewpack_backup\1617017214_main.npdm
C:\Users\username/Nro2Nsp/temp/hacbrewpack_nsp\05e3977edc900000.nsp
C:\Users\username/Nro2Nsp/temp/logo\NintendoLogo.png
C:\Users\username/Nro2Nsp/temp/logo\StartupMovie.gif
C:\Users\username/Nro2Nsp/temp/romfs\errorConsole.nro
C:\Users\username/Nro2Nsp/temp/romfs\nextArgv
C:\Users\username/Nro2Nsp/temp/romfs\nextNroPath
The source code builds version 3.2.2 while the latest stable version is 3.3.5
Any plans on updating the source code?
Would like to redo the gui but im not visually talented, of anyone would like to try send me a new gui and ill do a pr if its nice
I have noticed that this uses a hardcoded temp path of \Nro2Nsp, in the root of the drive that it's run from. I noticed this because I put it into D:\nro2nsp (on my data drive) and watched as it deleted most of its files and then errored out when it tried to delete MtX.Control.dll and couldn't because it was in use. I see that this could cause permission issues for anyone who doesn't have permission to write to the root of their drive, such as a limited Windows account or a Linux or Mac user running it in Wine.
I propose instead using a directory named nro2nsp.tmp either inside the current directory, or in the user's temp folder, which can be found with Path.GetTempPath or in the environment variable %TEMP%.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.