diff --git a/UWP/libchdr_UWP/libchdr_UWP.vcxproj b/UWP/libchdr_UWP/libchdr_UWP.vcxproj
index b43566c6e5..513d3821f3 100644
--- a/UWP/libchdr_UWP/libchdr_UWP.vcxproj
+++ b/UWP/libchdr_UWP/libchdr_UWP.vcxproj
@@ -19,20 +19,20 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -76,9 +76,9 @@
false
false
- ..\..\ext\zlib;..\..\ext\zstd\lib;..\..\ext\libchdr\include;..\..\ext\libchdr\deps\lzma-24.05\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+ ..\..\ext\zlib;..\..\ext\zstd\lib;..\..\ext\libchdr\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
NotUsing
- Z7_ST;_CRT_SECURE_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)
+ CHDR_SYSTEM_ZLIB;CHDR_SYSTEM_ZSTD;_CRT_SECURE_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)
Console
diff --git a/UWP/libchdr_UWP/libchdr_UWP.vcxproj.filters b/UWP/libchdr_UWP/libchdr_UWP.vcxproj.filters
index 7574c66db7..6a889dbdb8 100644
--- a/UWP/libchdr_UWP/libchdr_UWP.vcxproj.filters
+++ b/UWP/libchdr_UWP/libchdr_UWP.vcxproj.filters
@@ -13,39 +13,19 @@
+
+
+
+
+
+
+
+
+
+
-
- lzma
-
-
- lzma
-
-
- lzma
-
-
- lzma
-
-
- lzma
-
-
- lzma
-
-
- lzma
-
-
- lzma
-
-
- lzma
-
-
- lzma
-
-
+
lzma
diff --git a/android/jni/Android.mk b/android/jni/Android.mk
index ef19e8f138..c3d3d0e0a0 100644
--- a/android/jni/Android.mk
+++ b/android/jni/Android.mk
@@ -4,26 +4,23 @@ SRC := ../..
include $(CLEAR_VARS)
include $(LOCAL_PATH)/Locals.mk
-LOCAL_CFLAGS += -DZ7_ST -D__SWITCH__
-
-LZMA_FILES := \
- $(SRC)/ext/libchdr/deps/lzma-24.05/src/Alloc.c \
- $(SRC)/ext/libchdr/deps/lzma-24.05/src/Bra.c \
- $(SRC)/ext/libchdr/deps/lzma-24.05/src/Bra86.c \
- $(SRC)/ext/libchdr/deps/lzma-24.05/src/BraIA64.c \
- $(SRC)/ext/libchdr/deps/lzma-24.05/src/CpuArch.c \
- $(SRC)/ext/libchdr/deps/lzma-24.05/src/Delta.c \
- $(SRC)/ext/libchdr/deps/lzma-24.05/src/LzFind.c \
- $(SRC)/ext/libchdr/deps/lzma-24.05/src/LzmaDec.c \
- $(SRC)/ext/libchdr/deps/lzma-24.05/src/LzmaEnc.c \
- $(SRC)/ext/libchdr/deps/lzma-24.05/src/Lzma86Dec.c \
- $(SRC)/ext/libchdr/deps/lzma-24.05/src/Sort.c
+LOCAL_CFLAGS += -DCHDR_SYSTEM_ZLIB -DCHDR_SYSTEM_ZSTD
CHDR_FILES := \
- ${LZMA_FILES} \
+ $(SRC)/ext/libchdr/deps/lzma-26.02/src/LzmaDec.c \
$(SRC)/ext/libchdr/src/libchdr_bitstream.c \
$(SRC)/ext/libchdr/src/libchdr_cdrom.c \
$(SRC)/ext/libchdr/src/libchdr_chd.c \
+ $(SRC)/ext/libchdr/src/libchdr_codec_avhuff.c \
+ $(SRC)/ext/libchdr/src/libchdr_codec_cdfl.c \
+ $(SRC)/ext/libchdr/src/libchdr_codec_cdlz.c \
+ $(SRC)/ext/libchdr/src/libchdr_codec_cdzl.c \
+ $(SRC)/ext/libchdr/src/libchdr_codec_cdzs.c \
+ $(SRC)/ext/libchdr/src/libchdr_codec_flac.c \
+ $(SRC)/ext/libchdr/src/libchdr_codec_huff.c \
+ $(SRC)/ext/libchdr/src/libchdr_codec_lzma.c \
+ $(SRC)/ext/libchdr/src/libchdr_codec_zlib.c \
+ $(SRC)/ext/libchdr/src/libchdr_codec_zstd.c \
$(SRC)/ext/libchdr/src/libchdr_flac.c \
$(SRC)/ext/libchdr/src/libchdr_huffman.c
diff --git a/android/jni/Locals.mk b/android/jni/Locals.mk
index 431888ce47..d50e753bfa 100644
--- a/android/jni/Locals.mk
+++ b/android/jni/Locals.mk
@@ -22,7 +22,6 @@ LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../ext/armips \
$(LOCAL_PATH)/../../ext/armips/ext/filesystem/include \
$(LOCAL_PATH)/../../ext/armips/ext/tinyformat \
- $(LOCAL_PATH)/../../ext/libchdr/deps/lzma-24.05/include \
$(LOCAL_PATH)/../../ext/libchdr/include \
$(LOCAL_PATH)/../../ext/cpu_features/include \
$(LOCAL_PATH)/../../ext/rcheevos/include \
diff --git a/ext/libchdr b/ext/libchdr
index 8bba7745d7..47d794151b 160000
--- a/ext/libchdr
+++ b/ext/libchdr
@@ -1 +1 @@
-Subproject commit 8bba7745d758627258b315997a860039244cedaf
+Subproject commit 47d794151b2b64f6aba60304e6480f4f5a2bc24b
diff --git a/ext/libchdr-build/CMakeLists.txt b/ext/libchdr-build/CMakeLists.txt
index bde9ed8a4c..02387677f1 100644
--- a/ext/libchdr-build/CMakeLists.txt
+++ b/ext/libchdr-build/CMakeLists.txt
@@ -1,34 +1,31 @@
cmake_minimum_required (VERSION 3.10.0)
project (chdr)
-set(LZMA_DIR ../libchdr/deps/lzma-24.05/src)
+set(LZMA_DIR ../libchdr/deps/lzma-26.02/src)
set(SRC_DIR ../libchdr/src)
-include_directories(../libchdr/deps/lzma-24.05/include)
include_directories(../libchdr/include)
include_directories(../zlib)
include_directories(../zstd/lib)
-add_definitions(-DZ7_ST)
-
-# Hack - CpuArch.c has a workaround that we reuse.
-add_definitions(-D__SWITCH__)
+# Use our zlib and zstd rather than libchdr's bundled miniz and zstd.
+add_definitions(-DCHDR_SYSTEM_ZLIB -DCHDR_SYSTEM_ZSTD)
set(ALL_SOURCE_FILES
- ${LZMA_DIR}/Alloc.c
- ${LZMA_DIR}/Bra.c
- ${LZMA_DIR}/Bra86.c
- ${LZMA_DIR}/BraIA64.c
- ${LZMA_DIR}/CpuArch.c
- ${LZMA_DIR}/Delta.c
- ${LZMA_DIR}/LzFind.c
${LZMA_DIR}/LzmaDec.c
- ${LZMA_DIR}/LzmaEnc.c
- ${LZMA_DIR}/Lzma86Dec.c
- ${LZMA_DIR}/Sort.c
${SRC_DIR}/libchdr_bitstream.c
${SRC_DIR}/libchdr_cdrom.c
${SRC_DIR}/libchdr_chd.c
+ ${SRC_DIR}/libchdr_codec_avhuff.c
+ ${SRC_DIR}/libchdr_codec_cdfl.c
+ ${SRC_DIR}/libchdr_codec_cdlz.c
+ ${SRC_DIR}/libchdr_codec_cdzl.c
+ ${SRC_DIR}/libchdr_codec_cdzs.c
+ ${SRC_DIR}/libchdr_codec_flac.c
+ ${SRC_DIR}/libchdr_codec_huff.c
+ ${SRC_DIR}/libchdr_codec_lzma.c
+ ${SRC_DIR}/libchdr_codec_zlib.c
+ ${SRC_DIR}/libchdr_codec_zstd.c
${SRC_DIR}/libchdr_flac.c
${SRC_DIR}/libchdr_huffman.c
)
diff --git a/ext/libchdr.vcxproj b/ext/libchdr.vcxproj
index 65491c2be3..69689c7664 100644
--- a/ext/libchdr.vcxproj
+++ b/ext/libchdr.vcxproj
@@ -27,37 +27,22 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -175,14 +160,14 @@
TurnOffAllWarnings
- Z7_ST;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ CHDR_SYSTEM_ZLIB;CHDR_SYSTEM_ZSTD;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
true
EnableFastChecks
MultiThreadedDebug
true
ProgramDatabase
false
- libchdr\include;libchdr\deps\lzma-24.05\include;zlib;zstd\lib;
+ libchdr\include;zlib;zstd\lib;
Windows
@@ -195,13 +180,13 @@
TurnOffAllWarnings
- Z7_ST;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ CHDR_SYSTEM_ZLIB;CHDR_SYSTEM_ZSTD;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
true
ProgramDatabase
false
- libchdr\include;libchdr\deps\lzma-24.05\include;zlib;zstd\lib;
+ libchdr\include;zlib;zstd\lib;
Windows
@@ -213,13 +198,13 @@
TurnOffAllWarnings
- Z7_ST;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ CHDR_SYSTEM_ZLIB;CHDR_SYSTEM_ZSTD;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
true
ProgramDatabase
false
- libchdr\include;libchdr\deps\lzma-24.05\include;zlib;zstd\lib;
+ libchdr\include;zlib;zstd\lib;
Windows
@@ -234,7 +219,7 @@
MaxSpeed
true
true
- Z7_ST;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ CHDR_SYSTEM_ZLIB;CHDR_SYSTEM_ZSTD;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
false
MultiThreaded
true
@@ -244,7 +229,7 @@
true
false
StreamingSIMDExtensions2
- libchdr\include;libchdr\deps\lzma-24.05\include;zlib;zstd\lib;
+ libchdr\include;zlib;zstd\lib;
Windows
@@ -262,7 +247,7 @@
MaxSpeed
true
true
- Z7_ST;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ CHDR_SYSTEM_ZLIB;CHDR_SYSTEM_ZSTD;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
false
false
MultiThreaded
@@ -272,7 +257,7 @@
true
AnySuitable
Speed
- libchdr\include;libchdr\deps\lzma-24.05\include;zlib;zstd\lib;
+ libchdr\include;zlib;zstd\lib;
Windows
@@ -289,7 +274,7 @@
MaxSpeed
true
true
- Z7_ST;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ CHDR_SYSTEM_ZLIB;CHDR_SYSTEM_ZSTD;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
false
false
MultiThreaded
@@ -299,7 +284,7 @@
true
AnySuitable
Speed
- libchdr\include;libchdr\deps\lzma-24.05\include;zlib;zstd\lib;
+ libchdr\include;zlib;zstd\lib;
Windows
diff --git a/ext/libchdr.vcxproj.filters b/ext/libchdr.vcxproj.filters
index 3efa31b66e..fb0d32f9c5 100644
--- a/ext/libchdr.vcxproj.filters
+++ b/ext/libchdr.vcxproj.filters
@@ -4,39 +4,19 @@
+
+
+
+
+
+
+
+
+
+
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
+
LZMA
@@ -48,51 +28,6 @@
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
-
- LZMA
-
diff --git a/libretro/Makefile.common b/libretro/Makefile.common
index c42d7278b3..f53945c380 100644
--- a/libretro/Makefile.common
+++ b/libretro/Makefile.common
@@ -265,28 +265,24 @@ SOURCES_C += \
COREFLAGS += -DSTACK_LINE_READER_BUFFER_SIZE=1024
COREFLAGS += -DHTTPS_NOT_AVAILABLE
-COREFLAGS += -DZ7_ST
-INCFLAGS += -I$(EXTDIR)/libchdr/deps/lzma-24.05/include
-
-SOURCES_C += \
- $(EXTDIR)/libchdr/deps/lzma-24.05/src/Alloc.c \
- $(EXTDIR)/libchdr/deps/lzma-24.05/src/Bra.c \
- $(EXTDIR)/libchdr/deps/lzma-24.05/src/Bra86.c \
- $(EXTDIR)/libchdr/deps/lzma-24.05/src/BraIA64.c \
- $(EXTDIR)/libchdr/deps/lzma-24.05/src/CpuArch.c \
- $(EXTDIR)/libchdr/deps/lzma-24.05/src/Delta.c \
- $(EXTDIR)/libchdr/deps/lzma-24.05/src/LzFind.c \
- $(EXTDIR)/libchdr/deps/lzma-24.05/src/LzmaDec.c \
- $(EXTDIR)/libchdr/deps/lzma-24.05/src/LzmaEnc.c \
- $(EXTDIR)/libchdr/deps/lzma-24.05/src/Lzma86Dec.c \
- $(EXTDIR)/libchdr/deps/lzma-24.05/src/Sort.c
-
+COREFLAGS += -DCHDR_SYSTEM_ZLIB -DCHDR_SYSTEM_ZSTD
INCFLAGS += -I$(EXTDIR)/libchdr/include
SOURCES_C += \
+ $(EXTDIR)/libchdr/deps/lzma-26.02/src/LzmaDec.c \
$(EXTDIR)/libchdr/src/libchdr_bitstream.c \
$(EXTDIR)/libchdr/src/libchdr_cdrom.c \
$(EXTDIR)/libchdr/src/libchdr_chd.c \
+ $(EXTDIR)/libchdr/src/libchdr_codec_avhuff.c \
+ $(EXTDIR)/libchdr/src/libchdr_codec_cdfl.c \
+ $(EXTDIR)/libchdr/src/libchdr_codec_cdlz.c \
+ $(EXTDIR)/libchdr/src/libchdr_codec_cdzl.c \
+ $(EXTDIR)/libchdr/src/libchdr_codec_cdzs.c \
+ $(EXTDIR)/libchdr/src/libchdr_codec_flac.c \
+ $(EXTDIR)/libchdr/src/libchdr_codec_huff.c \
+ $(EXTDIR)/libchdr/src/libchdr_codec_lzma.c \
+ $(EXTDIR)/libchdr/src/libchdr_codec_zlib.c \
+ $(EXTDIR)/libchdr/src/libchdr_codec_zstd.c \
$(EXTDIR)/libchdr/src/libchdr_flac.c \
$(EXTDIR)/libchdr/src/libchdr_huffman.c