2018-05-15 17:00:19 +01:00
|
|
|
#pragma once
|
|
|
|
|
2018-06-21 07:42:46 +01:00
|
|
|
#ifndef __DUMPER_H__
|
|
|
|
#define __DUMPER_H__
|
|
|
|
|
2018-05-15 17:00:19 +01:00
|
|
|
#include <switch.h>
|
2019-06-05 23:44:18 +01:00
|
|
|
#include "util.h"
|
2018-05-15 17:00:19 +01:00
|
|
|
|
2019-04-21 17:27:33 +01:00
|
|
|
#define ISTORAGE_PARTITION_CNT 2
|
|
|
|
|
2019-05-01 21:24:13 +01:00
|
|
|
#define FAT32_FILESIZE_LIMIT (u64)0xFFFFFFFF // 4 GiB - 1 (4294967295 bytes)
|
|
|
|
|
|
|
|
#define SPLIT_FILE_XCI_PART_SIZE (u64)0xFFFF8000 // 4 GiB - 0x8000 (4294934528 bytes) (based on XCI-Cutter)
|
|
|
|
#define SPLIT_FILE_NSP_PART_SIZE (u64)0xFFFF0000 // 4 GiB - 0x10000 (4294901760 bytes) (based on splitNSP.py)
|
2019-08-15 06:21:51 +01:00
|
|
|
#define SPLIT_FILE_GENERIC_PART_SIZE SPLIT_FILE_NSP_PART_SIZE
|
2019-04-21 17:27:33 +01:00
|
|
|
|
|
|
|
#define CERT_OFFSET 0x7000
|
|
|
|
#define CERT_SIZE 0x200
|
|
|
|
|
2019-09-15 03:45:27 +01:00
|
|
|
#define SMOOTHING_FACTOR (double)0.1
|
2018-06-26 02:11:18 +01:00
|
|
|
|
2019-08-15 06:21:51 +01:00
|
|
|
#define CANCEL_BTN_SEC_HOLD 2 // The cancel button must be held for at least CANCEL_BTN_SEC_HOLD seconds to cancel an ongoing operation
|
|
|
|
|
2019-06-28 21:13:54 +01:00
|
|
|
typedef enum {
|
|
|
|
BATCH_SOURCE_ALL = 0,
|
|
|
|
BATCH_SOURCE_SDCARD,
|
|
|
|
BATCH_SOURCE_EMMC
|
|
|
|
} batchModeSourceStorage;
|
|
|
|
|
2019-06-09 02:36:21 +01:00
|
|
|
void workaroundPartitionZeroAccess();
|
2019-09-15 03:45:27 +01:00
|
|
|
bool dumpCartridgeImage(bool isFat32, bool setXciArchiveBit, bool keepCert, bool trimDump, bool calcCrc);
|
2019-06-28 21:13:54 +01:00
|
|
|
bool dumpNintendoSubmissionPackage(nspDumpType selectedNspDumpType, u32 titleIndex, bool isFat32, bool calcCrc, bool removeConsoleData, bool tiklessDump, bool batch);
|
|
|
|
bool dumpNintendoSubmissionPackageBatch(bool dumpAppTitles, bool dumpPatchTitles, bool dumpAddOnTitles, bool isFat32, bool removeConsoleData, bool tiklessDump, bool skipDumpedTitles, batchModeSourceStorage batchModeSrc);
|
2019-06-09 02:36:21 +01:00
|
|
|
bool dumpRawHfs0Partition(u32 partition, bool doSplitting);
|
2019-06-28 21:13:54 +01:00
|
|
|
bool dumpHfs0PartitionData(u32 partition, bool doSplitting);
|
|
|
|
bool dumpFileFromHfs0Partition(u32 partition, u32 file, char *filename, bool doSplitting);
|
|
|
|
bool dumpExeFsSectionData(u32 titleIndex, bool usePatch, bool doSplitting);
|
|
|
|
bool dumpFileFromExeFsSection(u32 titleIndex, u32 fileIndex, bool usePatch, bool doSplitting);
|
2019-09-15 03:45:27 +01:00
|
|
|
bool dumpRomFsSectionData(u32 titleIndex, selectedRomFsType curRomFsType, bool doSplitting);
|
|
|
|
bool dumpFileFromRomFsSection(u32 titleIndex, u32 file_offset, selectedRomFsType curRomFsType, bool doSplitting);
|
|
|
|
bool dumpCurrentDirFromRomFsSection(u32 titleIndex, selectedRomFsType curRomFsType, bool doSplitting);
|
2019-06-09 02:36:21 +01:00
|
|
|
bool dumpGameCardCertificate();
|
2018-06-21 07:42:46 +01:00
|
|
|
|
|
|
|
#endif
|