diff --git a/CHANGELIST.md b/CHANGELIST.md index 2a32d7b1..cd0ae0bd 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -33,6 +33,7 @@ - Start preparing for better output file checks - Create currently-unused helper class - Make helper class more robust +- Add unused GetOutputFiles method ### 3.2.1 (2024-08-05) diff --git a/MPF.Processors/Aaru.cs b/MPF.Processors/Aaru.cs index b5a96205..c0bb8d58 100644 --- a/MPF.Processors/Aaru.cs +++ b/MPF.Processors/Aaru.cs @@ -32,7 +32,7 @@ namespace MPF.Processors { // Get the base filename and directory from the base path string baseFilename = Path.GetFileName(basePath); - string baseDirectory = Path.GetDirectoryName(basePath); + string baseDirectory = Path.GetDirectoryName(basePath) ?? string.Empty; var missingFiles = new List(); switch (Type) @@ -306,6 +306,64 @@ namespace MPF.Processors return logFiles; } + /// + public override List GetOutputFiles(string baseFilename) + { + switch (Type) + { + case MediaType.CDROM: + return [ + new($"{baseFilename}.aaruf", OutputFileFlags.Required), + new($"{baseFilename}.cicm.xml", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.error.log", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.ibg", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.log", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.mhddlog.bin", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.resume.xml", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.sub.log", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + ]; + + case MediaType.DVD: + case MediaType.HDDVD: + case MediaType.BluRay: + return [ + new($"{baseFilename}.aaruf", OutputFileFlags.Required), + new($"{baseFilename}.cicm.xml", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.error.log", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.ibg", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.log", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.mhddlog.bin", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.resume.xml", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + ]; + } + + return []; + } + #endregion #region Information Extraction Methods diff --git a/MPF.Processors/BaseProcessor.cs b/MPF.Processors/BaseProcessor.cs index c6d1fd22..c27eec57 100644 --- a/MPF.Processors/BaseProcessor.cs +++ b/MPF.Processors/BaseProcessor.cs @@ -74,6 +74,13 @@ namespace MPF.Processors /// List of all log file paths, empty otherwise public abstract List GetLogFilePaths(string basePath); + /// + /// Generate a list of all output files generated + /// + /// Base filename to use for checking + /// List of all output files, empty otherwise + public abstract List GetOutputFiles(string baseFilename); + #endregion #region Virtual Methods diff --git a/MPF.Processors/CleanRip.cs b/MPF.Processors/CleanRip.cs index b5a9f674..f7580931 100644 --- a/MPF.Processors/CleanRip.cs +++ b/MPF.Processors/CleanRip.cs @@ -24,7 +24,7 @@ namespace MPF.Processors { // Get the base filename and directory from the base path string baseFilename = Path.GetFileName(basePath); - string baseDirectory = Path.GetDirectoryName(basePath); + string baseDirectory = Path.GetDirectoryName(basePath) ?? string.Empty; var missingFiles = new List(); switch (Type) @@ -117,10 +117,10 @@ namespace MPF.Processors case MediaType.DVD: // Only added here to help users; not strictly correct case MediaType.NintendoGameCubeGameDisc: case MediaType.NintendoWiiOpticalDisc: - if (File.Exists($"{basePath}-dumpinfo.txt")) - logFiles.Add($"{basePath}-dumpinfo.txt"); if (File.Exists($"{basePath}.bca")) logFiles.Add($"{basePath}.bca"); + if (File.Exists($"{basePath}-dumpinfo.txt")) + logFiles.Add($"{basePath}-dumpinfo.txt"); break; } @@ -128,6 +128,29 @@ namespace MPF.Processors return logFiles; } + /// + public override List GetOutputFiles(string baseFilename) + { + switch (Type) + { + case MediaType.DVD: // Only added here to help users; not strictly correct + case MediaType.NintendoGameCubeGameDisc: + case MediaType.NintendoWiiOpticalDisc: + return [ + new($"{baseFilename}.bca", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.iso", OutputFileFlags.Required), + + new($"{baseFilename}-dumpinfo.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + ]; + } + + return []; + } + #endregion #region Information Extraction Methods diff --git a/MPF.Processors/DiscImageCreator.cs b/MPF.Processors/DiscImageCreator.cs index 73d89699..2763717a 100644 --- a/MPF.Processors/DiscImageCreator.cs +++ b/MPF.Processors/DiscImageCreator.cs @@ -72,7 +72,7 @@ namespace MPF.Processors // Get the base filename and directory from the base path string baseFilename = Path.GetFileName(basePath); - string baseDirectory = Path.GetDirectoryName(basePath); + string baseDirectory = Path.GetDirectoryName(basePath) ?? string.Empty; var missingFiles = new List(); switch (Type) @@ -877,6 +877,178 @@ namespace MPF.Processors return logFiles; } + /// + public override List GetOutputFiles(string baseFilename) + { + switch (Type) + { + case MediaType.CDROM: + return [ + new($"{baseFilename}.c2", OutputFileFlags.Zippable), // Doesn't output on Linux + new($"{baseFilename}.ccd", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + // TODO: Figure out how to get the command path generically? + new($"{baseFilename}.cue", OutputFileFlags.Required), + new($"{baseFilename}.dat", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.img", OutputFileFlags.Required + | OutputFileFlags.Deleteable), + new([$"{baseFilename}.img_EdcEcc.txt", $"{baseFilename}.img_EccEdc.txt"], System.IsAudio() + ? OutputFileFlags.Artifact | OutputFileFlags.Zippable + : OutputFileFlags.Required | OutputFileFlags.Artifact | OutputFileFlags.Zippable), + new([$"{baseFilename}.scm", $"{baseFilename}.scmtmp"], System.IsAudio() + ? OutputFileFlags.Deleteable + : OutputFileFlags.Required | OutputFileFlags.Deleteable), + new([$"{baseFilename}.sub", $"{baseFilename}.subtmp"], OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.toc", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + + new($"{baseFilename}_c2Error.txt", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), // Doesn't output on Linux + new($"{baseFilename}_cmd.txt", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_disc.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_drive.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_img.cue", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_mainError.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_mainInfo.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new([$"{baseFilename}_sub.txt", $"{baseFilename}_subReadable.txt"], OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_subError.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_subInfo.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_subIntention.txt", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_suppl.dat", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_volDesc.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + + new([$"{baseFilename} (Track 0).sub", $"{baseFilename} (Track 00).sub"], OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new([$"{baseFilename} (Track 1)(-LBA).sub", $"{baseFilename} (Track 01)(-LBA).sub"], OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename} (Track AA).sub", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + ]; + + // TODO: Confirm GD-ROM HD area outputs + case MediaType.GDROM: + return [ + // TODO: Figure out how to get the command path generically? + new($"{baseFilename}.dat", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.toc", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + + new($"{baseFilename}_cmd.txt", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_disc.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_drive.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_mainError.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_mainInfo.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_suppl.dat", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_volDesc.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + ]; + + case MediaType.DVD: + case MediaType.HDDVD: + case MediaType.BluRay: + case MediaType.NintendoGameCubeGameDisc: + case MediaType.NintendoWiiOpticalDisc: + return [ + // TODO: Figure out how to get the command path generically? + new($"{baseFilename}.dat", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.raw", OutputFileFlags.None), + new($"{baseFilename}.toc", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + + new($"{baseFilename}_cmd.txt", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_CSSKey.txt", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_disc.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_drive.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_mainError.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_mainInfo.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_suppl.dat", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_volDesc.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + + // TODO: Figure out when these are required + new($"{baseFilename}_DMI.bin", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}_PFI.bin", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}_PIC.bin", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}_SS.bin", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + ]; + + case MediaType.FloppyDisk: + case MediaType.HardDisk: + // TODO: Determine what outputs come out from a HDD, SD, etc. + return [ + // TODO: Figure out how to get the command path generically? + new($"{baseFilename}.dat", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + + new($"{baseFilename}_cmd.txt", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_disc.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + ]; + } + + return []; + } + #endregion #region Private Extra Methods diff --git a/MPF.Processors/PS3CFW.cs b/MPF.Processors/PS3CFW.cs index 5a451359..d1bf4136 100644 --- a/MPF.Processors/PS3CFW.cs +++ b/MPF.Processors/PS3CFW.cs @@ -23,7 +23,7 @@ namespace MPF.Processors { // Get the base filename and directory from the base path string baseFilename = Path.GetFileName(basePath); - string baseDirectory = Path.GetDirectoryName(basePath); + string baseDirectory = Path.GetDirectoryName(basePath) ?? string.Empty; var missingFiles = new List(); @@ -136,6 +136,26 @@ namespace MPF.Processors return logFiles; } + /// + public override List GetOutputFiles(string baseFilename) + { + switch (Type) + { + case MediaType.BluRay: + return [ + new($"{baseFilename}.iso", OutputFileFlags.Required), + new($"{baseFilename}.getkey.log", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.disc.pic", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + ]; + } + + return []; + } + #endregion #region Information Extraction Methods diff --git a/MPF.Processors/Redumper.cs b/MPF.Processors/Redumper.cs index 05684e86..f5535795 100644 --- a/MPF.Processors/Redumper.cs +++ b/MPF.Processors/Redumper.cs @@ -25,7 +25,7 @@ namespace MPF.Processors { // Get the base filename and directory from the base path string baseFilename = Path.GetFileName(basePath); - string baseDirectory = Path.GetDirectoryName(basePath); + string baseDirectory = Path.GetDirectoryName(basePath) ?? string.Empty; var missingFiles = new List(); @@ -651,6 +651,123 @@ namespace MPF.Processors return logFiles; } + /// + public override List GetOutputFiles(string baseFilename) + { + switch (Type) + { + case MediaType.CDROM: + List cdrom = [ + new($"{baseFilename}.asus", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.atip", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.cdtext", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.cue", OutputFileFlags.Required), + new($"{baseFilename}.fulltoc", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.log", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.pma", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new([$"{baseFilename}.scram", $"{baseFilename}.scrap"], OutputFileFlags.Required + | OutputFileFlags.Deleteable), + new($"{baseFilename}.state", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.subcode", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.toc", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + ]; + + // Include .hash and .skeleton for all files in cuesheet + var cueSheet = SabreTools.Serialization.Deserializers.CueSheet.DeserializeFile($"{baseFilename}.cue"); + if (cueSheet?.Files != null) + { + foreach (CueFile? file in cueSheet.Files) + { + string? trackName = Path.GetFileNameWithoutExtension(file?.FileName); + if (trackName == null) + continue; + + cdrom.Add(new($"{trackName}.hash", OutputFileFlags.Binary + | OutputFileFlags.Zippable)); + cdrom.Add(new($"{trackName}.skeleton", OutputFileFlags.Binary + | OutputFileFlags.Zippable)); + } + } + else + { + cdrom.Add(new($"{baseFilename}.hash", OutputFileFlags.Binary + | OutputFileFlags.Zippable)); + cdrom.Add(new($"{baseFilename}.skeleton", OutputFileFlags.Binary + | OutputFileFlags.Zippable)); + } + + return cdrom; + + case MediaType.DVD: + return [ + new($"{baseFilename}.asus", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.hash", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.log", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new([$"{baseFilename}.manufacturer", $"{baseFilename}.1.manufacturer"], OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.2.manufacturer", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new([$"{baseFilename}.physical", $"{baseFilename}.0.physical"], OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.1.physical", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.2.physical", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.skeleton", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.state", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + ]; + + case MediaType.HDDVD: // TODO: Confirm that this information outputs + case MediaType.BluRay: + return [ + new($"{baseFilename}.asus", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.hash", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.log", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new([$"{baseFilename}.physical", $"{baseFilename}.0.physical"], OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.1.physical", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.2.physical", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.skeleton", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}.state", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + ]; + } + + return []; + } + #endregion #region Information Extraction Methods diff --git a/MPF.Processors/UmdImageCreator.cs b/MPF.Processors/UmdImageCreator.cs index f9fe5cb8..867ef3c6 100644 --- a/MPF.Processors/UmdImageCreator.cs +++ b/MPF.Processors/UmdImageCreator.cs @@ -24,7 +24,7 @@ namespace MPF.Processors { // Get the base filename and directory from the base path string baseFilename = Path.GetFileName(basePath); - string baseDirectory = Path.GetDirectoryName(basePath); + string baseDirectory = Path.GetDirectoryName(basePath) ?? string.Empty; var missingFiles = new List(); switch (Type) @@ -156,6 +156,35 @@ namespace MPF.Processors return logFiles; } + /// + public override List GetOutputFiles(string baseFilename) + { + switch (Type) + { + case MediaType.UMD: + return [ + new($"{baseFilename}.iso", OutputFileFlags.Required), + + new($"{baseFilename}_disc.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_mainError.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_mainInfo.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}_PFI.bin", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new($"{baseFilename}_volDesc.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + ]; + } + + return []; + } + #endregion #region Information Extraction Methods diff --git a/MPF.Processors/XboxBackupCreator.cs b/MPF.Processors/XboxBackupCreator.cs index a8104b9b..c27793bb 100644 --- a/MPF.Processors/XboxBackupCreator.cs +++ b/MPF.Processors/XboxBackupCreator.cs @@ -23,7 +23,7 @@ namespace MPF.Processors { // Get the base filename and directory from the base path string baseFilename = Path.GetFileName(basePath); - string baseDirectory = Path.GetDirectoryName(basePath); + string baseDirectory = Path.GetDirectoryName(basePath) ?? string.Empty; var missingFiles = new List(); switch (Type) @@ -90,7 +90,7 @@ namespace MPF.Processors info = Builder.EnsureAllSections(info); // Get base directory - string baseDirectory = Path.GetDirectoryName(basePath); + string baseDirectory = Path.GetDirectoryName(basePath) ?? string.Empty; // Get log filename string? logPath = GetLogName(baseDirectory); @@ -217,7 +217,7 @@ namespace MPF.Processors public override List GetLogFilePaths(string basePath) { // Get base directory - string baseDirectory = Path.GetDirectoryName(basePath); + string baseDirectory = Path.GetDirectoryName(basePath) ?? string.Empty; var logFiles = new List(); switch (Type) @@ -243,6 +243,37 @@ namespace MPF.Processors return logFiles; } + /// + public override List GetOutputFiles(string baseFilename) + { + switch (Type) + { + case MediaType.DVD: + return [ + new($"{baseFilename}.dvd", OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new($"{baseFilename}.iso", OutputFileFlags.Required), + + new("DMI.bin", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new("Log.txt", OutputFileFlags.Required + | OutputFileFlags.Artifact + | OutputFileFlags.Zippable), + new("PFI.bin", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new("RawSS.bin", OutputFileFlags.Binary + | OutputFileFlags.Zippable), + new("SS.bin", OutputFileFlags.Required + | OutputFileFlags.Binary + | OutputFileFlags.Zippable), + ]; + } + + return []; + } + #endregion #region Information Extraction Methods