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

AkikoKumagara

The Coolest Bear Around
Member
Joined
Jan 4, 2017
Messages
1,538
Trophies
1
Website
thebearsden.web.fc2.com
XP
3,941
Country
United States
@Sophie-bear maybe try dumping them again. Some games i have the header file broke from converting them to cxi and then back to cia. Thats just me but i think that may cause it to fail too.
Just a wild guess
Yeah, I'll try a few things and see if I can't come to some conclusion of what the cause might be. Thanks :)
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,070
Trophies
2
XP
7,835
Country
United States
I'm running into it again with some other .cia files.
Could them being created with the wrong version number maybe cause this somehow? A couple I have are like that and coincidentally when I start installing a batch with them is when I start running into the problem again.
I’m not sure right now. I’ll create a version of custom-install-finalize that prints more information to help figure out what this issue is. The wrong version shouldn’t matter much though, since this program only installs a ticket and seed, and doesn’t do anything with the actual title.
 
  • Like
Reactions: AkikoKumagara

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
23,316
Trophies
4
Location
Space
XP
13,893
Country
Norway
Though this error is strange and I'll have to look into it, DSiWare titles can't be installed to the SD card, so you have to do it the old-fashioned way.


Looks good to me so far. In this little example, I would probably rename logLines to log_lines to match PEP 8 and be consistent with everything else in the project.

Some of the methods should be split into their own functions, like one that starts writing a single title, one to update the title database, one to update cifinish.bin and add to it (currently it overwrites). Then start() should exist to call all of them to keep it simple for anything else that may use this.
Maybe it would be possible to create importable DSiWare that can be imported through System Settings? Although I am not sure if that would be any faster than just installing the DSiWare CIA on the console... But I suppose it could be useful to some.
 
  • Like
Reactions: Deleted-236924

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,070
Trophies
2
XP
7,835
Country
United States
Maybe it would be possible to create importable DSiWare that can be imported through System Settings? Although I am not sure if that would be any faster than just installing the DSiWare CIA on the console... But I suppose it could be useful to some.
It's technically possible, but I don't know the format of DSiWare exports. Plus given their small size it wouldn't be that useful.
so will there be a single .exe file instead of many files where we don't need to type or run any the command's ?
As soon as there is a gui fully implemented I will try to build and provide standalone exe and app forms.
 

NekoBit

Member
Newcomer
Joined
Nov 5, 2019
Messages
19
Trophies
0
Age
27
XP
97
Country
United States
upload_2019-11-7_0-28-13.png

Wish if I didn't have tasks in my way I could've finished it tonight, but it will wait until tomorrow.
I am sooooo close, but I think it will be pushed tomorrow.
Need to do threads, but the percentage works and all that jazz. Give it some time. The code is kinda messy too, it got kind of all over the place when I had to get the thing jumbled together, will make some room tomorrow to clean as well.
 
Last edited by NekoBit,

MorningBlunt

Controller Smasher
Member
Joined
Jun 11, 2017
Messages
124
Trophies
0
XP
1,901
Country
Jamaica
Fantastic, but I'll wait for the GUI because I lazy.

--------------------- MERGED ---------------------------

Also, what would 'Skip Contents' do?
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,070
Trophies
2
XP
7,835
Country
United States
Fantastic, but I'll wait for the GUI because I lazy.

--------------------- MERGED ---------------------------

Also, what would 'Skip Contents' do?
--skip-contents means everything but writing the contents of the title happens (creating cifinish.bin and adding to title.db). This is useful if, for example a game was written to the SD, but it failed to add to title.db. You can use this to finish the install without rewriting all of the game's data.
 
  • Like
Reactions: MorningBlunt

Tempylon

Well-Known Member
Member
Joined
Mar 4, 2018
Messages
248
Trophies
0
XP
1,020
Country
Germany
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
Should I create a GUI for you?
 
Last edited by Tempylon,

HalMuntz97

Member
Newcomer
Joined
Nov 9, 2019
Messages
10
Trophies
0
XP
63
Country
United States
Quick tutorial:
FIRST AND FOREMOST, install Python and add it to the Windows path variable
Extract custom-install-master somewhere you want.
Paste boot9.bin seeddb.bin and movable.sed to the root of the custom-install-master folder
Take out sd-card from 3ds, download custom-install-finalize and paste it in the 3ds folder of your sd-card
Paste the .cia files you want to install to the root of the custom-install-master folder
Open command prompt, preferably with admin rights, in the folder custom-install-master
Insert the following code
Code:
py -3 custom-install.py -b boot9.bin -m movable.sed --sd *YourSDCARDDISKLETTER:\* *yourgamename*.cia *yourgamename*.cia
Wait for install
Insert sd-card to 3ds and open custom-install-finalize through homebrew channel
???
PROFIT!
Hi, can you tell me where I went wrong? Thank you in advance.
upload_2019-11-9_1-13-1.png
 

Attachments

  • upload_2019-11-9_1-12-38.png
    upload_2019-11-9_1-12-38.png
    56.4 KB · Views: 147

AkikoKumagara

The Coolest Bear Around
Member
Joined
Jan 4, 2017
Messages
1,538
Trophies
1
Website
thebearsden.web.fc2.com
XP
3,941
Country
United States
Hi, can you tell me where I went wrong? Thank you in advance.
Make sure you're running that in the directory that custom-install.py is located in. If all the necessary files are not in the AM directory you're currently in, it won't find them. You can use the command "cd" followed by the path to the folder the files you're working with are in to change directories.
 

HalMuntz97

Member
Newcomer
Joined
Nov 9, 2019
Messages
10
Trophies
0
XP
63
Country
United States
Make sure you're running that in the directory that custom-install.py is located in. If all the necessary files are not in the AM directory you're currently in, it won't find them. You can use the command "cd" followed by the path to the folder the files you're working with are in to change directories.
If I understand correctly, you're saying I should open CMD in the folder where "custom-install.py" "boot9.bin" "moveable.sed" and "seeddb.bin" are located? Please take a look (my folder's content):
 

Attachments

  • Capture.JPG
    Capture.JPG
    79.5 KB · Views: 201
Last edited by HalMuntz97,

AkikoKumagara

The Coolest Bear Around
Member
Joined
Jan 4, 2017
Messages
1,538
Trophies
1
Website
thebearsden.web.fc2.com
XP
3,941
Country
United States
If I understand correctly, you're saying I should open CMD in the folder where "custom-install.py" "boot9.bin" "moveable.sed" and "seeddb.bin" are located? Please take a look (my folder's content):
That's right. Either Open CMD there or change directories to there after opening CMD. Doesn't matter which you do, same result.
 

Wuigi

Well-Known Member
Member
Joined
Sep 14, 2012
Messages
728
Trophies
1
XP
1,787
Country
United States
Worked really well for me, thanks for your efforts to make this program possible.
I only wonder where the CIAs are installed to, directly to the correct ID0/ID1/... paths?
@HalMuntz97 Shift+right click in the directory with the custom-install.py and select open powershell/open command prompt here.
 
Last edited by Wuigi,

AkikoKumagara

The Coolest Bear Around
Member
Joined
Jan 4, 2017
Messages
1,538
Trophies
1
Website
thebearsden.web.fc2.com
XP
3,941
Country
United States
Love! Could you teach me how please? I can't seem to figure it out admittedly
Open a command prompt, then click in the address bar I've highlighted in my attachment (in the blank space, not on the text). Copy that text. type "cd" then a space in the command prompt, then paste that text you copied. Press Enter, then run the command you're using to install the cia files again.

Screenshot_1.png
 
Last edited by AkikoKumagara,

HalMuntz97

Member
Newcomer
Joined
Nov 9, 2019
Messages
10
Trophies
0
XP
63
Country
United States
Open a command prompt, then click in the address bar I've highlighted in my attachment (in the blank space, not on the text). Copy that text. type "cd" then a space in the command prompt, then paste that text you copied. Press Enter, then run the command you're using to install the cia files again.

View attachment 185700
You rock and a half, look at what you've helped me achieve. Thank YOU! :-)
 

Attachments

  • Capture.JPG
    Capture.JPG
    64.2 KB · Views: 193
  • Like
Reactions: AkikoKumagara

Xmortal

Other Nickname Legarad
Member
Joined
May 28, 2008
Messages
306
Trophies
1
Age
36
Location
Venezuela
XP
1,103
Country
Venezuela
This still requires double space in the SD memory, but the installation is much faster than the FBI

I have a error

Code:
D:\custom-install-master>py -3 custom-install.py -b boot9.bin -m movable.sed --s
d G:\ LEGOCUTCB.cia
Finding path to install to...
Reading CIA...
Installing The Chase Begins...
Writing /title/00040000/000ad500/content/00000000.tmd...
 100.0%  0.0 MiB / 0.0 MiB
Writing /title/00040000/000ad500/content/00000000.app...
 100.0%  735.3 MiB / 735.3 MiB
Writing /title/00040000/000ad500/content/00000001.app...
 100.0%  0.4 MiB / 0.4 MiB
Generating blank save at /title/00040000/000ad500/data/00000001.sav...
Generating /title/00040000/000ad500/content/cmd/00000001.cmd
Writing /title/00040000/000ad500/content/cmd/00000001.cmd
[b'\x00\x00\x01.\x00\x00\x00\x00', b'@\x00\x00\x00', b'\x00\x00', b'\x02\x00', b
'\x01\x00\x00\x00', b'\x00\x00\x00\x00', b'\x01\x00\x00\x00', b'\x01\x00\x00\x00
', b'\x00\x00\x00\x00', b'\x00\x00\x00\x00', b'\x00\x00\x00\x00\x01\x00\x00\x00'
, b'CTR-P-AA8E\x00\x00\x00\x00\x00\x00', b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x00\x00', b'GS\xed\xc4', b'\x00\x00\x00\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00']
Extracting Title Database...
Traceback (most recent call last):
  File "custom-install.py", line 318, in <module>
    subprocess.run(save3ds_fuse_common_args + ['-x'])
  File "C:\Python3\lib\subprocess.py", line 453, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\Python3\lib\subprocess.py", line 756, in __init__
    restore_signals, start_new_session)
  File "C:\Python3\lib\subprocess.py", line 1155, in _execute_child
    startupinfo)
OSError: [WinError 216] Esta versión de %1 no es compatible con la versión de Windows que está ejecutando. Compruebe la información de sistema del equipo para consultar si necesita una versión x86 (32 bits) o x64 (64 bits) del programa, y después póngase en contacto con el editor del software

D:\custom-install-master>
 
Last edited by Xmortal,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan @ BakerMan:
    i said i was sleeping...
  • BakerMan @ BakerMan:
    sleeping with uremum
  • K3Nv2 @ K3Nv2:
    Even my mum slept on that uremum
  • TwoSpikedHands @ TwoSpikedHands:
    yall im torn... ive been hacking away at tales of phantasia GBA (the USA version) and have so many documents of reverse engineering i've done
  • TwoSpikedHands @ TwoSpikedHands:
    I just found out that the EU version is better in literally every way, better sound quality, better lighting, and there's even a patch someone made to make the text look nicer
  • TwoSpikedHands @ TwoSpikedHands:
    Do I restart now using what i've learned on the EU version since it's a better overall experience? or do I continue with the US version since that is what ive been using, and if someone decides to play my hack, it would most likely be that version?
  • Sicklyboy @ Sicklyboy:
    @TwoSpikedHands, I'll preface this with the fact that I know nothing about the game, but, I think it depends on what your goals are. Are you trying to make a definitive version of the game? You may want to refocus your efforts on the EU version then. Or, are you trying to make a better US version? In which case, the only way to make a better US version is to keep on plugging away at that one ;)
  • Sicklyboy @ Sicklyboy:
    I'm not familiar with the technicalities of the differences between the two versions, but I'm wondering if at least some of those differences are things that you could port over to the US version in your patch without having to include copyrighted assets from the EU version
  • TwoSpikedHands @ TwoSpikedHands:
    @Sicklyboy I am wanting to fully change the game and bend it to my will lol. I would like to eventually have the ability to add more characters, enemies, even have a completely different story if i wanted. I already have the ability to change the tilemaps in the US version, so I can basically make my own map and warp to it in game - so I'm pretty far into it!
  • TwoSpikedHands @ TwoSpikedHands:
    I really would like to make a hack that I would enjoy playing, and maybe other people would too. swapping to the EU version would also mean my US friends could not legally play it
  • TwoSpikedHands @ TwoSpikedHands:
    I am definitely considering porting over some of the EU features without using the actual ROM itself, tbh that would probably be the best way to go about it... but i'm sad that the voice acting is so.... not good on the US version. May not be a way around that though
  • TwoSpikedHands @ TwoSpikedHands:
    I appreciate the insight!
  • The Real Jdbye @ The Real Jdbye:
    @TwoSpikedHands just switch, all the knowledge you learned still applies and most of the code and assets should be the same anyway
  • The Real Jdbye @ The Real Jdbye:
    and realistically they wouldn't

    be able to play it legally anyway since they need a ROM and they probably don't have the means to dump it themselves
  • The Real Jdbye @ The Real Jdbye:
    why the shit does the shitbox randomly insert newlines in my messages
  • Veho @ Veho:
    It does that when I edit a post.
  • Veho @ Veho:
    It inserts a newline in a random spot.
  • The Real Jdbye @ The Real Jdbye:
    never had that i don't think
  • Karma177 @ Karma177:
    do y'all think having an sd card that has a write speed of 700kb/s is a bad idea?
    trying to restore emunand rn but it's taking ages... (also when I finished the first time hekate decided to delete all my fucking files :wacko:)
  • The Real Jdbye @ The Real Jdbye:
    @Karma177 that sd card is 100% faulty so yes, its a bad idea
  • The Real Jdbye @ The Real Jdbye:
    even the slowest non-sdhc sd cards are a few MB/s
  • Karma177 @ Karma177:
    @The Real Jdbye it hasn't given me any error trying to write things on it so I don't really think it's faulty (pasted 40/50gb+ folders and no write errors)
  • DinohScene @ DinohScene:
    run h2testw on it
  • DinohScene @ DinohScene:
    when SD cards/microSD write speeds drop below a meg a sec, they're usually on the verge of dying
    DinohScene @ DinohScene: when SD cards/microSD write speeds drop below a meg a sec, they're usually on the verge of dying