diff --git a/emulators/pcsx2/Makefile b/emulators/pcsx2/Makefile index ee09f40b5634..6f1b5582fc24 100644 --- a/emulators/pcsx2/Makefile +++ b/emulators/pcsx2/Makefile @@ -1,90 +1,99 @@ PORTNAME= pcsx2 PORTVERSION= 1.7.4097 DISTVERSIONPREFIX= v -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= emulators MAINTAINER= martymac@FreeBSD.org COMMENT= Free and open-source PlayStation 2 emulator WWW= https://pcsx2.net LICENSE= GPLv3 LGPL3 LICENSE_COMB= multi ONLY_FOR_ARCHS= amd64 # Notes on dependencies (see cmake/SearchForStuff.cmake): # - rapidyaml (and c4core) come from 3rdparty/ (0.4.0 is needed) # - glad comes from 3rdparty/ (conflicts with libglvnd) -# - zstd comes from 3rdparty/ (not detected yet) # - zydis comes from 3rdparty/ LIB_DEPENDS= libpng.so:graphics/png \ libavcodec.so:multimedia/ffmpeg \ libavformat.so:multimedia/ffmpeg \ libavutil.so:multimedia/ffmpeg \ libswresample.so:multimedia/ffmpeg \ libswscale.so:multimedia/ffmpeg \ libSoundTouch.so:audio/soundtouch \ libfmt.so:devel/libfmt \ libzip.so:archivers/libzip \ libcurl.so:ftp/curl \ libpulse.so:audio/pulseaudio \ libjack.so:audio/jack \ - libsndio.so:audio/sndio + libsndio.so:audio/sndio \ + libzstd.so:archivers/zstd # libryml.so:devel/rapidyaml \ # libglad.so:graphics/glad \ -# libzstd.so:archivers/zstd USES= cmake desktop-file-utils gl pkgconfig qt:6 sdl xorg USE_GITHUB= yes GH_PROJECT= pcsx2 .include "${.CURDIR}/Makefile.tuples" USE_GL= egl USE_SDL= sdl2 USE_XORG= ice x11 xcb xext xpm xrandr USE_QT= base tools +# SSE 4.1 instructions are a hard requirement, if CPUTYPE is defined +# use whatever is set and let the build fail if it falls below +# baseline requirements. If it's undefined set penryn as target +# as it's the oldest CPU arch that supports SSE 4.1 +.if defined(CPUTYPE) +EXTRA_PATCHES= ${PATCHDIR}/extra-patch-no-march-native +.else +EXTRA_PATCHES= ${PATCHDIR}/extra-patch-no-march-minimum-req +.endif + # See: cmake/BuildParameters.cmake CMAKE_ARGS+= \ -DCMAKE_REQUIRED_INCLUDES:STRING=${LOCALBASE}/include/ \ -DQT_BUILD:BOOL=ON \ -DUSE_VTUNE:BOOL=OFF \ -DUSE_VULKAN:BOOL=OFF \ -DENABLE_TESTS:BOOL=OFF \ -DPCSX2_RESOURCES_PATH:STRING=${DATADIR}/resources OPTIONS_DEFINE= DOCS PORTDOCS= Debugger.pdf GameIndex.pdf PCSX2_FAQ.pdf # - Program and resources are copied from target dir ${CONFIGURE_WRKSRC}/bin # because only necessary resources are installed there (e.g. no dx11 stuff) do-install: cd ${CONFIGURE_WRKSRC}/bin && \ ${COPYTREE_SHARE} resources/ ${STAGEDIR}${DATADIR}/ ${INSTALL_PROGRAM} ${CONFIGURE_WRKSRC}/bin/pcsx2-qt \ ${STAGEDIR}${PREFIX}/bin/ ${INSTALL_DATA} ${WRKSRC}/pcsx2/Resources/AppIcon64.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/PCSX2.png ${INSTALL_DATA} ${WRKSRC}/.github/workflows/scripts/linux/pcsx2-qt.desktop \ ${STAGEDIR}${PREFIX}/share/applications/PCSX2.desktop ${INSTALL_MAN} ${WRKSRC}/bin/docs/PCSX2.1 ${STAGEDIR}${MANPREFIX}/man/man1/ post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} && \ ${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/bin/docs/|} \ ${STAGEDIR}${DOCSDIR} # For maintainer (do not forget to clean up Makefile.tuples afterwards to # remove useless submodules) Makefile.tuples:: @${RM} -f ${.CURDIR}/Makefile.tuples @${RM} -rf ${WRKDIR}/.maintainer.checkout @${MKDIR} ${WRKDIR}/.maintainer.checkout && \ cd ${WRKDIR}/.maintainer.checkout && \ git clone --recursive --branch=v${PORTVERSION} \ https://github.com/${PORTNAME}/${PORTNAME} . && \ ${SH} ${FILESDIR}/gen_gh_tuple.sh >> ${.CURDIR}/Makefile.tuples .include diff --git a/emulators/pcsx2/Makefile.tuples b/emulators/pcsx2/Makefile.tuples index e9a97511f72f..44efae57512e 100644 --- a/emulators/pcsx2/Makefile.tuples +++ b/emulators/pcsx2/Makefile.tuples @@ -1,10 +1,9 @@ GH_TUPLE= \ rtissera:libchdr:5de1a59019815ccdbba0fe07c71b31406d023248:libchdr/3rdparty/libchdr/libchdr \ biojppm:rapidyaml:213b201d264139cd1b887790197e08850af628e3:rapidyaml/3rdparty/rapidyaml/rapidyaml \ - facebook:zstd:e47e674cd09583ff0503f0f6defd6d23d8b718d3:zstd/3rdparty/zstd/zstd \ RetroAchievements:rcheevos:31f8788fe0e694e99db7ce138d45a655c556fa96:rcheevos/3rdparty/rcheevos/rcheevos \ biojppm:c4core:d35c7c9bf370134595699d791e6ff8db018ddc8d:c4core/3rdparty/rapidyaml/rapidyaml/ext/c4core \ biojppm:cmake:371982300ff5a076d7c3199057ebed77bbe3472f:cmake/3rdparty/rapidyaml/rapidyaml/ext/c4core/cmake \ biojppm:debugbreak:5dcbe41d2bd4712c8014aa7e843723ad7b40fd74:debugbreak/3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/debugbreak \ fastfloat:fast_float:32d21dcecb404514f94fb58660b8029a4673c2c1:fast_float/3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float diff --git a/emulators/pcsx2/distinfo b/emulators/pcsx2/distinfo index 858e3ab69441..68e5fba4abda 100644 --- a/emulators/pcsx2/distinfo +++ b/emulators/pcsx2/distinfo @@ -1,19 +1,17 @@ TIMESTAMP = 1676582077 SHA256 (pcsx2-pcsx2-v1.7.4097_GH0.tar.gz) = 0dd25d4b4dd864f2d695f0704b3122668c1f0ecf55457cc5fbe6c27ce72458c6 SIZE (pcsx2-pcsx2-v1.7.4097_GH0.tar.gz) = 9195636 SHA256 (rtissera-libchdr-5de1a59019815ccdbba0fe07c71b31406d023248_GH0.tar.gz) = e0df9f88cd93e673d384cbf7cf28ea396aba96c769b41ec149a259768b27b00c SIZE (rtissera-libchdr-5de1a59019815ccdbba0fe07c71b31406d023248_GH0.tar.gz) = 414409 SHA256 (biojppm-rapidyaml-213b201d264139cd1b887790197e08850af628e3_GH0.tar.gz) = c206d4565ccfa721991a8df90821d1a1f747e68385a0f3f5b9ab995e191c06be SIZE (biojppm-rapidyaml-213b201d264139cd1b887790197e08850af628e3_GH0.tar.gz) = 446070 -SHA256 (facebook-zstd-e47e674cd09583ff0503f0f6defd6d23d8b718d3_GH0.tar.gz) = 2a7b7e5d3f8c759894f0fea9917a590733600574d20cb53f3be827c7c62862e1 -SIZE (facebook-zstd-e47e674cd09583ff0503f0f6defd6d23d8b718d3_GH0.tar.gz) = 1952167 SHA256 (RetroAchievements-rcheevos-31f8788fe0e694e99db7ce138d45a655c556fa96_GH0.tar.gz) = ffe7020e443f724299352e72abdd9bee432fc00d3d260fbc0fee9fb28ce4f678 SIZE (RetroAchievements-rcheevos-31f8788fe0e694e99db7ce138d45a655c556fa96_GH0.tar.gz) = 522855 SHA256 (biojppm-c4core-d35c7c9bf370134595699d791e6ff8db018ddc8d_GH0.tar.gz) = b768c8fb5dd4740317b7e1a3e43a0b32615d4d4e1e974d7ab515a80d2f1f318d SIZE (biojppm-c4core-d35c7c9bf370134595699d791e6ff8db018ddc8d_GH0.tar.gz) = 262210 SHA256 (biojppm-cmake-371982300ff5a076d7c3199057ebed77bbe3472f_GH0.tar.gz) = 1d3ded3a552a5993c8ebe5059a9829e0e26ae4f4780c179a11882d25da203de6 SIZE (biojppm-cmake-371982300ff5a076d7c3199057ebed77bbe3472f_GH0.tar.gz) = 122880 SHA256 (biojppm-debugbreak-5dcbe41d2bd4712c8014aa7e843723ad7b40fd74_GH0.tar.gz) = 4b424d23dad957937c57c142648d32571a78a6c6b2e473709748e5c1bb8a0f92 SIZE (biojppm-debugbreak-5dcbe41d2bd4712c8014aa7e843723ad7b40fd74_GH0.tar.gz) = 7033 SHA256 (fastfloat-fast_float-32d21dcecb404514f94fb58660b8029a4673c2c1_GH0.tar.gz) = 8035a9ca28a8e3dfee332c7960af3c06ef0ab5169d5f31228b89c469e882bef7 SIZE (fastfloat-fast_float-32d21dcecb404514f94fb58660b8029a4673c2c1_GH0.tar.gz) = 76108 diff --git a/emulators/pcsx2/files/extra-patch-no-march-minimum-req b/emulators/pcsx2/files/extra-patch-no-march-minimum-req new file mode 100644 index 000000000000..6e560dbe56c1 --- /dev/null +++ b/emulators/pcsx2/files/extra-patch-no-march-minimum-req @@ -0,0 +1,11 @@ +--- cmake/BuildParameters.cmake.orig 2023-06-25 15:34:40 UTC ++++ cmake/BuildParameters.cmake +@@ -120,7 +120,7 @@ if(${PCSX2_TARGET_ARCHITECTURES} MATCHES "x86_64") + endif() + else() + #set(ARCH_FLAG "-march=native -fabi-version=6") +- set(ARCH_FLAG "-march=native") ++ set(ARCH_FLAG "-march=penryn") + endif() + endif() + list(APPEND PCSX2_DEFS _ARCH_64=1 _M_X86=1) diff --git a/emulators/pcsx2/files/extra-patch-no-march-native b/emulators/pcsx2/files/extra-patch-no-march-native new file mode 100644 index 000000000000..ea0b7c821181 --- /dev/null +++ b/emulators/pcsx2/files/extra-patch-no-march-native @@ -0,0 +1,11 @@ +--- cmake/BuildParameters.cmake.orig 2023-06-25 15:34:40 UTC ++++ cmake/BuildParameters.cmake +@@ -120,7 +120,7 @@ if(${PCSX2_TARGET_ARCHITECTURES} MATCHES "x86_64") + endif() + else() + #set(ARCH_FLAG "-march=native -fabi-version=6") +- set(ARCH_FLAG "-march=native") ++ #set(ARCH_FLAG "-march=native") + endif() + endif() + list(APPEND PCSX2_DEFS _ARCH_64=1 _M_X86=1) diff --git a/emulators/pcsx2/pkg-message b/emulators/pcsx2/pkg-message new file mode 100644 index 000000000000..1481761cdc0c --- /dev/null +++ b/emulators/pcsx2/pkg-message @@ -0,0 +1,7 @@ +[ +{ type: install + message: <