3ds To Cia Converter Could Not Read Exheader File

11 votes, 33 comments. Trying to convert my.3ds files to.cia using '3DS simple CIA converter v5.0'. I have boot9.bin in the 3ds converter root. CIA stands for CTR Importable Archive. This format allows the installation of titles to the 3DS. CIA files and titles on Nintendo's CDN contain identical data. As a consequence, valid CIA files can be generated from CDN content. This also means CIA files can contain anything that titles on Nintendo's CDN can contain.

  1. 3ds To Cia Converter Could Not Read Exheader Files
  2. 3ds To Cia Converter Error Could Not Read Exheader File
  3. 3ds To Cia Converter V4.1 Could Not Read Exheader File

I am trying to build a cia from a.3ds (2.0GB) file installed on my SD directory.I cannot download a cia from the internet because the specific file i am trying to build is of an Alpha Sapphire rom hack. I navigated to the file on Godmode9 and chose to build cia from the file, but it instantly says CIA build failed. I have a New 3DS XL, I followed this guide to get from 11.2.0-35 to 2.1 (Yes I know now not to use video guides so please do not tell me to do so). I found out after downgrading that to move more files over to my SD card I would need a card reader which I didn't have so I tried to update back to 11.2.

As the age of digital games goes on, more and more people are downloading titles from the Nintendo eShop rather than purchasing physical copies. The convenience of this is you always have your games with you, so you don’t have to swap out cards or carry them with you. There are plenty of downsides that should be addressed by Nintendo in the future, but if you find yourself running out of space on a 32GB card for all of your games, this guide should help you.

[Note: This guide is for Windows computers. Mac and Linux formatting can be done using standard tools available on those platforms.]

Getting Started

You’ll need a 64GB SD card or larger. You’ll also need a PC in order to do the transfer after you’ve successfully formatted the destination card, as well as the Nintendo 3DS and your old card. The difficult part of this is that Windows 7 itself doesn’t make it easy to format the SD card. The SD card needs to be formatted to FAT32, but Windows 7 only supports this format up to 32GB. In order to properly format the card, we’ll need a partition tool.

I recommend MiniTool Partition Wizard, which can be downloaded for free. Once you install it, you should see a screen like this that has all of your drives.

As you can see, I have two hard disks, and the third is labeled F, which is the SD card inserted into the computer. This is the drive I want to format for the Nintendo 3DS. Be 100% certain you select the proper drive, or you could do a lot of damage to your computer!

Select the proper partition, and then choose “Create”. You’ll want to select the following options:

Create As: Primary
File System: FAT32
Cluster Size: 32kb
Drive Letter:

Be sure you set a drive letter, otherwise Windows won’t recognize the drive to let you copy files to it. Hit “Okay” and it should format the card for use with your Nintendo 3DS. Once you hit Okay, you’ll need to “Apply” the settings in the main window. This will take a moment. After it’s complete, you’ll have an “all changes were completed successfully” window.

That’s it! It’s ready to be used in the Nintendo 3DS. Turn your machine off and then back on and insert the SD card and you should get an initializing screen. Once that is complete, check the Data Management app of the Nintendo 3DS and you should see a very large number of blocks, according to the size of the SD card you just formatted. Mine was a 64GB card and this is what it looks like:

Transferring Files to the Nintendo 3DS

Now that you have both SD cards formatted for use in the Nintendo 3DS, you need to transfer files from your old card to the new card. Copy EVERYTHING on the old card to a new folder on your desktop named Nintendo. Depending on the amount of files you have on your old card, this transfer could take a while.

Once you have the files in a folder on your desktop, insert the newly formatted card into your computer and then drag all the files from the folder on your desktop to the new SD card. Once again, this process could take a while if you’ve got a lot of data. Once that’s finished, you’ve got one more step before you can enjoy your new high capacity card.

Open the “Nintendo 3DS” folder on your card and you should see two folders, both with large strings of letters and numbers as the name. Right click each and choose Properties to see the file size. Open the largest of the two folders and copy everything inside it to the smaller folder. Once that is done, you can delete the old folder. Then you should be able to insert the SD card into your Nintendo 3DS and see all the games you’ve downloaded, as well as have tons of extra space for new games!

If you have any questions about the process, don’t hesitate to leave a comment and I’ll try and help you through any issues you may be having with this method.

SanDisk 200GB microSD card – $77

3ds To Cia Converter Could Not Read Exheader File

Neverstill Media has affiliate partnerships. These do not influence editorial content, though Neverstill Media may earn commissions for products purchased via affiliate links.

3ds To Cia Converter Could Not Read Exheader Files

convert .3ds to .cia with just an exheader xorpad (old crappy method)
3ds-to-cia-quick.sh
# Manual and DLPChild for some reason don't work.
# it must be a make_cia issue since I tried using makerom and hex editing and it worked fine
if [ !-f'$1' ];then
echo'no'
exit 1
fi
rm 0.cxi ncch.header exheader.bin exefs.bin romfs.bin logo.bcma.lz plain.bin converted.cia
EXHXOR=$(python2 get-exh-xorpad.py '$1')
3dstool -xvt012f cci orig.cxi manual.cfa dlpchild.cfa '$1'
3dstool -xvtf cxi orig.cxi --header ncch.header --exh exheader.bin --exh-xor $EXHXOR --exefs exefs.bin --romfs romfs.bin --logo logo.bcma.lz --plain plain.bin
if [ -s logo.bcma.lz ];then
USELOGO='--logo logo.bcma.lz'
fi
if [ -s manual.cfa ];then
USEMANUAL='--content1=manual.cfa --id_1=00000001 --index_1=0001'
fi
if [ -s dlpchild.cfa ];then
USEDLPCHILD='--content2=dlpchild.cfa --id_2=00000002 --index_2=0002'
fi
#cp exheader.bin exheader-old.bin
python2 exh-patch.py exheader.bin
3dstool -cvtf cxi conv.cxi --header ncch.header --exh exheader.bin --exh-xor $EXHXOR --exefs exefs.bin --romfs romfs.bin $USELOGO --plain plain.bin --not-update-exefs-hash --not-update-romfs-hash
make_cia --content0=conv.cxi --id_0=00000000 --index_0=0000 $USEMANUAL$USEDLPCHILD --savesize=$(python2 get-savesize.py exheader.bin) -o CONVERTED.cia
exh-patch.py
#!/usr/bin/env python2
importsys, os.path
iflen(sys.argv) !=2:
print('only need one argument for ExHeader')
sys.exit()
ifnotos.path.isfile(sys.argv[1]):
print('file doesn't exist')
sys.exit()
ifos.path.getsize(sys.argv[1]) !=0x800:
print('not 2048 bytes (ExHeader size)')
sys.exit()
f=open(sys.argv[1], 'r+b')
f.seek(0xD)
x=f.read(1)
y=ord(x)
print('original: '+hex(y))
y=y|2
print('shifted: '+hex(y))
f.seek(0xD)
f.write(chr(y))
f.close()
get-exh-xorpad.py
#!/usr/bin/env python2
from __future__ importprint_function
importbinascii, sys, os.path
iflen(sys.argv) !=2:
print('only need one argument for rom')
sys.exit()
ifnotos.path.isfile(sys.argv[1]):
print('file doesn't exist')
sys.exit()
rom=open(sys.argv[1], 'rb')
rom.seek(0x190)
tid=binascii.hexlify(rom.read(8)[::-1])
print(tid.upper()+'.Main.exheader.xorpad', end=')
rom.close()
get-savesize.py

3ds To Cia Converter Error Could Not Read Exheader File

#!/usr/bin/env python2
from __future__ importprint_function
importbinascii, sys, os.path
iflen(sys.argv) !=2:
print('only need one argument for ExHeader')
sys.exit()
ifnotos.path.isfile(sys.argv[1]):
print('file doesn't exist')
sys.exit()
exh=open(sys.argv[1], 'rb')
exh.seek(0x1C0)
ss=binascii.hexlify(exh.read(8)[::-1])
print(int(ss, 16)/1024, end=')
exh.close()

3ds To Cia Converter V4.1 Could Not Read Exheader File

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment