summaryrefslogtreecommitdiff
path: root/emulators/ares
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/ares')
-rw-r--r--emulators/ares/Makefile50
-rw-r--r--emulators/ares/distinfo6
-rw-r--r--emulators/ares/files/patch-thirdparty_CMakeLists.txt75
-rw-r--r--emulators/ares/pkg-descr13
-rw-r--r--emulators/ares/pkg-plist4
5 files changed, 126 insertions, 22 deletions
diff --git a/emulators/ares/Makefile b/emulators/ares/Makefile
index 6ec6dc0301ee..0ce6c3aaf5c9 100644
--- a/emulators/ares/Makefile
+++ b/emulators/ares/Makefile
@@ -1,8 +1,10 @@
PORTNAME= ares
DISTVERSIONPREFIX= v
-DISTVERSION= 144
-PORTREVISION= 1
+DISTVERSION= 146
CATEGORIES= emulators
+MASTER_SITES= https://github.com/${PORTNAME}-emulator/${PORTNAME}/releases/download/${DISTVERSIONFULL}/
+DISTNAME= ${PORTNAME}-source
+DIST_SUBDIR= ${PORTNAME}-${DISTVERSION}
MAINTAINER= bsdcode@disroot.org
COMMENT= Multi-system emulator
@@ -14,24 +16,29 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= librashader>0:devel/librashader
USES= cmake compiler:c++17-lang gl gnome pkgconfig xorg
-USE_GITHUB= yes
-GH_ACCOUNT= ares-emulator
USE_GL= opengl
USE_GNOME= gtk30
USE_XORG= x11 xext xrandr xrender
CMAKE_ARGS= -DARES_CORES="${_CORES:S/ /;/gW}" \
- -DARES_VERSION_OVERRIDE=${DISTVERSIONFULL} \
-DENABLE_CCACHE=${CCACHE_ENABLED}
-CMAKE_ON= ARES_SKIP_DEPS \
+CMAKE_ON= ARES_BUILD_OFFICIAL \
+ ARES_SKIP_DEPS \
ARES_UNITY_CORES
CMAKE_OFF= ARES_BUILD_LOCAL \
ARES_BUNDLE_SHADERS \
ARES_ENABLE_MINIMUM_CPU
-EXTRACT_AFTER_ARGS= --exclude thirdparty/librashader \
+EXTRACT_AFTER_ARGS= --exclude thirdparty/GL \
+ --exclude thirdparty/KHR \
+ --exclude thirdparty/libchdr \
+ --exclude thirdparty/librashader \
+ --exclude thirdparty/sse2neon.h \
+ --exclude thirdparty/xxhash.h \
--no-same-owner --no-same-permissions
+NO_WRKSUBDIR= yes
+
OPTIONS_DEFINE= CHD SDL TOOLS
OPTIONS_DEFAULT= A26 ALSA AO CHD CV FC GB GBA LIBRASHADER \
LIBRETRO LTO MD MS MSX MYVISION N64 NG NGP \
@@ -62,7 +69,7 @@ GBA_DESC= Game Boy Advance
GB_DESC= Game Boy / Game Boy Color
HOTKEYS_DESC= Inofficial hotkeys locking patch
LIBRASHADER_DESC= Slang-shader support via librashader
-LIBRETRO_DESC= Install slang-shaders from libretro
+LIBRETRO_DESC= Install slang-shaders from libretro (implies ${LIBRETRO_IMPLIES})
MD_DESC= Sega Mega Drive / Genesis
MSX_DESC= Microsoft MSX
MS_DESC= Sega Master System / Mark III
@@ -90,8 +97,9 @@ ALSA_CMAKE_BOOL= ARES_ENABLE_ALSA
AO_LIB_DEPENDS= libao.so:audio/libao
AO_CMAKE_BOOL= ARES_ENABLE_AO
-CHD_CMAKE_BOOL= ARES_ENABLE_CHD \
- WITH_SYSTEM_ZLIB
+CHD_LIB_DEPENDS= libchdr.so:devel/libchdr
+CHD_USES= localbase
+CHD_CMAKE_BOOL= ARES_ENABLE_CHD
CV_VARS= _CORES+=cv
@@ -113,6 +121,8 @@ LIBRETRO_RUN_DEPENDS= ${_LIBRETRO_BR_DEPENDS}
LTO_CMAKE_BOOL= ENABLE_IPO
+MD_BUILD_DEPENDS= xxhash>0:devel/xxhash
+MD_USES= localbase
MD_VARS= _CORES+=md
MSX_VARS= _CORES+=msx
@@ -122,8 +132,12 @@ MS_VARS= _CORES+=ms
MYVISION_VARS= _CORES+=myvision
_N64_BR_DEPENDS= vulkan-loader>0:graphics/vulkan-loader
-N64_BUILD_DEPENDS= ${_N64_BR_DEPENDS}
+_N64_BUILD_DEPENDS_aarch64= sse2neon>0:devel/sse2neon
+N64_BUILD_DEPENDS= ${_N64_BR_DEPENDS} \
+ ${_N64_BUILD_DEPENDS_${ARCH}} \
+ xxhash>0:devel/xxhash
N64_RUN_DEPENDS= ${_N64_BR_DEPENDS}
+N64_USES= localbase
N64_VARS= _CORES+=n64
NGP_VARS= _CORES+=ngp
@@ -164,6 +178,20 @@ USBHID_CMAKE_BOOL= ARES_ENABLE_USBHID
WS_VARS= _CORES+=ws
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MTOOLS} && (${PORT_OPTIONS:MGBA} || ${PORT_OPTIONS:MSFC})
+PLIST_SUB+= TOOLSARM7TDMI=""
+.else
+PLIST_SUB+= TOOLSARM7TDMI="@comment "
+.endif
+
+.if ${PORT_OPTIONS:MTOOLS} && (${PORT_OPTIONS:MMD} || ${PORT_OPTIONS:MNG})
+PLIST_SUB+= TOOLSM68000=""
+.else
+PLIST_SUB+= TOOLSM68000="@comment "
+.endif
+
post-patch:
${REINPLACE_CMD} 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/cmake/finders/*
diff --git a/emulators/ares/distinfo b/emulators/ares/distinfo
index 67421c24b118..5cdf41f6260d 100644
--- a/emulators/ares/distinfo
+++ b/emulators/ares/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1745841018
-SHA256 (ares-emulator-ares-v144_GH0.tar.gz) = 8d66fc880375293aaddbff575f21571ed9c7bc05bd5dd0e8e9ea65b104d5a458
-SIZE (ares-emulator-ares-v144_GH0.tar.gz) = 8959609
+TIMESTAMP = 1756454355
+SHA256 (ares-146/ares-source.tar.gz) = 0f0b878c19ce09dab57584235e9c639c4c14a0bd1de6cef50238f006bd797bf1
+SIZE (ares-146/ares-source.tar.gz) = 9021617
diff --git a/emulators/ares/files/patch-thirdparty_CMakeLists.txt b/emulators/ares/files/patch-thirdparty_CMakeLists.txt
new file mode 100644
index 000000000000..0a9b749623bd
--- /dev/null
+++ b/emulators/ares/files/patch-thirdparty_CMakeLists.txt
@@ -0,0 +1,75 @@
+--- thirdparty/CMakeLists.txt.orig 2025-08-27 21:41:50 UTC
++++ thirdparty/CMakeLists.txt
+@@ -7,55 +7,9 @@ if(ARES_ENABLE_CHD)
+ option(ARES_ENABLE_CHD "Enable CHD format support via libchdr" ON)
+
+ if(ARES_ENABLE_CHD)
+- # lzma
+- add_subdirectory(libchdr/deps/lzma-24.05 EXCLUDE_FROM_ALL)
+- list(APPEND CHDR_LIBS lzma)
+- list(APPEND CHDR_INCLUDES lzma)
+-
+- if(OS_MACOS)
+- option(WITH_SYSTEM_ZLIB "Use system zlib" ON)
+- endif()
+- # zlib
+- if(WITH_SYSTEM_ZLIB)
+- find_package(ZLIB REQUIRED)
+- list(APPEND PLATFORM_LIBS ZLIB::ZLIB)
+- else()
+- option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" OFF)
+- add_subdirectory(libchdr/deps/zlib-1.3.1 EXCLUDE_FROM_ALL)
+- set_target_properties(
+- zlibstatic
+- PROPERTIES POSITION_INDEPENDENT_CODE ON FOLDER thirdparty PREFIX ""
+- )
+- list(APPEND CHDR_LIBS zlibstatic)
+- endif()
+-
+- # zstd
+- option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" OFF)
+- option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" OFF)
+- add_subdirectory(libchdr/deps/zstd-1.5.6/build/cmake EXCLUDE_FROM_ALL)
+- list(APPEND CHDR_LIBS libzstd_static)
+- #--------------------------------------------------
+- # chdr
+- #--------------------------------------------------
+-
+- set(
+- CHDR_SOURCES
+- libchdr/src/libchdr_bitstream.c
+- libchdr/src/libchdr_cdrom.c
+- libchdr/src/libchdr_chd.c
+- libchdr/src/libchdr_flac.c
+- libchdr/src/libchdr_huffman.c
+- )
+-
+- list(APPEND CHDR_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/libchdr/include)
+-
+- add_library(chdr-static STATIC ${CHDR_SOURCES})
+- target_include_directories(chdr-static PUBLIC ${CHDR_INCLUDES} PUBLIC libchdr/include)
+- target_link_libraries(chdr-static PRIVATE ${CHDR_LIBS} ${PLATFORM_LIBS})
+- target_compile_options(
+- chdr-static
+- PRIVATE $<$<CXX_COMPILER_ID:Clang,AppleClang>:-Wno-unreachable-code -Wno-unused-function>
+- )
++ find_package(PkgConfig REQUIRED)
++ pkg_check_modules(libchdr REQUIRED IMPORTED_TARGET GLOBAL libchdr)
++ add_library(chdr-static ALIAS PkgConfig::libchdr)
+ endif()
+
+ add_library(
+@@ -111,12 +65,4 @@ set_target_properties(sljit PROPERTIES FOLDER thirdpar
+ set_target_properties(ymfm PROPERTIES FOLDER thirdparty PREFIX "")
+ set_target_properties(tzxfile PROPERTIES FOLDER thirdparty PREFIX "")
+ set_target_properties(sljit PROPERTIES FOLDER thirdparty PREFIX "")
+-if(ARES_ENABLE_CHD)
+- set_target_properties(chdr-static PROPERTIES FOLDER thirdparty PREFIX "")
+- if(NOT WITH_SYSTEM_ZLIB)
+- set_target_properties(zlib PROPERTIES FOLDER thirdparty PREFIX "")
+- endif()
+- set_target_properties(lzma PROPERTIES FOLDER thirdparty PREFIX "")
+- set_target_properties(libzstd_static PROPERTIES FOLDER thirdparty PREFIX "")
+-endif()
+ set_target_properties(qon PROPERTIES FOLDER thirdparty PREFIX "")
+\ No newline at end of file
diff --git a/emulators/ares/pkg-descr b/emulators/ares/pkg-descr
index 1d1df5876394..51eba6b65b62 100644
--- a/emulators/ares/pkg-descr
+++ b/emulators/ares/pkg-descr
@@ -3,14 +3,15 @@ preservation. It is a descendant of the emulators higan and bsnes. It's source
code is structured to be maximally readable and self-documenting.
ares supports the following systems: Arcade, WonderSwan, WonderSwan Color,
-Pocket Challenge V2, ColecoVision, PC-Engine / TurboGrafx, SuperGrafx, My
-Vision, NES / Famicom, Famicom Disk System, SNES / Super Famicom, Satellaview,
-Sufami Turbo, Nintendo 64, Nintendo 64DD, Game Boy, Game Boy Color, Game Boy
-Advance, SG-1000, Master System / Mark III, Mega Drive / Genesis, Mega CD, 32X,
-Game Gear, Neo Geo Pocket, Neo Geo Pocket Color
+Pocket Challenge V2, ColecoVision, PC-Engine / TurboGrafx, PC-Engine SuperGrafx,
+My Vision, NES / Famicom, Famicom Disk System, Game Boy, SNES / Super Famicom,
+Satellaview, Nintendo 64, SuFami Turbo, Game Boy Color, Nintendo 64DD, Game Boy
+Advance, SG-1000, Master System / Mark III, Mega Drive / Genesis, Game Gear,
+Mega CD, 32X, Neo Geo Pocket, Neo Geo Pocket Color
ares has experimental support for the following systems: Atari 2600, MSX, MSX2,
-PC-Engine CD / TurboGrafx CD, ZX Spectrum, Neo Geo (AES/MVS), PlayStation
+PC-Engine CD / TurboGrafx CD, LaserActive, ZX Spectrum, Neo Geo (AES/MVS),
+PlayStation
ares has all the features one would expect from a great emulator system: native
multi-platform UI, dynamic rate control, save states, run-ahead, rewind and
diff --git a/emulators/ares/pkg-plist b/emulators/ares/pkg-plist
index 035623ec753e..476ac9756832 100644
--- a/emulators/ares/pkg-plist
+++ b/emulators/ares/pkg-plist
@@ -1,8 +1,8 @@
bin/ares
-%%TOOLS%%bin/arm7tdmi
+%%TOOLSARM7TDMI%%bin/arm7tdmi
%%TOOLS%%bin/genius
%%TOOLS%%bin/i8080
-%%TOOLS%%bin/m68000
+%%TOOLSM68000%%bin/m68000
%%TOOLS%%bin/mame2bml
%%TOOLS%%bin/mia
bin/sourcery