Homebrew [Release] NTM - NAND Title Manager for DSi

Pk11

A catgirl with a DSi
OP
Member
Joined
Jun 26, 2019
Messages
716
Trophies
1
Age
20
Location
米国
Website
pk11.us
XP
2,523
Country
United States
Warning :!: This is a potentially dangerous tool. I have added many safety checks and tested it as thoroughly as I could think of, but please use with caution and do not ignore the warnings when using in SysNAND mode.

Using TWiLight Menu++ or hiyaCFW instead of installing your titles directly to SysNAND is strongly recommended, especially if you intend to do it with any degree of frequency. Writing to NAND always has a risk, albeit small. You also continue to wear down NAND with writes such as save data.

NAND Title Manager, or NTM for short, is a fork of @JeffRuLz's TMFH that allows for managing titles on your internal memory, SysNAND, in addition to hiyaCFW's SDNAND. Please use with caution when in SysNAND mod.

I have tested it fairly thoroughly and it appears to be stable. It has many safety checks in place before it will ever write to NAND, doesn't suffer from problems such as the FAT mismatch error (thanks @Mighty Max, the code from DSi Language Patcher is used for that), and it tries its best to prevent you from even trying something needlessly dangerous. Though I would still not encourage trying to break it unless you're testing in an emulator. If you find any problems with it, please let me know and I will try to fix it as soon as I can.

:download: It can be downloaded from GitHub
:arrow: The source code is also on GitHub
:arrow: For information on how to use it, please see the wiki
 
Last edited by Pk11,

Pk11

A catgirl with a DSi
OP
Member
Joined
Jun 26, 2019
Messages
716
Trophies
1
Age
20
Location
米国
Website
pk11.us
XP
2,523
Country
United States
It's very cool. Can I use it install GBARunner2, GameYob to SysNAND ?
I don't think GBARunner2 will work directly (though it should work to use a forwarder to GBARunner2 on the SD card) since it requires nds-bootstrap to run on DSi, I think GameYob should work though.

Edit: I tested in no$gba and gameyob_dsi.nds works, however the banner is blank. I complied the latest commit of the v0.5-hotfix brach with the latest devkitARM/libnds and it seems to work so I've attached that here.
 

Attachments

  • gameyob_dsi.nds.zip
    192.3 KB · Views: 28
Last edited by Pk11,

Pk11

A catgirl with a DSi
OP
Member
Joined
Jun 26, 2019
Messages
716
Trophies
1
Age
20
Location
米国
Website
pk11.us
XP
2,523
Country
United States
I remembered that NTM is supposed to be fixing that already, but it seems the banner padding code was slightly bugged (partially because I broke it when accounting for cluster size in the file size and partially because it was hardcoded to a specific size and GameYob was 0x100 bytes smaller than that)

The fixed build can be downloaded from GitHub Actions, either it or using the recompiled GameYob I posted above should work.
 

andot

Well-Known Member
Newcomer
Joined
Apr 11, 2017
Messages
57
Trophies
0
Age
41
XP
493
Country
Switzerland
I don't think GBARunner2 will work directly (though it should work to use a forwarder to GBARunner2 on the SD card) since it requires nds-bootstrap to run on DSi, I think GameYob should work though.

Edit: I tested in no$gba and gameyob_dsi.nds works, however the banner is blank. I complied the latest commit of the v0.5-hotfix brach with the latest devkitARM/libnds and it seems to work so I've attached that here.
I installed your gameyob_dsi.nds on my NDSiLL sysNAND, it works very well. And I install Shantae Risky's Revenge (EU) , it also works, but the banner is blank. My NDSiLL is a Japanese version.

bbb49857deb8ae55c0072df870d656a.jpg


a0a6c609f785e0a768225e7ecd9f0a2.jpg
 

andot

Well-Known Member
Newcomer
Joined
Apr 11, 2017
Messages
57
Trophies
0
Age
41
XP
493
Country
Switzerland
I remembered that NTM is supposed to be fixing that already, but it seems the banner padding code was slightly bugged (partially because I broke it when accounting for cluster size in the file size and partially because it was hardcoded to a specific size and GameYob was 0x100 bytes smaller than that)

