diff -ruN a/cmake/ZArchive.cmake b/cmake/ZArchive.cmake
--- a/cmake/ZArchive.cmake	2026-10-19 12:18:10.000000000 -0400
+++ b/cmake/ZArchive.cmake	2026-10-19 12:27:42.901973543 -0400
@@ -1,25 +1,3 @@
-enable_language(C)
-
-set(ZSTD_BUILD_PROGRAMS OFF CACHE BOOL "" FORCE)
-set(ZSTD_BUILD_TESTS OFF CACHE BOOL "" FORCE)
-set(ZSTD_BUILD_CONTRIB OFF CACHE BOOL "" FORCE)
-set(ZSTD_BUILD_SHARED OFF CACHE BOOL "" FORCE)
-set(ZSTD_BUILD_STATIC ON CACHE BOOL "" FORCE)
-set(ZSTD_LEGACY_SUPPORT OFF CACHE BOOL "" FORCE)
-set(ZSTD_MULTITHREAD_SUPPORT OFF CACHE BOOL "" FORCE)
-add_subdirectory(${CMAKE_SOURCE_DIR}/3rdparty/zstd/build/cmake ${CMAKE_BINARY_DIR}/3rdparty/zstd EXCLUDE_FROM_ALL)
-set_target_properties(libzstd_static PROPERTIES POSITION_INDEPENDENT_CODE ON)
-
-set(ZARCHIVE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/3rdparty/ZArchive)
-add_library(zarchive STATIC EXCLUDE_FROM_ALL
-    ${ZARCHIVE_SOURCE_DIR}/src/zarchivereader.cpp
-    ${ZARCHIVE_SOURCE_DIR}/src/zarchivewriter.cpp
-    ${ZARCHIVE_SOURCE_DIR}/src/sha_256.c
-)
-target_include_directories(zarchive SYSTEM PUBLIC ${ZARCHIVE_SOURCE_DIR}/include)
-target_compile_features(zarchive PUBLIC cxx_std_20)
-target_link_libraries(zarchive PRIVATE libzstd_static)
-set_target_properties(zarchive PROPERTIES POSITION_INDEPENDENT_CODE ON)
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-    target_link_options(zarchive INTERFACE LINKER:--exclude-libs,libzarchive.a:libzstd.a)
-endif()
+pkg_check_modules(ZARCHIVE REQUIRED IMPORTED_TARGET zarchive)
+add_library(zarchive INTERFACE)
+target_link_libraries(zarchive INTERFACE PkgConfig::ZARCHIVE)
diff -ruN a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt	2026-10-19 12:18:10.000000000 -0400
+++ b/CMakeLists.txt	2026-10-19 12:27:42.901914703 -0400
@@ -72,8 +72,6 @@
     add_compile_options(-fsanitize=address -fno-omit-frame-pointer)
     add_link_options(-fsanitize=address)
     add_compile_definitions(ANYPS5_ENABLE_ASAN=1)
-elseif(NOT APPLE)
-    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static -static-libgcc -static-libstdc++")
 endif()
 
 if(APPLE AND NOT ANYPS5_RELINKER_ONLY)
@@ -273,13 +271,16 @@
         endif()
     endif()
 endif()
-set(ARCHITECTURE x86_64)
-add_subdirectory(3rdparty/ffmpeg-core)
-if(MINGW)
-    target_link_libraries(ffmpeg INTERFACE bcrypt ole32 user32 ws2_32)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-    target_link_options(ffmpeg INTERFACE LINKER:--exclude-libs,ALL)
-endif()
+find_package(PkgConfig REQUIRED)
+find_package(ZLIB REQUIRED)
+find_path(STB_INCLUDE_DIR stb_image.h PATH_SUFFIXES stb REQUIRED)
+pkg_check_modules(FFMPEG REQUIRED IMPORTED_TARGET
+    libavcodec libavfilter libavformat libavutil libswresample libswscale)
+add_library(ffmpeg INTERFACE)
+target_link_libraries(ffmpeg INTERFACE PkgConfig::FFMPEG)
+pkg_check_modules(TURBOJPEG REQUIRED IMPORTED_TARGET libturbojpeg)
+add_library(jpeg_turbo INTERFACE)
+target_link_libraries(jpeg_turbo INTERFACE PkgConfig::TURBOJPEG ZLIB::ZLIB)
 
 if(APS5_ENABLE_TRACY)
     include(cmake/Tracy.cmake)
