diff --git a/emulators/flycast/Makefile b/emulators/flycast/Makefile index d6efc271a1a4..d5e8e34711f4 100644 --- a/emulators/flycast/Makefile +++ b/emulators/flycast/Makefile @@ -1,67 +1,68 @@ PORTNAME= flycast DISTVERSIONPREFIX= v -DISTVERSION= 2.5 -PORTREVISION= 6 +DISTVERSION= 2.6 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 +BUILD_DEPENDS= asio>0:net/asio \ + websocketpp>0:devel/websocketpp LIB_DEPENDS= libchdr.so:devel/libchdr \ libcurl.so:ftp/curl \ libminiupnpc.so:net/miniupnpc \ libzip.so:archivers/libzip USES= cmake compiler:c++20-lang pkgconfig sdl USE_GITHUB= yes GH_ACCOUNT= flyinghead -GH_TUPLE= vinniefalco:LuaBridge:5d21e35633a1f87ed08af115b07d3386096f792b:LuaBridge/core/deps/luabridge \ - GPUOpen-LibrariesAndSDKs:VulkanMemoryAllocator:6eb62e1515072827db992c2befd80b71b2d04329:VulkanMemoryAllocator/core/deps/VulkanMemoryAllocator \ - RetroAchievements:rcheevos:563230b1c249774b4852c944dc7cdcb952c9e8e8:rcheevos/core/deps/rcheevos +GH_TUPLE= GPUOpen-LibrariesAndSDKs:VulkanMemoryAllocator:1d8f600fd424278486eade7ed3e877c99f0846b1:VulkanMemoryAllocator/core/deps/VulkanMemoryAllocator \ + OrangeFox86:DreamPicoPort-API:8ea3b90e508d4a27a6e3a9f111d88d690bff018c:DreamPicoPortAPI/core/deps/DreamPicoPort-API \ + RetroAchievements:rcheevos:926e4608f8dca7989267c787bbefb3ab1c835ac5:rcheevos/core/deps/rcheevos \ + herumi:xbyak:0d67fd1530016b7c56f3cd74b3fca920f4c3e2b4:xbyak/core/deps/xbyak \ + paullouisageneau:libjuice:5948a4162d37bc213d6051b67ee2876ccc5a99a6:libjuice/core/deps/libjuice \ + vinniefalco:LuaBridge:ade28532d998ada20048db7f5a649acaf66a4532:LuaBridge/core/deps/luabridge USE_SDL= sdl2 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_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>0:graphics/glslang \ vulkan-headers>0:graphics/vulkan-headers VULKAN_CMAKE_BOOL= USE_HOST_GLSLANG \ USE_VULKAN post-install-DOCS-on: - ${MKDIR} ${STAGEDIR}${DOCSDIR} - (cd ${WRKSRC}/docs && \ - ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) + (cd ${WRKSRC}/docs && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) .include diff --git a/emulators/flycast/distinfo b/emulators/flycast/distinfo index 2072eb036c5b..12c564bdb6c0 100644 --- a/emulators/flycast/distinfo +++ b/emulators/flycast/distinfo @@ -1,9 +1,15 @@ -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 +TIMESTAMP = 1768252493 +SHA256 (flyinghead-flycast-v2.6_GH0.tar.gz) = 7765c0932e8f12e7cdb70db059efce5569c9880a5c0f4c00458fe108d49d36d9 +SIZE (flyinghead-flycast-v2.6_GH0.tar.gz) = 34604053 +SHA256 (GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-1d8f600fd424278486eade7ed3e877c99f0846b1_GH0.tar.gz) = 04b278f5a185ef75a7ea988e0e76ddd0b2f2186bf56dd90625159972a47dcb3b +SIZE (GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-1d8f600fd424278486eade7ed3e877c99f0846b1_GH0.tar.gz) = 962421 +SHA256 (OrangeFox86-DreamPicoPort-API-8ea3b90e508d4a27a6e3a9f111d88d690bff018c_GH0.tar.gz) = 01810b682b985376395013a6833073abf2d401d7fdbae3f551c4b58a6de48cd1 +SIZE (OrangeFox86-DreamPicoPort-API-8ea3b90e508d4a27a6e3a9f111d88d690bff018c_GH0.tar.gz) = 32385 +SHA256 (RetroAchievements-rcheevos-926e4608f8dca7989267c787bbefb3ab1c835ac5_GH0.tar.gz) = 11e5fc43c4676289ff4637c04a9f43070235006d826c363628dcb194d5182ebd +SIZE (RetroAchievements-rcheevos-926e4608f8dca7989267c787bbefb3ab1c835ac5_GH0.tar.gz) = 434643 +SHA256 (herumi-xbyak-0d67fd1530016b7c56f3cd74b3fca920f4c3e2b4_GH0.tar.gz) = 18aa05ac8e4bd5f5cb52c5481b86ba02cac395ad8cdbec6fe5acac94ad546dc8 +SIZE (herumi-xbyak-0d67fd1530016b7c56f3cd74b3fca920f4c3e2b4_GH0.tar.gz) = 293437 +SHA256 (paullouisageneau-libjuice-5948a4162d37bc213d6051b67ee2876ccc5a99a6_GH0.tar.gz) = 5703c044e0b28f16c791a35025281ae04e89e1d8f874e5eddb85641024e7e4ed +SIZE (paullouisageneau-libjuice-5948a4162d37bc213d6051b67ee2876ccc5a99a6_GH0.tar.gz) = 107376 +SHA256 (vinniefalco-LuaBridge-ade28532d998ada20048db7f5a649acaf66a4532_GH0.tar.gz) = bbbcac836b368f25675b3063a199b7684fc2119e63fb2b631f11f14372ca7ead +SIZE (vinniefalco-LuaBridge-ade28532d998ada20048db7f5a649acaf66a4532_GH0.tar.gz) = 1199189 diff --git a/emulators/flycast/files/patch-CMakeLists.txt b/emulators/flycast/files/patch-CMakeLists.txt index f76a3fdcbd15..982c7e25d45d 100644 --- a/emulators/flycast/files/patch-CMakeLists.txt +++ b/emulators/flycast/files/patch-CMakeLists.txt @@ -1,12 +1,35 @@ ---- CMakeLists.txt.orig 2025-05-07 13:21:40 UTC +--- CMakeLists.txt.orig 2026-01-07 13:28:32 UTC +++ CMakeLists.txt -@@ -1421,8 +1421,7 @@ if(USE_VULKAN) +@@ -488,7 +488,7 @@ if(NOT LIBRETRO) + + # DreamPicoPort-API + option(DREAMPICOPORT_ADD_LIBUSB "Add internal libusb library" OFF) # Already included above, when applicable +- add_subdirectory(core/deps/DreamPicoPort-API) ++ add_subdirectory(core/deps/DreamPicoPort-API EXCLUDE_FROM_ALL) + target_link_libraries(${PROJECT_NAME} PRIVATE dream_pico_port_api) + endif() + +@@ -1001,8 +1001,11 @@ if(NOT LIBRETRO) + core/deps/rcheevos/src/rhash/aes.c + core/deps/rcheevos/src/rhash/cdreader.c + core/deps/rcheevos/src/rhash/hash.c +- core/deps/rcheevos/src/rhash/md5.c +- core/deps/rcheevos/src/rurl/url.c) ++ core/deps/rcheevos/src/rhash/hash_disc.c ++ core/deps/rcheevos/src/rhash/hash_encrypted.c ++ core/deps/rcheevos/src/rhash/hash_rom.c ++ core/deps/rcheevos/src/rhash/hash_zip.c ++ core/deps/rcheevos/src/rhash/md5.c) + target_include_directories(${PROJECT_NAME} PRIVATE core/deps/rcheevos/include) + target_compile_definitions(${PROJECT_NAME} PRIVATE USE_RACHIEVEMENTS RC_DISABLE_LUA) + endif() +@@ -1080,8 +1083,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 5f654a2ba530..262d2395ceaf 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,11 @@ ---- core/rend/vulkan/vulkan_context.cpp.orig 2025-05-07 13:47:18 UTC +--- core/rend/vulkan/vulkan_context.cpp.orig 2026-01-12 20:26:48 UTC +++ core/rend/vulkan/vulkan_context.cpp -@@ -42,6 +42,7 @@ VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE - #endif - - #include -+#include - #include - - void ReInitOSD(); -@@ -147,7 +148,7 @@ bool VulkanContext::InitInstance(const char** extensio +@@ -148,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) { diff --git a/emulators/flycast/files/patch-core_sdl_dreampicoport.cpp b/emulators/flycast/files/patch-core_sdl_dreampicoport.cpp new file mode 100644 index 000000000000..db83b1031110 --- /dev/null +++ b/emulators/flycast/files/patch-core_sdl_dreampicoport.cpp @@ -0,0 +1,11 @@ +--- core/sdl/dreampicoport.cpp.orig 2026-01-12 19:16:59 UTC ++++ core/sdl/dreampicoport.cpp +@@ -120,7 +120,7 @@ class DreamPicoPortSerialHandler (public) + std::this_thread::sleep_for(std::chrono::milliseconds(500)); + + serial_handler = asio::serial_port(io_context); +- io_context.reset(); ++ io_context.restart(); + + std::string serial_device = ""; +