git: 1f16cffd1501 - main - emulators/Ymir: Update 0.3.3 => 0.4.1
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 20 Oct 2026 11:37:30 UTC
The branch main has been updated by vvd:
URL: https://cgit.FreeBSD.org/ports/commit/?id=1f16cffd1501d664fe893706ca7f741cdb500db9
commit 1f16cffd1501d664fe893706ca7f741cdb500db9
Author: Stefan Schlosser <bsdcode@disroot.org>
AuthorDate: 2026-10-20 11:34:52 +0000
Commit: Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2026-10-20 11:34:52 +0000
emulators/Ymir: Update 0.3.3 => 0.4.1
Changelogs:
https://github.com/ymir-emu/Ymir/releases/tag/v0.4.0
https://github.com/ymir-emu/Ymir/releases/tag/v0.4.1
PR: 299563
Sponsored by: UNIS Labs (vvd, commit patch)
---
emulators/Ymir/Makefile | 26 +++++++++++---------
emulators/Ymir/distinfo | 6 ++---
.../Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt | 6 ++---
.../files/patch-apps_ymir-sdl3_src_app_app.cpp | 6 ++---
...ymir-sdl3_src_app_services_display__service.cpp | 11 +++++----
...vices_gfx_gfx__context__impl__sdl__renderer.cpp | 13 ++++++++++
...3_src_app_services_update__checker__service.cpp | 20 ----------------
.../Ymir/files/patch-cmake_CompileShaders.cmake | 11 +++++++++
.../Ymir/files/patch-libs_ymir-core_CMakeLists.txt | 28 ++++++++++++----------
emulators/Ymir/files/patch-vendor_CMakeLists.txt | 26 ++++++++++----------
.../Ymir/files/patch-vendor_stb_CMakeLists.txt | 10 ++++++++
11 files changed, 91 insertions(+), 72 deletions(-)
diff --git a/emulators/Ymir/Makefile b/emulators/Ymir/Makefile
index 65962bdacc74..256625e12f3c 100644
--- a/emulators/Ymir/Makefile
+++ b/emulators/Ymir/Makefile
@@ -1,12 +1,11 @@
PORTNAME= Ymir
DISTVERSIONPREFIX= v
-DISTVERSION= 0.3.3
-PORTREVISION= 2
+DISTVERSION= 0.4.1
CATEGORIES= emulators
MAINTAINER= bsdcode@disroot.org
COMMENT= Sega Saturn emulator
-WWW= https://github.com/StrikerX3/Ymir/
+WWW= https://github.com/ymir-emu/Ymir/
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
@@ -24,6 +23,7 @@ BUILD_DEPENDS= cereal>0:devel/cereal \
libngtcp2>0:net/libngtcp2 \
nlohmann-json>0:devel/nlohmann-json \
semver>0:devel/semver \
+ spirv-tools>0:graphics/spirv-tools \
stb>0:devel/stb \
vulkan-headers>0:graphics/vulkan-headers
@@ -47,12 +47,12 @@ _gtk4_BR_DEPENDS= zenity:x11/zenity4
${FLAVOR}_BUILD_DEPENDS= ${_${FLAVOR}_BR_DEPENDS}
${FLAVOR}_RUN_DEPENDS= ${_${FLAVOR}_BR_DEPENDS}
-USES= cmake compiler:c++20-lang gl llvm${_LLVM_${ARCH}} localbase \
- pkgconfig sdl xorg
+USES= cmake compiler:c++20-lang gl iconv llvm${_LLVM_${ARCH}} \
+ localbase pkgconfig sdl xorg
_LLVM_aarch64= :min=21
USE_GITHUB= yes
-GH_ACCOUNT= StrikerX3
+GH_ACCOUNT= ymir-emu
GH_TUPLE= StrikerX3:mio:4e4cdc711d73d9dc96c0cb9475e6951f476218e6:mio/vendor/mio
USE_GL= glut
@@ -63,25 +63,29 @@ CMAKE_OFF= Ymir_DEV_BUILD \
Ymir_ENABLE_IMGUI_DEMO \
Ymir_ENABLE_SANDBOX \
Ymir_ENABLE_TESTS \
- Ymir_ENABLE_UPDATE_CHECKS
+ Ymir_ENABLE_UPDATE_CHECKS \
+ Ymir_FF_ENABLE_UNIMPL_GFX_BACKENDS
CFLAGS+= -I${LOCALBASE}/include/concurrentqueue/moodycamel \
-I${LOCALBASE}/include/stb \
-I${WRKSRC}/vendor/imgui/ymir
+EXTRACT_AFTER_ARGS= --exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/vendor/concurrentqueue \
+ --exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/vendor/libchdr \
+ --exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/vendor/lz4 \
+ --exclude ${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT}/vendor/xxHash \
+ --no-same-owner --no-same-permissions
+
PLIST_FILES= bin/ymir-sdl3 \
share/applications/io.github.strikerx3.ymir.desktop \
share/icons/hicolor/256x256/apps/ymir.png \
share/metainfo/io.github.strikerx3.ymir.xml
-OPTIONS_DEFINE= FEATUREFLAG LTO YMDASM
+OPTIONS_DEFINE= LTO YMDASM
OPTIONS_DEFAULT= LTO
-FEATUREFLAG_DESC= Enable experimental features
YMDASM_DESC= Include Ymir disassembly tool
-FEATUREFLAG_CMAKE_BOOL= Ymir_FEATUREFLAG_DEFAULT
-
LTO_CMAKE_BOOL= Ymir_ENABLE_IPO
YMDASM_CMAKE_BOOL= Ymir_ENABLE_YMDASM
diff --git a/emulators/Ymir/distinfo b/emulators/Ymir/distinfo
index 0578619758fe..4d54067c3e29 100644
--- a/emulators/Ymir/distinfo
+++ b/emulators/Ymir/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1782111327
-SHA256 (StrikerX3-Ymir-v0.3.3_GH0.tar.gz) = 5a890ed515822e15c285e6807b39680c31efa928e3fffb16db63eeb9c5e32236
-SIZE (StrikerX3-Ymir-v0.3.3_GH0.tar.gz) = 8584337
+TIMESTAMP = 1792394395
+SHA256 (ymir-emu-Ymir-v0.4.1_GH0.tar.gz) = 201db66566ba3de64b109572e6ae2a57821524f3566a64c4db2ddb06d5b8111c
+SIZE (ymir-emu-Ymir-v0.4.1_GH0.tar.gz) = 7010611
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 7ac76cd4be64..4b76d9de0e40 100644
--- a/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt
@@ -1,6 +1,6 @@
---- apps/ymir-sdl3/CMakeLists.txt.orig 2026-06-21 22:53:09 UTC
+--- apps/ymir-sdl3/CMakeLists.txt.orig 2026-10-17 21:33:16 UTC
+++ apps/ymir-sdl3/CMakeLists.txt
-@@ -413,11 +413,11 @@ find_package(date CONFIG REQUIRED)
+@@ -528,9 +528,10 @@ find_package(date CONFIG REQUIRED)
find_package(cereal CONFIG REQUIRED)
find_package(cxxopts CONFIG REQUIRED)
find_package(date CONFIG REQUIRED)
@@ -11,7 +11,5 @@
+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_app.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_app.cpp
index fc08ed1ec905..8e6e6a523069 100644
--- a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_app.cpp
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_app.cpp
@@ -1,13 +1,11 @@
---- apps/ymir-sdl3/src/app/app.cpp.orig 2025-08-11 00:12:19 UTC
+--- apps/ymir-sdl3/src/app/app.cpp.orig 2026-10-17 21:52:43 UTC
+++ apps/ymir-sdl3/src/app/app.cpp
-@@ -114,8 +114,8 @@
+@@ -118,7 +118,7 @@
#include <SDL3/SDL_messagebox.h>
#include <SDL3/SDL_misc.h>
-#include <backends/imgui_impl_sdl3.h>
--#include <backends/imgui_impl_sdlrenderer3.h>
+#include <imgui_impl_sdl3.h>
-+#include <imgui_impl_sdlrenderer3.h>
#include <imgui.h>
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_display__service.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_display__service.cpp
index 823829476162..14a70074006c 100644
--- a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_display__service.cpp
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_display__service.cpp
@@ -1,12 +1,13 @@
---- apps/ymir-sdl3/src/app/services/display_service.cpp.orig 2026-06-21 23:44:48 UTC
+--- apps/ymir-sdl3/src/app/services/display_service.cpp.orig 2026-10-18 00:13:37 UTC
+++ apps/ymir-sdl3/src/app/services/display_service.cpp
-@@ -9,8 +9,8 @@
- #include <ymir/util/scope_guard.hpp>
-
+@@ -12,8 +12,8 @@
+
#include <SDL3/SDL.h>
+
-#include <backends/imgui_impl_sdl3.h>
-#include <backends/imgui_impl_sdlrenderer3.h>
+#include <imgui_impl_sdl3.h>
+#include <imgui_impl_sdlrenderer3.h>
+
#include <cmrc/cmrc.hpp>
- #include <imgui.h>
+
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_gfx_gfx__context__impl__sdl__renderer.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_gfx_gfx__context__impl__sdl__renderer.cpp
new file mode 100644
index 000000000000..c8b39a993f1b
--- /dev/null
+++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_gfx_gfx__context__impl__sdl__renderer.cpp
@@ -0,0 +1,13 @@
+--- apps/ymir-sdl3/src/app/services/gfx/gfx_context_impl_sdl_renderer.cpp.orig 2026-10-17 23:30:53 UTC
++++ apps/ymir-sdl3/src/app/services/gfx/gfx_context_impl_sdl_renderer.cpp
+@@ -2,8 +2,8 @@
+
+ #include <fmt/format.h>
+
+-#include <backends/imgui_impl_sdl3.h>
+-#include <backends/imgui_impl_sdlrenderer3.h>
++#include <imgui_impl_sdl3.h>
++#include <imgui_impl_sdlrenderer3.h>
+
+ #include <ymir/util/scope_guard.hpp>
+
diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_update__checker__service.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_update__checker__service.cpp
deleted file mode 100644
index 1bc1dc85bf9f..000000000000
--- a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_update__checker__service.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
---- apps/ymir-sdl3/src/app/services/update_checker_service.cpp.orig 2026-07-27 12:58:00 UTC
-+++ apps/ymir-sdl3/src/app/services/update_checker_service.cpp
-@@ -131,15 +131,13 @@ void UpdateCheckerService::ThreadLoop(SharedContext &c
- // Stable release couldn't be retrieved or isn't newer than the current version.
- // Check if nightly is an update.
- if (!context.targetUpdate) {
-- if (semver::detail::compare_parsed(nightlyResult.updateInfo.version, currVersion,
-- semver::version_compare_option::exclude_prerelease) > 0) {
-+ if (semver::detail::compare_parsed(nightlyResult.updateInfo.version, currVersion) > 0) {
- return true;
- }
-
- if constexpr (ymir::version::is_nightly_build) {
- // Current version is a nightly build
-- if (semver::detail::compare_parsed(nightlyResult.updateInfo.version, currVersion,
-- semver::version_compare_option::exclude_prerelease) < 0) {
-+ if (semver::detail::compare_parsed(nightlyResult.updateInfo.version, currVersion) < 0) {
- return false;
- }
-
diff --git a/emulators/Ymir/files/patch-cmake_CompileShaders.cmake b/emulators/Ymir/files/patch-cmake_CompileShaders.cmake
new file mode 100644
index 000000000000..9c8d384f51ee
--- /dev/null
+++ b/emulators/Ymir/files/patch-cmake_CompileShaders.cmake
@@ -0,0 +1,11 @@
+--- cmake/CompileShaders.cmake.orig 2026-10-17 23:19:51 UTC
++++ cmake/CompileShaders.cmake
+@@ -72,7 +72,7 @@ endif ()
+ endif ()
+
+ # SPIR-V is required on systems other than Windows if Vulkan is supported. Bail out if that's not the case.
+-if (NOT WIN32 AND Vulkan_FOUND AND NOT DXC_EXECUTABLE)
++if (NOT WIN32 AND Vulkan_FOUND AND NOT DXC_EXECUTABLE AND Ymir_FF_ENABLE_UNIMPL_GFX_BACKENDS)
+ message(FATAL_ERROR "Could NOT find a shader compiler supporting SPIR-V. Cannot compile shaders.")
+ endif ()
+
diff --git a/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt b/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt
index f6a067a708db..8aa080d91319 100644
--- a/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt
+++ b/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt
@@ -1,14 +1,18 @@
---- libs/ymir-core/CMakeLists.txt.orig 2026-06-21 23:49:19 UTC
+--- libs/ymir-core/CMakeLists.txt.orig 2026-10-17 23:37:24 UTC
+++ libs/ymir-core/CMakeLists.txt
-@@ -313,8 +313,11 @@ target_compile_features(ymir-core PUBLIC cxx_std_20)
- )
- target_compile_features(ymir-core PUBLIC cxx_std_20)
+@@ -532,13 +532,11 @@ elseif (UNIX) # Linux and FreeBSD
+ )
+ elseif (UNIX) # Linux and FreeBSD
+ find_package(Iconv REQUIRED)
++ find_package(Threads REQUIRED)
+ target_link_libraries(ymir-core PUBLIC
+ Iconv::Iconv
++ Threads::Threads
+ )
+- if (CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+- # Prevent third-party package libiconv from interfering with iconv from libc.
+- target_compile_definitions(ymir-core PUBLIC "LIBICONV_PLUG")
+- endif ()
+ endif ()
-+find_package(Threads REQUIRED)
-+
- ## Add dependencies
- target_link_libraries(ymir-core PUBLIC
-+ Threads::Threads
- fmt::fmt
- mio
- concurrentqueue
+ if (Vulkan_FOUND)
diff --git a/emulators/Ymir/files/patch-vendor_CMakeLists.txt b/emulators/Ymir/files/patch-vendor_CMakeLists.txt
index 726301e4752b..e92975525b76 100644
--- a/emulators/Ymir/files/patch-vendor_CMakeLists.txt
+++ b/emulators/Ymir/files/patch-vendor_CMakeLists.txt
@@ -1,22 +1,22 @@
---- vendor/CMakeLists.txt.orig 2026-06-21 14:11:27 UTC
+--- vendor/CMakeLists.txt.orig 2026-10-17 13:29:28 UTC
+++ vendor/CMakeLists.txt
@@ -25,6 +25,8 @@ message(STATUS "Adding vendored libraries")
-
+
message(STATUS "Adding vendored libraries")
-
+
+find_package(PkgConfig REQUIRED)
+
####################################################################################################
# Dependencies used by ymir-core
-
+
@@ -37,20 +39,22 @@ message(STATUS "==> libfmt")
-
+
# {fmt} - https://github.com/fmtlib/fmt
message(STATUS "==> libfmt")
-set(FMT_MODULE OFF)
-add_subdirectory(fmt)
+find_package(fmt CONFIG REQUIRED GLOBAL)
-
+
# concurrentqueue - https://github.com/cameron314/concurrentqueue
message(STATUS "==> concurrentqueue")
-add_subdirectory(concurrentqueue EXCLUDE_FROM_ALL)
@@ -35,21 +35,21 @@
+pkg_check_modules(libchdr REQUIRED IMPORTED_TARGET GLOBAL libchdr)
+add_library(chdr-static ALIAS PkgConfig::libchdr)
- ####################################################################################################
- # Other dependencies
-@@ -59,12 +63,13 @@ if (NOT Ymir_LIBRARY_ONLY)
+ # stb - https://github.com/nothings/stb
+ message(STATUS "==> stb")
+@@ -77,12 +81,13 @@ if (NOT Ymir_LIBRARY_ONLY)
# dear ImGui - https://github.com/ocornut/imgui
# - Using the docking branch
message(STATUS "==> dear ImGui")
- add_subdirectory(imgui EXCLUDE_FROM_ALL)
+ find_package(imgui REQUIRED GLOBAL)
-
+
# lz4 - https://github.com/lz4/lz4
# - Unable to configure AVX2 support from vcpkg
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)
- endif ()
-
- # Place vendored library projects under a Vendored folder in Visual Studio solutions
+
+ # discord-rpc - https://github.com/discord/discord-rpc
+ # - Via myMCpp / PCSX2
diff --git a/emulators/Ymir/files/patch-vendor_stb_CMakeLists.txt b/emulators/Ymir/files/patch-vendor_stb_CMakeLists.txt
new file mode 100644
index 000000000000..3324806c7448
--- /dev/null
+++ b/emulators/Ymir/files/patch-vendor_stb_CMakeLists.txt
@@ -0,0 +1,10 @@
+--- vendor/stb/CMakeLists.txt.orig 2026-10-17 23:24:12 UTC
++++ vendor/stb/CMakeLists.txt
+@@ -1,7 +1,4 @@ add_library(stb OBJECT
+ add_library(stb OBJECT
+- stb/stb_image.h
+- stb/stb_image_write.h
+- stb/stb_vorbis.c
+
+ # Add more features as needed
+