@@ -301,13 +302,9 @@
     endif()
 endif()
 
-set(LIBUSB_BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
-set(LIBUSB_INSTALL_TARGETS OFF CACHE BOOL "" FORCE)
-set(LIBUSB_BUILD_TESTING OFF CACHE BOOL "" FORCE)
-set(LIBUSB_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
-set(LIBUSB_ENABLE_UDEV OFF CACHE BOOL "" FORCE)
-add_subdirectory(3rdparty/libusb-cmake EXCLUDE_FROM_ALL)
-set_target_properties(usb-1.0 PROPERTIES POSITION_INDEPENDENT_CODE ON)
+pkg_check_modules(LIBUSB REQUIRED IMPORTED_TARGET libusb-1.0)
+add_library(usb-1.0 INTERFACE)
+target_link_libraries(usb-1.0 INTERFACE PkgConfig::LIBUSB)
 
 include(cmake/ZArchive.cmake)
 if(WIN32)
diff -ruN a/core/Decoder/Jpeg/CMakeLists.txt b/core/Decoder/Jpeg/CMakeLists.txt
--- a/core/Decoder/Jpeg/CMakeLists.txt	2026-10-19 12:18:10.000000000 -0400
+++ b/core/Decoder/Jpeg/CMakeLists.txt	2026-10-19 12:27:42.902098793 -0400
@@ -3,62 +3,9 @@
         message(FATAL_ERROR "JPEG decoder requires an existing runtime target: ${runtimeTarget}")
     endif()
 
-    include(ExternalProject)
-    if(NOT TARGET jpeg_turbo_external)
-        set(jpeg_turbo_prefix "${CMAKE_BINARY_DIR}/libjpeg-turbo")
-        if(WIN32)
-            if(MSVC)
-                set(jpeg_turbo_library "${jpeg_turbo_prefix}/lib/turbojpeg-static.lib")
-            else()
-                set(jpeg_turbo_library "${jpeg_turbo_prefix}/lib/libturbojpeg.a")
-            endif()
-        else()
-            set(jpeg_turbo_library "${jpeg_turbo_prefix}/lib/libturbojpeg.a")
-        endif()
-        file(MAKE_DIRECTORY "${jpeg_turbo_prefix}/include")
-        set(jpeg_turbo_platform_args)
-        if(APPLE)
-            list(APPEND jpeg_turbo_platform_args
-                -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-                -DCMAKE_APPLE_SILICON_PROCESSOR=${CMAKE_APPLE_SILICON_PROCESSOR})
-        endif()
-        ExternalProject_Add(jpeg_turbo_external
-            SOURCE_DIR "${PROJECT_SOURCE_DIR}/3rdparty/libjpeg-turbo"
-            BINARY_DIR "${CMAKE_BINARY_DIR}/libjpeg-turbo-build"
-            INSTALL_DIR "${jpeg_turbo_prefix}"
-            CMAKE_ARGS
-                -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-                -DCMAKE_INSTALL_PREFIX=${jpeg_turbo_prefix}
-                -DBUILD_SHARED_LIBS=OFF
-                -DENABLE_STATIC=ON
-                -DENABLE_SHARED=OFF
-                -DWITH_SIMD=OFF
-                -DWITH_TURBOJPEG=ON
-                -DWITH_TOOLS=OFF
-                -DWITH_TESTS=OFF
-                -DCMAKE_INSTALL_LIBDIR=lib
-                -DCMAKE_C_VISIBILITY_PRESET=hidden
-                -DCMAKE_VISIBILITY_INLINES_HIDDEN=ON
-                -DCMAKE_POSITION_INDEPENDENT_CODE=ON
-                -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-                -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
-                -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
-                -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
-                ${jpeg_turbo_platform_args}
-            BUILD_BYPRODUCTS
-                "${jpeg_turbo_library}"
-        )
-        add_library(jpeg_turbo STATIC IMPORTED GLOBAL)
-        set_target_properties(jpeg_turbo PROPERTIES
-            IMPORTED_LOCATION "${jpeg_turbo_library}"
-            INTERFACE_INCLUDE_DIRECTORIES "${PROJECT_SOURCE_DIR}/3rdparty/libjpeg-turbo/src;${jpeg_turbo_prefix}/include"
-        )
-        add_dependencies(jpeg_turbo jpeg_turbo_external)
-    endif()
-
     add_library(${target} STATIC ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/src/Jpeg.cpp)
     target_include_directories(${target} PUBLIC ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/include)
-    target_include_directories(${target} SYSTEM PRIVATE ${PROJECT_SOURCE_DIR}/3rdparty/stb)
+    target_include_directories(${target} SYSTEM PRIVATE ${STB_INCLUDE_DIR})
     target_link_libraries(${target} PRIVATE ${runtimeTarget} jpeg_turbo)
     set_target_properties(${target} PROPERTIES
         CXX_EXTENSIONS OFF
diff -ruN a/core/Decoder/Png/CMakeLists.txt b/core/Decoder/Png/CMakeLists.txt
--- a/core/Decoder/Png/CMakeLists.txt	2026-10-19 12:18:10.000000000 -0400
+++ b/core/Decoder/Png/CMakeLists.txt	2026-10-19 12:27:42.902154697 -0400
@@ -5,7 +5,7 @@
 
     add_library(${target} STATIC ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/src/Png.cpp)
     target_include_directories(${target} PUBLIC ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/include)
-    target_include_directories(${target} SYSTEM PRIVATE ${PROJECT_SOURCE_DIR}/3rdparty/stb)
+    target_include_directories(${target} SYSTEM PRIVATE ${STB_INCLUDE_DIR})
     target_link_libraries(${target} PRIVATE ${runtimeTarget})
     set_target_properties(${target} PROPERTIES
         CXX_EXTENSIONS OFF
@@ -16,7 +16,7 @@
 
     if(BUILD_TESTING)
         add_test_executable(${target}_tests ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/tests/Png.cpp)
-        target_include_directories(${target}_tests SYSTEM PRIVATE ${PROJECT_SOURCE_DIR}/3rdparty/stb)
+        target_include_directories(${target}_tests SYSTEM PRIVATE ${STB_INCLUDE_DIR})
         target_link_libraries(${target}_tests PRIVATE ${target})
         configure_windows_unwind(${target}_tests)
         add_test(NAME ${target} COMMAND ${target}_tests)
diff -ruN a/core/libs/prx/libSceAgcDriver/CMakeLists.txt b/core/libs/prx/libSceAgcDriver/CMakeLists.txt
--- a/core/libs/prx/libSceAgcDriver/CMakeLists.txt	2026-10-19 12:18:10.000000000 -0400
+++ b/core/libs/prx/libSceAgcDriver/CMakeLists.txt	2026-10-19 12:27:42.902546829 -0400
@@ -327,10 +327,6 @@
         BYPRODUCTS ${agcTraceRevisionHeader}
         VERBATIM
 )
-set(agcZlibIncludeDir ${CMAKE_SOURCE_DIR}/3rdparty/libjpeg-turbo/src/spng/zlib)
-set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/Execution/src/TraceFile.cpp PROPERTIES
-        INCLUDE_DIRECTORIES ${agcZlibIncludeDir}
-)
 
 add_library(libSceAgcDriver SHARED EXCLUDE_FROM_ALL
         ${agcDriverSources}
diff -ruN a/core/libs/prx/libSceZlib/CMakeLists.txt b/core/libs/prx/libSceZlib/CMakeLists.txt
--- a/core/libs/prx/libSceZlib/CMakeLists.txt	2026-10-19 12:18:10.000000000 -0400
+++ b/core/libs/prx/libSceZlib/CMakeLists.txt	2026-10-19 12:27:42.902221960 -0400
@@ -1,6 +1,5 @@
 add_library(libSceZlib SHARED EXCLUDE_FROM_ALL ${CMAKE_CURRENT_SOURCE_DIR}/Export.cpp)
-target_include_directories(libSceZlib PRIVATE ${LIBS_INCLUDE_DIR}
-    ${CMAKE_SOURCE_DIR}/3rdparty/libjpeg-turbo/src/spng/zlib)
+target_include_directories(libSceZlib PRIVATE ${LIBS_INCLUDE_DIR})
 set_target_properties(libSceZlib PROPERTIES CXX_EXTENSIONS OFF)
 configure_windows_unwind(libSceZlib)
 target_link_libraries(libSceZlib PRIVATE jpeg_turbo)
