From 7566d7fb77db1ac919066671022db3ab2c56c9ec Mon Sep 17 00:00:00 2001 From: Deterous <138427222+Deterous@users.noreply.github.com> Date: Mon, 20 Apr 2026 12:45:02 +0900 Subject: [PATCH 1/2] XboxISO funcs for partition extraction --- SabreTools.Wrappers/XboxISO.Extraction.cs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/SabreTools.Wrappers/XboxISO.Extraction.cs b/SabreTools.Wrappers/XboxISO.Extraction.cs index cd9b4b2bd..95054ebce 100644 --- a/SabreTools.Wrappers/XboxISO.Extraction.cs +++ b/SabreTools.Wrappers/XboxISO.Extraction.cs @@ -9,15 +9,30 @@ public bool Extract(string outputDirectory, bool includeDebug) { long initialOffset = _dataSource.Position; + bool success = ExtractVideoPartition(outputDirectory, includeDebug); + success |= ExtractGamePartition(outputDirectory, includeDebug); + + return success; + } + + /// + /// Extract all files from the Video ISO partition only + /// + public bool ExtractVideoPartition(string outputDirectory, bool includeDebug) + { // Extract all files from the video partition var videoWrapper = new ISO9660(VideoPartition, _dataSource, initialOffset, _dataSource.Length); - bool success = videoWrapper?.Extract(outputDirectory, includeDebug) ?? false; + return videoWrapper?.Extract(outputDirectory, includeDebug) ?? false; + } + /// + /// Extract all files from the XDVDFS (XISO) game partition only + /// + public bool ExtractGamePartition(string outputDirectory, bool includeDebug) + { // Extract all files from the game partition var gameWrapper = new XDVDFS(GamePartition, _dataSource, initialOffset + Constants.XisoOffsets[XGDType], Constants.XisoLengths[XGDType]); - success |= gameWrapper?.Extract(outputDirectory, includeDebug) ?? false; - - return success; + return gameWrapper?.Extract(outputDirectory, includeDebug) ?? false; } } } From 69bc5ccc3a740e262096b05e898e35cf5480a0e9 Mon Sep 17 00:00:00 2001 From: Deterous <138427222+Deterous@users.noreply.github.com> Date: Mon, 20 Apr 2026 12:48:53 +0900 Subject: [PATCH 2/2] Add new parameter with default --- SabreTools.Wrappers/XboxISO.Extraction.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SabreTools.Wrappers/XboxISO.Extraction.cs b/SabreTools.Wrappers/XboxISO.Extraction.cs index 95054ebce..2197b7503 100644 --- a/SabreTools.Wrappers/XboxISO.Extraction.cs +++ b/SabreTools.Wrappers/XboxISO.Extraction.cs @@ -9,7 +9,7 @@ public bool Extract(string outputDirectory, bool includeDebug) { long initialOffset = _dataSource.Position; - bool success = ExtractVideoPartition(outputDirectory, includeDebug); + bool success = ExtractVideoPartition(outputDirectory, includeDebug, initialOffset); success |= ExtractGamePartition(outputDirectory, includeDebug); return success; @@ -18,7 +18,7 @@ public bool Extract(string outputDirectory, bool includeDebug) /// /// Extract all files from the Video ISO partition only /// - public bool ExtractVideoPartition(string outputDirectory, bool includeDebug) + public bool ExtractVideoPartition(string outputDirectory, bool includeDebug, long initialOffset = 0) { // Extract all files from the video partition var videoWrapper = new ISO9660(VideoPartition, _dataSource, initialOffset, _dataSource.Length); @@ -28,7 +28,7 @@ public bool ExtractVideoPartition(string outputDirectory, bool includeDebug) /// /// Extract all files from the XDVDFS (XISO) game partition only /// - public bool ExtractGamePartition(string outputDirectory, bool includeDebug) + public bool ExtractGamePartition(string outputDirectory, bool includeDebug, long initialOffset = 0) { // Extract all files from the game partition var gameWrapper = new XDVDFS(GamePartition, _dataSource, initialOffset + Constants.XisoOffsets[XGDType], Constants.XisoLengths[XGDType]);