Comments (3)
All the game's data could be stored loosely in folders, right down to the .code file, instead of layers of containers. Each cxi could have their own top folder, as well as any updates and dlc. All while being uncompresseable for easy access and modding and being consistent across all dump sources!
Desktop tools like ninfs can mount 3DS game containers and provide exactly what you're looking for: a "broken-down" view of every major component of the game's files. You could also use pyctr, its relevant python interface to read game files, for writing a more sophisticated script that does exactly what you want.
Making an installable format in this way (compressed or not) would be challenging as it would require the generation of NCCH containers, TMDs and tickets on the fly, which is something only really feasible in GodMode9 itself. Even then, I'd argue that it's way more effort than it's worth.
However it would be nice if it could automate the file dumping/collection process, so that the user only needs to compress the resulting folder with ZArchive
GodMode9 can already mount game files in a similar way, and you could perhaps use the scripting interface to automate the extraction of individual components.
from godmode9.
For example, cartridge dumps vs eshop dumps. Ideally, we would be able to dump the same game from either source and end up with the same exact content (including matching checksums). However, this is not the case. Building a cia from a Zelda OOT cart does not produce the same result as one built from an eshop download. This is partly due to the lack of a digital manual in the cart, but the also because actual cxi files don't match either because of differing exheaders.
Game cards do not have tickets, so you can't dump it into a CIA that is identical to an eShop release. Similarly digital titles don't have game card-specific info like save encryption details. The difference in the extheader has to do with flags about where the title is loading from. (This also means the NCCH signature is different, so changing those flags still won't give you the same file 1:1.)
Even if a custom format is made you'd still need to dump from both sources if you want to preserve them.
from godmode9.
@Pep-the-Dog - from the answers you have got from here, you may have guessed: what you want is not possible. CDN installable content (typically distributed as CIA) and cart dumps ("3DS" files) are not the same thing. Cart dumps contain data that's not in CDN content (for example the NCSD header and some more additional meta data), and CIAs contain tickets (among other stuff). Even if you'd go as far as going down to the least common denominator, which is the NCCH game file (contained in both, the cart dump and CDN content), you have in no way any guarantee that a NCCH file fetched from CDN is identical to the same game / region / version cart dump NCCH file.
In other words: yes, you have to live with 3DS games coming in two very different formats.
What you can do I already described on the Citra repo: pack the cart dump / CIA into a ZArchive container. To ensure good gains when compressing, you can decrypt the game files before archiving. Decryption, when done right, is fully reversible, meaning ZArchive files can be archive quality. However, as long as there is no interest on Citra's side, there's not much we can do. The puzzle pieces are already there.
from godmode9.
Related Issues (20)
- [FEATURE REQUEST] EDITING FILES HOT 3
- Godmode9 booting error HOT 2
- So, I'm a 100% that I f*cked it up[BUG] ... HOT 1
- [FEATURE REQUEST] Add a cartridge fixer HOT 4
- [FEATURE REQUEST] Option to install tickets for titles that do not have one (like faketik)
- [FEATURE REQUEST] Zip/Rar/7Z Unpacking HOT 2
- [FEATURE REQUEST] Show saves for DSi Exclusive games HOT 2
- [delete]
- Home Menu does not stay open and cannot use "finalize" script.
- [BUG] Buttons act weird on GodMode9, but work perfectly everywhere else. HOT 4
- [FEATURE REQUEST] A documentation with full Syntax for scripting HOT 4
- [BUG] AHBWRAM section can overflow into hardcoded BootROM copy space HOT 3
- [BUG] Encrypt/Decrypt CIA error + crash HOT 1
- [BUG] agbsave options missing :( HOT 4
- [FEATURE REQUEST] gm9 script new function dumptxt -> readtxt
- [BUG] ...no dbs folder? HOT 1
- Request to add support for Installing NDS files as well instead of just CIA and 3DS files. HOT 3
- [FEATURE REQUEST] jpg & bmp support HOT 1
- [FEATURE REQUEST] A Better CJK Font HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from godmode9.