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

NekoBit

Member
Newcomer
Joined
Nov 5, 2019
Messages
19
Trophies
0
Age
27
XP
97
Country
United States
Alright so it seems to work, but the console still shoots out some data from the save3ds_fuse file

Also sorry for being so late, im never betting on time again...

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

https://github.com/ihaveamac/custom-install/pull/3
Its done, working, and complete! You can fork from my branch if you are impatient but please hopefully wait until it gets merged and we receive feedback from @ihaveamac .

Also 1 question for you guys: How does it look on Windows/MacOS (GUI)? The widgets look ugly based on my previous screenshots on Linux, but perhaps the widgets should match on other Operating Systems?
 

Alexander1970

XP not matters.
Member
Joined
Nov 8, 2018
Messages
14,973
Trophies
3
Location
Austria
XP
2,495
Country
Austria
Alright so it seems to work, but the console still shoots out some data from the save3ds_fuse file

Also sorry for being so late, im never betting on time again...

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

https://github.com/ihaveamac/custom-install/pull/3
Its done, working, and complete! You can fork from my branch if you are impatient but please hopefully wait until it gets merged and we receive feedback from @ihaveamac .

Also 1 question for you guys: How does it look on Windows/MacOS (GUI)? The widgets look ugly based on my previous screenshots on Linux, but perhaps the widgets should match on other Operating Systems?

How the GUI looks ??? WHO CARES !! You made a Windows Tool that saves Time and is easy to use.:D
The 3DS Community will be grateful for it.:yay3ds:

Many,many Thanks to you !!!! :bow::bow:
 

Xmortal

Other Nickname Legarad
Member
Joined
May 28, 2008
Messages
305
Trophies
1
Age
36
Location
Venezuela
XP
1,100
Country
Venezuela
HELP

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>
 

YukidaruPunch

Well-Known Member
Member
Joined
Oct 24, 2017
Messages
270
Trophies
0
Age
35
XP
755
Country
Brazil
https://github.com/ihaveamac/custom-install/pull/3
Its done, working, and complete! You can fork from my branch if you are impatient but please hopefully wait until it gets merged and we receive feedback from @ihaveamac .

Also 1 question for you guys: How does it look on Windows/MacOS (GUI)? The widgets look ugly based on my previous screenshots on Linux, but perhaps the widgets should match on other Operating Systems?
First of all: thank you very much for your hard work!

Second of all: I have absolutely no idea what I'm supposed to be doing.
I don't really know what is a fork or a branch or a commit, so in layman's terms, I don't really know what I'm looking at when I open the page. I'm trying to look for something that resembles a download button, but I can't find it. From the starting page linked at the post, where exactly am I supposed to go from there? I'm looking, looking, looking and not really finding what I'm supposed to do.

I'm running Windows (10), so I plan on uploading an image of how the GUI looks like, but I'll be honest I don't really know where to start from there! Is there something that is somewhat like a download button, or some way for me to download the files uploaded?

Edit: OH MY GOD I THINK I HAVE FOUND IT but I'm not really sure. Guess I'll need Python nonetheless. I know I got a 799KB .zip file after cloning/downloading what you put up in the GUI folder. Am I in the right track?

Edit2: Yeah... I'll really need to read more about it or maybe understand it slightly before going further. Unfortunately I have a trip in two days (and won't be taking my 3DS with me) so this is not the best time for me to try it out and discover how everything works. I'll be patient and wait until it's merged and when I get back next week I'll give it a shot. I strongly believe someone will have uploaded an image of how the GUI looks on Windows by then, but if that didn't happen, I'll do it. (I'll probably learn how to use it nonetheless - just not now, as time is short and it's 1 AM around here.)
 
Last edited by YukidaruPunch,

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,821
Country
United States
This still requires double space in the SD memory, but the installation is much faster than the FBI
No, it doesn't require double space. That only applies if you put the CIA on the SD card, which you don't have to do.
HELP

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>
save3ds_fuse.exe is 64-bit and you are using a 32-bit system. As soon as I can I will provide a 32-bit version.
Alright so it seems to work, but the console still shoots out some data from the save3ds_fuse file

Also sorry for being so late, im never betting on time again...

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

https://github.com/ihaveamac/custom-install/pull/3
Its done, working, and complete! You can fork from my branch if you are impatient but please hopefully wait until it gets merged and we receive feedback from @ihaveamac .

Also 1 question for you guys: How does it look on Windows/MacOS (GUI)? The widgets look ugly based on my previous screenshots on Linux, but perhaps the widgets should match on other Operating Systems?
Thanks for the pull-request, I'll give it a try on Windows and macOS soon.
 
  • Like
Reactions: Alexander1970

Xmortal

Other Nickname Legarad
Member
Joined
May 28, 2008
Messages
305
Trophies
1
Age
36
Location
Venezuela
XP
1,100
Country
Venezuela
No, it doesn't require double space. That only applies if you put the CIA on the SD card, which you don't have to do.

