Rebuilding the Japanese DLC - SilentHeII/Fire-Emblem-Fates-Festival-of-Bonds-Translation-Project GitHub Wiki
Overview
I'm going to assume you already know how to take the DLC.cia and get the NCCH containers, etc. But for the sake of completeness, I'm going to show you my method.
What you will need:
- Get the latest versions of ctrtool and makerom
- Fire Emblem Archive Tool Is this 7 year old tool still relevant?
- RomFS Builder Again, are there better options now?
Extraction
- I extracted the
FE_FATES_uncensored_v1.1.cia
using the command:
ctrtool -p --contents=DLC FE_FATES_DLC_uncensored_v1.1.cia
This generates a bunch of NCCH archives labeled DLC.00XX.000000YY
.
There's also a lot of junk DLC archives we unfortunately need or else the DLC does not install correctly on emulators (if you exclude the junk DLC, you can still install it perfectly on real hardware).
- I then used the following command to extract the DLC
romfs.bin
:
ctrtool -p --romfs=romfs.bin DLC.00XX.000000YY
and then this command to extract the contents of the romfs.bin
into a folder:
ctrtool --romfsdir=FolderName romfs.bin
- Use FEAT to decompress/recompress the text.
Rebuilding NCCH container
- Use RomFS Builder to create a new
romfs.bin
fromFolderName
. - Copy and paste this into notepad and save it as
DLC.rsf
:
BasicInfo:
Title : Fire Emblem if
CompanyCode : 00
ProductCode : CTR-M-BFXJ-00
ContentType : Application # Application / SystemUpdate / Manual / Child / Trial
TitleInfo:
UniqueId : 0x012dc
Category : AddOnContents # Application / SystemApplication / Applet / Firmware / Base / DlpChild / Demo / Contents / SystemContents / SharedContents / AddOnContents / Patch / AutoUpdateContents
- Use the following command in cmd to rebuild a new DLC NCCH container:
makerom -f ncch -target t -rsf DLC.rsf -romfs romfs.bin -o DLC.00XX.000000YY
Editing the descriptions in the DLC menu
- Extract the ExeFS into
ContentInfoExefs.bin
using this command:
ctrtool --exefs=ContentInfoExefs.bin DLC.0000.0000006b
- Extract the contents of
ContentInfoExefs.bin
into a folder with:
ctrtool -t exefs --exefsdir=ContentInfoExefs ContentInfoExefs.bin
- Drag the
icon.bin
into the main project directory with the other tools. - Extract the RomFS into
ContentInfoRomfs.bin
using this command:
ctrtool --romfs=ContentInfoRomfs.bin DLC.0000.0000006b
- Extract the contents of
ContentInfoRomfs.bin
into a folder with:
ctrtool --romfsdir=ContentInfoRomfs ContentInfoRomfs.bin
- You can now edit the titles of the DLC via Hex editing in
ContentInfoArchive_JPN_ja.bin
. - In order to rebuild the NCCH for the DLC menu, use RomFS Builder to make a new
ContentInfoRomfs.bin
from theContentInfoFomfs
folder. - Use the following command to create the new NCCH container:
makerom -f ncch -target t -rsf DLC.rsf -icon icon.bin -romfs ContentInfoRomfs.bin -o DLC.0000.0000006b
Let's make a DLC.cia
- Paste this into a separate notepad file and call it
rom.rsf
:
Option:
MediaFootPadding: true
EnableCrypt: false
SystemControlInfo:
SaveDataSize: $(SaveSize)K
- Paste this command into cmd to make a whole new
DLC.cia
:
makerom -f cia -rsf rom.rsf -o FE_Fates_Uncensored_NEW.cia -ckeyid 0 -major 0 -minor 17 -micro 0 -DSaveSize=0 -dlc -i DLC.0000.0000006b:0x0000:0x0000006b -i DLC.0001.00000017:0x0001:0x00000017 -i DLC.0002.00000018:0x0002:0x00000018 -i DLC.0003.00000019:0x0003:0x00000019 -i DLC.0004.0000001a:0x0004:0x0000001a -i DLC.0005.00000005:0x0005:0x00000005 -i DLC.0006.00000006:0x0006:0x00000006 -i DLC.0007.00000007:0x0007:0x00000007 -i DLC.0008.00000025:0x0008:0x00000025 -i DLC.0009.0000001c:0x0009:0x0000001c -i DLC.000a.0000001d:0x000a:0x0000001d -i DLC.000b.00000042:0x000b:0x00000042 -i DLC.000c.0000001f:0x000c:0x0000001f -i DLC.000d.00000020:0x000d:0x00000020 -i DLC.000e.00000029:0x000e:0x00000029 -i DLC.000f.0000003f:0x000f:0x0000003f -i DLC.0010.00000040:0x0010:0x00000040 -i DLC.0011.0000002c:0x0011:0x0000002c -i DLC.0012.0000002d:0x0012:0x0000002d -i DLC.0013.0000002e:0x0013:0x0000002e -i DLC.0014.0000002f:0x0014:0x0000002f -i DLC.0015.00000030:0x0015:0x00000030 -i DLC.0016.00000031:0x0016:0x00000031 -i DLC.0017.00000032:0x0017:0x00000032 -i DLC.0018.00000033:0x0018:0x00000033 -i DLC.0019.00000034:0x0019:0x00000034 -i DLC.001a.00000035:0x001a:0x00000035 -i DLC.001b.00000036:0x001b:0x00000036 -i DLC.001c.00000037:0x001c:0x00000037 -i DLC.001d.00000038:0x001d:0x00000038 -i DLC.001e.00000039:0x001e:0x00000039 -i DLC.001f.0000003a:0x001f:0x0000003a -i DLC.0020.00000043:0x0020:0x00000043 -i DLC.0021.00000044:0x0021:0x00000044 -i DLC.0022.00000045:0x0022:0x00000045 -i DLC.0023.00000046:0x0023:0x00000046 -i DLC.0024.00000047:0x0024:0x00000047 -i DLC.0025.00000048:0x0025:0x00000048 -i DLC.0026.00000049:0x0026:0x00000049 -i DLC.0027.0000004a:0x0027:0x0000004a -i DLC.0028.00000057:0x0028:0x00000057 -i DLC.0029.0000004c:0x0029:0x0000004c -i DLC.002a.0000004d:0x002a:0x0000004d -i DLC.002b.0000004e:0x002b:0x0000004e -i DLC.002c.0000004f:0x002c:0x0000004f -i DLC.002d.00000050:0x002d:0x00000050 -i DLC.002e.00000051:0x002e:0x00000051 -i DLC.002f.00000052:0x002f:0x00000052 -i DLC.0030.00000053:0x0030:0x00000053 -i DLC.0031.0000005e:0x0031:0x0000005e -i DLC.0032.0000005f:0x0032:0x0000005f -i DLC.0033.0000005a:0x0033:0x0000005a -i DLC.0034.00000060:0x0034:0x00000060 -i DLC.0035.00000061:0x0035:0x00000061 -i DLC.0036.00000063:0x0036:0x00000063 -i DLC.0037.0000006c:0x0037:0x0000006c -i DLC.0038.00000065:0x0038:0x00000065 -i DLC.0039.00000066:0x0039:0x00000066 -i DLC.003a.00000067:0x003a:0x00000067 -i DLC.003b.0000006d:0x003b:0x0000006d -i DLC.003c.0000006e:0x003c:0x0000006e -i DLC.003d.0000006f:0x003d:0x0000006f
Proof of concept
You've now reminded me how utterly annoying getting DLC working on emulator was. Thank you for that.