Got a great idea on how to improve GodMode9?
First some background. Azahar has recently released a libretro core and one of the most important user experience issues we are facing is the lack of ability to install game updates, DLCs and other dependencies from the frontends. Right now the only solution is to place those in the virtual SD card folder and launch FBI to install the individual cia files.
To prevent that issue, I'm suggesting the creation of a format specification for CIA and CCI bundles.
Describe the feature you'd like
CIA and CCI bundles would allow users to dump application + update + dlc data to a single file. This would allow emulators and CIA installers to use those files to either install everything at the same time or run the emulated application without the user having to pre-install the dependencies.
The most sensible specification in my opinion would be to just use tar files. They are easy to build and read and do not care about the underlying file properties, which would allow to include encrypted, decrypted or compressed files. My proposal for the specification is therefore the following:
Bundled CCI/3DS (.bcci)
Bundled cci/3ds files are uncompressed tar files. Emulators would run the main application file and simulate the other files being installed titles (through hooks in the AM + FS modules). The tar file would contain the following subfiles:
app: The main application cci/3ds file.
update: Optionally, the application update cia file.
dlc: Optionally, the application dlc cia file.
- Optionally any other cia file dependency that the emulator could use. For example, the system font or mii archive could be added here so that libretro users don't need to set them up. They are small enough to not be a big deal.
All files in the tar can either be encrypted, decrypted or compressed. GM9 could just implement the decrypted variant for broader compatibility, and consider compressed support in the future. Apps that use .bcci can determine the properties of the files on their own, by checking magics or header properties.
Bundled CIA (.bcia)
Bundled cia files are uncompressed tar files. The applications that would use such files would just install all the cia files contained in the tar. There is really no need to have a name convention here, but I think for best readibility we could just use the titleid as the name, with hex digits in caps.
Same way as .bcci, the cia files can be encrypted, decrypted or compressed. GM9 could just implement the decrypted variant for broader compatibility, and consider compressed support in the future.
Got a great idea on how to improve GodMode9?
First some background. Azahar has recently released a libretro core and one of the most important user experience issues we are facing is the lack of ability to install game updates, DLCs and other dependencies from the frontends. Right now the only solution is to place those in the virtual SD card folder and launch FBI to install the individual cia files.
To prevent that issue, I'm suggesting the creation of a format specification for CIA and CCI bundles.
Describe the feature you'd like
CIA and CCI bundles would allow users to dump application + update + dlc data to a single file. This would allow emulators and CIA installers to use those files to either install everything at the same time or run the emulated application without the user having to pre-install the dependencies.
The most sensible specification in my opinion would be to just use tar files. They are easy to build and read and do not care about the underlying file properties, which would allow to include encrypted, decrypted or compressed files. My proposal for the specification is therefore the following:
Bundled CCI/3DS (
.bcci)Bundled cci/3ds files are uncompressed tar files. Emulators would run the main application file and simulate the other files being installed titles (through hooks in the AM + FS modules). The tar file would contain the following subfiles:
app: The main application cci/3ds file.update: Optionally, the application update cia file.dlc: Optionally, the application dlc cia file.All files in the tar can either be encrypted, decrypted or compressed. GM9 could just implement the decrypted variant for broader compatibility, and consider compressed support in the future. Apps that use
.bccican determine the properties of the files on their own, by checking magics or header properties.Bundled CIA (
.bcia)Bundled cia files are uncompressed tar files. The applications that would use such files would just install all the cia files contained in the tar. There is really no need to have a name convention here, but I think for best readibility we could just use the
titleidas the name, with hex digits in caps.Same way as
.bcci, the cia files can be encrypted, decrypted or compressed. GM9 could just implement the decrypted variant for broader compatibility, and consider compressed support in the future.