save3ds_fuse.exe is 64-bit and you are using a 32-bit system. As soon as I can I will provide a 32-bit version.

Thanks for the pull-request, I'll give it a try on Windows and macOS soon.

I have reviewed, that my laptop is compatible with the 64-bit operating system. Is it possible to install it without losing information? With only 3GB of RAM?
 

NekoBit

Member
Newcomer
Joined
Nov 5, 2019
Messages
19
Trophies
0
Age
27
XP
97
Country
United States
First of all: thank you very much for your hard work!

Second of all: I have absolutely no idea what I'm supposed to be doing.
I don't really know what is a fork or a branch or a commit, so in layman's terms, I don't really know what I'm looking at when I open the page. I'm trying to look for something that resembles a download button, but I can't find it. From the starting page linked at the post, where exactly am I supposed to go from there? I'm looking, looking, looking and not really finding what I'm supposed to do.

I'm running Windows (10), so I plan on uploading an image of how the GUI looks like, but I'll be honest I don't really know where to start from there! Is there something that is somewhat like a download button, or some way for me to download the files uploaded?

Edit: OH MY GOD I THINK I HAVE FOUND IT but I'm not really sure. Guess I'll need Python nonetheless. I know I got a 799KB .zip file after cloning/downloading what you put up in the GUI folder. Am I in the right track?

Edit2: Yeah... I'll really need to read more about it or maybe understand it slightly before going further. Unfortunately I have a trip in two days (and won't be taking my 3DS with me) so this is not the best time for me to try it out and discover how everything works. I'll be patient and wait until it's merged and when I get back next week I'll give it a shot. I strongly believe someone will have uploaded an image of how the GUI looks on Windows by then, but if that didn't happen, I'll do it. (I'll probably learn how to use it nonetheless - just not now, as time is short and it's 1 AM around here.)

Hey, don't feel overwhelmed brother, you don't need to know really. But let me explain anyway. Git allows us to manage versions for software, commits are "snippets" of data for each version, so if I changed some code (in my case, added a GUI and rewrote a module) like I fixed a bug, I would make a commit with a message "Fixed a bug". Commits start to pile up and you can go back to them (revert) if that "bug fix" introduced more bugs. Branches are just multiple commits with names (It looks like a tree!), master is the main branch where users usually look at, I named this branch "module-rewrite", to not make any confusions with the "master" (main) branch, as the name module-rewrite makes since for what I introduced. Github is just an online Git provider. thats the basics pretty much, the rest of the stuff is a google away. Again, the user of a tool shouldn't know, but lots of tools here come from some git provider (github) so I hope that is clear.

Also, I miss worded it. I didn't mean "fork", I meant Clone, or download it. Here is a download from my branch, read the README.md file for instructions
 

Attachments

  • git-branch-explained.png
    git-branch-explained.png
    12.6 KB · Views: 260
Last edited by NekoBit,

HalMuntz97

Member
Newcomer
Joined
Nov 9, 2019
Messages
10
Trophies
0
XP
63
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


Hello, when I tried to launch Homebrew launcher app in order finalize the CIA installs via custom-install-finalize.3dsx, I got this error (black picture). I'm on Boot9Strap with a New N3DS XL, FW is 11.12.0. I also noticed that now the other homebrew apps don't show anymore at the top screen (other picture), and when I click on any of them too, they also give me the same (black) error screen. This is after I closed CMD, and copied custom-install-finalize.3dsx to my SD's 3DS folder (which did not show as a gift on my main menu after booting on console). (@Sophie-bear perhaps you've experienced something similar to this?)
 

Attachments

  • IMG-0440.JPG
    IMG-0440.JPG
    905 KB · Views: 216
  • IMG-0441.JPG
    IMG-0441.JPG
    1.5 MB · Views: 205
Last edited by HalMuntz97,

swosho

Well-Known Member
Newcomer
Joined
Nov 2, 2015
Messages
52
Trophies
0
XP
1,266
Country
Ukraine
Edit: I'm a retard. Grabbed the tool from the master branch and it worked as expected.

custom-install-finalize printed me out this:
Code:
custom-install-finalize v1.0
Reading /cifinish.bin...
Couldn't find TITLE magic for entry, skipping

Press START or B to exit.
 
Last edited by swosho,

checkerchairs

Member
Newcomer
Joined
Oct 11, 2014
Messages
5
Trophies
0
Age
25
XP
134
Country
Australia
Took me a few hours (and a youtube video) to realize how to run pip to install pycryptodomex, and the realization I need to run the command prompt in the folder (duh) to get stuff working, but I'm good now! installed a Pokemon romhack onto my 3DS. Thank you both, ihaveamac and NekoBit! the GUI worked wonderfully.
 

Inochi.no.Zenmai

Well-Known Member
Member
Joined
Jun 1, 2013
Messages
193
Trophies
0
XP
367
Country
United States
Just tested and it works wonders, blazing fast.
At the end, after the custom install finalize has been done on the console, it should add the option to delete the cifinish.bin file from the SD root, or maybe delete it automatically. Just a small thing for these who are very tidy with their SD contents.

