New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEATURE REQUEST] Add the ability to install carts and 3ds format game dumps to the SD card without converting to .cia first. #580
Comments
Before even adding such a feature we'd have to implement all the CartInstall features into the master GM9 source. Still, once that's done I don't see any purpose to such a feature other than piracy - if you have the .3ds file it's logical to assume you also have the original cart (if you have the .cia, you should've dumped it from one of your consoles, too). Will leave this open, but keep all of the above in mind. |
Oh, come on! .3ds, sure, but from the cart? Directly installing from cart, for one, requires you to have a cart. Benefits? You don’t need more than DOUBLE the size of the cart free on your card, for one. Second, it lets you keep all of your games with you, without having to carry a bunch of carts. |
You could say the same thing about most of the .3ds file related features in godmode9 including the feature to convert a 3ds to a cia. That goes double for the feature to correct badly decrypted .3ds files (as opposed to just warning or offering to rename them) since the only way to obtain those is via a "shady source". |
I actually like the idea, but we're missing code to be able to do this. @aspargas2 is working on DISA support (needed for writing title.db and ticket.db), but I'm unsure about how far he got already. I'd suggest we leave this open for now, although there may be little to no progress for some time. |
The feature to correct the badly dumped ones was only added because way too many people were creating issues about it. About the conversion routines, you could also argue that the CIA format (as created by GM9) is a lot more malleable and lends itself well to being modified. Really old game mods were distributed either as illegal CIA files or as less-shady Delta patches for the original CIA file. The only reason the 3DS format was ever prevalent is Gateway and maybe Sky3DS, and neither are big concerns nowadays. |
DISA/DIFF support is already in gm9 fully and is fully accessible in that you're able to writeably mount any DISA or DIFF file, including all the .db files, which are DIFF files. What's not accessible is the code for manipulating the BDRI filesystem inside the DIFF container for .db files; that code works already but is inaccessible to the user, so all I need to do is replace the old vtickdb code with stuff to use my BDRI code to mount any db file. |
So, what's still missing to be able to install direct to SysNAND, @aspargas2? If it isn't too much, and if you're interested, of course, I wouldn't be too unhappy if you took this change into your hands. You may also point me in the right direction and I'll look into it (when I get to it). |
The main thing that's missing is replacing the old vtickdb code with code to writeably mount a BDRI filesystem. I have partial progress on that and I know the backend of it works. Once that's done, which I really meant for it to be a long time ago, all that's left for an "Install" option on .3ds and .cia files is code to generate a .cmd, .tmd, and title info entry as needed and code to actually copy the contents, all of which is pretty easy. I was hoping you could do those last parts once we get to that stage, because I think it would be significantly less sloppy than if I did it |
Yup, I can do that, no problem :). |
Now that BDRI mounting is merged, is there anything else blocking this? |
From what I know, I'd say that's titledb handling. Other than that it's just an affair of copying the right files to the right place. I'd like to read @aspargas2's take on that, tho. |
Yeah, all that's missing now is code to generate a .cmd file and title info entry, and trivial code to add an "install" option on .3ds files (and presumably .cia flies as well) that would chain this whole process together. I probably shouldn't call that code trivial though, because it would be a good idea to sanity checks in it for things like if the ticket in a .cia is unique to another system. |
Quoting @aspargas2 here with some useful tidbits of info:
|
Following up on the title size thing, it seems that the title size calculations are all different for SD titles, ctrnand titles, and twlnand titles, and I'm not sure if we know what they are for twlnand ones yet. Tagging @ihaveamac, as he probably knows more about this. As far as SD titles go, the repositories I linked above should have good reference code. For ctrnand titles, the magic value 0x8000 (TITLE_ALIGN_SIZE in the code I linked) just needs to be replaced with 0x4000. It should be noted that the title size field is merely cosmetic. It determines the number of blocks the title displays as taking in data management and its size in FBI, but has no effect on anything else. |
Okay, @nl255, @urherenow and everyone who was waiting for this - here is something to try: https://f.secretalgorithm.com/9lz1v/godmode9-v1.9.1-74-gda10a1b1-20200731114630.zip It will do even more than what you asked for, and will allow to install CIA, NCSD (.3DS), NCCH, DSiWare .NDS and files downloaded from NUS/CDN (start with the TMD file here). Keep in mind this is still being worked on. Nothing really bad should happen, but having a backup, just in case, is always a wise decision. |
I think we can close this now, this is in the current prerelease. We still got some work ahead of us, but most stuff works as it should. |
Sorry to comment after the close, but I'm on deployment and don't get a lot of time on the 'net. I have (within just a few weeks) built a later source, and I have installed a game from a cart and from a .cia on an N3DS, and a newer 2DS model as well. Works great! Don't know if this is valuable info or not, but if there is something wrong with the sd card (format, partition, FAKE, whatever), then selecting a .3ds or .cia file does not bring up that menu. It behaves as if it was some random file that you're selecting. The person with the 2DS that I had just hacked with an NTR card wanted to use a larger sd card. The 512GB card he had, was a name I've never heard of, and behaved like it was fake. I got things sorted on a Samsung EVO 256GB card though. |
Describe the feature you'd like
It would be nice to be able to install physical cart based games or 3ds format game dumps to the SD card without having to convert it to a .cia first. Cartinstall can do this with physical carts but not 3ds files.
Describe alternatives you've considered
While it is possible to install cart based games or 3ds format dumps by converting them to a .cia file it is at least twice as slow and requires twice the free space on your SD card. The cartinstall fork of gm9 can do this with physical carts but not .3ds files but presumably the same method could be made to work with them as well.
The text was updated successfully, but these errors were encountered: