git: bc88790a8c59 - main - emulators/Ymir: Update to 0.2.0

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Wed, 15 Oct 2025 01:25:29 UTC
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=bc88790a8c59ee913a616f6702ed37a5bd65fe61

commit bc88790a8c59ee913a616f6702ed37a5bd65fe61
Author:     Stefan Schlosser <bsdcode@disroot.org>
AuthorDate: 2025-10-13 13:02:31 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2025-10-15 01:25:11 +0000

    emulators/Ymir: Update to 0.2.0
    
    While here:
    * Remove obsolete CMAKE_OFF=Ymir_SHARED_LIBS.
    * Remove whitespace in post-install target, reported by portfmt(1).
    * Remove obsolete patch for devel/tomlplusplus handling.
    * Remove obsolete patch for vendored mio library.
    * Refresh patches.
    * Update pkg-descr.
    
    Changelog: https://github.com/StrikerX3/Ymir/releases/tag/v0.2.0
    
    PR:             290208
    Reported by:    Stefan Schlosser <bsdcode@disroot.org> (maintainer)
---
 emulators/Ymir/Makefile                            | 19 ++++--
 emulators/Ymir/distinfo                            | 10 +--
 .../Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt | 27 +++++---
 ...p_ui_views_settings_cdblock__settings__view.cpp | 11 +++
 ..._ymir-sdl3_src_app_ui_windows_about__window.cpp | 14 ++++
 .../Ymir/files/patch-libs_ymir-core_CMakeLists.txt | 12 ++--
 emulators/Ymir/files/patch-vendor_CMakeLists.txt   | 78 +++-------------------
 .../patch-vendor_mio_include_mio_detail_mmap.ipp   | 13 ----
 emulators/Ymir/pkg-descr                           | 10 +--
 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