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

  • Thread starter Thread starter ihaveahax
  • Start date Start date
  • Views Views 216,548
  • Replies Replies 412
  • Likes Likes 129
You have a space before game.cia, therefore the .cia filename is not getting passed properly. In other words, you have:
$ py -3 custom-install.py -b boot9.bin -m movable.sed --sd F:\ game.cia
but should have:
$ py -3 custom-install.py -b boot9.bin -m movable.sed --sd F:\game.cia
Incorrect, the original is a valid command for custom-install and Windows Command Prompt. "--sd" should be getting a directory, which F:\ is. But bash (in git bash) was parsing \ with a space after it, causing this error as explained above.
 
Last edited by ihaveahax,
Well all the gateway holdouts have no excuse now. Also, installing the UM cia on my 3DS definitely didn't take 48 mins.
 
Well all the gateway holdouts have no excuse now. Also, installing the UM cia on my 3DS definitely didn't take 48 mins.
Installing over the network? That's what I tried in the example. A local install may be a bit faster, but you also have to consider time copying the file over first.
 
  • Like
Reactions: Pickle_Rick
You have a space before game.cia, therefore the .cia filename is not getting passed properly. In other words, you have:
$ py -3 custom-install.py -b boot9.bin -m movable.sed --sd F:\ game.cia
but should have:
$ py -3 custom-install.py -b boot9.bin -m movable.sed --sd F:\game.cia
the F:\ and the cia are two seperate arguments, also it was just bash, works fine with cmd
 
Last edited by Confusion_18,
this is all of it (also i'm on windows if that helps):
$ py -3 custom-install.py -b boot9.bin -m movable.sed --sd F:\ game.cia
usage: custom-install.py [-h] -m MOVABLE [-b BOOT9] [--sd SD]
[--skip-contents]
cia [cia ...]
custom-install.py: error: the following arguments are required: cia
Just use F: without the \ that worked for me, got the same problem ;)
 
Thanks its work like a charm.
Awesome work... I use N2DS XL so didn't need to unscrew. ^^
 
Last edited by VivreDNA,
This is obviously a revolutionary step for the 3DS.
For the GUI, I very much imagine as a PC based FBI. Would this be possible? It should be able to display the titles installed, delete them, add them, etc, and some other file operations. In addition it should allow simple file transfers.
I also envision a batch installation of CIA's, including a warning if you go over the space limit on the SD card.
 
This is obviously a revolutionary step for the 3DS.
For the GUI, I very much imagine as a PC based FBI. Would this be possible? It should be able to display the titles installed, delete them, add them, etc, and some other file operations. In addition it should allow simple file transfers.
I also envision a batch installation of CIA's, including a warning if you go over the space limit on the SD card.
I'm no legend at coding but I can say that Python gui's are a pain.
 
Last edited by Confusion_18,
All apologize for my new account spam, apparently occurred when I tried creating an account... anyways
I am willing to help write a Gtk3 client for this tool, and if that isn't what you want (since not many linux users exist here) I can try the dreaded tk gui since that works cross platform, I think. I don't know QT, but if I did write a QT library, the code would probably suck.
 
All apologize for my new account spam, apparently occurred when I tried creating an account... anyways
I am willing to help write a Gtk3 client for this tool, and if that isn't what you want (since not many linux users exist here) I can try the dreaded tk gui since that works cross platform, I think. I don't know QT, but if I did write a QT library, the code would probably suck.
You can use any gui toolkit you like. I'm pretty sure Gtk3 has ports to Windows and Mac but I don't know about their quality. Cross-platform would be nice, especially since most of the users who aren't experienced with a command line interface are probably on Windows.

If you choose to use something other than Python, I can update custom-install to support json output or something that can be easily parsed by a wrapper program.
 
Last edited by ihaveahax,
You can use any gui toolkit you like. I'm pretty sure Gtk3 has ports to Windows and Mac but I don't know about their quality. Cross-platform would be nice, especially since most of the users who aren't experienced with a command line interface are probably on Windows.

