diff --git a/emulators/flycast/Makefile b/emulators/flycast/Makefile index f5eeae7d7f79..cf5a8593268d 100644 --- a/emulators/flycast/Makefile +++ b/emulators/flycast/Makefile @@ -1,74 +1,76 @@ PORTNAME= flycast DISTVERSIONPREFIX= v -DISTVERSION= 2.4 -PORTREVISION= 4 +DISTVERSION= 2.5 CATEGORIES= emulators MAINTAINER= bsdcode@disroot.org COMMENT= Multi-platform Sega Dreamcast emulator WWW= https://github.com/flyinghead/flycast LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE +BUILD_DEPENDS= asio>0:net/asio LIB_DEPENDS= libchdr.so:devel/libchdr \ libcurl.so:ftp/curl \ libminiupnpc.so:net/miniupnpc \ - libzip.so:archivers/libzip \ - libzstd.so:archivers/zstd + libzip.so:archivers/libzip -USES= cmake compiler:c++17-lang pkgconfig sdl +USES= cmake compiler:c++20-lang pkgconfig sdl USE_GITHUB= yes GH_ACCOUNT= flyinghead USE_SDL= sdl2 .include "${.CURDIR}/Makefile.tuples" +CMAKE_ON= USE_HOST_LIBCHDR + OPTIONS_DEFINE= DOCS LUA OPENMP VULKAN OPTIONS_DEFAULT= ALSA AO LUA OPENMP OSS VULKAN OPTIONS_GROUP= AUDIO OPTIONS_GROUP_AUDIO= ALSA AO OSS PULSEAUDIO # building with lua support fails on i386, see also # https://github.com/vinniefalco/LuaBridge/issues/302 OPTIONS_EXCLUDE_i386= LUA VULKAN_DESC= Build with Vulkan support ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_CMAKE_BOOL= USE_ALSA AO_LIB_DEPENDS= libao.so:audio/libao -AO_CMAKE_BOOL= USE_AO +AO_CMAKE_BOOL= USE_LIBAO LUA_USES= lua:52+ LUA_CMAKE_BOOL= USE_LUA OPENMP_CMAKE_BOOL= USE_OPENMP OSS_CMAKE_BOOL= USE_OSS PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= USE_PULSEAUDIO -VULKAN_BUILD_DEPENDS= glslang:graphics/glslang \ +VULKAN_BUILD_DEPENDS= glslang>0:graphics/glslang \ vulkan-headers>0:graphics/vulkan-headers -VULKAN_CMAKE_BOOL= USE_HOST_GLSLANG USE_VULKAN +VULKAN_CMAKE_BOOL= USE_HOST_GLSLANG \ + USE_VULKAN post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} (cd ${WRKSRC}/docs && \ ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) # For maintainer (do not forget to clean up Makefile.tuples afterwards to # remove useless submodules) Makefile.tuples:: ${RM} -f ${.CURDIR}/Makefile.tuples ${RM} -rf ${WRKDIR}/.maintainer.checkout ${MKDIR} ${WRKDIR}/.maintainer.checkout (cd ${WRKDIR}/.maintainer.checkout && \ git clone --recursive --branch=${DISTVERSIONPREFIX}${DISTVERSION} \ https://github.com/${GH_ACCOUNT}/${PORTNAME} . && \ ${SH} ${FILESDIR}/gen_gh_tuple.sh > ${.CURDIR}/Makefile.tuples) .include diff --git a/emulators/flycast/Makefile.tuples b/emulators/flycast/Makefile.tuples index be52324f87b1..3dc85b571e43 100644 --- a/emulators/flycast/Makefile.tuples +++ b/emulators/flycast/Makefile.tuples @@ -1,4 +1,4 @@ GH_TUPLE= \ - vinniefalco:LuaBridge:fab7b33b896a42dcc865ba5ecdbacd9f409137f8:LuaBridge/core/deps/luabridge \ + vinniefalco:LuaBridge:5d21e35633a1f87ed08af115b07d3386096f792b:LuaBridge/core/deps/luabridge \ GPUOpen-LibrariesAndSDKs:VulkanMemoryAllocator:6eb62e1515072827db992c2befd80b71b2d04329:VulkanMemoryAllocator/core/deps/VulkanMemoryAllocator \ RetroAchievements:rcheevos:563230b1c249774b4852c944dc7cdcb952c9e8e8:rcheevos/core/deps/rcheevos \ diff --git a/emulators/flycast/distinfo b/emulators/flycast/distinfo index 615fcccec971..2072eb036c5b 100644 --- a/emulators/flycast/distinfo +++ b/emulators/flycast/distinfo @@ -1,9 +1,9 @@ -TIMESTAMP = 1731443633 -SHA256 (flyinghead-flycast-v2.4_GH0.tar.gz) = 44b2ff5d172f7be2be9db613ebd22635760cfc846ddb4c25e1da0d8fa79b1a1b -SIZE (flyinghead-flycast-v2.4_GH0.tar.gz) = 30398953 -SHA256 (vinniefalco-LuaBridge-fab7b33b896a42dcc865ba5ecdbacd9f409137f8_GH0.tar.gz) = d393adc6bf1659faf2683f6ef2766ee7223650c8087ce53f8ab529e44c1c1575 -SIZE (vinniefalco-LuaBridge-fab7b33b896a42dcc865ba5ecdbacd9f409137f8_GH0.tar.gz) = 543800 +TIMESTAMP = 1746622585 +SHA256 (flyinghead-flycast-v2.5_GH0.tar.gz) = 019cae6c0eb196f8222c6640e36be5e3d6b551f1c7782e66c831dbcb43ef6d11 +SIZE (flyinghead-flycast-v2.5_GH0.tar.gz) = 34653480 +SHA256 (vinniefalco-LuaBridge-5d21e35633a1f87ed08af115b07d3386096f792b_GH0.tar.gz) = 75af9f79e1f818990fca3a9173dcc32a55f4ebd088c931193be4c9b2d8336abc +SIZE (vinniefalco-LuaBridge-5d21e35633a1f87ed08af115b07d3386096f792b_GH0.tar.gz) = 1197538 SHA256 (GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-6eb62e1515072827db992c2befd80b71b2d04329_GH0.tar.gz) = 9afe46ce02681799ca907fb79990ff276877dfb6324d48da21b215b92649368d SIZE (GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-6eb62e1515072827db992c2befd80b71b2d04329_GH0.tar.gz) = 877925 SHA256 (RetroAchievements-rcheevos-563230b1c249774b4852c944dc7cdcb952c9e8e8_GH0.tar.gz) = fab0809e60d8ed64a4a2bef2964315e9f4b6e770db4c963630441352d1dd21d1 SIZE (RetroAchievements-rcheevos-563230b1c249774b4852c944dc7cdcb952c9e8e8_GH0.tar.gz) = 669618 diff --git a/emulators/flycast/files/patch-CMakeLists.txt b/emulators/flycast/files/patch-CMakeLists.txt index 8fdc9d16811a..f76a3fdcbd15 100644 --- a/emulators/flycast/files/patch-CMakeLists.txt +++ b/emulators/flycast/files/patch-CMakeLists.txt @@ -1,66 +1,12 @@ ---- CMakeLists.txt.orig 2024-10-21 14:13:00 UTC +--- CMakeLists.txt.orig 2025-05-07 13:21:40 UTC +++ CMakeLists.txt -@@ -410,9 +410,13 @@ endif() - target_link_libraries(${PROJECT_NAME} PRIVATE glslang::glslang-default-resource-limits glslang::SPIRV) - endif() - -+if(USE_OSS) -+ target_compile_definitions(${PROJECT_NAME} PRIVATE USE_OSS) -+endif() -+ - if(NOT LIBRETRO) - find_package(ALSA) -- if(ALSA_FOUND AND NOT ANDROID) -+ if(USE_ALSA AND ALSA_FOUND AND NOT ANDROID) - target_compile_definitions(${PROJECT_NAME} PRIVATE USE_ALSA) - target_include_directories(${PROJECT_NAME} PRIVATE ${ALSA_INCLUDE_DIRS}) - target_link_libraries(${PROJECT_NAME} PRIVATE ${ALSA_LIBRARIES}) -@@ -463,7 +467,7 @@ if(NOT LIBRETRO) - endif() - - find_package(Lua 5.2) -- if(NOT APPLE AND LUA_FOUND) -+ if(USE_LUA AND NOT APPLE AND LUA_FOUND) - target_compile_definitions(${PROJECT_NAME} PRIVATE USE_LUA) - target_include_directories(${PROJECT_NAME} PRIVATE ${LUA_INCLUDE_DIR} core/deps/luabridge/Source) - list(TRANSFORM LUA_LIBRARIES REPLACE "\.dll" "") -@@ -471,9 +475,8 @@ endif() - endif() - endif() - --add_subdirectory(core/deps/libchdr EXCLUDE_FROM_ALL) --target_link_libraries(${PROJECT_NAME} PRIVATE chdr-static) --target_include_directories(${PROJECT_NAME} PRIVATE core/deps/libchdr/include) -+pkg_check_modules(libchdr REQUIRED libchdr) -+target_link_libraries(${PROJECT_NAME} PRIVATE ${libchdr_LINK_LIBRARIES}) - - if(NOT WITH_SYSTEM_ZLIB) - set(ZLIB_RELATIVE_PATH "core/deps/libchdr/deps/zlib-1.3.1") -@@ -490,7 +493,7 @@ if(PKG_CONFIG_FOUND AND NOT ANDROID AND NOT APPLE AND - find_package(PkgConfig) - if(PKG_CONFIG_FOUND AND NOT ANDROID AND NOT APPLE AND NOT LIBRETRO) - pkg_check_modules(AO IMPORTED_TARGET ao) -- if(AO_FOUND) -+ if(USE_AO AND AO_FOUND) - target_compile_definitions(${PROJECT_NAME} PRIVATE USE_LIBAO) - target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::AO) - endif() -@@ -510,7 +513,7 @@ if(PKG_CONFIG_FOUND AND NOT ANDROID AND NOT APPLE AND - endif() - - pkg_check_modules(LIBPULSE IMPORTED_TARGET libpulse) -- if(LIBPULSE_FOUND) -+ if(USE_PULSEAUDIO AND LIBPULSE_FOUND) - target_compile_definitions(${PROJECT_NAME} PRIVATE USE_PULSEAUDIO) - target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::LIBPULSE) - endif() -@@ -1338,8 +1341,7 @@ if(USE_VULKAN) +@@ -1421,8 +1421,7 @@ if(USE_VULKAN) target_compile_definitions(${PROJECT_NAME} PUBLIC VK_USE_PLATFORM_METAL_EXT) endif() - add_subdirectory(core/deps/Vulkan-Headers) - target_link_libraries(${PROJECT_NAME} PRIVATE Vulkan::Headers) + find_package(VulkanHeaders) add_subdirectory(core/deps/VulkanMemoryAllocator) target_compile_options(VulkanMemoryAllocator INTERFACE $<$,$>:-Wno-nullability-completeness>) diff --git a/emulators/flycast/files/patch-core_rend_vulkan_vulkan__context.cpp b/emulators/flycast/files/patch-core_rend_vulkan_vulkan__context.cpp index dbc4bc7501e7..5f654a2ba530 100644 --- a/emulators/flycast/files/patch-core_rend_vulkan_vulkan__context.cpp +++ b/emulators/flycast/files/patch-core_rend_vulkan_vulkan__context.cpp @@ -1,19 +1,19 @@ ---- core/rend/vulkan/vulkan_context.cpp.orig 2024-10-21 14:13:00 UTC +--- core/rend/vulkan/vulkan_context.cpp.orig 2025-05-07 13:47:18 UTC +++ core/rend/vulkan/vulkan_context.cpp @@ -42,6 +42,7 @@ VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE #endif #include +#include + #include void ReInitOSD(); - -@@ -146,7 +147,7 @@ bool VulkanContext::InitInstance(const char** extensio +@@ -147,7 +148,7 @@ bool VulkanContext::InitInstance(const char** extensio #if defined(__ANDROID__) && HOST_CPU == CPU_ARM64 vkGetInstanceProcAddr = loadVulkanDriver(); #else - static vk::DynamicLoader dl; + static vk::detail::DynamicLoader dl; vkGetInstanceProcAddr = dl.getProcAddress("vkGetInstanceProcAddr"); #endif if (vkGetInstanceProcAddr == nullptr) {