Tutorial  Updated

Photo guide to installing DSiWare backups on real hardware and emulator

First, some USEFUL NOTES

Tickets are not actually required by the DSi launcher (this was unknown at the time the above procedure was written), you may skip the related steps

While still incomplete, @MarioMasta64 is working on automating this process for Windows+Python users:
http://gbatemp.net/threads/a-tool-to-make-converting-dsiware-from-3ds-to-dsi-easier.479996/

If you are using an emunand (through Hiya, for example), consider using DSi Title Manager instead; there's no reason it couldn't work on sysnand with minor changes but... it doesn't do that, yet or ever




Steal Acquire some decrypted DSiware apps. You can use Funkeycia, 3DSeStuff, etc the 3DS eShop to legally download them, rip them to cia, then use ctrtool to extract the cia into "contents" = .app (the very newest versions of ctrtool decrypt them during this extraction); alternatively you can use Godmode9 to directly copy the appropriate .app under twln:/title/00030004/* to the SD.
There's also a no-intro catalogue but no romset I know of, officer...

Backup your console's NAND, CID, and ConsoleID using well documented methods (hardmod if you have some DSiware that can be copied to SD, or fwTool+safety mod if you have an usable DSiware exploit - Team Twiizer's original sudokuhax is not suitable #clobberedkeyslots, while fourswordshax and the leaked ugopwn use minitwlpayload).
If you're using NO$GBA with a nand you didn't dump yourself, you can find the CID and the byteswapped ConsoleID by looking at the end of the dump with a hex editor.
1 NOCASHNAND.PNG
(Adding this block is also how you convert a raw backup for use with NO$GBA, just in case you didn't read the manual)

Use TwlTool to decrypt the nand.
2 nand decrypt.PNG

Mount the 1st partition of the decrypted image with OSFMount (Linux equivalent: losetup + mount; Mac equivalent, hdiutil + mount I guess?).
3 osfmount.PNG 4 osfmount.PNG

Pick (any?) ticket from the NAND, preferably from the regular DSiware category = 00030004, and decrypt it with TwlTool. This will be a base for the edited tickets we will make.
5 ticket crypto.PNG

Open the folder with our dumped title. You will find a "content" folder, possibly a "data" folder, and a .ctx file if it came from a 3DS.
Delete it, then go to the content folder.
Remove the "cmd" folder, and the 3DS-format TMD.
6 source.PNG 7 source content.PNG

Search the TMD pack for the full TitleID of the DSiware; copy the TMD to the content folder, renaming it to "title.tmd".
Open title.tmd in a hex editor.
8 tmd.PNG

Find offset 1E7; rename the .app file (better known as .srl or .nds) so that the last 2 digits are the ones written at 1E7.
Find offset 208; delete everything from there to the end of the file. (A small number of tmds are already trimmed).
Save the file.
9 tmd edit.PNG

Open the ticket we decrypted earlier in a hex editor.
Find offset 1DC and replace the next 8 bytes with the TitleID of the app we're installing;
Save the file with a name equal to the TitleID-low of the app.
10 ticket edit.PNG 11 ticket save.PNG

Use TwlTool to encrypt the ticket, and put it into the NAND.
12 ticket crypto.PNG

Copy the title's (content & data) folder to the NAND.
13 app copy.PNG

Unmount the NAND and re-encrypt it.
14 unmount.PNG 15 nand crypt.PNG

If you're using NO$GBA, you will have to re-add the footer since it will have been removed by TwlTool's NAND features.
16 nand footer.PNG

Enjoy your DSiWarez, and if you liked it, BUY THE ORIGINAL... oh wait, they closed the DSi shop
17.PNG 18.PNG
 
Last edited by Ryccardo,

ww97

Wajiro
Member
Joined
May 5, 2016
Messages
192
Trophies
0
Age
27
Location
In Temple of Form
XP
222
Country
Iran
I'm confused a bit. This guide has nothing to do with "injecting/installing" DSi ROM dumps into the NAND. All it does is decrypting the NAND, trimming a ticket from the NAND itself, and re-encrypting it again.
 

Ryccardo

Penguin accelerator
OP
Member
Joined
Feb 13, 2015
Messages
7,689
Trophies
1
Age
28
Location
Imola
XP
6,904
Country
Italy
I'm confused a bit. This guide has nothing to do with "injecting/installing" DSi ROM dumps into the NAND. All it does is decrypting the NAND, trimming a ticket from the NAND itself, and re-encrypting it again.
Try to re-read it with quite a little bit more care, since it describes:

Decrypting the nand
Copying a DSiware executable sourced elsewhere, and an appropriate TMD for it, to the appropriate place in twlnand
Decrypting an original DSiware ticket, editing a copy so that it has the titleID of the above title, renaming it appropriately, re-encrypting it, and copying it to the appropriate place in twlnand
Re-encrypting the nand :)

That said, this procedure has some unnecessary steps which weren't known to be so at the time (the console doesn't even care for the presence of a ticket; and if you are using a CFW with "emunand", no flash crypto required, of course) if all you want is Fr33 G4m3z
 
D

Deleted-376337

Guest
That said, this procedure has some unnecessary steps which weren't known to be so at the time (the console doesn't even care for the presence of a ticket; and if you are using a CFW with "emunand", no flash crypto required, of course) if all you want is Fr33 G4m3z

This guide has still been pretty useful for me (for personal reasons).
 
  • Like
Reactions: Ryccardo

dpad_5678

Ape weak on own. Ape strong in unity.
Member
Joined
Nov 19, 2015
Messages
2,219
Trophies
1
XP
2,880
Country
United States
Try to re-read it with quite a little bit more care, since it describes:

Decrypting the nand
Copying a DSiware executable sourced elsewhere, and an appropriate TMD for it, to the appropriate place in twlnand
Decrypting an original DSiware ticket, editing a copy so that it has the titleID of the above title, renaming it appropriately, re-encrypting it, and copying it to the appropriate place in twlnand
Re-encrypting the nand :)

That said, this procedure has some unnecessary steps which weren't known to be so at the time (the console doesn't even care for the presence of a ticket; and if you are using a CFW with "emunand", no flash crypto required, of course) if all you want is Fr33 G4m3z
Wow, wish I knew some of this at the time. Probably doubled the time it took for me to install DSiWare by just making up the tickets alone. 10 years later, and the console's finally cracked wide open.
 
  • Like
Reactions: Ryccardo

SilverTheGamer

Active Member
Newcomer
Joined
Sep 27, 2016
Messages
34
Trophies
0
Age
32
XP
126
Country
Poland
Steal Acquire some decrypted DSiware apps. A not terribly efficient (but pretty simple to do and understand) way is getting them from FreeShop on a modded 3DS, then copying twln:/title/00030004/* to the SD.
Alternatively you can use Funkeycia, 3DSeStuff, etc to download them as cia, then use ctrtool to extract the cia into "contents" = .app (the very newest versions of ctrtool decrypt them during this extraction)
How do i extract the .app file?
 

Ryccardo

Penguin accelerator
OP
Member
Joined
Feb 13, 2015
Messages
7,689
Trophies
1
Age
28
Location
Imola
XP
6,904
Country
Italy
How do i extract the .app file?
"ctrtool the-dsiware.cia --contents=pizza" or something like that (check out ctrtool's built in help)
That will create a file with "pizza" in its name (whatever you typed, of course), for a DSiware cia that's your content/app/srl/dsi/nds
 

SilverTheGamer

Active Member
Newcomer
Joined
Sep 27, 2016
Messages
34
Trophies
0
Age
32
XP
126
Country
Poland
"ctrtool the-dsiware.cia --contents=pizza" or something like that (check out ctrtool's built in help)
That will create a file with "pizza" in its name (whatever you typed, of course), for a DSiware cia that's your content/app/srl/dsi/nds
The extension is a string of numbers and letters. Will it work fine if i change the extension to .app?
 

Ryccardo

Penguin accelerator
OP
Member
Joined
Feb 13, 2015
Messages
7,689
Trophies
1
Age
28
Location
Imola
XP
6,904
Country
Italy
The extension is a string of numbers and letters. Will it work fine if i change the extension to .app?
Yeah, the format is {prefix you input like "pizza"}.{content number}.{content id} - content id is the name of the .app file as it would be on 3DS (unsurprisingly, ctrtool's naming scheme is designed for 3DS software)
 
  • Like
Reactions: SilverTheGamer

SilverTheGamer

Active Member
Newcomer
Joined
Sep 27, 2016
Messages
34
Trophies
0
Age
32
XP
126
Country
Poland
Yeah, the format is {prefix you input like "pizza"}.{content number}.{content id} - content id is the name of the .app file as it would be on 3DS (unsurprisingly, ctrtool's naming scheme is designed for 3DS software)
I did it with a certain game and the end is just a string of zeros, will it still work?

--------------------- MERGED ---------------------------

I did it with a certain game and the end is just a string of zeros, will it still work?
I checked the string of text the program output, apparently it read the titleid correctly, just didn't name it accordingly
 

Ryccardo

Penguin accelerator
OP
Member
Joined
Feb 13, 2015
Messages
7,689
Trophies
1
Age
28
Location
Imola
XP
6,904
Country
Italy
I did it with a certain game and the end is just a string of zeros, will it still work?
I checked the string of text the program output, apparently it read the titleid correctly, just didn't name it accordingly
Sure, it's a content id (ie official file name when installed) which is completely unrelated to the titleid
 

Firexploit

Well-Known Member
Newcomer
Joined
Nov 7, 2018
Messages
77
Trophies
0
Location
NintendoSDK
XP
1,121
Country
Germany
Has someone successfully created a valid ticket without using a base ticket from 00030004? For example a system title ticket (00030005). My dsi didn't came with any dsi ware pre installed :(
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: https://youtu.be/3eGAHfC5P-Y?si=Fo3iEl1pZ4D_O6dp +1