GerbilSoft / rom-properties

ROM Properties Page shell extension
GNU General Public License v2.0
465 stars 35 forks source link

Possible to add support for xci and nsp files for Switch? #163

Open Masamune3210 opened 5 years ago

Masamune3210 commented 5 years ago

Would it be possible to add support for XCI files (cart images) and NSP files (E-Shop Packages)? Possibly treat it like the 3DS where there is a place for users to add their hardware specific keys to decrypt the files enough to grab needed data?

GerbilSoft commented 5 years ago

XCI and NSP files have multiple layers of encryption and virtual file systems. It should be possible to add support, but it'll be a while before that happens. (I'm not going to bundle a copy of hactool; any support must be native to rom-properties.)

Masamune3210 commented 5 years ago

What about scraping the titleid from the file name and looking it up in a database? Not the best solution but could work until decryption support is added. Plus most backup managers autoname function will add the titleid to the game name automatically

20Phoenix commented 5 years ago

Also a big wish of mine, that would be ultra cool.

GerbilSoft commented 4 years ago

Not sure when I'll get around to implementing this, so I'll remove the milestone for now.

Amnesia1000 commented 4 years ago

It would be a great implementation, at least to use an external image database until it works with the internal image of the file, although for now gamestdb has a weird way of ordering Switch covers, they don't order them by ID, if not that order them incrementally (for example AAAAAA.jpg, AAAABA.jpg, AAAACA.jpg, etc.)

dxgldotorg commented 7 months ago

As a heads-up, one of the two popular Switch emulators just got nuked by a lawsuit, so supporting this may be risky at this moment. The emulator still remaining is written in C#/.NET 8.0 so its code is probably not too good to integrate.

GerbilSoft commented 7 months ago

I wouldn't be integrating the code directly regardless. ROM Properties doesn't need full emulation; only parsing the ROM images. A modified version of hactool would probably work better for this.

That having been said, I have no interest in supporting any of the current consoles because of, among other things, what's been happening in the Switch community. The most recent proprietary systems I'm going to support will likely be 3DS (supported) and Wii U (partially supported; NUS packages eventually) for a long while.

leo60228 commented 1 month ago

Note that there's a WIP rewrite of hactool using libstratosphere's file format handling, which was originally written as part of the Atmosphère Switch custom firmware but can also be used as a standalone C++ library.

leo60228 commented 1 month ago

(I would personally not be concerned about action from Nintendo against libstratosphere. Unlike Yuzu, the Atmosphère developers are well aware of what Nintendo would find objectionable, and have been careful to avoid it.)