ROM Hack custom-install - Install CIAs to a Nintendo 3DS SD card entirely on PC

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
5,957
Trophies
2
XP
6,475
Country
United States
custom-install is a Python 3.6+ tool that will install CIA files to a Nintendo 3DS SD card entirely on a PC. This completely bypasses the slow wireless and I/O speeds of the hardware.

Example speeds installing Pokémon Ultra Moon, about 3.45 GB (does not include final step to install a ticket and seed):
  • Class 4 SD: 15 minutes, 15 seconds
  • Class 10 UHS-1 microSD: 2 minutes, 58 seconds
  • For comparison, FBI network install to a New 3DS with a Class 10 UHS-1 microSD: 48 minutes, 14 seconds
Thanks to wwylele and his work on save3ds which has made modifying title.db on PC possible.

More details on usage can be found at the source repository:
https://github.com/ihaveamac/custom-install

Get the Windows standalone releases at:
https://github.com/ihaveamac/custom-install/releases

Need help? Ask on this thread, or join us on Discord! https://ihaveahax.net/view/Discord (Please do not come here asking how to obtain games.)
 
Last edited by ihaveahax,

Nomi20

Well-Known Member
Member
Joined
May 14, 2016
Messages
198
Trophies
0
Location
Montana
XP
1,234
Country
United States
custom-install is a Python 3.6+ tool that will install CIA files to a Nintendo 3DS SD card entirely on a PC. This completely bypasses the slow wireless and I/O speeds of the hardware.

This has no GUI at the moment, so you are expected to know how to use a command-line interface. It also currently does not verify CIAs, so corrupted CIAs may not show errors during install.

Example speeds installing Pokémon Ultra Moon, about 3.45 GB (does not include final step to install a ticket and seed):
  • Class 4 SD: 15 minutes, 15 seconds
  • Class 10 UHS-1 microSD: 2 minutes, 58 seconds
  • For comparison, FBI network install to a New 3DS with a Class 10 UHS-1 microSD: 48 minutes, 14 seconds
Thanks to wwylele and his work on save3ds which has made modifying title.db on PC possible.

Please read the README for usage details.
https://github.com/ihaveamac/custom-install
This is awesome! I will test it out as soon as possible!
 

raxadian

Well-Known Member
Member
Joined
Nov 10, 2018
Messages
3,136
Trophies
1
Age
38
XP
2,879
Country
Argentina
This is sure convenient and might save time. That being said I do tend to do other things when my 3DS is installing Cias, like play with my PSP, my Switch or in my PC. Or watch videos on Youtube using my smartphone.
 
  • Like
Reactions: jeffyTheHomebrewer

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
5,957
Trophies
2
XP
6,475
Country
United States
So no more double size needed to install?
Double size was required if you copied the file to the SD and installed from that. It wasn't required for network install as the file was being installed during the transfer.

What this does differently is write the contents of the CIA directly to the SD, which is much faster than waiting for the 3DS to do it. This wasn't possible for a long time since there didn't exist any tools to read and write to "title.db" which is what keeps track of installed titles, as well as to generate "cmd" files which verify installed contents.
 
Last edited by ihaveahax,

lone_wolf323

Well-Known Member
Member
Joined
May 27, 2011
Messages
4,338
Trophies
1
XP
3,385
Country
Canada
Does the custom install finalize need to be ran after each game installed this way or just once after you got what ya want done?
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
5,957
Trophies
2
XP
6,475
Country
United States
Does the custom install finalize need to be ran after each game installed this way or just once after you got what ya want done?
custom-install-finalize is used to install tickets and seeds. It only has to be run once after using the script. custom-install.py writes a file to the SD card (cifinish.bin) containing this information.
 
Last edited by ihaveahax,

PokemonTotalWar

Member
Newcomer
Joined
Oct 9, 2018
Messages
13
Trophies
0
Age
21
Location
Meadville, PA
XP
72
Country
United States
This might be a silly question, but if someone were to pull moveable.sed and boot9.bin, and not finish installing any CFW, would this still work, or does it rely on anything CFW provides? Essentially, provided the files are from the 3DS, would this work on stock FW?

EDIT: Looks like no, because we need to be able to run a 3dsx file?
 
Last edited by PokemonTotalWar,

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
5,957
Trophies
2
XP
6,475
Country
United States
This might be a silly question, but if someone were to pull moveable.sed and boot9.bin, and not finish installing any CFW, would this still work, or does it rely on anything CFW provides? Essentially, provided the files are from the 3DS, would this work on stock FW?

EDIT: Looks like no, because we need to be able to run a 3dsx file?
If you only ever install signed games that the system already has a ticket for from the eShop, you could do that, if you somehow obtain the title contents without having a system to get them from. This is not really worth it though.
 

PokemonTotalWar

Member
Newcomer
Joined
Oct 9, 2018
Messages
13
Trophies
0
Age
21
Location
Meadville, PA
XP
72
Country
United States
If you only ever install signed games that the system already has a ticket for from the eShop, you could do that, if you somehow obtain the title contents without having a system to get them from. This is not really worth it though.

Interesting, okay. Yeah, I'm not sure if there's any real use-case for that, I was just curious. Thanks! Great work. If I'm ever installing any sizeable CIAs in the future, I know how I'm doing it.
 

Kwyjor

Well-Known Member
Member
Joined
May 23, 2018
Messages
1,762
Trophies
1
XP
2,156
Country
Canada
So does this that title.db has no more mysteries? It seems like there are many tales out there of title.db getting corrupted (leaving mysterious entries in the list of installed titles that wreak havoc when people try to remove them).

A much sillier question: will custom-install-finalize.3dsx run if you chainload Luma from ntrboot? (It is of course a very silly question because nobody chainloads Luma from ntrboot.)
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
5,957
Trophies
2
XP
6,475
Country
United States
So does this that title.db has no more mysteries? It seems like there are many tales out there of title.db getting corrupted (leaving mysterious entries in the list of installed titles that wreak havoc when people try to remove them).
Probably, we have all the resources to re-build a title.db from existing title contents. There's still the chance of titles doing something weird that our own title info entries don't have.
A much sillier question: will custom-install-finalize.3dsx run if you chainload Luma from ntrboot? (It is of course a very silly question because nobody chainloads Luma from ntrboot.)
As long as you can run 3dsx homebrew with the required permissions I don't see why it wouldn't.
 
General chit-chat
Help Users
    Swagboi308 @ Swagboi308: did you see that dumb 50$ price for the nso expansion pack?