Extraction
Extract NCCH (content) from CIA
ctrtool --contents=contents /path/to/file.cia
mv contents.* ncch.bin
Extract NCCH
3dstool -xtf cxi ncch.bin --header header.bin --exh exheader.bin --exefs exefs.bin --logo logo.bin --romfs romfs.bin
Extract RomFS
3dstool -xtf romfs romfs.bin --romfs-dir romfs/
Extract code, icon from ExeFS
3dstool -xtf exefs exefs.bin --exefs-dir exefs/
Creation
Create RomFS file
3dstool -ctf romfs romfs.bin --romfs-dir romfs/
Make NCCH from the ELF plus RomFS file
makerom -f ncch -o ncch.bin -elf file.elf -romfs romfs.bin -rsf file.rsf
Make CIA from NCCH
makerom -f cia -o file.cia -content ncch.bin:0:0
ftpd
Installing
Download and install the latest .cia (or .3dsx) from https://github.com/mtheall/ftpd/releases
Running
-
Make sure wifi is enabled on the 3DS
-
Start ftpd
Connecting from Gnome file browser
-
Make sure ftpd is running
The FTP address will be displayed on the screen
-
Click Other Locations in the lower left
-
Connect to Server: type in the FTP address
⚠ Make sure to add the port as well (typically 5000), e.g.
ftp://192.168.0.123:5000
-
If you get this error: No route to host
Open a terminal and ping the 3DS, e.g.
ping -c 1 192.168.0.123
-