diff options
author | nia <nia@pkgsrc.org> | 2018-08-14 12:55:41 +0000 |
---|---|---|
committer | nia <nia@pkgsrc.org> | 2018-08-14 12:55:41 +0000 |
commit | 1190ca544473b6bd81c0fdf9c67fb58b52b81a4c (patch) | |
tree | 8e6ba3704534af7a4037779a82f868099df64625 /emulators | |
parent | 8f8eefbe3e2585fc774a5974225a23cca25eb755 (diff) | |
download | pkgsrc-1190ca544473b6bd81c0fdf9c67fb58b52b81a4c.tar.gz |
libretro-ppsspp: add version 1.6.3.
Libretro is a simple but powerful development interface that allows for
the easy creation of emulators, games and multimedia applications that
can plug straight into any libretro-compatible frontend. This development
interface is open to others so that they can run these pluggable emulator
and game cores also in their own programs or devices.
PPSSPP is a PlayStation Portable (PSP) video game system emulator that
can be used as a libretro core.
Diffstat (limited to 'emulators')
-rw-r--r-- | emulators/Makefile | 3 | ||||
-rw-r--r-- | emulators/libretro-ppsspp/DESCR | 8 | ||||
-rw-r--r-- | emulators/libretro-ppsspp/MESSAGE | 16 | ||||
-rw-r--r-- | emulators/libretro-ppsspp/Makefile | 70 | ||||
-rw-r--r-- | emulators/libretro-ppsspp/PLIST | 2 | ||||
-rw-r--r-- | emulators/libretro-ppsspp/distinfo | 20 | ||||
-rw-r--r-- | emulators/libretro-ppsspp/options.mk | 41 | ||||
-rw-r--r-- | emulators/libretro-ppsspp/patches/patch-libretro_Makefile | 25 | ||||
-rw-r--r-- | emulators/libretro-ppsspp/patches/patch-libretro_Makefile.common | 16 |
9 files changed, 200 insertions, 1 deletions
diff --git a/emulators/Makefile b/emulators/Makefile index f383305b953..fcfe9e66e44 100644 --- a/emulators/Makefile +++ b/emulators/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.278 2018/08/13 18:35:14 nia Exp $ +# $NetBSD: Makefile,v 1.279 2018/08/14 12:55:41 nia Exp $ # COMMENT= Emulators for other operating systems @@ -114,6 +114,7 @@ SUBDIR+= libretro-nestopia SUBDIR+= libretro-o2em SUBDIR+= libretro-pcsx-rearmed SUBDIR+= libretro-picodrive +SUBDIR+= libretro-ppsspp SUBDIR+= libretro-prosystem SUBDIR+= libretro-snes9x SUBDIR+= libretro-snes9x2005 diff --git a/emulators/libretro-ppsspp/DESCR b/emulators/libretro-ppsspp/DESCR new file mode 100644 index 00000000000..18a6b53c433 --- /dev/null +++ b/emulators/libretro-ppsspp/DESCR @@ -0,0 +1,8 @@ +Libretro is a simple but powerful development interface that allows for +the easy creation of emulators, games and multimedia applications that +can plug straight into any libretro-compatible frontend. This development +interface is open to others so that they can run these pluggable emulator +and game cores also in their own programs or devices. + +PPSSPP is a PlayStation Portable (PSP) video game system emulator that +can be used as a libretro core. diff --git a/emulators/libretro-ppsspp/MESSAGE b/emulators/libretro-ppsspp/MESSAGE new file mode 100644 index 00000000000..2d946327021 --- /dev/null +++ b/emulators/libretro-ppsspp/MESSAGE @@ -0,0 +1,16 @@ +=========================================================================== +$NetBSD: MESSAGE,v 1.1 2018/08/14 12:55:41 nia Exp $ + +This package is not PaX MPROTECT-safe, because of its just-in-time +compiler. + +MPROTECT must be disabled for RetroArch for this core to be usable. + +Prior to using libretro-ppsspp: + +1. cd to RetroArch's System (where your BIOS files are) or RetroArch's +Content directory (where your PSP ROMs are). +2. git clone https://github.com/hrydgard/ppsspp ppsspp-master +3. cp -R ppsspp-master/assets PPSSPP + +=========================================================================== diff --git a/emulators/libretro-ppsspp/Makefile b/emulators/libretro-ppsspp/Makefile new file mode 100644 index 00000000000..6ce6ae50ac8 --- /dev/null +++ b/emulators/libretro-ppsspp/Makefile @@ -0,0 +1,70 @@ +# $NetBSD: Makefile,v 1.1 2018/08/14 12:55:41 nia Exp $ + +PKGNAME= libretro-ppsspp-1.6.3 +CATEGORIES= emulators + +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= https://docs.libretro.com/library/ppsspp/ +COMMENT= Libretro core based on the PPSSPP PlayStation Portable emulator +LICENSE= gnu-gpl-v2 + +DIST_SUBDIR= ppsspp-${PKGVERSION_NOREV} +DISTFILES+= ppsspp.tar.gz +DISTFILES+= ppsspp-armips.tar.gz +DISTFILES+= ppsspp-glslang.tar.gz +DISTFILES+= ppsspp-spriv.tar.gz + +# Submodules +ARMIPS_TAG= 8b4cadaf62d7de42d374056fc6aafc555f2bc7dc +GLSLANG_TAG= 2edde6665d9a56ead5ea0e55b4e64d9a803e6164 +SPRIV_TAG= 90966d50f57608587bafd95b4e345b02b814754a + +SITES.ppsspp.tar.gz= \ + -https://github.com/hrydgard/ppsspp/archive/v${PKGVERSION_NOREV}.tar.gz + +SITES.ppsspp-armips.tar.gz= \ + -https://github.com/Kingcom/armips/archive/${ARMIPS_TAG}.tar.gz + +SITES.ppsspp-glslang.tar.gz= \ + -https://github.com/hrydgard/glslang/archive/${GLSLANG_TAG}.tar.gz + +SITES.ppsspp-spriv.tar.gz= \ + -https://github.com/KhronosGroup/SPIRV-Cross/archive/${SPRIV_TAG}.tar.gz + +EXTRACT_USING= bsdtar +WRKSRC= ${WRKDIR}/ppsspp-${PKGVERSION_NOREV} +BUILD_DIRS= libretro + +USE_TOOLS+= gmake +USE_LANGUAGES= c c++11 + +.include "../../mk/bsd.prefs.mk" + +ONLY_FOR_PLATFORM= *-*-*arm* *-*-x86_64 *-*-i386 + +.if !empty(MACHINE_ARCH:M*arm*) +CFLAGS+= -marm +MAKE_FLAGS+= TARGET_ARCH=arm +.elif ${MACHINE_ARCH} == "x86_64" +MAKE_FLAGS+= TARGET_ARCH=x86_64 +.elif ${MACHINE_ARCH} == "i386" +MAKE_FLAGS+= TARGET_ARCH=x86 +.endif + +INSTALLATION_DIRS+= ${PREFIX}/lib/libretro + +post-extract: + ${MV} ${WRKDIR}/armips-${ARMIPS_TAG}/* ${WRKSRC}/ext/armips + ${MV} ${WRKDIR}/glslang-${GLSLANG_TAG}/* ${WRKSRC}/ext/glslang + ${MV} ${WRKDIR}/SPIRV-Cross-${SPRIV_TAG}/* ${WRKSRC}/ext/SPIRV-Cross + +do-install: + ${INSTALL_LIB} ${WRKSRC}/libretro/ppsspp_libretro.so \ + ${DESTDIR}${PREFIX}/lib/libretro/ppsspp_libretro.so + +.include "options.mk" +.include "../../multimedia/ffmpeg4/buildlink3.mk" +.include "../../mk/pthread.buildlink3.mk" +.include "../../mk/dlopen.buildlink3.mk" +BUILDLINK_TRANSFORM+= opt:-ldl:${BUILDLINK_LDADD.dl:Q} +.include "../../mk/bsd.pkg.mk" diff --git a/emulators/libretro-ppsspp/PLIST b/emulators/libretro-ppsspp/PLIST new file mode 100644 index 00000000000..76fc70df11c --- /dev/null +++ b/emulators/libretro-ppsspp/PLIST @@ -0,0 +1,2 @@ +@comment $NetBSD: PLIST,v 1.1 2018/08/14 12:55:41 nia Exp $ +lib/libretro/ppsspp_libretro.so diff --git a/emulators/libretro-ppsspp/distinfo b/emulators/libretro-ppsspp/distinfo new file mode 100644 index 00000000000..d73d4364261 --- /dev/null +++ b/emulators/libretro-ppsspp/distinfo @@ -0,0 +1,20 @@ +$NetBSD: distinfo,v 1.1 2018/08/14 12:55:41 nia Exp $ + +SHA1 (ppsspp-1.6.3/ppsspp-armips.tar.gz) = 51e8fcf70e64e64c9c3d04aa3c795dfe6f7f5f26 +RMD160 (ppsspp-1.6.3/ppsspp-armips.tar.gz) = d8c321256c9e58fbfcbf1529f61930274ecc6d15 +SHA512 (ppsspp-1.6.3/ppsspp-armips.tar.gz) = 9ab376b928fadcbff7256ff10d6581e4960e00e48a93f47f7e90b1998022a8d03cadef20880aa020fe6b62e4fa43cf28fc68dc5b10e93b1212fd6788ae493dba +Size (ppsspp-1.6.3/ppsspp-armips.tar.gz) = 191245 bytes +SHA1 (ppsspp-1.6.3/ppsspp-glslang.tar.gz) = bc70bf9850f187ecff189adf8d46a39930380928 +RMD160 (ppsspp-1.6.3/ppsspp-glslang.tar.gz) = d1c248f9f01f10b2f3d3bbbf6a5e6a431413702a +SHA512 (ppsspp-1.6.3/ppsspp-glslang.tar.gz) = 333a93707e067ac1d98c69533c2d206675d75aa54195326accf33e8401ac2fb412d2e2525b0ee1313f141872aa6ea430ae5424e8712483c59f77dc3adbcb4f59 +Size (ppsspp-1.6.3/ppsspp-glslang.tar.gz) = 1944927 bytes +SHA1 (ppsspp-1.6.3/ppsspp-spriv.tar.gz) = 729bff5fa8a51af90519fb51b64a5781acce03e2 +RMD160 (ppsspp-1.6.3/ppsspp-spriv.tar.gz) = 32346af6c24f9f30ae435381f7c30e6f427c0e39 +SHA512 (ppsspp-1.6.3/ppsspp-spriv.tar.gz) = 5fe2f772b571da0627fb9d9c424bea2b4ea1c0563e36ff455ddaf1b92ea3d5ee636e039a0619e0971478ce10e163b45258e9b03d2610c573f74d1cfd08549bb8 +Size (ppsspp-1.6.3/ppsspp-spriv.tar.gz) = 228943 bytes +SHA1 (ppsspp-1.6.3/ppsspp.tar.gz) = 5a4ec3f99dcb50840d26a2c738ff1ce4a37e7433 +RMD160 (ppsspp-1.6.3/ppsspp.tar.gz) = 0b0ea6c86aad60a7d9d176332ea62a88d23411fa +SHA512 (ppsspp-1.6.3/ppsspp.tar.gz) = fe592c81a3b22ba0fff3dbd403ad2f6b9639c39d036db31132147a91a25793acb8698174a1c139b7dced01a9101777b5c53a1e5db6b5da0b7727f480ef597b8e +Size (ppsspp-1.6.3/ppsspp.tar.gz) = 19477643 bytes +SHA1 (patch-libretro_Makefile) = ff14d98bb21d87b5a27f40b180d73beef7ab2f74 +SHA1 (patch-libretro_Makefile.common) = 5bce7657a4b6703903b71e7d33317dcb284e2759 diff --git a/emulators/libretro-ppsspp/options.mk b/emulators/libretro-ppsspp/options.mk new file mode 100644 index 00000000000..37ef8343894 --- /dev/null +++ b/emulators/libretro-ppsspp/options.mk @@ -0,0 +1,41 @@ +# $NetBSD: options.mk,v 1.1 2018/08/14 12:55:41 nia Exp $ + +PKG_OPTIONS_VAR= PKG_OPTIONS.libretro-ppsspp +PKG_OPTIONS_REQUIRED_GROUPS= graphics +PKG_OPTIONS_GROUP.graphics= opengl + +.include "../../mk/bsd.fast.prefs.mk" + +.if !empty(MACHINE_ARCH:Mearm*) +PKG_OPTIONS_GROUP.graphics+= rpi +.endif + +.if !empty(MACHINE_ARCH:Mearm*) && ${OPSYS} == "NetBSD" +PKG_SUGGESTED_OPTIONS+= rpi +.else +PKG_SUGGESTED_OPTIONS+= opengl +.endif + +.if ${MACHINE_ARCH} == "earmv7hf" || ${MACHINE_ARCH} == "earmv7hfeb" +PKG_SUPPORTED_OPTIONS+= simd +PKG_SUGGESTED_OPTIONS+= simd +.endif + +.include "../../mk/bsd.options.mk" + +.if !empty(PKG_OPTIONS:Msimd) +CFLAGS+= -mfpu=neon -D__NEON_OPT +MAKE_FLAGS+= HAVE_NEON=1 +.endif + +.if !empty(PKG_OPTIONS:Mrpi) +BUILD_MAKE_FLAGS+= platform=rpi +SUBST_CLASSES+= vc +SUBST_STAGE.vc= pre-configure +SUBST_MESSAGE.vc= Fixing path to VideoCore libraries. +SUBST_FILES.vc= libretro/Makefile +SUBST_SED.vc+= -e 's;/opt/vc;${PREFIX};g' +.include "../../misc/raspberrypi-userland/buildlink3.mk" +.elif !empty(PKG_OPTIONS:Mopengl) +.include "../../graphics/MesaLib/buildlink3.mk" +.endif diff --git a/emulators/libretro-ppsspp/patches/patch-libretro_Makefile b/emulators/libretro-ppsspp/patches/patch-libretro_Makefile new file mode 100644 index 00000000000..773cbf0395a --- /dev/null +++ b/emulators/libretro-ppsspp/patches/patch-libretro_Makefile @@ -0,0 +1,25 @@ +$NetBSD: patch-libretro_Makefile,v 1.1 2018/08/14 12:55:41 nia Exp $ + +Use ffmpeg from pkgsrc. + +--- libretro/Makefile.orig 2018-06-05 17:58:41.000000000 +0000 ++++ libretro/Makefile +@@ -40,7 +40,6 @@ endif + + # Dirs + CORE_DIR = .. +-FFMPEGDIR = $(CORE_DIR)/ffmpeg + LIBRETRODIR = $(CORE_DIR)/libretro + COREDIR = $(CORE_DIR)/Core + COMMONDIR = $(CORE_DIR)/Common +@@ -60,9 +59,7 @@ ifneq (,$(findstring unix,$(platform))) + TARGET := $(TARGET_NAME)_libretro.so + LDFLAGS += -shared -Wl,--version-script=link.T -Wl,--no-undefined + +- FFMPEGINCFLAGS += -I$(FFMPEGDIR)/linux/$(TARGET_ARCH)/include +- FFMPEGLIBDIR := $(FFMPEGDIR)/linux/$(TARGET_ARCH)/lib +- FFMPEGLDFLAGS += -L$(FFMPEGLIBDIR) -lavformat -lavcodec -lavutil -lswresample -lswscale ++ FFMPEGLDFLAGS += -lavformat -lavcodec -lavutil -lswresample -lswscale + fpic = -fPIC + ifneq (,$(findstring gles,$(platform))) + GLES = 1 diff --git a/emulators/libretro-ppsspp/patches/patch-libretro_Makefile.common b/emulators/libretro-ppsspp/patches/patch-libretro_Makefile.common new file mode 100644 index 00000000000..4f7c343c817 --- /dev/null +++ b/emulators/libretro-ppsspp/patches/patch-libretro_Makefile.common @@ -0,0 +1,16 @@ +$NetBSD: patch-libretro_Makefile.common,v 1.1 2018/08/14 12:55:41 nia Exp $ + +Fix "Build error: undefined references". + +https://github.com/libretro/ppsspp/commit/68634705b9d6b5bc8db2232bc92b6ae06f0b31d8 + +--- libretro/Makefile.common.orig 2018-05-30 17:47:20.000000000 +0000 ++++ libretro/Makefile.common +@@ -452,6 +452,7 @@ SOURCES_CXX += $(NATIVEDIR)/math/datacon + $(COREDIR)/MemMap.cpp \ + $(COREDIR)/MemMapFunctions.cpp \ + $(COREDIR)/PSPLoaders.cpp \ ++ $(COREDIR)/Replay.cpp \ + $(COREDIR)/Reporting.cpp \ + $(COREDIR)/SaveState.cpp \ + $(COREDIR)/Screenshot.cpp \ |