The fixed build can be downloaded from GitHub Actions, either it or using the recompiled GameYob I posted above should work.
I used the fixed build NTM to install Shantae Risky's Revenge (EU), the title banner is also blank, but the game can run very well.
 

Pk11

A catgirl with a DSi
OP
Member
Joined
Jun 26, 2019
Messages
716
Trophies
1
Age
20
Location
米国
Website
pk11.us
XP
2,523
Country
United States
I installed your gameyob_dsi.nds on my NDSiLL sysNAND, it works very well. And I install Shantae Risky's Revenge (EU) , it also works, but the banner is blank. My NDSiLL is a Japanese version.

View attachment 294271

View attachment 294270
Huh, it seems that the developers just left all the non-European titles blank on that game. If you just copy the English title to the Japanese title that should fix it. I think MessAnimDSIco should work correctly or (since I can never get that to work) I just made a little Python script that will copy a language into any blank ones.

I've also attached an IPS patch for the European Shantae that copies the English title into Japanese, Chinese, and Korean.
 

Attachments

  • shantae-title-fix.ips.zip
    693 bytes · Views: 33

lifehackerhansol

i write working(?) code
Member
Joined
Oct 2, 2021
Messages
350
Trophies
0
XP
707
Country
Canada
Could we potentially scan the ROM for missing banner languages before installation? You could find the first one that exists and then just apply it everywhere, then rewrite the CRC.

Perhaps this could be integrated into TMFH as well, if that thing ever gets an update.
 

andot

Well-Known Member
Newcomer
Joined
Apr 11, 2017
Messages
57
Trophies
0
Age
41
XP
493
Country
Switzerland
Huh, it seems that the developers just left all the non-European titles blank on that game. If you just copy the English title to the Japanese title that should fix it. I think MessAnimDSIco should work correctly or (since I can never get that to work) I just made a little Python script that will copy a language into any blank ones.

I've also attached an IPS patch for the European Shantae that copies the English title into Japanese, Chinese, and

Huh, it seems that the developers just left all the non-European titles blank on that game. If you just copy the English title to the Japanese title that should fix it. I think MessAnimDSIco should work correctly or (since I can never get that to work) I just made a little Python script that will copy a language into any blank ones.

I've also attached an IPS patch for the European Shantae that copies the English title into Japanese, Chinese, and Korean.
b70d8db7ca36120fb046a0bac05616a.jpg


I patched the dsi rom with shantae-title-fix.ips, the title can be displayed now, but the game can't run now.
 

Pk11

A catgirl with a DSi
OP
Member
Joined
Jun 26, 2019
Messages
716
Trophies
1
Age
20
Location
米国
Website
pk11.us
XP
2,523
Country
United States
View attachment 294274

I patched the dsi rom with shantae-title-fix.ips, the title can be displayed now, but the game can't run now.
Oh huh, that's really weird... Sorry I didn't test better, I figured it'd work since I made sure all the checksums were correct and I only touched the banner.

It seems like there's actually something in the game that checks if the banner's been tampered with and refuses to load, editing the banner of another DSiWare (Bloons TD 4) works just fine...

I'm not sure there's an easy fix for it unfortunately, did a bit of testing and it always seems to get stuck if you touch anything in the banner... I guess just reinstall the unpatched version for now at least, I'll be sure to post about it if I figure out why

Edit: I did some further testing and it appears that the game won't boot if any of the banner checksums have been edited, it doesn't care about the actual banner data... however the launcher does care about those checksums and refuses to display a banner (blank white box) if they're wrong... So probably need to patch the game wherever it checks that I guess, which is beyond what I know how to do.
Could we potentially scan the ROM for missing banner languages before installation? You could find the first one that exists and then just apply it everywhere, then rewrite the CRC.

Perhaps this could be integrated into TMFH as well, if that thing ever gets an update.
I was going to say that's smart and I'll do that in a bit, but since it seems to somehow break this game better not to for now at least.
 
Last edited by Pk11,

andot

