summaryrefslogtreecommitdiff
path: root/emulators/Ymir
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/Ymir')
-rw-r--r--emulators/Ymir/Makefile19
-rw-r--r--emulators/Ymir/distinfo10
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt27
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_views_settings_cdblock__settings__view.cpp11
-rw-r--r--emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_ui_windows_about__window.cpp14
-rw-r--r--emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt12
-rw-r--r--emulators/Ymir/files/patch-vendor_CMakeLists.txt78
-rw-r--r--emulators/Ymir/files/patch-vendor_mio_include_mio_detail_mmap.ipp13
-rw-r--r--emulators/Ymir/pkg-descr10
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