mirror of
https://github.com/DarkMatterCore/nxdumptool.git
synced 2024-10-30 07:21:46 +00:00
32c097c055
GameCardImageDumpTask is a derived class of DataTransferTask, and it's designed to dump a gamecard image using the options selected by the user (which must be passed from a GameCardImageDumpOptionsFrame object). It uses std::optional<std::string> as its return type -- the idea behind this is to return error strings that may later be displayed by an ErrorFrame during the dump process (views not yet implemented). FileWriter is a class that encapsulates write operations to different storage mediums (SD card, USB host and UMS devices), based on the provided input path. It is used by GameCardImageDumpTask to painlessly write data to the right output storage without explicitly having to implement multiple code paths for all storage types as part of the actual dump code. Furthermore, FileWriter also supports writing split files to FAT-formatted UMS devices if an output file is >= 4 GiB -- part file handling is completely abstracted away from any callers. Other changes include: * AsyncTask: rename all class methods to use PascalCase naming. * AsyncTask: rename get() -> GetResult(). * DataTransferTask: reflect the changes made to AsyncTask. * DataTransferTask: pause the RepeatingTask right after LoopCallback() returns true instead of pausing it in the cancel/post-execute callbacks. * DataTransferTask: add private FormatTimeString() method. * DataTransferTask: remove superfluous override for DoInBackground() -- classes derived from DataTransferTask must provide it on their own, anyway. * DataTransferTask: add public GetDurationString() method. * defines: update FAT32_FILESIZE_LIMIT macro to use UINT32_MAX. * defines: add CONCATENATION_FILE_PART_SIZE macro (used by the new FileWriter class). * DownloadTask: reflect the changes made to AsyncTask. * DumpOptionsFrame: file extension is no longer stored as a class member, nor required by the class constructor. * DumpOptionsFrame: change the return type for GetOutputFilePath() to bool. The method now saves its output to a variable passed by reference. * GameCardImageDumpOptionsFrame: reflect the changes made to DumpOptionsFrame. * i18n: update localization strings where applicable. * nxdt_utils: fix a potential buffer overflow in utilsGetFileSystemStatsByPath(). * OptionsTab: reflect the changes made to AsyncTask. * usb: add const qualifier to the input buffer required by usbSendFileData(). * usb: add const qualifier to the input buffer required by usbSendNspHeader().
50 lines
2.8 KiB
JSON
50 lines
2.8 KiB
JSON
{
|
|
"filename": {
|
|
"label": "Filename",
|
|
"description": "Filename used for the output dump.\n\nIllegal filesystem characters will be automatically replaced with underscores (\"_\"). If the inserted SD card is used as the output storage, only ASCII characters will be kept — this is a limitation of Nintendo's FS driver.\n\nThe file extension cannot be modified, and it is excluded on purpose."
|
|
},
|
|
|
|
"output_storage": {
|
|
"label": "Output storage",
|
|
"description": "Storage where the dumped data will be written to. Changing it will automatically update the output filename to better suit the output filesystem limitations.\n\nUsing a connected USB host requires a libusb-based driver, as well as the Python host script. For more information, please visit \"{0}\".",
|
|
"value_00": "SD card ({0} free / {1} total)",
|
|
"value_01": "USB host (PC)",
|
|
"value_02": "{0} ({1} free / {2} total)"
|
|
},
|
|
|
|
"gamecard": {
|
|
"image": {
|
|
"prepend_key_area": {
|
|
"label": "Prepend KeyArea data",
|
|
"description": "Prepends the full, 4 KiB long KeyArea block to the output XCI dump, which includes the InitialData area. XCI dumps with KeyArea data are also known as \"Full XCIs\". Disabled by default."
|
|
},
|
|
|
|
"keep_certificate": {
|
|
"label": "Keep certificate",
|
|
"description": "Preserves the gamecard certificate in the output XCI dump, which is used to unequivocally identify each individual gamecard. Disabled by default."
|
|
},
|
|
|
|
"trim_dump": {
|
|
"label": "Trim dump",
|
|
"description": "Trims the output XCI dump by removing padding data beyond the end of the last HFS partition. Disabled by default."
|
|
},
|
|
|
|
"calculate_checksum": {
|
|
"label": "Calculate checksum",
|
|
"description": "Calculates one or more CRC32 checksums over the dumped data, depending on the selected configuration. Checksums are useful to verify data integrity. Enabled by default."
|
|
},
|
|
|
|
"checksum_lookup_method": {
|
|
"label": "Checksum lookup method",
|
|
"description": "If \"{0}\" is enabled, this option determines which lookup method is used to validate the calculated CRC32 checksum at the end of the dump process.\n\nIf \"{1}\" is selected, the calculated checksum will be looked up in \"{2}\", which must have been previously downloaded.\n\nIf \"{3}\" is selected, the calculated checksum will be looked up using an Internet connection and a public HTTP endpoint.",
|
|
"value_00": "None"
|
|
}
|
|
}
|
|
},
|
|
|
|
"start_dump": "Start dump",
|
|
|
|
"notifications": {
|
|
"get_output_path_error": "Failed to generate output path."
|
|
}
|
|
}
|