If you choose to use something other than Python, I can update custom-install to support json output or something that can be easily parsed by a wrapper program.

I can use python for the library, best I could ask is if you want this to be an unofficial wrapper tool, and you support json output, or I manually fork your tool and add the gui wrapper and you merge it (or I keep the fork), we would need to make it a bit more OOP friendly maybe or rely on functions a bit instead of just a script, it's your choice. (I am willing to turn most of your code into functions tomorrow maybe too)
 
I can use python for the library, best I could ask is if you want this to be an unofficial wrapper tool, and you support json output, or I manually fork your tool and add the gui wrapper and you merge it (or I keep the fork), we would need to make it a bit more OOP friendly maybe or rely on functions a bit instead of just a script, it's your choice. (I am willing to turn most of your code into functions tomorrow maybe too)
Yeah it's mostly in script form right now, most things I make it start off as that (I'm not a professional developer by any means, just a hobbyist). Having it integrated in the project would be nice, but whatever's easier.

Before trying to change it to be functions or objects, I think we should figure out what and how the gui looks like and functions, then make the script into a module. I think it would be easier and better that way.
 
Yeah it's mostly in script form right now, most things I make it start off as that (I'm not a professional developer by any means, just a hobbyist). Having it integrated in the project would be nice, but whatever's easier.

Before trying to change it to be functions or objects, I think we should figure out what and how the gui looks like and functions, then make the script into a module. I think it would be easier and better that way.

Just a hobbyist
A really good one, I could never get good or even know where to begin with what you are doing to the homebrewing community!

Here is something I went overboard as hell with and wrote in HTML/CSS, lol (I haven't touched HTML/CSS in a while so it was a way to practice as well), I wanted to aim at a minimalist GUI that is primarily just the terminal with with GUI elements for ease of use.

upload_2019-11-5_1-25-27.png

Edit: Select drive meant to select the MicroSD card, should've made it clearer
 

Attachments

  • upload_2019-11-5_1-25-23.png
    upload_2019-11-5_1-25-23.png
    15.2 KB · Views: 176
Last edited by NekoBit,
A really good one, I could never get good or even know where to begin with what you are doing to the homebrewing community!

Here is something I went overboard as hell with and wrote in HTML/CSS, lol (I haven't touched HTML/CSS in a while so it was a way to practice as well), I wanted to aim at a minimalist GUI that is primarily just the terminal with with GUI elements for ease of use.

View attachment 185113
Edit: Select drive meant to select the MicroSD card, should've made it clearer
Looks fine to me, though we could probably add a bit more to it, like a progress bar. We also need a way for a user to select boot9.bin, seeddb.bin, and movable.sed.

The installation code could run on a second thread, though I have little experience with threads and sometimes hear using them with guis is a pain. Maybe you have more experience with that?
 
Figures... Oh, I almost forgot the multiprocessing module exists, we could probably use that.
This is what I used for one of my projects, its good, but I still struggled a little personally with it, did some research and have been doing some things wrong (Will look into it all tomorrow), I need to sleep well anyway, so goodnight.
 
  • Like
Reactions: ihaveahax
Hello.:)

Great ! Awesome ! Finally ! :D
Thank you very much for this much needed Tool.:bow::yay:
Outstanding Work !!!

@ihaveamac

The 3DS Homebrew Community has to bow in awe and with respect to you.

Thank you very much.:)
 
  • Like
Reactions: Rahkeesh
Ooh. Now if only I didn't already have pretty much every game I wanted installed. I always wanted something like this, only wish it had happened sooner. Very nice nonetheless.
 
I was able to install Pokémon Ultra Sun using this method, but... when I run the finalize step it says something about failing to install the ticket?
The game works fine anyway, but I'm curious why this might be happening.
 
I was able to install Pokémon Ultra Sun using this method, but... when I run the finalize step it says something about failing to install the ticket?
The game works fine anyway, but I'm curious why this might be happening.
How are you running custom-install-finalize?
 

Site & Scene News

Popular threads in this forum