Community:Gates to Infinity DLC Editing Tutorial
DLC Editing Tutorial is a guide for editing downloadable content in Pokémon Mystery Dungeon: Gates to Infinity. This can be useful for making a .cia file that doesn't include unused downloadable content (or that only includes such content), or for creating custom DLCs such as custom music or dungeons.
Note that the terminal commands used on this page were used on Linux. On other operating systems, such as Windows, minor adjustments may be required.
If using Windows, make sure file extensions are enabled.
Prerequisites
- Basic knowledge on how to use command line tools
- A .cia file of the original DLC (named gti_dlc.cia in this tutorial)
- CTRTool (https://github.com/3DSGuy/Project_CTR/releases/tag/ctrtool-v1.2.0)
- MakeROM (https://github.com/3DSGuy/Project_CTR/releases/tag/makerom-v0.18.4)
The following is only needed for the optional "Modifying the DLC" section.
Put the above in the same folder, and open a terminal from that folder.
DLC Filenames
Contents can be identified by the first part of their filenames.
|
Extracting the DLC
Run the following command to extract the Contents from the .cia to the current folder.
./ctrtool --contents=contents gti_dlc.cia
You can put the files in their own folder for convenience. The rest of this tutorial assumes the contents files are in a folder named "contents", and that this "contents" folder is alongside "makerom" and the other programs downloaded at the start of the guide.
Rebuilding the DLC
Before continuing, you need to create a text file with the name "gtidlc.rsf" and that contains the following text:
Option:
MediaFootPadding: true
EnableCrypt: false
SystemControlInfo:
SaveDataSize: $(SaveSize)K
Put this text file in the same folder as "makerom".
Choose from the list at the beginning of the guide which Contents files you want to include in your DLC .cia file. Note that "0000" must be included. Names of the Contents files consist of four numbers/letters (the first part), followed by a dot, followed by a longer sequence of numbers and letters (the second part). When mentioning them in the MakeROM command, you need to add at the end of the filename ":0x", followed by the first part, followed by ":0x", followed by the second part. For example, "contents/contents.0000.345057da" becomes "contents/contents.0000.345057da:0x0000:0x345057da".
The following are examples of what the command might look like. You can modify the examples, or use the examples as they are if you are satisfied with what they do.
Example 1: Only Official DLC
This command makes a DLC .cia file that only contains DLC that was officially distributed.
./makerom -f cia -rsf gtidlc.rsf -o gti_dlc_eu_out.cia -ckeyid 0 -major 0 -minor 1 -micro 0 -DSaveSize=0 -ignoresign -dlc -i contents/contents.0000.00000000:0x0000:0x00000000 -i contents/contents.0001.00000001:0x0001:0x00000001 -i contents/contents.0002.00000002:0x0002:0x00000002 -i contents/contents.0003.00000003:0x0003:0x00000003 -i contents/contents.0004.00000004:0x0004:0x00000004 -i contents/contents.0005.00000005:0x0005:0x00000005 -i contents/contents.0006.00000006:0x0006:0x00000006 -i contents/contents.0007.00000007:0x0007:0x00000007 -i contents/contents.0008.00000008:0x0008:0x00000008 -i contents/contents.0009.00000009:0x0009:0x00000009 -i contents/contents.000a.0000000a:0x000a:0x0000000a -i contents/contents.000b.0000000b:0x000b:0x0000000b -i contents/contents.000c.0000000c:0x000c:0x0000000c -i contents/contents.0033.00000033:0x0033:0x00000033 -i contents/contents.0034.00000034:0x0034:0x00000034 -i contents/contents.0035.00000035:0x0035:0x00000035 -i contents/contents.0036.00000036:0x0036:0x00000036 -i contents/contents.0037.00000037:0x0037:0x00000037 -i contents/contents.0038.00000038:0x0038:0x00000038 -i contents/contents.0039.00000039:0x0039:0x00000039 -i contents/contents.003a.0000003a:0x003a:0x0000003a -i contents/contents.003b.0000003b:0x003b:0x0000003b -i contents/contents.003c.0000003c:0x003c:0x0000003c -i contents/contents.003d.0000003d:0x003d:0x0000003d -i contents/contents.003e.0000003e:0x003e:0x0000003e -i contents/contents.0065.00000065:0x0065:0x00000065
Example 2: Only Unused DLC Music
This command makes a DLC .cia file that only contains the unused and officially not distributed DLC music tracks (Craggy Coast, Star Cave, and both versions of Vast Ice Mountain Peak).
./makerom -f cia -rsf gtidlc.rsf -o gti_eu_unused_music_only.cia -ckeyid 0 -major 0 -minor 1 -micro 0 -DSaveSize=0 -ignoresign -dlc -i contents/contents.0000.00000000:0x0000:0x00000000 -i contents/contents.003f.0000003f:0x003f:0x0000003f -i contents/contents.004c.0000004c:0x004c:0x0000004c -i contents/contents.0062.00000062:0x0062:0x0000000062
Running a command like the two examples above creates a new .cia file that contains DLC and can be installed through 3DS homebrew software such as FBI.
Modifying the DLC
Follow the steps above to verify that rebuilding works. If it does, you can start making changes to the files, and after you have changed them, you can follow the rebuild steps again.
To make changes, Contents are further extracted to see and modify the actual files, which are similar to the files in the romfs of the base game. Once the edits are made, the Contents need to be rebuilt.
Extracting Files From Contents
Run the following command. Replace contents/contents.0001.00000001 with the file you want to extract. In this example, it uses the file for the Ivy Park dungeon.
./ctrtool --romfsdir=romfs --exefsdir=exefs --exheader=exheader.bin contents/contents.0001.00000001
Changing Dungeon or Soundtrack Name
The easiest thing to change is the name of the dungeon. After extracting the romfs of a Contents file that contains a dungeon or music (see the list of files at the beginning of the tutorial) open in a hex editor the file place_name.bin (or one of its equivalents in other languages) for dungeons, or dlc_resource.bin for music. You will see the name of the dungeon four times, or the name of the music once for each language. The name is separated by 00 bytes (represented by dots). Replace the letters with the letters you want, keeping the 00 bytes (note that they must be 00 bytes, not other characters that are represented by dots). If the name you're adding is shorter than the original name, replace all remaining letters with 00 bytes. If it's longer, the SIR0 file needs to be rebuilt for pointers to match, which is out of the scope of this guide.
Custom Music
Extract the Contents of a music DLC. In the "stream" folder you will find two .bcstm files. You will need music in .bcstm format. A good place to download music from various video games in .bcstm format is https://smashcustommusic.net/. Another easy way to obtain them is to extract them from other 3DS games. There are also programs that can be used to convert music to .bcstm. Once you have the .bcstm file you want, rename it to the name of one of the files in the DLC's "stream" folder, and replace the original file with the new one.
Rebuilding Modified Contents
Run the following commands. Replace contents.0001.00000001 with the desired filename.
./3dstool -cvtf romfs edited_romfs.bin --romfs-dir romfs
./makerom -f ncch -target t -rsf gtidlc.rsf -romfs edited_romfs.bin -o contents.0001.00000001
Replace the old Contents file with the rebuilt Contents file, then follow the steps in the "Rebuilding the DLC" section.
See Also
Cheat Codes (Pokémon IDs) • Hacking Guides (Gates to Infinity DLC Editing Tutorial • Female Partner Guide) • Unofficial Translations (Gates to Infinity Chinese Unofficial Translation • Gates to Infinity Korean Unofficial Translation) |
Cheat Codes • Gates to Infinity DLC Editing Tutorial • Female Partner Guide • Items (IDs • Item Categories) • List of Ground Maps • Pokémon IDs |
References
- Guide written and researched by B with additional help and research by Pinkolol16 and Artegonit.