With a GUI that is easy for less advanced users this will be godlike. Imagine having this in 2015 or something.

Edit. Going to test the GUI with Zelda ALBW. This one doesn't have an option to add the seedbin, even though it shouldn't be required for this title. How would I do if I have one that requires it?

Edit 2. Zelda with GUI went smoothly on PC, but on the console to finalize it, it said "Couldn't find TITLE magic for entry, skipping."
 
Last edited by Inochi.no.Zenmai,

robyspy

Well-Known Member
Member
Joined
Sep 18, 2018
Messages
179
Trophies
0
XP
943
Country
Italy
Hi @NekoBit, first of all thank you very much for creating the gui of this fantastic option to install the cia from PC. I think I made a bit of confusion in the procedure and now I no longer know what the correct python is to start your gui with gui-custominstall.py file. Under the python images, which of these is the right one to open your gui?
 

Attachments

  • PY.PNG
    PY.PNG
    12.1 KB · Views: 207
  • PY_a.PNG
    PY_a.PNG
    27.8 KB · Views: 183
  • PY_b.PNG
    PY_b.PNG
    39.9 KB · Views: 166
  • Like
Reactions: Alexander1970

alexj9626

Well-Known Member
Member
Joined
Oct 2, 2016
Messages
788
Trophies
0
Age
34
XP
1,512
Country
Panama
This is great, the speed compared to the 3DS is just in another league.

Maybe a dumb question but anyways, i suppose movable.sed is console specific and i cant use the one from lets say, my 3DS and install games into my brothers 3DS, i would have to get his movable.sed and put it in the folder. Is that how it works?
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,821
Country
United States
Hello, when I tried to launch Homebrew launcher app in order finalize the CIA installs via custom-install-finalize.3dsx, I got this error (black picture). I'm on Boot9Strap with a New N3DS XL, FW is 11.12.0. I also noticed that now the other homebrew apps don't show anymore at the top screen (other picture), and when I click on any of them too, they also give me the same (black) error screen. This is after I closed CMD, and copied custom-install-finalize.3dsx to my SD's 3DS folder (which did not show as a gift on my main menu after booting on console). (@Sophie-bear perhaps you've experienced something similar to this?)
I've got no idea about this one. Luma3DS 10.0 and 10.0.1 currently don't show the correct error code. Try 9.1 or a later build to get a real error code to help fix this issue.
When will the GUI update be official? I feel like a very stupid moron trying to do this without a GUI.
Whenever I get around to adding certain important changes and figure out how to pack this into a standalone executable. No ETAs since that's sometimes seen as a release date and I may or may not meet it, sorry.
Maybe a dumb question but anyways, i suppose movable.sed is console specific and i cant use the one from lets say, my 3DS and install games into my brothers 3DS, i would have to get his movable.sed and put it in the folder. Is that how it works?
movable.sed contains an encryption key used to encrypt SD contents. This key is generally unique for all systems.
Edit. Going to test the GUI with Zelda ALBW. This one doesn't have an option to add the seedbin, even though it shouldn't be required for this title. How would I do if I have one that requires it?

Edit 2. Zelda with GUI went smoothly on PC, but on the console to finalize it, it said "Couldn't find TITLE magic for entry, skipping."
This happens since the new custom-install has modified the cifinish.bin format, and custom-install-finalize needs to be updated for it. The source is on the module-rewrite branch and both will be released at the same time.
 
  • Like
Reactions: alexj9626
D

Deleted User

Guest
So I'm having a issue where "the application was unable to start correctly. 0xc0000007b" (with the top saying save3ds_fuse.exe) (fixed by moving to 64bit)
got new errors....
Host IO error: Os { code: 3, kind: NotFound, message: "The system cannot find the path specified." }
Error: IO(Os { code: 3, kind: NotFound, message: "The system cannot find the path specified." })
Importing into Title Database...
Host IO error: Os { code: 3, kind: NotFound, message: "The system cannot find the path specified." }
Error: IO(Os { code: 3, kind: NotFound, message: "The system cannot find the path specified." })
 
Last edited by ,
Joined
May 22, 2016
Messages
924
Trophies
1
Location
Hell, MI
XP
3,648
Country
United States
Can someone please break this process down for a complete idiot who has no idea what he's doing? "Install the packages: py -3 -m pip install --user -r requirements.txt" what does that even mean? where do i put that command?is it EVEN a command? I don't get this at all. (using the version with the gui)
 

robyspy

Well-Known Member
Member
Joined
Sep 18, 2018
Messages
179
Trophies
0
XP
943
Country
Italy
To open powershell you can directly write the word powershell in the address of the folder (custom-install-module-rewrite) and press the enter key.
or inside the folder (custom-install-module-rewrite) you can click the right mouse button + shift key on the keyboard, then click on open powershell window here.
powershell.PNG
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: It's mostly the ones that are just pictures and no instructions at all