diff --git a/Aaru.Checksums b/Aaru.Checksums
index 01391f7a7..17934740d 160000
--- a/Aaru.Checksums
+++ b/Aaru.Checksums
@@ -1 +1 @@
-Subproject commit 01391f7a76904b1ed0853d3fc30c49001030ac0a
+Subproject commit 17934740d855ec0fe7f0098f2220b7a85a511a41
diff --git a/Aaru.CommonTypes b/Aaru.CommonTypes
index 58ca08969..133817872 160000
--- a/Aaru.CommonTypes
+++ b/Aaru.CommonTypes
@@ -1 +1 @@
-Subproject commit 58ca08969c78ab5673fca1ce3dee49aaca609d15
+Subproject commit 1338178726f60aa69e580c866e28a2bbb2cebd09
diff --git a/Aaru.Compression/BZip2.cs b/Aaru.Compression/BZip2.cs
index 9accf5278..9f0b611e9 100644
--- a/Aaru.Compression/BZip2.cs
+++ b/Aaru.Compression/BZip2.cs
@@ -32,6 +32,9 @@ using System.IO;
using System.Runtime.InteropServices;
using Ionic.BZip2;
+///
+/// Implements the BZIP2 compression algorithm
+///
public class BZip2
{
/// Set to true if this algorithm is supported, false otherwise.
diff --git a/Aaru.Compression/FLAC.cs b/Aaru.Compression/FLAC.cs
index 5bf9567f8..85dc7b4b1 100644
--- a/Aaru.Compression/FLAC.cs
+++ b/Aaru.Compression/FLAC.cs
@@ -34,6 +34,9 @@ using CUETools.Codecs;
using CUETools.Codecs.Flake;
// ReSharper disable once InconsistentNaming
+///
+/// Implements the FLAC lossless audio compression algorithm
+///
public class FLAC
{
/// Set to true if this algorithm is supported, false otherwise.
@@ -77,7 +80,18 @@ public class FLAC
/// Compresses a buffer using FLAC
/// Data to compress
/// Buffer to store the compressed data
- ///
+ /// Block size
+ /// Do mid side stereo
+ /// Loose mid side stereo
+ /// Apodization algorithm
+ /// Maximum LPC order
+ /// QLP coefficient precision
+ /// Do precise search for QLP coefficient
+ /// Do exhaustive model search
+ /// Minimum residual partition order
+ /// Maximum residual partition order
+ /// Application ID
+ /// The size of the compressed data
public static int EncodeBuffer(byte[] source, byte[] destination, uint blockSize, bool doMidSideStereo,
bool looseMidSideStereo, string apodization, uint maxLpcOrder,
uint qlpCoeffPrecision, bool doQlpCoeffPrecSearch, bool doExhaustiveModelSearch,
diff --git a/Aaru.Compression/LZFSE.cs b/Aaru.Compression/LZFSE.cs
index d3ae4d2bd..b3d0c451f 100644
--- a/Aaru.Compression/LZFSE.cs
+++ b/Aaru.Compression/LZFSE.cs
@@ -31,6 +31,9 @@ namespace Aaru.Compression;
using System.Runtime.InteropServices;
// ReSharper disable once InconsistentNaming
+///
+/// Implements the LZFSE compression algorithm
+///
public class LZFSE
{
/// Set to true if this algorithm is supported, false otherwise.
diff --git a/Aaru.Compression/LZIP.cs b/Aaru.Compression/LZIP.cs
index 66af13402..73267d969 100644
--- a/Aaru.Compression/LZIP.cs
+++ b/Aaru.Compression/LZIP.cs
@@ -31,6 +31,9 @@ namespace Aaru.Compression;
using System.Runtime.InteropServices;
// ReSharper disable once InconsistentNaming
+///
+/// Implements the LZIP compression algorithm
+///
public class LZIP
{
/// Set to true if this algorithm is supported, false otherwise.
@@ -53,7 +56,9 @@ public class LZIP
/// Compresses a buffer using LZIP
/// Data to compress
/// Buffer to store the compressed data
- ///
+ /// Dictionary size in bytes
+ /// Match length limit
+ /// The size of the compressed data
public static int EncodeBuffer(byte[] source, byte[] destination, int dictionarySize, int matchLengthLimit) =>
Native.IsSupported ? AARU_lzip_encode_buffer(destination, destination.Length, source, source.Length,
dictionarySize, matchLengthLimit) : 0;
diff --git a/Aaru.Compression/LZMA.cs b/Aaru.Compression/LZMA.cs
index 7f05f6a22..66aa43018 100644
--- a/Aaru.Compression/LZMA.cs
+++ b/Aaru.Compression/LZMA.cs
@@ -32,6 +32,9 @@ using System.IO;
using System.Runtime.InteropServices;
using SharpCompress.Compressors.LZMA;
+///
+/// Implements the LZMA compression algorithm
+///
public class LZMA
{
/// Set to true if this algorithm is supported, false otherwise.
@@ -49,6 +52,7 @@ public class LZMA
/// Decodes a buffer compressed with LZMA
/// Encoded buffer
/// Buffer where to write the decoded data
+ /// LZMA stream properties
/// The number of decoded bytes
public static int DecodeBuffer(byte[] source, byte[] destination, byte[] properties)
{
@@ -73,6 +77,12 @@ public class LZMA
/// Compresses a buffer using BZIP2
/// Data to compress
/// Buffer to store the compressed data
+ /// LZMA stream properties
+ /// Compression level
+ /// Dictionary size
+ /// Literal context bits
+ /// Literal position bits
+ /// Position bits
///
public static int EncodeBuffer(byte[] source, byte[] destination, out byte[] properties, int level, uint dictSize,
int lc, int lp, int pb, int fb)
diff --git a/Aaru.Compression/Native.cs b/Aaru.Compression/Native.cs
index 83b2f00b8..0e7dd2ba4 100644
--- a/Aaru.Compression/Native.cs
+++ b/Aaru.Compression/Native.cs
@@ -34,6 +34,9 @@ namespace Aaru.Compression;
using System.Runtime.InteropServices;
+///
+/// Handles native implementations of compression algorithms
+///
public static class Native
{
static bool _checked;
diff --git a/Aaru.Compression/ZSTD.cs b/Aaru.Compression/ZSTD.cs
index 9ee226b09..f1813716f 100644
--- a/Aaru.Compression/ZSTD.cs
+++ b/Aaru.Compression/ZSTD.cs
@@ -31,6 +31,9 @@ namespace Aaru.Compression;
using System.Runtime.InteropServices;
// ReSharper disable once InconsistentNaming
+///
+/// Implements the zstandard compression algorithm
+///
public class ZSTD
{
/// Set to true if this algorithm is supported, false otherwise.
@@ -54,7 +57,8 @@ public class ZSTD
/// Compresses a buffer using ZSTD
/// Data to compress
/// Buffer to store the compressed data
- ///
+ /// Compression level
+ /// Length of the compressed data
public static int EncodeBuffer(byte[] source, byte[] destination, int compressionLevel) =>
(int)(Native.IsSupported
? AARU_zstd_encode_buffer(destination, (nuint)destination.Length, source, (nuint)source.Length,
diff --git a/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs b/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs
index 9c7104fd8..aa1536467 100644
--- a/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs
+++ b/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs
@@ -159,7 +159,7 @@ public partial class Dump
start = DateTime.UtcNow;
double imageWriteDuration = 0;
- outputOptical?.SetTracks(new List