Well-Known Member
Newcomer
Joined
Apr 11, 2017
Messages
57
Trophies
0
Age
41
XP
493
Country
Switzerland
Oh huh, that's really weird... Sorry I didn't test better, I figured it'd work since I made sure all the checksums were correct and I only touched the banner.

It seems like there's actually something in the game that checks if the banner's been tampered with and refuses to load, editing the banner of another DSiWare (Bloons TD 4) works just fine...

I'm not sure there's an easy fix for it unfortunately, did a bit of testing and it always seems to get stuck if you touch anything in the banner... I guess just reinstall the unpatched version for now at least, I'll be sure to post about it if I figure out why

Edit: I did some further testing and it appears that the game won't boot if any of the banner checksums have been edited, it doesn't care about the actual banner data... however the launcher does care about those checksums and refuses to display a banner (blank white box) if they're wrong... So probably need to patch the game wherever it checks that I guess, which is beyond what I know how to do.

I was going to say that's smart and I'll do that in a bit, but since it seems to somehow break this game better not to for now at least.
This game is very special, the USA version also can't run on my Japanese NDSi/NDSiLL, but the Europe version can run very well.
 

andot

Well-Known Member
Newcomer
Joined
Apr 11, 2017
Messages
57
Trophies
0
Age
41
XP
493
Country
Switzerland
I installed Make-Forwarder-Dsi by NTM, then I use it create a GBARunner2 Forwarder, then I installed the GBARunner2 Forwarder by NTM too, now I can use GBARunner2 from sysNAND now, I also installed TWiLight Menu++ into sysNAND, it also works well.

微信图片_20220119204151.jpg
微信图片_20220119204207.jpg
微信图片_20220119204306.jpg


But I noticed that the Game Code of GBARunner2 is ####, so the TItle ID is 00030004 23232323, and some other Homebrew app's Game Code is also ####, If I installed another one, this title must be overwritten. How can I change the title ID to avoid conflict with another app.
微信图片_20220119205304.jpg
 

Pk11

A catgirl with a DSi
OP
Member
Joined
Jun 26, 2019
Messages
716
Trophies
1
Age
20
Location
米国
Website
pk11.us
XP
2,523
Country
United States
I installed Make-Forwarder-Dsi by NTM, then I use it create a GBARunner2 Forwarder, then I installed the GBARunner2 Forwarder by NTM too, now I can use GBARunner2 from sysNAND now, I also installed TWiLight Menu++ into sysNAND, it also works well.

View attachment 294305View attachment 294306View attachment 294307

But I noticed that the Game Code of GBARunner2 is ####, so the TItle ID is 00030004 23232323, and some other Homebrew app's Game Code is also ####, If I installed another one, this title must be overwritten. How can I change the title ID to avoid conflict with another app.
View attachment 294308
If an app has a game code of #### it will be automatically randomized on installation, if you check the Titles menu you should see that it has 4 random letters.
 

Ahmeteled

Active Member
Newcomer
Joined
Feb 2, 2022
Messages
35
Trophies
0
Age
15
XP
53
Country
Jordan
I installed TWiLight Menu++ using the nand title manager. It works when I launch sysNAND from unlaunch. But if I launch sysNAND natively, it gives me "An error has occured. Please refer to the booklet idk the rest". Do I have to load sysNAND through unlaunch or I did something wrong...
 

Pk11

A catgirl with a DSi
OP
Member
Joined
Jun 26, 2019
Messages
716
Trophies
1
Age
20
Location
米国
Website
pk11.us
XP
2,523
Country
United States
I installed TWiLight Menu++ using the nand title manager. It works when I launch sysNAND from unlaunch. But if I launch sysNAND natively, it gives me "An error has occured. Please refer to the booklet idk the rest". Do I have to load sysNAND through unlaunch or I did something wrong...
Do you have sound in the DSi Menu? If so you need to reinstall Unlaunch with launcher patches enabled. Unfortunately there's not a way to both keep sound and the splash while letting Unlaunch patch out the RSA check at the moment.
 
General chit-chat
Help Users
    Veho @ Veho: https://i.imgur.com/U7XXJ62.mp4