Nintendo DS File Formats

Edit on Github | Updated: 1st April 2024

The Nintendo DS (Codename NITRO) utilises a number of different file formats either created by Nintendo or a third party developer. If you are interested in reverse engineering a DS game then you will most likely come across these formats, so it is a good idea to have at least some knowledge of how they work.

The main file formats used in Nintendo DS games are outlined in the table below, with further detail in the sections of this post.

Extension Description
.tad Installable application for Nintendo Dsi (similar to the WAD format on Wii)
.nds Dump of a Nintendo DS Game Card (unofficial)
.srl Official Dump of a Nintendo DS Game Card

TAD (similar to a Wii WAD)

TAD files are installable applications for the Nintendo DSi, similar in function to the WAD file for the Wii console.

Creation of TAD files

Developers would create these files by converting an SRL ROM to TAD format with a tool called maketad.

It is not common to see TAD files out in the wild as they tend to be used by developers. However in the Platinum leak there was a huge archive of DSi applications in TAD format. Some of these are even debug versions so may contain full debug symbols useful for reverse engineering.

Usage of TAD files

Developers would use an application called TwlNmenu to install TAD files on their DSi hardware.

However there doesn’t seem to be a tool capable of installing TAD files on a modified DSi as of September 2020. However you can use the details in the next section to extract a DS ROM file (SRL) from the TAD file.

Extracting TAD file content

Using the split_tad_console script (from twToolsRed) one can extract the Nintendo DSi ROM (SRL) file from a TAD file 1. This has been tested with The Legend of Zelda 4 Swords Tad file available in the Platinum Leak.

There is also an alternative python script from a user on 4chan: #This is for Python 2from Crypto.Cipher import AES #pycrypto. If on windows, h - Pastebin.com

One can then use the steps in the SRL section below to mount the SRL to a directory and view its contents.

From the sounds of it on a 3DS you can use GodMode9 to convert the SRL to a CIA, or on preview, install the SRL directly. NO$GBA should be able to launch it too once it’s in SRL format 1.

Re-signing a TAD file

Interestingly it is possible to resign a TAD file using the Wii resigning tools, but it won’t be able to be installed on a modified DSi due to anti-tampering methods 2.

TwlNmenu on 3DS?!

Do not run TwlNmenu on 3DS unless you have backed up your TWLN partition and you find a way to get valid certificates. In theory if you got valid certificates you would be able to install the TAD files but noone has yet managed to do it.

You can see a video of running TwlNmenu on a 3DS below:


SRL Format

SRL is the extension Nintendo uses for Nintendo DS ROMS and is the same as the NDS format. You can rename .srl files to .nds and they should play in an emulator 3.

Also it seems that on the Wii U Nintendo used the .srl file extension for their Nintendo DS emulated ROMs.

Extracting SRL content

To extract the content of a SRL ROM file you can use the ninfs tool to mount the SRL to a directory and then view its contents, like so 1:

mount_srl swords.srl ~/mnt_srl

TMD Format (Title metadata)

A TMD file is simply just a meta data file that stores information about an App such as the contents and SHA1 hashes for verification. The format is also used for 3DS and Wii titles.

For more information check out the DSiBrew page: Title metadata - DSiBrew


NLF Format (NitroROM List File)

The .NLF file is interesting as it is a NitroROM List File as it seems to list the contents of the DS SRL file. It is believed these are generated by a tool in the SDK and are used by developers to make it easier to see the contents of what is in the ROM.


References