diff --git a/pcsx2-qt/Settings/AdvancedSettingsWidget.ui b/pcsx2-qt/Settings/AdvancedSettingsWidget.ui index 3fb770858a..393528742d 100644 --- a/pcsx2-qt/Settings/AdvancedSettingsWidget.ui +++ b/pcsx2-qt/Settings/AdvancedSettingsWidget.ui @@ -474,7 +474,7 @@ - Deflate64 + Deflate @@ -482,11 +482,6 @@ Zstandard - - - LZMA2 - - diff --git a/pcsx2/Config.h b/pcsx2/Config.h index cc67c55fa6..c88ca7eff6 100644 --- a/pcsx2/Config.h +++ b/pcsx2/Config.h @@ -384,9 +384,8 @@ enum class GSDumpCompressionMethod : u8 enum class SavestateCompressionMethod : u8 { Uncompressed = 0, - Deflate64 = 1, - Zstandard = 2, - LZMA2 = 3 + Deflate = 1, + Zstandard = 2 }; enum class SavestateCompressionLevel : u8 diff --git a/pcsx2/ImGui/FullscreenUI_Settings.cpp b/pcsx2/ImGui/FullscreenUI_Settings.cpp index 41625a7f29..336f524a01 100644 --- a/pcsx2/ImGui/FullscreenUI_Settings.cpp +++ b/pcsx2/ImGui/FullscreenUI_Settings.cpp @@ -4900,9 +4900,8 @@ void FullscreenUI::DrawAdvancedSettingsPage() static constexpr const char* s_savestate_compression_type[] = { FSUI_NSTR("Uncompressed"), - FSUI_NSTR("Deflate64"), + FSUI_NSTR("Deflate"), FSUI_NSTR("Zstandard"), - FSUI_NSTR("LZMA2"), }; static constexpr const char* s_savestate_compression_ratio[] = { diff --git a/pcsx2/SaveState.cpp b/pcsx2/SaveState.cpp index 324c312854..239737c51d 100644 --- a/pcsx2/SaveState.cpp +++ b/pcsx2/SaveState.cpp @@ -926,8 +926,8 @@ static bool SaveState_ReadScreenshot(zip_t* zf, u32* out_width, u32* out_height, // -------------------------------------------------------------------------------------- static bool SaveState_AddToZip(zip_t* zf, ArchiveEntryList* srclist, SaveStateScreenshotData* screenshot) { - u32 compression; - u32 compression_level; + u32 compression = ZIP_CM_DEFAULT; + u32 compression_level = 0; if (EmuConfig.Savestate.CompressionType == SavestateCompressionMethod::Zstandard) { @@ -942,25 +942,13 @@ static bool SaveState_AddToZip(zip_t* zf, ArchiveEntryList* srclist, SaveStateSc else if (EmuConfig.Savestate.CompressionRatio == SavestateCompressionLevel::VeryHigh) compression_level = 22; } - else if (EmuConfig.Savestate.CompressionType == SavestateCompressionMethod::Deflate64) + else if (EmuConfig.Savestate.CompressionType == SavestateCompressionMethod::Deflate) { - compression = ZIP_CM_DEFLATE64; + compression = ZIP_CM_DEFLATE; if (EmuConfig.Savestate.CompressionRatio == SavestateCompressionLevel::Low) compression_level = 1; else if (EmuConfig.Savestate.CompressionRatio == SavestateCompressionLevel::Medium) - compression_level = 3; - else if (EmuConfig.Savestate.CompressionRatio == SavestateCompressionLevel::High) - compression_level = 7; - else if (EmuConfig.Savestate.CompressionRatio == SavestateCompressionLevel::VeryHigh) - compression_level = 9; - } - else if (EmuConfig.Savestate.CompressionType == SavestateCompressionMethod::LZMA2) - { - compression = ZIP_CM_LZMA2; - if (EmuConfig.Savestate.CompressionRatio == SavestateCompressionLevel::Low) - compression_level = 1; - else if (EmuConfig.Savestate.CompressionRatio == SavestateCompressionLevel::Medium) - compression_level = 3; + compression_level = 5; else if (EmuConfig.Savestate.CompressionRatio == SavestateCompressionLevel::High) compression_level = 7; else if (EmuConfig.Savestate.CompressionRatio == SavestateCompressionLevel::VeryHigh) @@ -1006,7 +994,9 @@ static bool SaveState_AddToZip(zip_t* zf, ArchiveEntryList* srclist, SaveStateSc return false; } - zip_set_file_compression(zf, fi, compression, compression_level); + // Don't compress the version indicator file so that builds that don't + // support a given compression method can at least still read it. + zip_set_file_compression(zf, fi, ZIP_CM_STORE, 0); } const uint listlen = srclist->GetLength();