diff options
Diffstat (limited to 'emulators/Ymir')
9 files changed, 81 insertions, 113 deletions
diff --git a/emulators/Ymir/Makefile b/emulators/Ymir/Makefile index aaf5d4ed0a8c..ba5381637c76 100644 --- a/emulators/Ymir/Makefile +++ b/emulators/Ymir/Makefile @@ -1,6 +1,6 @@ PORTNAME= Ymir DISTVERSIONPREFIX= v -DISTVERSION= 0.1.8 +DISTVERSION= 0.2.0 CATEGORIES= emulators MAINTAINER= bsdcode@disroot.org @@ -16,17 +16,23 @@ ONLY_FOR_ARCHS_REASON= upstream only supports aarch64 and amd64 BUILD_DEPENDS= cereal>0:devel/cereal \ concurrentqueue>0:devel/concurrentqueue \ cxxopts>0:devel/cxxopts \ + date>0:devel/date \ glslangValidator:graphics/glslang \ glslc:graphics/shaderc \ + libnghttp3>0:www/libnghttp3 \ + libngtcp2>0:net/libngtcp2 \ + nlohmann-json>0:devel/nlohmann-json \ + semver>0:devel/semver \ stb>0:devel/stb \ - tomlplusplus>0:devel/tomlplusplus \ vulkan-headers>0:graphics/vulkan-headers LIB_DEPENDS= libchdr.so:devel/libchdr \ + libcurl.so:ftp/curl \ libfmt.so:devel/libfmt \ libglfw.so:graphics/glfw \ libimgui.so:x11-toolkits/imgui \ liblz4.so:archivers/liblz4 \ librtmidi.so:audio/rtmidi \ + libtomlplusplus.so:devel/tomlplusplus \ libvulkan.so:graphics/vulkan-loader \ libxxhash.so:devel/xxhash @@ -39,11 +45,11 @@ ${FLAVOR}_BUILD_DEPENDS= ${_${FLAVOR}_BR_DEPENDS} ${FLAVOR}_RUN_DEPENDS= ${_${FLAVOR}_BR_DEPENDS} USES= cmake compiler:c++20-lang desktop-file-utils gl \ - llvm${_LLVM_${ARCH}} pkgconfig sdl xorg + llvm${_LLVM_${ARCH}} localbase pkgconfig sdl xorg _LLVM_aarch64= :min=21 USE_GITHUB= yes GH_ACCOUNT= StrikerX3 -GH_TUPLE= StrikerX3:mio:c9dbe3a6f74b2c2c4a6c9621005c3df213a33eaa:mio/vendor/mio +GH_TUPLE= StrikerX3:mio:4e4cdc711d73d9dc96c0cb9475e6951f476218e6:mio/vendor/mio USE_GL= glut USE_SDL= sdl3 USE_XORG= xi xmu @@ -52,8 +58,7 @@ CMAKE_OFF= Ymir_DEV_BUILD \ Ymir_ENABLE_IMGUI_DEMO \ Ymir_ENABLE_SANDBOX \ Ymir_ENABLE_TESTS \ - Ymir_INCLUDE_PACKAGING \ - Ymir_SHARED_LIBS + Ymir_INCLUDE_PACKAGING CFLAGS+= -I${LOCALBASE}/include/concurrentqueue/moodycamel \ -I${LOCALBASE}/include/stb \ @@ -80,7 +85,7 @@ post-install: ${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/io.github.strikerx3.ymir.desktop \ ${STAGEDIR}${DESKTOPDIR} ${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps \ - ${STAGEDIR}${PREFIX}/share/metainfo + ${STAGEDIR}${PREFIX}/share/metainfo ${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/ymir.png \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps ${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/io.github.strikerx3.ymir.xml \ diff --git a/emulators/Ymir/distinfo b/emulators/Ymir/distinfo index ea0e78976f0f..26b0995b0a76 100644 --- a/emulators/Ymir/distinfo +++ b/emulators/Ymir/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1757486628 -SHA256 (StrikerX3-Ymir-v0.1.8_GH0.tar.gz) = 6a5951c25a4a1796c0643aacdced3f31099014e4f89412c5eb11bb385c0218d3 -SIZE (StrikerX3-Ymir-v0.1.8_GH0.tar.gz) = 5477804 -SHA256 (StrikerX3-mio-c9dbe3a6f74b2c2c4a6c9621005c3df213a33eaa_GH0.tar.gz) = 384d3a3ee249ebda0766fa5dc9f8bc5a871c8b2e3d3eedf46f330e6350058738 -SIZE (StrikerX3-mio-c9dbe3a6f74b2c2c4a6c9621005c3df213a33eaa_GH0.tar.gz) = 34871 +TIMESTAMP = 1760363610 +SHA256 (StrikerX3-Ymir-v0.2.0_GH0.tar.gz) = 82270cd8cb0694d7575e1437e9a378e925d85c02cdb2c7eb7557eb8870fd5894 +SIZE (StrikerX3-Ymir-v0.2.0_GH0.tar.gz) = 6306947 +SHA256 (StrikerX3-mio-4e4cdc711d73d9dc96c0cb9475e6951f476218e6_GH0.tar.gz) = 5da72ba39d70edab8cc42075c40895758c4a4ad905f9254ed5fd216757331773 +SIZE (StrikerX3-mio-4e4cdc711d73d9dc96c0cb9475e6951f476218e6_GH0.tar.gz) = 34878 diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt b/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt index e18e7f768ee3..8ba4d51260aa 100644 --- a/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt +++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt @@ -1,11 +1,18 @@ ---- apps/ymir-sdl3/CMakeLists.txt.orig 2025-07-20 22:35:27 UTC +--- apps/ymir-sdl3/CMakeLists.txt.orig 2025-10-12 17:41:59 UTC +++ apps/ymir-sdl3/CMakeLists.txt -@@ -256,7 +256,7 @@ target_link_libraries(ymir-sdl3 PRIVATE - fmt - cxxopts - imgui::imgui -- tomlplusplus::tomlplusplus -+# tomlplusplus::tomlplusplus - cereal::cereal - lz4::lz4 - stb::stb +@@ -352,12 +352,12 @@ find_package(date CONFIG REQUIRED) + find_package(cereal CONFIG REQUIRED) + find_package(cxxopts CONFIG REQUIRED) + find_package(date CONFIG REQUIRED) +-find_package(OpenSSL CONFIG REQUIRED) + find_package(CURL REQUIRED) ++add_library(CURL::libcurl_static ALIAS CURL::libcurl) + find_package(fmt CONFIG REQUIRED) +-find_package(rtmidi CONFIG REQUIRED) ++pkg_check_modules(rtmidi REQUIRED IMPORTED_TARGET rtmidi) ++add_library(RtMidi::rtmidi ALIAS PkgConfig::rtmidi) + find_package(SDL3 CONFIG REQUIRED) +-find_package(Stb REQUIRED) + find_package(tomlplusplus CONFIG REQUIRED) + + target_include_directories(ymir-sdl3 diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cdblock__settings__view.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cdblock__settings__view.cpp new file mode 100644 index 000000000000..b9ecadb667d6 --- /dev/null +++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cdblock__settings__view.cpp @@ -0,0 +1,11 @@ +--- apps/ymir-sdl3/src/app/ui/views/settings/cdblock_settings_view.cpp.orig 2025-10-13 11:40:42 UTC ++++ apps/ymir-sdl3/src/app/ui/views/settings/cdblock_settings_view.cpp +@@ -6,7 +6,7 @@ + + #include <util/sdl_file_dialog.hpp> + +-#include <misc/cpp/imgui_stdlib.h> ++#include <imgui_stdlib.h> + + #include <SDL3/SDL_misc.h> + diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_windows_about__window.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_windows_about__window.cpp new file mode 100644 index 000000000000..a42fe54d23b6 --- /dev/null +++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_windows_about__window.cpp @@ -0,0 +1,14 @@ +--- apps/ymir-sdl3/src/app/ui/windows/about_window.cpp.orig 2025-10-14 17:56:52 UTC ++++ apps/ymir-sdl3/src/app/ui/windows/about_window.cpp +@@ -48,6 +48,11 @@ + #define ZLIB_VERSION "1.3.1" // Private dependency of libchdr + #define ZSTD_VERSION "1.5.6" // Private dependency of libchdr + ++// Needed on 13.5, openssl in base is too old ++#ifndef OPENSSL_FULL_VERSION_STR ++#define OPENSSL_FULL_VERSION_STR OPENSSL_VERSION_TEXT ++#endif ++ + static const std::string fmtVersion = std::to_string(FMT_VERSION / 10000) + "." + + std::to_string(FMT_VERSION / 100 % 100) + "." + std::to_string(FMT_VERSION % 100); + diff --git a/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt b/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt index 2c971a407b7a..607ae6341003 100644 --- a/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt +++ b/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt @@ -1,13 +1,15 @@ ---- libs/ymir-core/CMakeLists.txt.orig 2025-07-20 22:35:27 UTC +--- libs/ymir-core/CMakeLists.txt.orig 2025-10-13 12:04:15 UTC +++ libs/ymir-core/CMakeLists.txt -@@ -239,7 +239,10 @@ target_compile_features(ymir-core PUBLIC cxx_std_20) +@@ -289,10 +289,12 @@ target_compile_features(ymir-core PUBLIC cxx_std_20) + ) target_compile_features(ymir-core PUBLIC cxx_std_20) - ## Add dependencies +find_package(Threads REQUIRED) -+ + find_package(fmt CONFIG REQUIRED) + + ## Add dependencies target_link_libraries(ymir-core PUBLIC + Threads::Threads - fmt + fmt::fmt mio concurrentqueue diff --git a/emulators/Ymir/files/patch-vendor_CMakeLists.txt b/emulators/Ymir/files/patch-vendor_CMakeLists.txt index c6c095066435..7b6c480df4a9 100644 --- a/emulators/Ymir/files/patch-vendor_CMakeLists.txt +++ b/emulators/Ymir/files/patch-vendor_CMakeLists.txt @@ -1,100 +1,40 @@ ---- vendor/CMakeLists.txt.orig 2025-07-20 22:35:27 UTC +--- vendor/CMakeLists.txt.orig 2025-10-12 17:41:59 UTC +++ vendor/CMakeLists.txt -@@ -22,9 +22,12 @@ message(STATUS "Adding vendored libraries") - - message(STATUS "Adding vendored libraries") - -+find_package(PkgConfig REQUIRED) -+ - # {fmt} - https://github.com/fmtlib/fmt - message(STATUS "==> {fmt}") --add_subdirectory(fmt EXCLUDE_FROM_ALL) -+pkg_check_modules(fmt REQUIRED IMPORTED_TARGET GLOBAL fmt) -+add_library(fmt ALIAS PkgConfig::fmt) - - # mio - https://github.com/vimpunk/mio - # Notes: -@@ -36,65 +39,55 @@ message(STATUS "==> SDL") - - # SDL - https://github.com/libsdl-org/SDL - message(STATUS "==> SDL") --set(SDL_DISABLE_UNINSTALL ON) --set(SDL_TEST_LIBRARY OFF) --set(SDL_TESTS OFF) --set(SDL_EXAMPLES OFF) --if (BUILD_SHARED_LIBS) -- set(SDL_SHARED ON) -- set(SDL_STATIC OFF) --else () -- set(SDL_SHARED OFF) -- set(SDL_STATIC ON) --endif () --add_subdirectory_quiet(SDL EXCLUDE_FROM_ALL) -+find_package(SDL3 REQUIRED GLOBAL) - - # cxxopts - https://github.com/jarro2783/cxxopts - message(STATUS "==> cxxopts") --add_subdirectory(cxxopts EXCLUDE_FROM_ALL) -+find_package(cxxopts REQUIRED GLOBAL) -+add_library(cxxopts ALIAS cxxopts::cxxopts) - +@@ -36,28 +36,31 @@ message(STATUS "==> concurrentqueue") # concurrentqueue - https://github.com/cameron314/concurrentqueue + # - Not available as a vcpkg port message(STATUS "==> concurrentqueue") -add_subdirectory(concurrentqueue EXCLUDE_FROM_ALL) +find_package(concurrentqueue REQUIRED GLOBAL) +add_library(concurrentqueue ALIAS concurrentqueue::concurrentqueue) # dear ImGui - https://github.com/ocornut/imgui - # docking branch + # - Using the docking branch message(STATUS "==> dear ImGui") -add_subdirectory(imgui EXCLUDE_FROM_ALL) +find_package(imgui REQUIRED GLOBAL) - # toml++ - https://github.com/marzer/tomlplusplus - message(STATUS "==> toml++") --add_subdirectory(tomlplusplus EXCLUDE_FROM_ALL) -+find_package(tomlplusplus REQUIRED GLOBAL) - # xxHash - https://github.com/Cyan4973/xxHash + # - Unable to configure AVX2 support message(STATUS "==> xxHash") -add_subdirectory(xxHash EXCLUDE_FROM_ALL) +pkg_check_modules(libxxhash REQUIRED IMPORTED_TARGET GLOBAL libxxhash) +add_library(xxHash::xxHash ALIAS PkgConfig::libxxhash) # lz4 - https://github.com/lz4/lz4 + # - Unable to configure AVX2 support message(STATUS "==> lz4") -add_subdirectory(lz4 EXCLUDE_FROM_ALL) +pkg_check_modules(liblz4 REQUIRED IMPORTED_TARGET GLOBAL liblz4) +add_library(lz4::lz4 ALIAS PkgConfig::liblz4) - # cereal - https://github.com/USCiLab/cereal - message(STATUS "==> cereal") --set(BUILD_DOC OFF) --set(BUILD_SANDBOX OFF) --set(JUST_INSTALL_CEREAL ON) --add_subdirectory(cereal EXCLUDE_FROM_ALL) -+find_package(cereal REQUIRED GLOBAL) - - # stb - https://github.com/nothings/stb - message(STATUS "==> stb") --add_subdirectory(stb) -+add_library(stb INTERFACE) -+add_library(stb::stb ALIAS stb) - # libchdr - https://github.com/rtissera/libchdr + # - Not available as a vcpkg port message(STATUS "==> libchdr") -set(BUILD_FUZZER OFF) -add_subdirectory(libchdr) +pkg_check_modules(libchdr REQUIRED IMPORTED_TARGET GLOBAL libchdr) +add_library(chdr-static ALIAS PkgConfig::libchdr) - # rtmidi - https://github.com/thestk/rtmidi - message(STATUS "==> rtmidi") --set(RTMIDI_BUILD_STATIC_LIBS ON) --set(RTMIDI_BUILD_TESTING OFF) --add_subdirectory(rtmidi) -+pkg_check_modules(rtmidi REQUIRED IMPORTED_TARGET GLOBAL rtmidi) -+add_library(rtmidi ALIAS PkgConfig::rtmidi) - - # -------------------------------------------------------------------------------------------------- - # Test dependencies + # Place vendored library projects under a Vendored folder in Visual Studio solutions + if (MSVC) diff --git a/emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp b/emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp deleted file mode 100644 index cf610729c0d1..000000000000 --- a/emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp +++ /dev/null @@ -1,13 +0,0 @@ -https://github.com/vimpunk/mio/issues/110 - ---- vendor/mio/include/mio/detail/mmap.ipp.orig 2025-02-12 00:14:41 UTC -+++ vendor/mio/include/mio/detail/mmap.ipp -@@ -208,7 +208,7 @@ inline mmap_context memory_map(const file_handle_type - char* mapping_start = static_cast<char*>(::mmap( - 0, // Don't give hint as to where to map. - length_to_map, -- mode == access_mode::read ? PROT_READ : PROT_WRITE, -+ mode == access_mode::read ? PROT_READ : PROT_READ | PROT_WRITE, - mode == access_mode::copy_on_write ? MAP_PRIVATE : MAP_SHARED, - file_handle, - aligned_offset)); diff --git a/emulators/Ymir/pkg-descr b/emulators/Ymir/pkg-descr index 2eae362fc391..907adbc7aaba 100644 --- a/emulators/Ymir/pkg-descr +++ b/emulators/Ymir/pkg-descr @@ -3,14 +3,16 @@ Ymir is a Sega Saturn emulator with the following features: - Load games from MAME CHD, BIN+CUE, IMG+CCD, MDF+MDS or ISO files - Automatic IPL (BIOS) ROM detection - Automatic region switching -- Up to two players with standard Control Pads or 3D Control Pads on both ports +- Up to two players with a variety of controllers on both ports - Fully customizable keybindings -- Backup RAM, DRAM and ROM cartridges +- Backup RAM, DRAM and ROM cartridges (more to come) - Integrated backup memory manager to import and export saves, and transfer between internal and cartridge RAM -- Save states +- Forwards-compatible save states - Rewinding (up to one minute at 60 fps), turbo speed, frame step (forwards and backwards) - Full screen mode with VRR support and low input lag -- Optional deinterlaced/progressive rendering of high resolution modes +- Graphics enhancements such as optional deinterlaced/progressive rendering of + high resolution modes and transparent mesh polygon rendering +- Optional low level CD block emulation - A feature-rich debugger |